Как проверить транзакции адреса, который потратил эфир на контракт?

Не уверен, что вопрос уже где-то задавался, я пытался искать, но не смог его получить.

Это то, что я сделал до сих пор.

  1. Создан и развернут токен-контракт
  2. Создан и развернут контракт CrowdSale.

Теперь, как мне составить список транзакций, отправленных адресом (человеком) в краудсейл-контракт для покупки токена. Я проверил коды, чтобы узнать количество токенов, купленных по адресу, но я также хочу показать количество эфиров, которые он отправил на разных этапах краудсейла. Я знаю, что есть конечная точка API для извлечения транзакций адреса, но здесь я хочу, чтобы транзакция выполнялась только с контрактом CrowdSale.

Надеюсь, я смог объяснить необходимость. Любая помощь приветствуется.

Ответы (1)

Лично мой подход заключается в использовании событий внутри контракта, который довольно легко перечислить детали транзакции с конкретной информацией, например

В контракте я определяю такое событие

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

Затем в файле js, подобном этому

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);
                 }
            });

Надеюсь, это может быть полезно для вас.

Спасибо. Догадка purchaseEvent.watchдолжна быть изменена наbuyEevent.watch
спасибо за исправление @Rajesh, я вношу изменения в свое решение, поэтому я забыл изменить там имя