¿Cómo verificar las transacciones de una dirección que gastó ether para un contrato?

No estoy seguro de si la pregunta ya se hizo en alguna parte, intenté buscar pero no pude encontrarla.

Esto es lo que he hecho hasta ahora.

  1. Contrato de token creado e implementado
  2. Contrato CrowdSale creado e implementado

Ahora, ¿cómo enumero las transacciones enviadas por una dirección (persona) al contrato de crowdsale para comprar el token? Revisé los códigos para saber la cantidad de tokens comprados por la dirección, pero también quiero mostrar la cantidad de éteres que envió en varias fases del crowdsale. Sé que hay un punto final de API para extraer las transacciones de una dirección, pero aquí quiero que la transacción se realice solo con el Contrato CrowdSale.

Espero haber podido explicar la necesidad. Cualquier ayuda es apreciada.

Respuestas (1)

Personalmente, mi enfoque es usar eventos dentro del contrato, lo cual es bastante fácil de enumerar los detalles de la transacción con información específica, por ejemplo.

En el contrato defino un evento como este

event buy(address indexed customerAddress, uint priceValue, uint amount);

Luego en un archivo js como este

var buyEevent= contractInstance.buy({customerAddress:customerAddress},{fromBlock: 0, toBlock: 'latest'});
            buyEvent.watch(function(error, response) {
                 if (!error) {
                      console.log("event: "+response.args.customerName);
                      console.log("event: "+response.args.priceValue);
                      console.log("event: "+response.args.amount);

                 } else {
                      console.error(error);
                 }
            });

Espero que pueda ser útil para usted.

Gracias. Supongo purchaseEvent.watchque debe cambiarse abuyEevent.watch
gracias por la corrección @Rajesh, realicé cambios en mi solución, así que olvidé cambiar el nombre allí