Cómo persistir los datos del contrato de las transacciones de Truffle

Después de ejecutar las pruebas de Truffle, la cadena de bloques vuelve a un entorno de sala limpia y se pierden todos los datos.

¿Cómo puede realizar transacciones desde Truffle y conservar los datos en su contrato? En mi caso, quiero usar esos datos en una interfaz web3.

Desde la interfaz, las transacciones se guardan, pero es tedioso ya que debe aprobar la confirmación de MetaMask cada vez, y crear cientos de transacciones sería una molestia, mientras que en Truffle puede simplemente hacer un bucle y no preocuparse por los mensajes de confirmación.

Respuestas (1)

Como punto de claridad, lo que intenta mantener son los datos en su red Ganache privada (no Truffle). Truffle es simplemente el marco que le permite crear un proyecto y apuntar a diferentes redes, como la red principal, Ropsten, Ganache, etc.

Lo que está tratando de hacer no se puede lograr con pruebas, sino que debe hacerse en el lado de la implementación (en la migrationscarpeta de su proyecto Truffle). El objetivo de la prueba es examinar temporalmente una parte del código para confirmar que funciona, no persistir.

Para lograr lo que desea, debe realizar la implementación que está intentando realizar en su migrations/2_deploy_contract.jsarchivo. Cuando su código esté allí, simplemente ejecute truffle migratey su código se implementará en cualquier red a la que esté apuntando.

Si está tratando de realizar cientos de transacciones, debe hacerlo manualmente o escribir un script (similar a lo que está haciendo en sus pruebas) que interactuará con la red de cadena de bloques en la que se encuentra y realizará las transacciones. Cómo lo escribes y qué herramientas usas depende de ti ( web3js, web3.py, etc.), pero todos conducirán al mismo resultado.

Eche un vistazo a este artículo para obtener consejos sobre cómo utilizar web3jspara realizar lo que está intentando hacer.