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:
Parameter
Parameter usage and meaning
Required or not
accountName
The account name used to initialize the client
✅
seed
The user's L2 seed used to initialize the client
✅
assetType
Specify the asset type used to purchase the NFT
✅
AssetAmount
The asset amount needed to purchase the NFT
✅
nftId
Id of the NFT to be sold
✅
📚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
}
}
Make an offer
Parameters needed:
Parameter
Parameter usage and meaning
Required vs Optional
accountName
The account name used to initialize the client
✅
seed
The user's L2 seed used to initialize the client
✅
assetType
Specify the asset type used to purchase the NFT
✅
AssetAmount
The asset amount needed to purchase the NFT
✅
nftId
The Id of the NFT to be purchased
✅
📚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
}
}
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
}
}
Last updated
Was this helpful?