Simplemente estoy copiando el código de moneda completo que se encuentra en este tutorial para implementar un contrato en la red de prueba usando mist, pero recibo el mensaje de error "No hay datos implementados en la dirección del contrato". Luego, el contrato aparece como una transacción en mi billetera, pero no aparece en los contratos. Estoy usando la tarifa más alta posible y mi propia dirección de billetera como argumento de entrada de la dirección central de minter. ¿Es esto válido? Este argumento solo parece usarse en la línea
if(centralMinter != 0 ) propietario = mensaje.remitente;
lo que hace que me parezca bastante redundante, por lo que también se agradece cualquier explicación de esto, independientemente de la relevancia para el mensaje de error.
No es tu culpa, el MyAdvancedToken
contrato está mal. Cuando extiende otro contrato, y el constructor de ese contrato necesita parámetros, debe pasar esos parámetros durante la fase de creación. MyAdvancedToken
hereda token
pero no pasa parámetros a su padre, por lo que no funciona como se esperaba. Arreglé el ejemplo y ya envié un pull request a la página oficial. Mientras tanto, puede solucionarlo usted mismo siguiendo estas instrucciones.
Dentro del token
contrato, elimine la primera línea del constructor:
balanceOf[msg.sender] = initialSupply; // Give the creator all initial tokens
Dentro del MyAdvancedToken
contrato, reemplace el constructor incorrecto:
/* Initializes contract with initial supply tokens to the creator of the contract */
function MyAdvancedToken(
uint256 initialSupply,
string tokenName,
uint8 decimalUnits,
string tokenSymbol,
address centralMinter
) {
if(centralMinter != 0 ) owner = msg.sender; // Sets the minter
balanceOf[msg.sender] = initialSupply; // Give the creator all initial tokens
name = tokenName; // Set the name for display purposes
symbol = tokenSymbol; // Set the symbol for display purposes
decimals = decimalUnits; // Amount of decimals for display purposes
totalSupply = initialSupply;
}
Con este:
/* Initializes contract with initial supply tokens to the creator of the contract */
function MyAdvancedToken(
uint256 initialSupply,
string tokenName,
uint8 decimalUnits,
string tokenSymbol,
address centralMinter
) token (initialSupply, tokenName, decimalUnits, tokenSymbol) {
if(centralMinter != 0 ) owner = centralMinter; // Sets the owner as specified (or msg.sender if centralMinter is not specified)
balanceOf[owner] = initialSupply; // Give the owner all initial tokens
}
tjakko
tjaden hess