Obtenga el valor de los tokens ERC20 transferidos mediante la API de Etherscan

Estoy usando la API de Etherscan para obtener la transacción y otros detalles de las direcciones.

Necesito saber no. de tokens transferidos entre dos direcciones. Por ejemplo, para debajo de TxHash, veo más de 1564 tokens transferidos. Cuando uso esta llamada a la API , veo una dirección from, topero no el valor del token.ingrese la descripción de la imagen aquí

Estoy resolviendo el mismo problema, ¿obtuviste la decisión?
Hola a todos, ¿Habéis encontrado alguna solución para lo mismo? Gracias

Respuestas (3)

Aquí está el resultado json de su llamada 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"
    }
}

Por favor, cuide el campo de entrada:

  • Los primeros 4 bytes son hash de método:

    a9059cbb
    
  • Los siguientes 32 bytes son la dirección de destino:

    0000000000000000000000007a2641bb2fb31ccd33ba5488c886c3bc4714ec6b
    
  • Los últimos 32 bytes son el valor de los tokens ERC20 transferidos:

    000000000000000000000000000000000000000000000054ca7578dcf8bb7aa0
    

0x54ca7578dcf8bb7aa0 = 1.5641152016500001e+21

Dada una txtides posible recuperar los registros de la transacción a través de web3 utilizando la getTransactionReceipt() función .

Alternativamente, puede usar esta API expuesta por etherscan.io: https://etherscan.io/apis#logs

Recuerde establecer el tema correcto, como se menciona en esta otra respuesta: ¿Qué son los temas [0] en los registros de eventos?

Sí, eventualmente estoy intentando esto, pero esto requeriría atravesar todas las transacciones de una dirección y verificar esa dirección en todos los registros.
Además, no estoy seguro de cómo encontrar temas, sin temas no puedo recorrer todos los registros ya que necesitarían paginación, lo cual es muy ineficaz ya que hay bloques de 400k. Todavía explorando. Esperaba que hubiera alguna forma directa.

@jun.wu,

x54ca7578dcf8bb7aa0 = 1.5641152016500001e+21

Cómo llegaste a esta conclusión? ¿Hay alguna fórmula o qué?

Como está escrito actualmente, su respuesta no está clara. Edite para agregar detalles adicionales que ayudarán a otros a comprender cómo esto aborda la pregunta formulada. Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda .
Esto realmente no responde la pregunta. Si tiene una pregunta diferente, puede hacerla haciendo clic en Preguntar . Para recibir una notificación cuando esta pregunta obtenga nuevas respuestas, puede seguir esta pregunta . Una vez que tenga suficiente reputación , también puede agregar una recompensa para llamar más la atención sobre esta pregunta. - De la revisión