¿Funciones de contrato ER721Token que funcionan todas en remix, pero no en geth --dev console con comandos web3?

Estoy usando el siguiente contrato con todas las dependencias.

MasteringEthereum/code/auction_dapp/backend/contracts/ERC721/ERC721Token.sol

Cuando se implementan en remix, las funciones del contrato funcionan bien, todas se ejecutan y los datos se almacenan en los lugares correctos (es decir, matrices y asignaciones). Aunque cuando implemento en una consola local, las siguientes funciones se ejecutan pero el estado del contrato no cambia geth --dev.

erc721token.mint(acct1, 9000 {from: acct1})

erc721token.totalSupply()

erc721token.tokenByIndex([0])

erc721token.balanceOf(acct1)

erc721token.exists(9000) 

erc721token.ownerOf(9000)

???

Cualquier ayuda sería fantástica.

¿Revisó el recibo de la transacción para verificar el estado de ejecución? Remix calcula la estimación del gas de la transacción, pero la consola geth no lo hace y utilizará un gas predeterminado que podría no ser suficiente para ejecutar la transacción. Intente establecer un límite de gas explícito { gas: 1000000, from: acc1 }.

Respuestas (1)

Gracias Ismael. El problema se soluciona con tu sugerencia.

El problema era

erc721token.mint(cuenta1, 9000 {de: cuenta1})

la transacción no estaba acuñando un nuevo token, a pesar de que se extrajo una transacción.

gasUsado: 100000,

deedrepository.mint(eth.cuentas[0], 1000, {gas: 1000000, de: eth.cuentas[0]})

GasUsado: 157938,

llamar a la misma función con un límite de gas más alto como un parámetro de transacción resolvió el problema porque la función necesita un precio de gas más alto para que el EVM ejecute el cálculo completo.

NOTA: "0x0" en el recibo de la transacción indica un error en la transacción. "0x1" en recibo de transacción en transacción exitosa.

Para las personas que encuentran esta respuesta, creo que quiere decir "límite de gasolina más alto" en lugar de "precio de gasolina más alto".