ERC721-Basic
Overview
It is a library that enables token issuance, operation, and data acquisition that supports ERC721, which is the most distributed NFT (Non-Fungible Token) standard on Ethereum.
Allows you to publish NFTs and register or transfer items to the published NFT Collection.
Install
npm install @gusdk/erc721-basic
Usage
import { ERC721Basic, ERC721Basic__factory} from "@gusdk/erc721-basic"
import {BigNumber, ethers, Wallet} from "ethers"
const provider = new ethers.providers.JsonRpcProvider({
url: 'https://sandbox1.japanopenchain.org:8545/'
})
// use the concrete contract factory if you need to operate on the bytecode (ie. deploy)
async function deployTestToken(ownerPK: string): Promise<ERC721Basic> {
const owner = new Wallet(ownerPK, provider);
return new ERC721Basic__factory(owner).deploy(
"TEST123",
"TEST123",
);
}
// to call existing contracts, a factory for both the concrete contract and for the interface
// can be used since the ABI is the same
async function getTokenBalance(walletAddress: string, tokenAddress: string): Promise<BigNumber> {
const token = ERC721Basic__factory.connect(tokenAddress, provider);
return token.balanceOf(walletAddress);
}
Functionality
name
name(): Promise<string>;
Returns the name of the token
symbol
symbol(): Promise<string>;
Returns the symbol of the token
totalSupply
totalSupply(): Promise<BigNumber>;
Returns the total token supply
balanceOf
balanceOf(account: PromiseOrValue<string>): Promise<BigNumber>;
Returns the account balance of another account with address account
approve
approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>): Promise<ContractTransaction>;
change or reaffirm the approved address for an NFT
getApproved
getApproved(tokenId: PromiseOrValue<BigNumberish>): Promise<string>
Get the approved address for a single NFT
isApprovedForAll
isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>): Promise<boolean>;
Query if an address is an authorized operator for another address
ownerOf
ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
Find the owner of an NFT
safeMint
safeMint(to: PromiseOrValue<string>, uri: PromiseOrValue<string>): Promise<void>;
Mint a NFT
safeTransferFrom
"safeTransferFrom(address,address,uint256)"(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>): Promise<void>;
or
"safeTransferFrom(address,address,uint256,bytes)"(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>): Promise<void>;
Transfers the ownership of an NFT from one address to another address
setApprovalForAll
setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>): Promise<void>;
Enable or disable approval for a third party ("operator") to manage
tokenURI
tokenURI(tokenId: PromiseOrValue<BigNumberish): Promise<string>;
A distinct Uniform Resource Identifier (URI) for a given asset
totalSupply
totalSupply(): Promise<BigNumber>;
Count NFTs tracked by this contract
transferFrom
transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>): Promise<void>;
Transfer ownership of an NFT
transferOwnership
transferOwnership(newOwner: PromiseOrValue<string>): Promise<void>;
Transfers ownership of the contract to a new account (new owner).Can only be called by the current owner
owner
owner(): Promise<string>;
Returns the address of the current owner
renounceOwnership
renounceOwnership(): Promise<void>;
Leaves the contract without owner. It will not be possible to call onlyOwner functions anymore. Can only be called by the current owner
supportsInterface
supportsInterface(interfaceId: PromiseOrValue<BytesLike>): Promise<boolean>;
function of EIP165
Events
Transfer
Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
Emitted when tokenId token is transferred from _from
to _to
.
Approval
Approval(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
Emitted when tokenId token is transferred from _from
to _to
.
ApprovalForAll
ApprovalForAll(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
Emitted when owner enables or disables (approved) operator to manage all of its assets
OwnershipTransferred
OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;