OrderMatching
ContractPrice
type ContractPrice struct {
    PairId      PairId
    MarketPrice BigUint
}- PairId: The contract pair id defined by zkLink. 
- MarketPrice: The market price of the contract pair 
SpotPrice
type SpotPriceInfo struct {
	TokenId TokenId
	Price   BigUint
}- TokenId: The token id defined by zkLink. 
- price: The spot price of the token. 
type Order
The spot order type of taker and maker. it's a opaque data type.
func NewOrder
func NewOrder(
    accountId AccountId,
    subAccountId SubAccountId,
    slotId SlotId,
    nonce Nonce,
    baseTokenId TokenId,
    quoteTokenId TokenId,
    amount BigUint,
    price BigUint,
    isSell bool,
    hasSubsidy bool,
    makerFeeRate uint8,
    takerFeeRate uint8,
    signature *ZkLinkSignature
) *OrderCreate a new Order.
input:
- accountId: the user account id 
- subAccountId: the user sub account id 
- slotId: the slot id of order 
- nonce: the nonce of user account 
- baseTokenId: the token id of the base token of trade pair, for example, "BTC" token id of "BTCUSDT" pair 
- quoteTokenId: the token id of the quote token of trade pari, for example, "USDT" token id of "BTCUSDT" pair 
- amount: the amount of base token 
- price: the price of base token 
- isSell: sell token or not 
- hasSubsidy: subsidy only works for maker and makerFeeRate 
- makeFeeRate: the fee maker rate, 100 means 1%, max is 2.56% 
- takerFeeRate: the fee taker rate, 100 means 1%, max is 2.56% 
- signature: optional, the L3 signature of the Order 
func (*Order) GetSignature
func (*Order) GetSignature() ZkLinkSignatureGet the L3 signature of the Order
func (*Order) GetSignature
func (*Order) GetSignature() ZkLinkSignature {Get the Order signature.
func (*Order) GetBytes
func (*Order) GetBytes() []uint8Get the encoded bytes to create the L3 signature.
func *Order) JsonStr
func (*Order) JsonStr() stringGet the json string of the Order.
func (*Order) IsValid
func (*Order) IsValid() boolCheck if the Order is valid or not.
func (*Order) IsSignatureValid
func (*Order) IsSignatureValid() boolCheck if the L3 signature is valid or not.
func (*Order) CreateSignedOrder
func (*Order) CreateSignedOrder(zklinkSigner *ZkLinkSigner) (*Order, error)Returns a new order with L3 signature.
input:
- zklinkSigner: zkLinkSigner 
OrderMatchingBuilder
type OrderMatchingBuilder struct {
    AccountId         AccountId
    SubAccountId      SubAccountId
    Taker             *Order
    Maker             *Order
    Fee               BigUint
    FeeToken          TokenId
    ContractPrices    []ContractPrice
    MarginPrices      []SpotPriceInfo
    ExpectBaseAmount  BigUint
    ExpectQuoteAmount BigUint
}The builder is used to bo build OrderMatching transaction.
type OrderMatching
OrderMatching transaction type, it's a opaque data type.
func NewOrderMatching
func NewOrderMatching(builder OrderMatchingBuilder) *OrderMatchingCreate a new OrderMatching transaction.
func (*OrderMatching) GetBytes
func (*OrderMatching) GetBytes() []uint8Get the encoded bytes used to create the L3 signature.
func (*OrderMatching) TxHash() []uint8
func (*OrderMatching) TxHash() []uint8Get the transaction hash of OrderMatching transaction.
func (*OrderMatching) JsonStr
func (*OrderMatching) JsonStr() stringGet the json string of the OrderMatching transaction.
func (*OrderMatching) IsValid() bool
func (*OrderMatching) IsValid() boolCheck if all the fields in OrderMatching are valid. For example, if the ChainId is exceeded the maximum ChainId, it will return false.
func (*OrderMatching) CreateSignedTx
func (*OrderMatching) CreateSignedTx(signer *ZkLinkSigner) (*OrderMatching, error)Sign the Transfer transaction with the ZkLinkSigner, L1 signature and L3 signature will be created.
input:
- signer: ZkLinkSigner 
func (*OrderMatching) GetSignature
func (*OrderMatching) GetSignature() ZkLinkSignatureGet the L3 signature of OrderMatching transaction.
func (*OrderMatching) IsSignatureValid
func (*OrderMatching) IsSignatureValid() boolCheck if the L3 signature in the transaction is valid or not.
func (*OrderMatching) ToZklinkTx
func (*OrderMatching) ToZklinkTx() ZkLinkTxChange the transaction to the ZkLinkTx
Last updated
Was this helpful?