Получите стоимость токенов ERC20, переданных с помощью API Etherscan

Я использую Etherscan API для получения транзакций и других сведений об адресах.

Мне нужно узнать нет. токенов, переданных между двумя адресами. Для примера - для ниже TxHash я вижу, что передано 1564+ токена. Когда я использую этот вызов API, я вижу fromи toадресую, но не значение токена.введите описание изображения здесь

Я решаю ту же проблему, вы получили решение?
Привет всем, Вы нашли какое-либо решение для того же? Спасибо

Ответы (3)

Вот результат json от вашего вызова API:

{
    jsonrpc: "2.0",
    id: 1,
    result: {
        blockHash: "0x8fe66b0c15a1c1155338bb5628db55f05cfe72d1194931134b4721cd07e9eda7",
        blockNumber: "0x416850",
        from: "0x167a9333bf582556f35bd4d16a7e80e191aa6476",
        gas: "0x13880",
        gasPrice: "0x4e3b29200",
        hash: "0x03430ecdf52d37a8d3645fa9b19c072ec367edbd0d4eba3cc1c7f7c5e7dcc7d2",
        input: "0xa9059cbb0000000000000000000000007a2641bb2fb31ccd33ba5488c886c3bc4714ec6b000000000000000000000000000000000000000000000054ca7578dcf8bb7aa0",
        nonce: "0x15a82",
        to: "0x9a642d6b3368ddc662ca244badf32cda716005bc",
        transactionIndex: "0x2a",
        value: "0x0",
        v: "0x25",
        r: "0x790a06d5773006ecbc719354d966d100470e6267a68d3446ca0ebfd8df4452b5",
        s: "0x4e58eb2997a3c8add1386a47a71ac5bb915a2a53343883ea1ea4d8e69a6be486"
    }
}

Пожалуйста, обратите внимание на поле ввода:

  • Первые 4 байта — это хэш метода:

    a9059cbb
    
  • Следующие 32 байта — целевой адрес:

    0000000000000000000000007a2641bb2fb31ccd33ba5488c886c3bc4714ec6b
    
  • Последние 32 байта — это значение переданных токенов ERC20:

    000000000000000000000000000000000000000000000054ca7578dcf8bb7aa0
    

0x54ca7578dcf8bb7aa0 = 1,5641152016500001e+21

Учитывая, что txtidможно получить журналы транзакций через web3, используя getTransactionReceipt() функцию .

В качестве альтернативы вы можете использовать этот API, предоставляемый etherscan.io: https://etherscan.io/apis#logs .

Не забудьте установить правильную тему, как указано в этом другом ответе: Что такое темы [0] в журналах событий?

Да, в конце концов я пытаюсь это сделать, но это потребует прохождения всех транзакций адреса и проверки этого адреса во всех журналах.
Также я не уверен, как найти темы, без тем я не могу просмотреть все журналы, так как им потребуется нумерация страниц, что очень неэффективно, поскольку есть 400 тыс. Блоков. Все еще исследую. Надеялся, что есть какой-то прямой путь.

@jun.wu,

x54ca7578dcf8bb7aa0 = 1,5641152016500001e+21

Как вы пришли к такому выводу? Есть какая-то формула или что?

Как сейчас написано, ваш ответ неясен. Пожалуйста , отредактируйте , чтобы добавить дополнительные сведения, которые помогут другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре .
Это на самом деле не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав Задать вопрос . Чтобы получать уведомления о новых ответах на этот вопрос, вы можете подписаться на этот вопрос . Как только у вас будет достаточно репутации , вы также можете добавить награду , чтобы привлечь больше внимания к этому вопросу. - Из обзора