Etherscan
是否可以獲得地址的代幣轉移?
我想獲得地址(傳入)的令牌傳輸,但我想一旦我進行了排序,我就可以弄清楚。
所以例如這裡 - https://etherscan.io/address/0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be#tokentxns
他們有所有的代幣轉移,我在他們的 API 中看不到所有的代幣轉移,所以我想知道是否有人知道如何讓所有的代幣轉移在地址上進行。我在嘗試使用 web3.js 並嘗試訂閱事件時嘗試了很多事情。我意識到當智能合約傳輸令牌時,會呼叫並發出 Transfer 事件,但我看不到如何使用 etherscan API 顯示所有令牌傳輸。多謝你們。
如果你想使用 etherscan API,你可以使用https://etherscan.io/apis#logs。
但是,您必須知道您希望觀看的所有代幣的合約地址。
ERC20 的 Transfer 事件定義為
event Transfer(address indexed _from, address indexed _to, uint256 _value);
這意味著:
- topic0 將是事件本身簽名的雜湊
- topic1 將是發件人的地址
- topic2 將是接收者的地址
對於方向,您可以查看轉賬交易的交易收據中的日誌。-> 例如https://etherscan.io/tx/0x5c354e4f25f2da8ee608c445cad43c171bc553859dd787fc0800a904344a7ecd#eventlog
此處
topic2
的參數指定獲取所有傳入令牌傳輸的地址(填充到 256 位)。以下是結果記錄的範例:
{ "address":"0x2155877da05c52368b830bfd56e96405a2668d8b", // Token smart contract "topics":[ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000a67d0d44eee2a6ed2081a6f50bb59dd41df3c554", // From "0x000000000000000000000000001c356c0be5dd6c91ca24ef04d9e10081510682"], // To "data":"0x00000000000000000000000000000000000000000000000000000000000003e8", // Amount "blockNumber":"0x57ca63", "timeStamp":"0x5b1a7e82", "gasPrice":"0x28fa6ae00", "gasUsed":"0x14ca6", "logIndex":"0x30", "transactionHash":"0x523ae8fbb7db6103cd7f821896a6f6a5a830cbc63d980a44760459633b80e24f", "transactionIndex":"0x8a"}