Skip to main content

ERC721

You can interact with erc721 token by creating instance of class ERC721. ERC721 class contains all different methods required for standard erc721 contract.

ERC721 instance can be created by passing token address in constructor.

import { ERC721 } from "@ethcontracts/core";

const token = new ERC721(<tokenAddress>);

init

initiate token with provider.

ethers.js

import { ERC721 } from "@ethcontracts/core";
import { EthersClient } from "@ethcontracts/ethers";
await token.init(new EthersClient(<wallet provider>));

web3.js

import { ERC721 } from "@ethcontracts/core";
import { Web3Client } from "@ethcontracts/web3";
await token.init(new Web3Client(<wallet provider>));

👉 you can call init multiple times with different provider. This allows you to use the same token instance in multichain dapp.

getName

getName returns the name of the token.

const tokenName = await token.getName();

getSymbol

getSymbol returns the symbol of the token.

const symbol = await token.getSymbol();

getTokenCount

getTokenCount returns the no of token user owns.

const count =  await token.getTokenCount(<userAddress>);

getOwner

get owner of the token

const owner = await token.getOwner(tokenId);

getTokenURI

get token uri

const tokenURI = await token.getTokenURI(tokenId);

getApprovedAccount

get approved account for a tokenId

const account = await token.getApprovedAccount(tokenId);

isApprovedForAll

check if spender is approved for all NFT of a user

const isApproved = await token.isApprovedForAll(owner, operator);

isInterfaceSupported

check if an interface is supported

const isApproved = await token.isInterfaceSupported(interfaceId);

approve

approve method approves a spender for the tokenId.

const [getTransactionHash, getTransactionReceipt] = token.approve(<spenderAddress>, <tokenId>);

const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();

setApprovalForAll

setApprovalForAll method approves a spender for all tokens of a user. The last parameter is boolean value - so you can pass true or false to approve or remove approval.

token.setApprovalForAll(<spenderAddress>, <approved:boolean>);
const [getTransactionHash, getTransactionReceipt] = token.setApprovalForAll(<spenderAddress>, true);

const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();

transferFrom

transferFrom method can be used to transfer a token to another user by a spender or owner.

const [getTransactionHash, getTransactionReceipt] = token.transferFrom(<fromAddress>,<toAddress>, <tokenId>);

const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();

safeTransferFrom

safeTransferFrom method is similar to transferFrom except it will be used by contracts like NFT marketplace.

const [getTransactionHash, getTransactionReceipt] = token.safeTransferFrom(<fromAddress>,<toAddress>, <tokenId>);

const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();

safeTransferFromWithData

safeTransferFromWithData method is similar to safeTransferFrom with option to pass additional data as bytes.

const [getTransactionHash, getTransactionReceipt] = token.safeTransferFromWithData(<fromAddress>,<toAddress>, <tokenId>,<data>);

const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();