😎

ethers.jsでスマートコントラクトを呼び出す方法

2022/11/24に公開
const CONTRACT_ADDRESS = "0x3732b2fdC54561cf04362880a87DFEe0b33dC780" // デプロイしたコントラクトのアドレス
const { ethereum } = window;                                          // MetaMaskを通じてブロックチェーンにアクセスするためにwindow.ethereumオブジェクトを使う

const provider = new ethers.providers.Web3Provider(ethereum); // providerを介して、ユーザーはブロックチェーン上に存在するイーサリアムノードに接続する
const signer = provider.getSigner();                          // ウォレットアドレスを使用してトランザクションに署名する

// コントラクトインスタンスを定義する. コントラクトに格納されているすべての関数を呼び出すことができる
const connectedContract = new ethers.Contract(     
	CONTRACT_ADDRESS,
	[ABIファイル],                                          // コントラクトの取り扱い説明書のようなもの. hardhatの場合は、artifacts/contracts/〇〇.sol/〇〇.json がABIファイル
	signer
);  

let txn = await connectedContract.[スマコンの関数];
console.log("Mining...please wait.");
await txn.wait();                                            // ブロックチェーンにデータを書き込む処理は承認が終わるまで待つ

Discussion