7. Match Orders

Matching orders is to fill the offers or listings with traders' corresponding actions to buy or sell the NFTs for the transactions to be completed.

Initialize SDK

  • You need to initialize the SDK in order to use it.

Match Orders

  • To select the correct order, please refer to Offers.

  • Parameters needed:

    Parameter

    Parameter usage and meaning

    Required or not

    accountName

    The account name used to initialize the client

    assetType

    Specify the asset type used to purchase or sell the NFT

    AssetAmount

    The asset amount to purchase or sell the NFT

    offerId

    Select an NFT order that is listed for sale or made an offer by someone

    isSell

    To buy (false) or sell (true) the target NFT

📚SDK REFERENCE

Example:

  • Purchase the NFT with offerId = 31

    1. Initialize the client

    2. Purchase NFT

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" //l2 seed
    var offerId int64 = 31 //select a listed NFT
    AssetAmount = big.NewInt(1000000000000000000) //the amount used to purchase
    isSell := false
    c, err := sdk.NewClient(accountName, seed) 	 
    if err != nil { panic(err) }
    
    result, err := c.AcceptOffer(offerId, isSell, AssetAmount)//false represents "buy" while true represents "sell"
    if err != nil { panic(err) }
    
    data, _ := json.Marshal(result)
    fmt.Println(string(data))
}

Example result

  • Information about the status change of the target order will be returned. Please refer to Offers for the status information.

  • The information returned is all about the target order except for "account_name".


{
    "offer":{
        "id":31,
        "account_name":"Alice",//User's account name
        "direction":"1",
        "asset_id":241,
        "payment_asset_id":0,
        "payment_asset_amount":"1.000000000000000000",//This corresponds to the relative value of 10^18 of the AssetAmount(1000000)
        "status":"2", //Status changed to 2
        "signature":"{\"Type\":1,\"OfferId\":1,\"AccountIndex\":3,\"NftIndex\":247,\"AssetId\":0,\"AssetAmount\":1000000000000000000,\"ListedAt\":1667875678292,\"ExpiredAt\":1668350875000,\"TreasuryRate\":30,\"Sig\":\"kpaBoImpjmeI+PlOzkcCr7Tquf16qtriprOUUy3E1JUDjwcttXut8GEu6UV/H4dtJvnqKyD6FwK08hqv0vO67A==\"}",
        "expired_at":1668350875000,
        "created_at":1667875678
    }
}

Last updated