ethers.js 调用合约函数
在Ethers.js中,创建一个智能合约对象通常需要使用提供者(Provider)、合约地址和ABI。以下是一个创建智能合约对象的例子
// 引入ethers const { ethers } = require("ethers"); // 合约ABI const contractAbi = [ // 这里是合约的ABI数组,包含了函数、事件等定义 ]; // 合约地址 const contractAddress = "0x1234567890123456789012345678901234567890"; // 创建提供者(使用Infura或者Alchemy等) const provider = new ethers.providers.JsonRpcProvider("https://mainnet.infura.io/YOUR_INFURA_API_KEY"); // 创建智能合约对象 const contract = new ethers.Contract(contractAddress, contractAbi, provider); // 现在可以使用contract对象来调用合约的函数了 在这个例子中,contractAbi是一个包含了合约所有函数和事件的定义的数组,contractAddress是合约在区块链上的地址,provider是一个提供者实例,用于与区块链网络进行通信。 通过ethers.Contract构造函数创建的contract对象可以用来调用合约的函数。例如,如果你想要调用名为myFunction的合约函数,你可以这样做: // 调用合约的myFunction函数 contract.myFunction().then((result) => { console.log(result); // 处理结果 }).catch((error) => { console.error(error); // 处理错误 });