ERC1155
You can interact with erc1155 token by creating instance of class ERC1155. ERC1155 class contains all different methods required for standard erc1155 contract.
ERC1155 instance can be created by passing token address in constructor.
import { ERC1155 } from "@ethcontracts/core";
const token = new ERC1155(<tokenAddress>);
init
initiate token with provider.
ethers.js
import { ERC1155 } from "@ethcontracts/core";
import { EthersClient } from "@ethcontracts/ethers";
await token.init(new EthersClient(<wallet provider>));
web3.js
import { ERC1155 } from "@ethcontracts/core";
import { Web3Client } from "@ethcontracts/web3";
await token.init(new Web3Client(<wallet provider>));
getTokenCount
getTokenCount can be used to get the token count of a user for a particular erc1155 token id. It internally calls balanceOf method.
const count = await token.getTokenCount(<userAddress>,<token id>);
getTokenCountForMany
getTokenCountForMany can be used to get the token count of multiple user for a particular erc1155 token id. It internally calls balanceOfBatch method.
const count = await token.getTokenCountForMany(<userAddress[]>,<token id[]>);
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);
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();
safeTransferFrom
safeTransferFrom method can be used to transfer amount of a token to another user by a spender or owner.
const [getTransactionHash, getTransactionReceipt] = token.safeTransferFrom(<fromAddress>,<toAddress>, <tokenId>, <amount>);
const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();
👉 You can also pass additional data as per erc1155 standard but its optional and internally we handle this to pass empty value as default.
const [getTransactionHash, getTransactionReceipt] = token.safeTransferFrom(<fromAddress>,<toAddress>, <tokenId>, <amount>, <data>);
const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();
safeBatchTransferFrom
safeBatchTransferFrom method can be used to transfer multiple tokens with multiple amounts to another user by a spender or owner. It is similar to safeTransferFrom but allows to do batch operations.
const [getTransactionHash, getTransactionReceipt] = token.safeTransferFrom(<fromAddress>,<toAddress>, <tokenIds[]>, <amounts[]>, <data?>);
const txhash = await getTransactionHash();
const txReceipt = await getTransactionReceipt();
data parameter is optional - you can leave it or pass null value.