我正在尝试调用智能合约上的应付函数,该函数只接受一个参数。
如何将 eth 值与函数调用一起发送到 ethers.js 中的该函数?这些文档似乎没有给出太多关于执行此操作的最佳方法的示例。
我的函数调用
const reciept = await contract.buyPunk(1001);
Run Code Online (Sandbox Code Playgroud)
所有其他读写函数调用都按预期工作,但它调用了我尚未解决的付费函数。
我正在尝试在 node.js 应用程序中使用 ethers.js (不是 web3)监听 USDT 合约 Transfer 函数发出的事件。
当我运行脚本时,代码运行没有错误,然后快速退出。我希望获得事件日志。我不确定我错过了哪一步。
我通过调用 getOwner() 方法并控制台记录结果来测试此脚本,这工作正常,所以我与主网的连接正常。
我正在使用炼金术网络套接字。
我的index.js 文件
const hre = require("hardhat");
const ethers = require('ethers');
const USDT_ABI = require('../abis/USDT_ABI.json')
async function main() {
const usdt = "0xdAC17F958D2ee523a2206206994597C13D831ec7";
const provider = new ethers.providers.WebSocketProvider("wss://eth-mainnet.ws.alchemyapi.io/v2/MY_API");
const contract = new ethers.Contract(usdt, USDT_ABI, provider)
contract.on('Transfer', (from, to, value) => console.log(from, to, value))
}
main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});
Run Code Online (Sandbox Code Playgroud)
我的 Hardhat.config.js 文件
require("@nomiclabs/hardhat-waffle");
require('dotenv').config()
// This is a sample Hardhat task. …Run Code Online (Sandbox Code Playgroud)