ブラウザからMetamaskで接続してコントラクトを叩くのではなくスクリプト的に簡単にコントラクトを叩くコード
ethers.jsのABIを配列で簡単に定義して使えるのが超絶便利
ethers.jsでシンプルにコントラクト叩く
const ethers = require('ethers')
// InfuraのURL指定
let network = 'rinkeby'
let provider = ethers.getDefaultProvider(network)
// WalletのPrivate key
let privateKey = 'xxxxxxxxx'
const signer = new ethers.Wallet(
privateKey,
provider
)
// Contract Address
const contractAddress = "xxxxxx"
// Contract ABI
const contractAbi = ["function mint(string memory tokenURI) public returns (uint256)"]
const contract = new ethers.Contract(contractAddress, contractAbi, signer)
// transaction実行
const tokenURI = "xxxxx"
const func = async () => {
const res = await contract.mint(tokenURI)
console.log(res)
}
func()
コントラクトに対してvalueを指定
他に指定可能な値は以下のドキュメント参照
https://docs.ethers.io/v5/api/contract/contract/#Contract-functionsCall
const options = {
value: ethers.utils.parseEther("0.01"),
gasLimit: 3000000
}
const res = await contract.mint(tokenURI, options)