LooksRare SDK Create MakerAsk
⚠️ These code snippets are just examples and the data should never be used as is ⚠️
How to create a maker ask order
The code snippet below is an example of how to create a maker ask using the @looksrare/sdk-v2
library.
The main steps are:
- Initialize a LooksRare class instance by providing the chain id, RPC provider and a signer.
- Use the
createMakerAsk
method to create a maker ask with the parameters of your order. - Check and grant necessary approvals for transferring assets.
- Sign the maker ask order with
signMakerOrder
method.
The
orderNonce
has to be retrieved via our Public API, see get order nonce.
Here is an example:
import { parseEther } from "ethers";
import { LooksRare, ChainId, CollectionType, StrategyType } from "@looksrare/sdk-v2";
const lr = new LooksRare(ChainId.MAINNET, provider, signer);
const { maker, isCollectionApproved, isTransferManagerApproved } = await lr.createMakerAsk({
collection: "0x0000000000000000000000000000000000000000", // Collection address
collectionType: CollectionType.ERC721,
strategyId: StrategyType.standard,
subsetNonce: 0, // keep 0 if you don't know what it is used for
orderNonce: 0, // You need to retrieve this value from the API
endTime: Math.floor(Date.now() / 1000) + 86400, // If you use a timestamp in ms, the function will revert
price: parseEther("1"), // Be careful to use a price in wei, this example is for 1 ETH
itemIds: [0], // Token id of the NFT(s) you want to sell, add several ids to create a bundle
amounts: [1], // Use it for listing multiple ERC-1155 (Optional, Default to [1])
startTime: Math.floor(Date.now() / 1000), // Use it to create an order that will be valid in the future (Optional, Default to now)
});
// Grant the TransferManager the right the transfer assets on behalf od the LooksRareProtocol
if (!isTransferManagerApproved) {
const tx = await lr.grantTransferManagerApproval().call();
await tx.wait();
}
// Approve the collection items to be transferred by the TransferManager
if (!isCollectionApproved) {
const tx = await lr.approveAllCollectionItems(maker.collection);
await tx.wait();
}
// Sign your maker order
const signature = await lr.signMakerOrder(maker);
Once, the maker ask for your collection offer has been created, the approvals sorted and the order signed, you will have to send it along with the signature to the
POST /api/v2/orders
endpoint. For more details and examples, see create order).
Need help?
You can reach out to the LooksRare team via our Developers Discord: https://discord.gg/LooksRareDevelopers