教程 | 教你用几行代码搞定一个以太坊 dApp 活动列表
在以太坊上开发的过程应该是非常简单的。使用 Amberdata.io 可将你的 dApp 快速投入生产。我们来带大家走一遍开发一款简单的以太坊 dApp 的流程,这款 dApp 用于让用户了解一个账户的详细活动列表。
将 Amberdata 的 API 接入你的 dApp 非常简单。点击链接即可查看演示:https://amberdata.github.io/amberdata-example-dapp/
一、构建一个简单的 dApp
如何使用我们的端点开发一个简单的 dApp:
地址元数据——某个地址的元数据:
地址交易——某个账户的历史交易记录:
地址函数——地址发送或接收的内部消息:
地址日志——合约输入的日志:
合约函数——来自 abi 的合约函数名称和签名:
这是用来做什么的?
快速获取有关任何帐户或合约的历史动态
确定合约或地址类型
简单的 dApp 集成
无需运行 geth 或 parity 节点
二、步骤解析
第 1 步:获取免费的 Amberdata API 密钥,调用 gas 数据端点
访问 https://amberdata.io/pricing,点击“Get Started”,获取一个免费的开发者 API 密钥,接下来的几个步骤中都需要这个密钥来获取数据。

第 2 步:调用第一个端点:地址元数据(确定地址类型)
使用 Axios 和 Amberdata API,可以轻松请求以太坊地址元数据。 请参阅以下代码段:

看我们感兴趣的字段。
firstSeen - 这是地址首次出现在网络上的时间。
type - 是外部帐户(EOA)还是合约? (就本教程而言,这是我们最感兴趣的字段)

第 3 步:调用接下来的 3 个端点:地址交易、地址日志、地址函数
有两种方法可以实现这一点:发送三个单独的请求,或者使用 Javascript 的 Promise.all()来充分利用并行请求。

大家可以在我们的 API 文档中查看完整的回复:https://docs.amberdata.io/reference/addresses 但是现在我将重点介绍这个例子所需的关键数据字段。
交易
我们需要从响应中获取 hash 和 value:

日志
对于日志,我们正在寻找 topics 和 transactionHash 字段:

函数
使用函数的话,我们需要 transactionHash 和 input 字段

第 4 步:调用最后一个端点(仅适用于合约):合约函数
在第 2 步中,我们确定了地址的类型。 如果它是一个合约,那么我们希望将函数的完整十六进制签名与人类可读的名称相匹配。
把这样的:0xa9059cbb0000000000000000000000000a23 ......
变成这样的:transfer(address,uint...
所以我们可以像这样展示方法名称:

三、搞定!
试试看将以太坊活动信息添加到 dApp 或项目中。 如果将我们的 API 集成到其中,请将链接发送给我们,我们将对进行展示!
这只是可以使用 Amberdata API 进行开发的众多方法之一。 在接下来的几周内,我们将分享更多教程,敬请期待!
Amberdata 是用于监测、搜索、分析及保护区块链的高级数据分析平台。我们致力于收集、处理并搭建 API 来帮助人们解读区块链信息。大家可以通过我们的 API 文档来查看这些图表的数据源,也可以将我们的机器人( Crypto Slack )添加到 Slack 中来获取某种加密货币的实时市场数据(价格、走势等等)。
关注以下渠道了解更多Amberdata.io相关信息:
推特: Amberdataio
官方微信号:amberdata (加入中国社群)
微信公众号:Amberdata(ID:amberdata_china)