美文网首页区块链入门
【以太坊开发】利用Infura节点API与以太坊通信

【以太坊开发】利用Infura节点API与以太坊通信

作者: 海阳之新 | 来源:发表于2018-12-25 12:12 被阅读7次

一、开发文档

Infura网站:https://infura.io/
注册并创建项目的通信密钥

API文档:https://infura.io/docs
通过curl请求拿到接口返回结果,前后端都适合使用。

二、示例

2.1 成功的交易示例:

https://rinkeby.etherscan.io/tx/0x198519cd9bd7c6dcc59daee4353e8840fa143852fb1a5649eae8bca8d3fd1002

其中status = 0x1 表示交易成功。

curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params": ["0x198519cd9bd7c6dcc59daee4353e8840fa143852fb1a5649eae8bca8d3fd1002"],"id":1}'

2.2 失败的交易示例:

https://rinkeby.etherscan.io/tx/0x8623cb00359cb87a7f7d0ad7cb430431a919b47f1419504976ca8c6d15fadf6d

其中status = 0x0 表示交易失败。

curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params": ["0x8623cb00359cb87a7f7d0ad7cb430431a919b47f1419504976ca8c6d15fadf6d"],"id":1}'

2.3 pedding状态的交易示例:

https://rinkeby.etherscan.io/tx/0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e

使用eth_getTransactionReceipt方法:

curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params": ["0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e"],"id":1}'

返回:

{"jsonrpc":"2.0","id":1,"result":null}

使用eth_getTransactionByHash方法:

curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params": ["0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e"],"id":1}'

返回:

{"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":null,"from":"0xc5d2954bbb0f652aefd48640c5279f28247b8294","gas":"0x7530","gasPrice":"0x30d40","hash":"0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e","input":"0x","nonce":"0x1","r":"0x8bc385749712e2507184c521261bb3b0461deb40205c54e1e90ef1cd48432eab","s":"0x7b86255fd5bf22dbb2d16ed3d65c3ba7480dfcbbf314035923c1d9fa877bb534","to":"0x039a8f5289914c9bfbb6e92df1fde5a0ae1d28ec","transactionIndex":"0x0","v":"0x1b","value":"0x2710"}}

比较eth_getTransactionReceipt和eth_getTransactionByHash两个方法,当交易处于pedding状态时,eth_getTransactionByHash会返回result,其中的blockHash和blockNumber都为空,transactionIndex不足以用做判断条件,成功、失败、pedding都有可能为0x0;而eth_getTransactionReceipt会直接返回result=null,综上所述,推荐用eth_getTransactionReceipt方法。

相关文章

网友评论

    本文标题:【以太坊开发】利用Infura节点API与以太坊通信

    本文链接:https://www.haomeiwen.com/subject/rooxlqtx.html