/*
增加的polygon充值方式
*/
//polygon网络配置
const pol_url = "https://rpc-mainnet.matic.quiknode.pro"
// const pol_url = "https://rpc-mumbai.maticvigil.com"
const abi = [
"event Transfer(address indexed from, address indexed to, uint value)",
"function transfer(address recipient, uint256 amount) external returns (bool)"
]
const usdtAddr = '0xaA61b68301278Da4e001d2cF7F8b2202aed6347c'
const provider = new ethers.JsonRpcProvider(pol_url)
const usdtContract = new ethers.Contract(usdtAddr, abi, provider)
const toB = "0x3b2dBD900E9B23E94270ADe010616B9A28293A87"
try {
//过滤事件以确定上链成功
let i = 0
let checkConfirm = async ()=> {
i++
console.log(1122,i)
if(i>9){
//循环10
clearInterval(timer)
console.log(4411)
return
}
//过滤事件,每3秒1次,10次
let results = await usdtContract.queryFilter('Transfer', -9) //16秒 9
if(results.length == 0){
console.log(435, "results.length", results.length)
return
}
console.log(66, "results.length", results.length)
let checkEvent = async ()=> {
return new Promise(resolve => {
for(let t = 0; t < results.length; t++ ){
if(hash === results[t].transactionHash && results[t].args[1] == toB){
clearInterval(timer)
console.log(33, results[t].args)
let amount = ethers.formatEther(results[t].args[2])
let payAddr = results[t].args[0]
resolve(['ok', amount, payAddr])
}
}
resolve(["false", 0, 0])
})
}
let event = await checkEvent()
if(event[0] === 'ok'){
//业务逻辑
}
}
//设置定时器以更新 5秒
let timer = setInterval(checkConfirm, 5000)
} catch (error) {
console.log(1112, error)
}
Sort: Trending