仓库地址
https://github.com/nanmu42/etherscan-api
README
Etherscan.io API 的 Golang 库,
支持几乎所有功能(accounts, transactions, tokens, contracts, blocks, stats),
所有公共网络(Mainnet, Ropsten, Kovan, Rinkby, Tobalaba)。
本项目只依赖于官方库。 😉
Usage
填入网络选项和 API Key 即可开始使用。 🚀
import (
"github.com/nanmu42/etherscan-api"
"fmt"
)
func main() {
// 创建连接指定网络的客户端
client := etherscan.New(etherscan.Mainnet, "[your API key]")
// (可选)按需注册钩子函数,例如用于速率控制
client.BeforeRequest = func(module, action string, param map[string]interface{}) error {
// ...
}
client.AfterRequest = func(module, action string, param map[string]interface{}, outcome interface{}, requestErr error) {
// ...
}
// 查询账户以太坊余额
balance, err := client.AccountBalance("0x281055afc982d96fab65b3a49cac8b878184cb16")
if err != nil {
panic(err)
}
// 余额以 *big.Int 的类型呈现,单位为 wei
fmt.Println(balance.Int())
// 查询token余额
tokenBalance, err := client.TokenBalance("contractAddress", "holderAddress")
// 查询出入指定地址的ERC20转账列表
transfers, err := client.ERC20Transfers("contractAddress", "address", startBlock, endBlock, page, offset)
}
客户端方法列表可在 GoDoc 查询。
Etherscan API Key
API Key 可以在 etherscan 申请。
Etherscan 的 API 服务是一个公开的社区无偿服务,请避免滥用。
API 的调用速率不能高于 5 次/秒,否则会遭到封禁。
利益声明
我和 Etherscan 没有任何联系。我仅仅是觉得他们的服务很棒,而自己又恰好需要这样一个库。 😄
许可证
MIT
请自由享受开源,欢迎贡献开源。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于