He hecho un contrato que genera un evento público en blockchain que notificará al cliente sobre una transacción. Para escuchar el evento, he escrito el siguiente fragmento en la consola geth:
var event = token.CoinTransfer({}, '', function(error, result){
if (!error)
console.log("Coin transfer: " + result.args.amount + " tokens were sent. Balances now are as following: \n Sender:\t" + result.args.sender + " \t" + token.coinBalanceOf.call(result.args.sender) + " tokens \n Receiver:\t" + result.args.receiver + " \t" + token.coinBalanceOf.call(result.args.receiver) + " tokens" )
});
Ahora, en lugar de console.log()
, quiero que estas transacciones se almacenen en un archivo de texto TransactionHistory.txt
. ¿Cómo podemos hacer esto? ¿Hay una mejor manera que escuchar el evento para mantener registros de transacciones?
Probablemente sea mejor que ejecute el script desde un archivo de todos modos
geth --exec 'loadScript("/tmp/test.js")' attach
Luego puede dirigir la salida, por ejemplo en Linux y Mac:
geth --exec 'loadScript("/tmp/checkbalances.js")' attach > log.txt
La consola Geth es básicamente un subconjunto de Javascript, por lo que está limitado console.log
y se podría hacer la respuesta de @Roland de redirigir a un archivo.
Tienes más flexibilidad usando Ethereum JSON-RPC (ver filtros). Puede usar una amplia gama de lenguajes para JSON-RPC (algunos aquí ) y sus capacidades para E/S: por ejemplo, puede usar Python .
Sukhmaninder
TMOTTM