首页 > 解决方案 > 如何构建与 BSC 测试网或主网通信的 nodejs api 以使用 web3js 监听智能联系人事件

问题描述

我已经按照本指南https://docs.binance.org/smart-chain/developer/deploy/truffle.html在带有 HDWalletProvider 的松露中将我的智能合约部署到 BSC 测试网,如下所示:

const HDWalletProvider = require('@truffle/hdwallet-provider');

module.exports = {
  networks: {
    testnet: {
      provider: () => new HDWalletProvider(mnemonic, `https://data-seed-prebsc-1-s1.binance.org:8545`),
      network_id: 97,
      confirmations: 10,
      timeoutBlocks: 200,
      skipDryRun: true
    },
  },
}

我可以从前端连接智能合约,但我会喜欢创建一个 nodejs api 端点来使用 websocket 连接来监听智能合约事件。

在网上做了一些关于如何解决这个问题的研究后,我看到的更接近我想要的特定参考是这里哪种有意义但令人困惑,所以这是我的疑问

从链接中,安装 web3js 后,我需要连接到 web3js,如下所示

const web3 = new Web3(new web3.providers.WebsocketProvider('ws://localhost:8546'));

但在我的情况下,我可以替换为ws://localhost:8546ws://data-seed-prebsc-1-s1.binance.org:8545/因为我连接的是 BSC 测试网而不是本地主机,如果我通过替换链接成功连接?当我需要监听特定的智能合约事件时,如何添加我的智能合约地址。

通过一些小挖掘,我意识到我可能需要一个区块链节点提供商,例如getblock.ioquicknode.com如果我要将它们与我部署的智能合约一起使用,我该怎么做,或者我必须以某种方式重新部署我的智能合约,或者也许我什至根本不需要它们。

如果有人能帮助回答我的问题,我会很高兴,谢谢。

标签: node.jsblockchainsmartcontractsweb3js

解决方案


推荐阅读