6. Creating Orders
Orders are requests to exchange a certain amount of one asset for a different amount of another asset. This typically refers to a listing or an offer in the world of NFTs.
Where are the orders?
Once an order is created, it will be added to the Zecrey NFT Marketplace. They will be recorded on Zecrey NFT Marketplace to be viewed and available to all participants for trading.
Zecreymarket SDK
Initialize SDK
You need to initialize the SDK in order to use it.
Create a listing
Parameters needed:
📚SDK REFERENCE
Example
Create an order to list the NFT with
NftId
= 14Initialize the client
Create a listing
package main
import (
"fmt"
"github.com/Zecrey-Labs/zecrey-marketplace-go-sdk/sdk"
)
func main() {
accountName := "Alice"//Zecrey NFT Marketplace SDK will automatically add the suffix ".zec" to the name
seed := "0x6a1a320d14790f2d9aa9a37769f4833d583a3f7f974fd452a3990aeb0e7a6052" //l2seed
assetType = 0 //the asset type to purchase the NFT
AssetAmount = big.NewInt(1000000) //the asset amount needed to purchase the NFT
nftId = 14
c, err := sdk.NewClient(accountName, seed)
if err != nil { panic(err) }
result, err := c.CreateSellOffer(nftId, assetType, AssetAmount)
if err != nil { panic(err) }
data, _ := json.Marshal(result)
fmt.Println("CreateSellOffer:", string(data))
}
Example result
CreateSellOffer:
{
"offer":{
"id":21,
"account_name":"Alice",
"direction":"1",
"asset_id":11,
"payment_asset_id":0,
"payment_asset_amount":"0.000001000000000000",//This corresponds to the relative value of 10^18 of the AssetAmount(1000000)
"status":"1",
"signature":"{\"Type\":1,\"OfferId\":1,\"AccountIndex\":4,\"NftIndex\":14,\"AssetId\":0,\"AssetAmount\":1000000000000,\"ListedAt\":1667963243006,\"ExpiredAt\":1668136043006,\"TreasuryRate\":200,\"Sig\":\"lzpBuJsvntEjcF1e4Y6euAaVCB4LzFWAd2axjKGp3xEAKQB3QcvcgOxgSS54wgVGG1EQNMe1e/Gzg+4Ecxwi+g==\"}",
"expired_at":1668136043006,
"created_at":1667963243
}
}
Example
Create an order to list the NFT with
NftId
= 14Initialize the client
Create a listing
With the private key:
import { Client } from "@zecrey/zecrey-legend-js-sdk";
const account_name = "amber1.zec";
const seed = "ee823a72698fd05c70fbdf36ba2ea467d33cf628c94ef030383efcb39581e43f";
const client = new Client(account_name, seed);
await client.initialize();
const nft_index = 14;
const asset_id = 0; // BNB
const asset_amount = "1000000000000000000"; // 1 BNB
const res = await client.createSellOffer(nft_index, asset_id, asset_amount);
console.log(res);
With the wallet:
import { SDK } from "@zecrey/zecrey-legend-js-sdk";
const sdk = new SDK();
await sdk.initial();
const account_name = "Alice.zec"; // sender's account name
const account_index = 14; // sender's account index
const nft_index = 14;
const asset_id = 0; // BNB
const asset_amount = "1000000000000000000"; // 1 BNB
const res = await sdk.createSellOffer(account_name, account_index, nft_index, asset_id, asset_amount);
console.log(res);
Example result
{
id: 24643,
signature: "{"Type":1,"OfferId":245,"AccountIndex":4,"NftIndex":7,"AssetId":0,"AssetAmount":1000000000000000000,"ListedAt":1675310419174,"ExpiredAt":1675742417512,"TreasuryRate":200,"Sig":"7obDPs4K25hWF+vY+tXL1I4Y1gmXUcayX34aeQKTJ5AFlQOaug/szcsk3QIweBtGV1oIaM5k+vHoUQUhDjRMQA=="}",
}
Make an offer
Parameters needed:
📚SDK REFERENCE
Example
Make an offer to the NFT with
NftId
= 14Initiate the client
Create an offer
package main
import (
"fmt"
"github.com/Zecrey-Labs/zecrey-marketplace-go-sdk/sdk"
)
func main() {
accountName := "Bob"//Zecrey NFT Marketplace SDK will automatically add the suffix ".zec" to the name
seed := "17673b9a9fdec6dc90c7cc1eb1c939134dfb659d2f08edbe071e5c45f343d008" //l2seed
c, err := sdk.NewClient(accountName, seed)
if err != nil { panic(err) }
assetType = 0 //specify the asset type to purchase the NFT
AssetAmount = big.NewInt(1000000) //the asset amount needed to purchase the NFT with 1 as the smallest unit of the token type
nftId = 14
result, err := c.CreateBuyOffer(nftId, assetType, AssetAmount)
if err != nil { panic(err) }
data, _ := json.Marshal(result)
fmt.Println("CreateBuyOffer:", string(data))
}
Example result
CreateBuyOffer:
{
"offer":{
"id":22,
"account_name":"Bob",
"direction":"0",
"asset_id":14,
"payment_asset_id":0,
"payment_asset_amount":"0.000001000000000000",//This corresponds to the relative value of 10^18 of the AssetAmount(1000000)
"status":"1",
"signature":"{\"Type\":0,\"OfferId\":2,\"AccountIndex\":2,\"NftIndex\":14,\"AssetId\":0,\"AssetAmount\":1000000000000,\"ListedAt\":1667963545528,\"ExpiredAt\":1668136345528,\"TreasuryRate\":200,\"Sig\":\"XEpxPmmVXYJ2A+YBom4B7pe4Tm+rgvAqkH5MQHO1NaIFby8sgnTlpGpabAx9U7RytUqQc57hOrsFyCzEx4kCbQ==\"}",
"expired_at":1668136345528,
"created_at":1667963545
}
}
Example
Make an offer to the NFT with
NftId
= 14Initiate the client
Create an offer
With the private key:
import { Client } from "@zecrey/zecrey-legend-js-sdk";
const account_name = "amber1.zec";
const seed = "ee823a72698fd05c70fbdf36ba2ea467d33cf628c94ef030383efcb39581e43f";
const client = new Client(account_name, seed);
await client.initialize();
const nft_index = 14;
const asset_id = 0; // BNB
const asset_amount = "1000000000000000000"; // 1 BNB
const res = await client.createSellOffer(nft_index, asset_id, asset_amount);
console.log(res);
With the wallet:
import { SDK } from "@zecrey/zecrey-legend-js-sdk";
const sdk = new SDK();
await sdk.initial();
const account_name = "Alice.zec"; // sender's account name
const account_index = 14; // sender's account index
const nft_index = 14;
const asset_id = 0; // BNB
const asset_amount = "1000000000000000000"; // 1 BNB
const res = await sdk.createSellOffer(account_name, account_index, nft_index, asset_id, asset_amount);
console.log(res);
Example result
{
id: 24643,
signature: "{"Type":0,"OfferId":245,"AccountIndex":4,"NftIndex":7,"AssetId":0,"AssetAmount":1000000000000000000,"ListedAt":1675310419174,"ExpiredAt":1675742417512,"TreasuryRate":200,"Sig":"7obDPs4K25hWF+vY+tXL1I4Y1gmXUcayX34aeQKTJ5AFlQOaug/szcsk3QIweBtGV1oIaM5k+vHoUQUhDjRMQA=="}",
}
Cancel an order
To cancel a previous offer/listing order, you can use the
cancelOffer
request.
📚SDK REFERENCE
Example
Cancel offer/order with
offerId
= 22Initialize the client
Cancel the offer/order
package main
import (
"fmt"
"github.com/Zecrey-Labs/zecrey-marketplace-go-sdk/sdk"
)
func main() {
accountName := "Alice"//Zecrey NFT Marketplace SDK will automatically add the suffix ".zec" to the name
seed := "0x6a1a320d14790f2d9aa9a37769f4833d583a3f7f974fd452a3990aeb0e7a6052" //l2seed
OfferId := 22 //View offers/orders through "Get NFT list of offers"
c, err := sdk.NewClient(accountName, seed)
if err != nil { panic(err) }
result, err := c.CancelOffer(AssetId, assetType, AssetAmount)
if err != nil { panic(err) }
data, _ := json.Marshal(result)
fmt.Println(string(data))
}
Example result
{
"offer":{
"id":22,
"account_name":"Alice",
"direction":"0",
"asset_id":9,
"payment_asset_id":0,
"payment_asset_amount":"0.000001000000000000",
"status":"4",//cancelled
"signature":"{\"Type\":0,\"OfferId\":2,\"AccountIndex\":2,\"NftIndex\":4,\"AssetId\":0,\"AssetAmount\":1000000000000,\"ListedAt\":1667963545528,\"ExpiredAt\":1668136345528,\"TreasuryRate\":200,\"Sig\":\"XEpxPmmVXYJ2A+YBom4B7pe4Tm+rgvAqkH5MQHO1NaIFby8sgnTlpGpabAx9U7RytUqQc57hOrsFyCzEx4kCbQ==\"}",
"expired_at":1668136345528,
"created_at":1667963545
}
}
Example
Cancel offer/order with
offerId
= 22Initialize the client
Cancel the offer/order
With the private key:
import { Client } from "@zecrey/zecrey-legend-js-sdk";
const account_name = "amber1.zec";
const seed = "ee823a72698fd05c70fbdf36ba2ea467d33cf628c94ef030383efcb39581e43f";
const client = new Client(account_name, seed);
await client.initialize();
const offer_id = 24504;
const res = await client.cancelOffer(offer_id);
console.log("offer id: ", res)
With the wallet:
import { SDK } from "@zecrey/zecrey-legend-js-sdk";
const sdk = new SDK();
await sdk.initial();
const account_name = "Alice.zec"; // sender's account name
const account_index = 14; // sender's account index
const offer_id = 24504;
const res = await sdk.cancelOffer(account_name, account_index, offer_id);
console.log("offer id: ", res)
Example result
offer id: 24504
Last updated