Estoy intentando ejecutar el contrato de bienvenida en la red en vivo. Estoy siguiendo los comandos según el tutorial oficial , que funcionó en una red de prueba cuando lo probé hace un tiempo (en una máquina diferente).
Al ingresar los comandos, obtengo una undefined
respuesta, aunque todas las variables están definidas correctamente cuando se las llama manualmente en la consola.
Al ingresar al final var greeter
, se me solicita correctamente la frase de contraseña de la cuenta que se está utilizando, que parece pasar. Sin embargo, la secuencia de comandos pegada en sí no parece ser llamada; no hay salida de registro de la consola.
¿Alguna idea de lo que me he perdido?
[Nota: Hay mucho éter en la cuenta que se está utilizando.]
[Nota 2: la consola ha truncado líneas largas en el registro a continuación. He confirmado que copiaron correctamente.]
> {g) public { greeting = _greeting; } function greet() constant returns (string) { return greeting; } }'
undefined
>
> var greeterCompiled = web3.eth.compile.solidity(greeterSource)
undefined
> var _greeting = "Reason has always existed, but not always in a reasonable form."
undefined
> var greeterContract = web3.eth.contract(greeterCompiled.greeter.info.abiDefinition);
undefined
> {,{from:web3.eth.accounts[0], data: greeterCompiled.greeter.code, gas: 1000000}, function(e, contract){
if(!e) {
if(!contract.address) {
{saction send: TransactionHash: " + contract.transactionHash + " waiting to be mined .");
} else {
console.log("Contract mined! Address: " + contract.address);
console.log(contract);
}
}
})
Please unlock account <account_address_removed>.
Passphrase:
Account is now unlocked for this session.
undefined
Consulte Implementar el contrato de Greeter a través de geth CLI no se está registrando en mi cadena de bloques privada para obtener una guía paso a paso para ejecutar el ejemplo de saludo en su cadena de bloques de desarrollo local.
Los comandos y los resultados esperados en las secciones de la ventana n.° 2 en el enlace anterior deben ser muy similares en la red en vivo.
Y los undefined
mensajes son esperados y no indican una condición de error como se indica en los comentarios Tjaden Hess
anteriores.
Debería ver el Contract transaction send
mensaje con un hash de transacción
var greeter = greeterContract.new(_greeting,{from: eth.accounts[0], data: greeterCompiled.greeter.code, gas: 4000000}, function(e, contract){ if(!e) { if(!contract.address) { console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined..."); } else { console.log("Contract mined! Address: " + contract.address); console.log(contract); } } })
Contract transaction send: TransactionHash: 0x90d201388971770036898a7a22ab252cb0bf3c556f988a7b87583315cdaf58bc waiting to be mined...
undefined
Si no ve el siguiente Contract mined!
mensaje, es posible que deba aumentar el valor del gas en el mensaje de envío de su transacción:
Contract mined! Address: 0x083628160c1cf218d14f2f0998c7a8dc72aec180
[object Object]
tjaden hess
Richard Horrocks
jayD
web3.eth.defaultAccount = web3.eth.accounts[0]
?jayD
Richard Horrocks
web3.eth.defaultAccount
como sugeriste, pero eso no ha ayudado. No es mi código, es el código Greeter estándar del tutorial en la wiki: github.com/ethereum/go-ethereum/wiki/Contract-Tutorial . ¿Qué bit parece incorrecto?Richard Horrocks
Joël
tjaden hess
undefined
en javascript no es algo malo. Las declaraciones de variables siempre devuelven indefinidas, no hay nada de qué preocuparse.