在今天的文章中,我们将向您展示如何利用 Moralis 的 Streams API 以最少的努力构建加密钱包跟踪 dapp(去中心化应用程序)。我们将直接进入我们的教程,并首先演示如何使用 Moralis 的管理 UI 监控以太坊地址。但是,在处理可用于生产的 dapp 时,您很可能更喜欢在脚本中设置 Web3 流。因此,我们也将向您展示如何做到这一点。在这里,您将学习如何正确实现上面介绍的代码行。
对于那些希望了解更多背景信息的人,我们还将回答什么是加密钱包跟踪,并提供今天教程背后的理论。我们还将快速概述 Moralis 及其产品,以便您可以使用它们来提升您的 dapp 开发水平。最后,我们将概述 Web3 Streams API 的核心优势。毕竟,今天的教程只反映了这个强大工具的一小部分功能。
监控以太坊地址 – 如何监控以太坊上的钱包地址
首先,让我们向您展示如何使用 Moralis 的管理 UI 设置Web3 钱包跟踪器。由于您需要一个有效的 Moralis 帐户才能访问管理区域,因此请确保立即创建您的免费 Moralis 帐户(如果您尚未创建)。您可以使用简介中的链接或点击 Moralis 主页右上角的“免费开始”按钮:
如果您想在继续学习今天的教程的同时测试您的进度,您还需要 MetaMask 和一些“测试”MATIC。如果您需要帮助将 Polygon Mumbai 测试网添加到 MetaMask 以及获取“测试”MATIC 的一些指导,我们将在探索Polygon Mumbai 水龙头的文章中解释所有这些内容。
使用 Moralis Admin UI 跟踪加密钱包
进入 Moralis 管理区域后,从侧面菜单中选择“流”选项,然后单击“创建新流”按钮:
接下来,选择“从管理员创建”选项:
要监控以太坊地址,您需要提供一个地址。出于测试目的,最简单的方法通常是打开 MetaMask 并从那里复制您的地址:
然后,将其粘贴到“将地址添加到流”输入字段中:
通过输入您想要监听的钱包地址,UI 将自动向您显示流配置选项。要将您的流用于生产目的,您需要提供一个 webhook URL 并从“Demo”切换到“Prod”:
我们不需要提供 webhook URL。对于描述和标签字段,我们可以使用默认选项。因此,我们可以继续进行网络选择。由于 Moralis 完全可跨链互操作,因此您可以定位所有领先的 EVM 兼容区块链网络。但是,我们将重点关注孟买测试网:
在我们流设置的第四步中,我们将仅选择合约交互,因为我们有兴趣跟踪 ERC20 代币:
“高级选项”可让您进一步过滤跟踪议程。例如,您可以使用智能合约的 ABI 来定位特定的智能合约功能。您还可以添加多个其他过滤器,但为了演示的目的,我们不会使用任何高级选项。
示例交易
最后,我们在孟买测试网上执行 Chainlink(LINK)代币的交易:
我们的演示流立即获取了上述交易:
上面的截图显示,该流不仅可以检测链上事件,还可以获取相关的链上数据。因此,您可以看到交易哈希、事件涉及的智能合约、“发件人”和“收件人”地址、转移的价值等等。因此,您有一个触发器以及许多有用的细节,您可以将它们巧妙地整合到各种 dapp 或通知/机器人中。
使用 Moralis 的 JS SDK 跟踪加密钱包
如上所述,使用 Moralis 的 Web3 流的另一种方法是通过编程方式合并它们。对于大多数生产目的而言,这往往是首选方法。因此,让我们看一下可以使用 NodeJS 创建后端 dapp 的脚本,该脚本可以检测和记录链上事件。
在我们专注于创建流之前,我们需要一个可以接收 webhook 的服务器。为此,我们可以创建一个带有“webhook”端点的简单 NodeJS Express 应用程序。这些是您应该复制粘贴到“index.js”文件中的代码行:
注意:如果您没有创建 NodeJS 应用程序和设置 Express 服务器的经验,请使用我们的“快速入门 NodeJS ”指南。
设置好上述脚本后,使用终端并运行以下命令:
结果,你的终端应该返回“正在监听流”消息:
然后,打开另一个终端,使用“ ngrok ”创建到端口“ 3000 ”的隧道。这将生成一个 URL 地址,用于提供您的流的 webhook URL。为此,请使用以下命令:
现在您已准备好本地服务器和隧道,是时候仔细查看使加密钱包跟踪成为可能的代码了。在这里,您还可以学习如何将上面标记的 URL 地址粘贴到正确的位置。
加密钱包追踪脚本 – 代码演练
初始化另一个 NodeJS 应用程序。然后,创建一个新的“index.js”文件,并首先引用 Moralis 和“ dotenv ”:
您还必须创建一个“ .env”文件并将您的 Moralis Web3 API 密钥存储在该文件中的“ MORALIS_KEY ”变量下。此时,您应该已经启动并运行了您的 Moralis 帐户,并且您可以通过以下两个简单步骤从管理区域获取您的 Web3 API 密钥:
有了 API 密钥后,就可以通过在“ require (“dotenv”).config(); ”行下方添加以下代码行来初始化 Moralis:
接下来,您需要定义流的选项。这些是要使用的代码行:
查看上面的代码片段,您可以看到它定义了要关注的链、描述、标签和 webhook URL。如果您还记得 Web3 Streams UI,您会看到我们正在定义与流配置请求相同的选项。通过将“ includeContractLogs ”设置为“ false ”,我们不会监听 ERC20 交易。此外,通过将“ includeNativeTxs ”设置为“ true ”,我们将关注本地货币转账。对于孟买网络,这是“测试”MATIC。因此,您所要做的就是将上述代码行复制粘贴到您的“index.js”文件中,并将“您的 webhook url ”替换为上面获得的“ ngrok ”URL:
如上图所示,不要忘记在 URL 末尾 添加“ /webhook ”。
创建新流
至此,您已做好一切准备,可以最终实现今天文章介绍中提供的代码行了。因此,在“index.js”文件的“ webhookUrl ”下的流的“ async”函数中,添加以下简单的代码行:
“ Moralis.Streams.add(options) ”方法采用上面定义的选项并创建一个新流。然后,代码使用“ const {id} ”获取新流的 ID。接下来,它定义要监控的钱包地址。在这里,确保将“ wallet_address_you_want_to_track ”替换为您的地址(您可以测试的地址)。通过使用“ Moralis.Streams.addAddress ”方法,您可以根据其 ID 将钱包地址添加到您的流中。最后,上面的代码控制台记录“ Fin ”,这表明它已经完成了它的工作。
再次使用“ node index.js ”命令运行此“流创建”示例脚本。结果,您应该在终端中看到“ Fin ”:
如果您现在再次打开运行本地 Express 服务器的终端,您应该会看到空的 webhook 正在初始化:
一切设置正确后,我们鼓励您测试您的流 - 使用您的 MetaMask 并从您上面添加的地址转移一些“测试”MATIC。这样,您将能够在终端中看到测试交易的详细信息:
加密钱包追踪说明
跟踪加密钱包就是监听与特定公共区块链地址相关的实时活动并获取这些活动的详细信息。例如,在上面的教程中,我们重点介绍了 ERC20 转账(使用 UI 时)和原生转账(使用 JS SDK 时)。然而,这只是链上事件的两个常见示例。总而言之,无数 dapp 可以从这种信号和数据获取中受益匪浅。
什么是加密钱包追踪?
加密钱包跟踪专注于检测 Web3 钱包的活动,然后可以以各种方式使用这些信号。本质上,“监控以太坊地址”功能使开发人员能够创建 dapp,以检测受监控钱包上的活动并根据这些信号和相关数据执行一些有用的操作。毕竟,检测到的活动可以触发各种操作。例如,它们可以触发通知或解锁 dapp 的特殊功能。
最佳加密钱包追踪工具
加密钱包是公共区块链地址。反过来,任何人都可以跟踪每个钱包地址。但是,如果没有适当的手段,记录事件发生的时间并获取解析的数据可能具有挑战性。这就是 Moralis 的 Streams API 如此受欢迎的原因。在今天的教程中,您看到了这个加密钱包跟踪工具的实际应用。如果您想进一步探索它,您可以在下面查看 Web3 Streams API 的主要优点。
虽然检测实时的链上事件非常有用,但探索与任何 Web3 钱包相关的过去活动和加密资产也具有很大的价值。它可以成为创建终极钱包跟踪 dapp 的关键。这就是 Moralis 的Web3 数据 API(2023 年最好的以太坊 API)进入现场的地方。此 API 使您能够使用一行代码获取任何类型的链上数据。它允许您获取以太坊日志和事件、获取以太坊交易详细信息、获取合约日志等等。
最后但并非最不重要的一点是,Moralis 还提供了终极Web3 Auth API。此工具可让您将所有最流行的 Web3 登录方法添加到您的 dapps。这样,您的用户就可以参与无摩擦的 Web3 入职体验。
Web3 Streams API 优势 – 监控 EVM 链,而不仅仅是以太坊
在我们上面的例子中,我们只关注 Polygon 的测试网:孟买。但是,正如您在管理 UI 中看到的,Moralis 支持所有领先的 EVM 兼容链。因此,除了监控以太坊地址外,您还可以同时监控任何其他受支持的链或多个网络。事实上,跨链互操作性是所有 Moralis 产品的最大优势之一。这不仅允许您定位多个链,而且还为您的工作提供未来保障,因为您永远不会局限于某条链。
Streams API 的另一个重要优势是其用户友好性。我们上面使用了 NodeJS,但您可以使用其他领先的传统编程语言和框架来充分利用 Web3 Streams API。此外,您可以使用免费的 Moralis 帐户访问此功能。
由于今天的目标是监控以太坊地址,因此我们专注于监听钱包事件。但是,Streams API 还允许您监听任何智能合约地址。这进一步扩展了利用链上事件的可能性。例如,您可以创建一个 Twitter 机器人来发送加密货币鲸鱼警报。
以下是 Web3 Streams API 的主要优势列表:
✅ 跨链互操作性
✅ 用户友好性(跨平台互操作性)
✅ 监听加密钱包和智能合约
✅ 速度和效率
✅ 高级过滤选项
✅ 可通过免费帐户访问
此外,使用 Streams API,不再需要:
❌ 连接和维护有缺陷的 RPC 节点
❌ 构建不必要的抽象
浪费时间构建复杂的数据管道
如果您仍在使用 ethers.js 来监听区块链,并且您需要上述更多好处来帮助您决定哪种工具最适合这项工作,请查看我们的ethers.js 与 Web3 流的比较。