Infura 提供公开的 Ethereum 主网和测试网络节点。到 Infura 官网申请,只要输入一点基本资料和 Email,就可以收到 API-key。
如果你希望立刻开始学习以太坊DApp开发,推荐这个教程:以太坊DApp实战开发入门。
查询合约状态
最常需要查询的状态就是 Token 的余额啦。我就用 EOS Token 合约做为范例试看看。
取得合约信息
可以透过 Etherscan,大部分知名的合约可以直接搜寻到:
要呼叫合约,至少需要:
- 合约地址,例如:0x86Fa049857E0209aa7D9e616F7eb3b3B78ECfdb0
- 要呼叫的合约方法签名,例如以 ERC 20 Token 合约来说,查询余额要呼叫的 function 是 balanceOf(address) ,其对应的 function signature 是 70a08231 。
如何取得 function signature 呢? 以 balanceOf(address) 为例:
i. 把 balanceOf(address) 经过 sha3
0x70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be
ii. 取除了 0x 外,前面的 8 位
70a08231
以上流程可以用任何工具完成,以 web3.js 为例:
var functionSig = we3.sha3("balanceOf(address)").substr(2,8)
另外也可以把 contract code 贴到 Remix(编者注:可见文末链接)。在合约的 Details 中可以看到完整的合约接口和对应的 function signature。