Interacting with the deployed contract
In this section, we will interact with the deployed contract using ethers.js
.
Code
Import dependencies
First, we need to import the dependencies we need to interact with the contract.
import { ethers } from "ethers";
Connect to the network
const provider = new ethers.providers.Web3Provider(window.ethereum);
await provider.send("eth_requestAccounts", []);
const signer = await provider.getSigner();
Download ABI
The ABI is the interface to interact with the contract. It is a JSON object that contains the functions and events of the contract. We can download the ABI from this url.
const response = await fetch(
"https://etherdata-blockchain.github.io/msbd5017-docs/docs/05-Chapter5/files/MyNFT.json"
);
const jsonData = await response.json();
const abi = jsonData.abi;
Create the contract instance
const contractAddress = "0x9ab29c1cc907448Bc081668A09Bfd77338B4D037";
const contract = new ethers.Contract(contractAddress, abi, signer);
Mint a new NFT
Recall that we defined a function called awardItem
in the contract in the previous secion.
const tx = await contract.awardItem(
signer.getAddress(),
"https://files.etdchain.net/mynft.png"
);
await tx.wait();
Check balance
const balance = await contract.balanceOf(await signer.getAddress());
See transaction in MetaMask
After calling the awardItem
function, we can see the transaction in MetaMask.
Interactive demo
danger
Transaction may take up to 1 min to be mined.
Live Editor
Result
Loading...