¿Por qué mi token personalizado muestra 0?

Creé un token personalizado de vainilla a través de un contrato en testnet y acuñé 10,000 monedas, y pude enviar con éxito los tokens a un contrato de billetera en una dirección diferente. Sin embargo, cuando intento usar la Watch Tokenfunción y pegar la dirección del contrato, el saldo siempre es cero, a pesar de que el formulario carga automáticamente las otras variables del contrato.

¿No debería mostrar el número junto al ícono la cantidad de tokens personalizados asociados con la dirección de la cuenta principal?

Estoy usando Mist 0.8.10 en ropsten testnet.

Ficha personalizada Detalles del contrato

Mi contrato es bastante simple:

pragma solidity ^0.4.11;

contract PractCoin {

    mapping (address => uint256) public monies;
    address public owner;
    uint public totalCoins;
    uint public initialSupply;
    string public name;
    uint8 decimalPlaces;

    function PractCoin(uint _totalCoins, uint _initialSupply, string _name, uint8 _decimalPlaces){
        owner = msg.sender;
        totalCoins = _totalCoins;
        initialSupply = _initialSupply;
        monies[owner] = initialSupply;
        name = _name;
        decimalPlaces = _decimalPlaces;
    }

    function sendCoins(address _to, uint _amount){
        if (monies[msg.sender] < _amount || 
            msg.sender == _to || 
            monies[_to] + _amount < _amount) throw;
        monies[msg.sender] -= _amount;
        monies[_to] += _amount;
        CoinTransfer(_amount, _to, msg.sender);
    }

    function destroyContract(){
        if (msg.sender == owner ) selfdestruct(owner);
        ContractDestroyed("Contract Destroyed!");

    }

    event CoinTransfer(uint _amount, address indexed _to, address indexed _from);
    event ContractDestroyed(string _message);
}
si ok estoy muy feliz esto y me interesa

Respuestas (1)

Su contrato no cumple con ERC20 . Es muy importante conservar el estándar ERC20, lo que significa mantener todos los nombres iguales. Consulte esta definición de contrato . La niebla debe buscar las siguientes propiedades, según ERC20:

uint public supply;
string public name;
uint8 public decimals;
string public symbol;
string public version;

También debe incluir todas las funciones siguientes para cumplir con ERC20:

function totalSupply() constant returns (uint) {
  return supply;
}

function balanceOf( address who ) constant returns (uint) {
  return balances[who];
}

function transfer( address to, uint value) returns (bool) {
  balances[msg.sender] = safeSub(balances[msg.sender], value);
  balances[to] = safeAdd(balances[to], value);
  Transfer( msg.sender, to, value );
  return true;
}

function transferFrom( address from, address to, uint value) returns (bool) {
  approvals[from][msg.sender] = safeSub(approvals[from][msg.sender], value);
  balances[from] = safeSub(balances[from], value);
  balances[to] = safeAdd(balances[to], value);
  Transfer( from, to, value );
  return true;
}

function approve(address spender, uint value) returns (bool) {
  approvals[msg.sender][spender] = value;
  Approval( msg.sender, spender, value );
  return true;
}

function allowance(address owner, address spender) constant returns (uint) {
  return approvals[owner][spender];
}