Web3.js 侦听 CreatedPairs 时脚本退出
Web3.js Script exits while listening to CreatedPairs
我正在尝试创建一个简单的脚本来测试 Web3.js CreatedPairs
的事件监听功能。但是,我的脚本 运行 执行了一次代码然后退出,而不是继续侦听创建的对,我不知道为什么。
const Web3 = require('web3')
const web3 = new Web3(Web3.givenProvider || 'https://mynodeishere');
const IUniswapV2Factory = require("@uniswap/v2-core/build/IUniswapV2Factory.json")
const UNI_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'
const uFactory = new web3.eth.Contract(IUniswapV2Factory.abi, UNI_FACTORY_ADDRESS)
const main = async () => {
// Create event listener to listen to PairCreated
uFactory.events.PairCreated({}, async (error, event) => {
console.log(`New pair detected...\n`)
})
}
main()
最终发生的事情是当我 运行 node ./myapp.js
。代码进入并记录 New pair detected...
到控制台,然后退出。这种情况立即告诉我,当检测到新对时它不会执行,而只是单步执行代码。
但是,我预计会发生的情况是,应用程序会继续 运行 并仅在检测到新对时才登录到控制台。我确定我忽略了一些小问题,但我们将不胜感激。
在此上下文中,Web3.givenProvider
是 null
,因此使用了 HTTP 提供程序。
要能够订阅事件,您需要使用 WSS 提供程序。
// example connection to a WSS provider
const web3 = new Web3('wss://mainnet.infura.io/ws/v3/<yourtoken>');
我正在尝试创建一个简单的脚本来测试 Web3.js CreatedPairs
的事件监听功能。但是,我的脚本 运行 执行了一次代码然后退出,而不是继续侦听创建的对,我不知道为什么。
const Web3 = require('web3')
const web3 = new Web3(Web3.givenProvider || 'https://mynodeishere');
const IUniswapV2Factory = require("@uniswap/v2-core/build/IUniswapV2Factory.json")
const UNI_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'
const uFactory = new web3.eth.Contract(IUniswapV2Factory.abi, UNI_FACTORY_ADDRESS)
const main = async () => {
// Create event listener to listen to PairCreated
uFactory.events.PairCreated({}, async (error, event) => {
console.log(`New pair detected...\n`)
})
}
main()
最终发生的事情是当我 运行 node ./myapp.js
。代码进入并记录 New pair detected...
到控制台,然后退出。这种情况立即告诉我,当检测到新对时它不会执行,而只是单步执行代码。
但是,我预计会发生的情况是,应用程序会继续 运行 并仅在检测到新对时才登录到控制台。我确定我忽略了一些小问题,但我们将不胜感激。
在此上下文中,Web3.givenProvider
是 null
,因此使用了 HTTP 提供程序。
要能够订阅事件,您需要使用 WSS 提供程序。
// example connection to a WSS provider
const web3 = new Web3('wss://mainnet.infura.io/ws/v3/<yourtoken>');