如何监控所有 ETH 转账交易

如何使用Moralis的JSSDK监控所有ETH转账交易虽然通过Moralis管理区域设置链上监控是最简单的途径,但在构建更高级的dapp时,您可能更喜欢通过Moralis的SDK进行设置。注意:如果您想要有关如何通过SDK使用Streams的详细说明,请

<!--StartFragment-->

如何使用 Moralis 的 JS SDK 监控所有 ETH 转账交易

虽然通过 Moralis 管理区域设置链上监控是最简单的途径,但在构建更高级的 dapp 时,您可能更喜欢通过 Moralis 的 SDK 进行设置。

注意:如果您想要有关如何通过 SDK 使用 Streams 的详细说明,请点击 Moralis 管理区域“Stream”页面上的相关按钮:

Moralis 管理区域的“Stream”页面

因此,您可能想知道如何以编程方式监控所有 ETH 转账交易。首先,您必须决定要使用哪种编程语言/框架。您有很多选择,但 JavaScript 或 Python 与 NodeJS 相结合往往是最受欢迎的。 

但是,在专注于通过 SDK 创建流之前,您需要准备一个服务器。后者将接收一个 webhook。幸运的是,您可以创建一个简单的 NodeJS Express 应用程序,它将为您提供一个“webhook”端点。 

创建本地服务器

因此,为此,您可以使用以下代码行 - 只需将它们复制粘贴到“index.js”文件中即可:

<!--EndFragment-->

const express = require("express");
const app = express();
const port = 3000;

app.use(express.json());

app.post("/webhook", async (req, res) => {

  const {body} = req;

  try {
    console.log(body);
  } catch (e) {
    console.log(e);
    return res.status(400).json();
  }

    return res.status(200).json();
});

app.listen(port, () => {
  console.log(`Listening to streams`);
});

<!--StartFragment-->

有了上述脚本,只需npm run start使用终端输入并运行命令即可。

响应上述命令,你的终端应该返回“正在监听流”消息: 

“正在收听流媒体”消息

创建转发隧道

接下来,打开一个新终端并运行该ngrok http 3000命令。这将创建一个到端口的隧道3000。响应此命令,您将获得一个 URL 地址,可用作流的 webhook URL。

用作 webhook URL 的 URL 地址

准备好本地服务器和隧道后,您可以使用下一节中概述的代码行来监视各种链上活动。当然,“如何监视所有 ETH 转账交易”功能也是您可以关注的选项之一。

加密传输监控 – 代码演练

首先初始化另一个 NodeJS 应用程序。接下来,创建一个新的“index.js”文件,该文件需要依赖 Moralis 和dotenv

<!--EndFragment-->

const Moralis = require("moralis").default;
const { EvmChain } = require("@moralisweb3/common-evm-utils");
require("dotenv").config();

<!--StartFragment-->

此外,您需要创建一个“ .env ”文件。在该文件中,将您的 Moralis Web3 API 密钥存储在MORALIS_KEY变量下。要获取该变量的值,请访问您的 Moralis 管理区域,转到“设置”,然后复制默认 API 密钥或创建一个新密钥:

访问您的 Moralis 管理区域,转到“设置”,然后复制默认 API 密钥或创建一个新的

现在您有了 API 密钥,您可以初始化 Moralis。为此,请在下面添加以下代码行require (“dotenv”).config();

<!--EndFragment-->

Moralis.start({
    apiKey: process.env.MORALIS_KEY,
  });

<!--StartFragment--> 然后,是时候使用以下代码行来关注流的选项了:  <!--EndFragment-->

