Build Calldata

The NiftyConnect exchange contract provides a method to build calldata which is necessary in makeOrder and takeOrder.

const sellCalldata = await niftyConnectExchangeInst.buildCallData(
    ERC721TransferSelector, // uint selector,
    nftOwner, // address from,
    "0x0000000000000000000000000000000000000000", // address to,
    TestERC721.address,// address nftAddress,
    tokenId, // uint256 tokenId,
    ERC721_AMOUNT,// uint256 amount,
    "0x0000000000000000000000000000000000000000000000000000000000000000", // bytes32 merkleRoot
    [],// bytes32[] memory merkleProof
);

const buyCalldata = await niftyConnectExchangeInst.buildCallData(
    ERC721TransferSelector, // uint selector,
    "0x0000000000000000000000000000000000000000", // address from,
    buyer, // address to,
    TestERC721.address,// address nftAddress,
    tokenId, // uint256 tokenId,
    ERC721_AMOUNT,// uint256 amount,
    "0x0000000000000000000000000000000000000000000000000000000000000000", // bytes32 merkleRoot
    [],// bytes32[] memory merkleProof
);

The above is js example to call the util method.

nametypedescription

selector

uint256

from

address

NFTOwner address. When making buy orders, leave it to zero.

to

address

NFT recipient address. When making sell orders, leave it to zero.

nftAddress

address

NFT contract address

tokenId

uint256

NFT asset token id

amount

uint256

For ERC721, the amount must be 1. For ERC1155, its value should be no more than the nftOwner balance

merkleRoot

bytes32

Only used in trait-based order, leave it to zero for other scenarios

merkleProof

bytes32[]

Only used in trait-based order, leave it to empty for other scenarios

Last updated