安裝Ethers.*:通過(guò)npm安裝Ethers.*庫(kù)。
npm install ethers
連接到以太坊*:使用Ethers.*的Provider
類連接到以太坊*
c*t { ethers } = require('ethers');
c*t provider = ethers.getDefaultProvider();
加載智能合約:需要合約的ABI和地址來(lái)加載合約。
c*t contractABI = []; // 合約ABI
c*t contractAddress = '0x...'; // 合約地址
c*t contract = new ethers.Contract(contractAddress, contractABI, provider);
調(diào)用合約函數(shù):使用合約實(shí)例調(diào)用函數(shù)。
c*t result = await contract.functionName(arg1, arg2);
c*ole.log(result);
發(fā)送交易:創(chuàng)建和發(fā)送交易來(lái)執(zhí)行狀態(tài)變更
c*t tx = await contract.functionName(arg1, arg2);
await tx.wait();
c*ole.log(tx.hash);
監(jiān)聽(tīng)事件:設(shè)置事件監(jiān)聽(tīng)來(lái)響應(yīng)合約事件。
contract.on('eventName', (arg1, arg2) => {
c*ole.log(arg1, arg2);
});
使用Web3.* 安裝Web3.*:通過(guò)npm安裝Web3.*庫(kù)。
npm install web3
初始化Web3實(shí)例:連接到以太坊節(jié)點(diǎn)。
c*t Web3 = require('web3');
c*t web3 = new Web3('https://cloudflare-eth.com');
加載智能合約:使用合約ABI和地址。
c*t contractABI = []; // 合約ABI
c*t contractAddress = '0x...'; // 合約地址
c*t contract = new web3.eth.Contract(contractABI, contractAddress);
調(diào)用合約函數(shù):調(diào)用合約的view或pure函數(shù)。
web3.eth.getBlockNumber(function (error, result) {
c*ole.log(result);
});
發(fā)送交易:構(gòu)建和發(fā)送交易。
contract.methods.functionName(arg1, arg2).send({ from: '0x...' }, function(error, transactionHash) {
c*ole.log(transactionHash);
});
監(jiān)聽(tīng)事件:使用事件監(jiān)聽(tīng)
contract.events.eventName().on('data', function(event) {
c*ole.log(event);
});