async function streams(){

  const options = {
    chains: [EvmChain.MUMBAI],
      tag: "transfers",
  description: "Listen to Transfers",
    includeContractLogs: false,
    includeNativeTxs: true,
    webhookUrl: "your webhook url"
  }

<!--StartFragment-->

查看上面的代码片段,您可以看到它定义了要关注的链、描述、标签和 webhook URL。这些都是我们在上一节中介绍的相同选项,因为我们使用了 Moralis 的管理 UI。

我们将专注于监听孟买测试网上的原生交易。因此,我们将 设置includeContractLogsfalse,以便不监听 ERC-20 交易。此外,我们将 设置为 ,专注于原生货币转账includeNativeTxstrue对于孟买网络,原生货币是“测试”MATIC。 

要在“index.js”脚本中使用上述代码行,您只需将其替换your webhook url为之前生成的ngrokURL:

将你的 webhook url 替换为之前生成的 ngrok URL

如上图所示,请确保/webhook在 URL 末尾添加ngrok。 

创建新流

通过完成上述所有步骤,您最终就可以实现本文介绍中展示的代码行了。 

因此,请关注上面定义的内容async function streams,并在该行下方添加以下代码片段webhookUrl

<!--EndFragment-->

const newStream = await Moralis.Streams.add(options)

  const {id} = newStream.toJSON();

  const address = "wallet_address_you_want_to_track";

  await Moralis.Streams.addAddress({address, id})

  console.log("Fin")

}

streams()

<!--StartFragment-->

Moralis.Streams.add(options)方法使用上面定义的流选项来创建新流。接下来,代码使用它const {id}来获取新流的 ID。此外,它还定义了要监控的钱包地址。这是您需要wallet_address_you_want_to_track用实际地址替换的地方。 

Moralis.Streams.addAddress方法使用您的流的 ID 为其分配钱包地址。最后,代码Fin在完成所有前面的步骤后记录。    

要运行脚本,请输入node index.js。如果您按照上述说明进行了所有操作,您应该Fin在终端中看到:

在您的终端中收到消息

本国货币示例交易

在出于测试目的执行本地货币交易之前,请打开“Express 服务器”终端。在那里,您应该看到一个空的 webhook 正在初始化: 

空的 webhook 正在初始化

现在,使用您的 MetaMask 并从您正在监控的地址转移一些“测试”MATIC。一旦交易确认,您将能够在终端中看到测试交易的详细信息:  

您的终端中的测试交易详情

这就是如何通过其 SDK 使用 Moralis Streams 监控所有 ETH 转移交易!

什么是加密交易监控?

无论您决定跟踪特定的智能合约还是钱包,最终还是要监听实时的链上交易。由于交易围绕不同的活动进行,因此您有很多选择。

例如,在上面的教程中,我们首先关注 ERC-20 转账,然后关注原生转账。然而,这只是两个常见的链上事件示例。您还可以关注其他几个链上事件。各种 dapp 都可以从使用这种监控中受益匪浅。

加密交易监控营销横幅

最佳加密交易监控工具

您可能知道,链上数据(对于公共区块链)可供任何人使用。但是,原始格式的数据毫无用处。因此,开发人员要么浪费时间和资源自己解析数据,要么使用出色的工具来为他们完成工作。

在监控加密交易方面,Moralis 的 Streams API 是最好的工具。它允许开发人员在事件发生时检测它们,并返回与这些事件相关的解析数据。因此,这为 dapp 开发人员节省了大量时间,使他们能够专注于创建最佳用户体验。 

Streams API 工具的一些核心优势包括:

  • ✅ 跨链互操作性
  • ✅ 用户友好性(跨平台互操作性)
  • ✅ 监听加密钱包和智能合约
  • ✅ 速度和效率
  • ✅ 高级过滤选项
  • ✅ 可通过免费帐户访问

此外,有了这个强大的工具,您还可以避免:

  • ❌ 连接和维护有缺陷的 RPC 节点
  • ❌ 构建不必要的抽象
  • 浪费时间构建复杂的数据管道

有些开发者仍在使用 ethers.js 来监听区块链,因此错过了上述所有好处。

<!--EndFragment-->

点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
加密女士
加密女士
无代码发币平台