我需要所有以太坊智能合约

时间:2018-03-05 08:01:52

标签: blockchain ethereum solidity smartcontracts

问题

我想在以太坊网络中获得所有ERC20令牌智能合约字节码。

问题

有没有办法扫描区块链以获取ERC20智能合约和/或扫描[ERC20]智能合约的地址?

1 个答案:

答案 0 :(得分:1)

看看EIP165。它允许你某种形式的内省,一个地址提供一定的界面。显然,这仅适用于至少实施ERC20和EIP165的合同。

How to detect if a contract implements ERC-165

  1. 源联系人将STATICCALL发送到目标地址 输入数据: 0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000 和天然气30,000。这对应于 contract.supportsInterface(0x01ffc9a7)
  2. 如果通话失败或返回 false,目的地合同未实施ERC-165。
  3. 如果 call返回true,第二次调用输入数据 0x01ffc9a7ffffffff00000000000000000000000000000000000000000000000000000000

  4. 如果第二次调用失败或返回false,则为目标合同 没有实施ERC-165。否则它实现了ERC-165。

  5. How to detect if a contract implements any given interface

    1. 如果您不确定合同是否实施ERC-165,请使用 以上程序确认。
    2. 如果没有实施ERC-165,那么 你将不得不看看它采用老式的方法。
    3. 如果 它实现了ERC-165然后只需调用supportsInterface(interfaceID) 确定它是否实现了你可以使用的界面。