主页 > imtoken苹果版testflight > 以太坊api Etherscan的API使用

以太坊api Etherscan的API使用

imtoken苹果版testflight 2023-10-14 05:12:41

虽然以太坊提供了两个API,Json Rpc,geth也提供了一些额外的API,但是对于以太坊应用的开发还是有些不足。 比如获取交易记录的时间,需要先找到交易哈希。 交易对应的block id,然后可以查到对应的时间,查询起来比较不方便。

幸运的是,Etherscan 提供了一些公共 API,这些 API 为我们提供了额外的能力来处理更多的业务场景。

Etherscan API

为了方便开发者更好的使用ethersacn.io,网站提供了一系列API供开发者使用。

指示

API的使用很简单,基本都是get方法,通过http请求直接调用即可,每个Api的文档中都有相应的例子可以查看。

模块介绍

API主要包括以下模块:账户、智能合约、交易、区块、事件日志、代币和工具等。

账户接口

账户相关API包括获取账户金额、获取交易记录等,该模块提供的API最多。

获取单个账户的金额

API范例

参数说明

其中,module、action、apikey是每个API的参数,其他参数对于不同的API是不同的。

返回结果

{"status":"1","message":"OK","result":"670456215218885498951364"}

获取多个账户的金额

API范例

,0x63a9975ba31b0b9626b34300f7f627147df1f526,0x198ef1ec325a96cc354c7266a038be8b5c558f67&tag=latest&apikey=YourApiKeyToken

参数说明

(前面提到的参数不再赘述,下同)

与单一账户金额API相比以太坊api,参数地址使用一个,数字分隔多个账户,最多支持20个账户的金额查询。

返回结果

{
    "message": "OK",
    "result": [
        {

sitecsdn.net 以太坊和以太币的关系_sitehqz.com 以太坊和以太坊贸易的关系_以太坊api

"account": "0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a", "balance": "40807168564070000000000" }, { "account": "0x63a9975ba31b0b9626b34300f7f627147df1f526", "balance": "332567136222827062478" }, { "account": "0x198ef1ec325a96cc354c7266a038be8b5c558f67", "balance": "0" } ], "status": "1" }

获取“正常”的交易记录

API范例

参数说明

返回结果

{
    "message": "OK",
    "result": [
        {
            "blockHash": "0x2d0a9228f22fe85596d246040d4fd7dc6b1a55920bae02b68e731d55a890b315",
            "blockNumber": "47894",
            "confirmations": "5435815",
            "contractAddress": "",

sitehqz.com 以太坊和以太坊贸易的关系_以太坊api_sitecsdn.net 以太坊和以太币的关系

"cumulativeGasUsed": "21612", "from": "0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a", "gas": "23000", "gasPrice": "400000000000", "gasUsed": "21612", "hash": "0x7e1503d2001cab2f432b56a62a3ee874782c8e33cbd79a664d155a758c1784a2", "input": "0x454e34354139455138", "isError": "0", "nonce": "1", "timeStamp": "1438948043", "to": "0x2910543af39aba0cd09dbb2d50200b3e800a63d2", "transactionIndex": "0", "txreceipt_status": "", "value": "9001000000000000000000" }, ], "status": "1" }

获取“内部”交易记录

API范例

参数说明

参数和前面的API基本一样,只是action是txlistinternal。 这两种交易有什么区别? 简单理解就是,“正常”交易会被记录在区块链上,而“内部”交易是指不会被记录在区块链上的记录,比如交易失败的记录。

此外,该API还可以通过交易哈希查看交易明细。

返回结果

{
    "message": "OK",

sitehqz.com 以太坊和以太坊贸易的关系_sitecsdn.net 以太坊和以太币的关系_以太坊api

"result": [ { "blockNumber": "2547619", "contractAddress": "", "errCode": "Bad jump destination", "from": "0x2c1ba59d6f58433fb1eaee7d20b26ed83bda51a3", "gas": "346878", "gasUsed": "0", "hash": "0x2896441f9d1f167b4a3f987d82233e7d238e6a50a227c4b612dbc82f34bb533d", "input": "", "isError": "1", "timeStamp": "1478013203", "to": "0x20d42f2e99a421147acf198d775395cac2e8b03d", "traceId": "0", "type": "call", "value": "71000000000000000000" }, ], "status": "1" }

获取ERC20代币交易事件记录

API范例

参数说明

返回结果

{
    "message": "OK",

sitehqz.com 以太坊和以太坊贸易的关系_sitecsdn.net 以太坊和以太币的关系_以太坊api

"result": [ { "blockHash": "0xb3ff25909ae9ae5b65baecab1114dff885fbd5a1607081229ea50b6a2db13ae8", "blockNumber": "5278009", "confirmations": "205861", "contractAddress": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2", "cumulativeGasUsed": "1050219", "from": "0x4e83362442b8d1bec281594cea3050c8eb01311c", "gas": "191157", "gasPrice": "4000000000", "gasUsed": "97646", "hash": "0x497f15095877bc06b9e0f422673c1e0f13a2b4224b615ef29ce8c46e249364d1", "input": "0x73b38101000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000000000000000000000000046aefaa28844d7d839d7", "nonce": "730", "timeStamp": "1521386734", "to": "0x69076e44a9c70a67d5b79d95795aba299083c275", "tokenDecimal": "18", "tokenName": "Maker", "tokenSymbol": "MKR", "transactionIndex": "28", "value": "553365126770755906" }, ], "status": "1" }

获取已开采区块列表

以太坊api_sitehqz.com 以太坊和以太坊贸易的关系_sitecsdn.net 以太坊和以太币的关系

API范例

参数说明

返回结果

{
    "message": "OK",
    "result": [
        {
            "blockNumber": "3462296",
            "blockReward": "5194770940000000000",
            "timeStamp": "1491118514"
        },
    ],
    "status": "1"
}

合约API

智能合约相关的API其实只有一个获取智能合约接口的API,但是这个API非常好用。

获取智能合约接口

API范例

参数说明

智能合约的abi是一个json对象,我们可以通过它调用它的接口方法,后面会写一篇文章介绍如何操作abi对象,敬请期待。

返回结果

返回结果内容比较长,这里省略,是一个json对象,有兴趣的可以调用这个接口查看结果。

使用限制

账户和智能合约API已经可以满足大部分业务需求。 其他模块的API好像用处不大,这里就不介绍了。 感兴趣的读者可以自行查阅。

这里先说说API的使用限制。 如前所述,每个 API 都有一个 apikey 参数。 如果API不加这个参数,每个API的请求次数不能超过每秒5次。

总结

Etherscan提供的这些API有一些和以太坊提供的API是重复的以太坊api,比如获取账户金额,获取事件日志记录等,但是有些API给我们带来了很大的方便,比如获取账户交易记录,有了这个API,就有了各种数据拼接无需使用多个原生API。

另外,Etherscan API在Rinkeby测试网中也有相同的一套,唯一不同的是之前的url不同。 Rinkeby的是:api-rinkeby.etherscan.io,有兴趣的同学可以试试。