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.
name | type | description |
---|---|---|
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 modified 1yr ago