Module 0x7::native_order_types

Types crossing the native_order_book Move ↔ native boundary. The metadata type M is last in each value, so the Rust side decodes the header fields and keeps the trailing bytes, which are the BCS of M.

use 0x1::option;
use 0x1::string;
use 0x5::order_book_types;

Enum NativeSingleOrder

A single order, as stored natively. Pending iff trigger_condition is set.

enum NativeSingleOrder<M: copy, drop, store> has copy, drop, store
Variants
V1
Fields
account: address
order_id: order_book_types::OrderId
client_order_id: option::Option<string::String>
price: u64
orig_size: u64
remaining_size: u64
is_bid: bool
trigger_condition: option::Option<order_book_types::TriggerCondition>
time_in_force: order_book_types::TimeInForce
creation_time_micros: u64
unique_priority_idx: order_book_types::IncreasingIdx
metadata: M

Enum NativeBulkOrder

A bulk order, as stored natively. Price levels are best first.

enum NativeBulkOrder<M: copy, drop, store> has copy, drop, store
Variants
V1
Fields
account: address
order_id: order_book_types::OrderId
sequence_number: u64
bid_prices: vector<u64>
bid_sizes: vector<u64>
ask_prices: vector<u64>
ask_sizes: vector<u64>
unique_priority_idx: order_book_types::IncreasingIdx
creation_time_micros: u64
metadata: M

Function new_single_order_v1

public fun new_single_order_v1<M: copy, drop, store>(account: address, order_id: order_book_types::OrderId, client_order_id: option::Option<string::String>, price: u64, orig_size: u64, remaining_size: u64, is_bid: bool, trigger_condition: option::Option<order_book_types::TriggerCondition>, time_in_force: order_book_types::TimeInForce, creation_time_micros: u64, unique_priority_idx: order_book_types::IncreasingIdx, metadata: M): native_order_types::NativeSingleOrder<M>
Implementation
public fun new_single_order_v1<M: store + copy + drop>(
    account: address,
    order_id: OrderId,
    client_order_id: Option<String>,
    price: u64,
    orig_size: u64,
    remaining_size: u64,
    is_bid: bool,
    trigger_condition: Option<TriggerCondition>,
    time_in_force: TimeInForce,
    creation_time_micros: u64,
    unique_priority_idx: IncreasingIdx,
    metadata: M,
): NativeSingleOrder<M> {
    NativeSingleOrder::V1 {
        account,
        order_id,
        client_order_id,
        price,
        orig_size,
        remaining_size,
        is_bid,
        trigger_condition,
        time_in_force,
        creation_time_micros,
        unique_priority_idx,
        metadata,
    }
}

Function new_bulk_order_v1

public fun new_bulk_order_v1<M: copy, drop, store>(account: address, order_id: order_book_types::OrderId, sequence_number: u64, bid_prices: vector<u64>, bid_sizes: vector<u64>, ask_prices: vector<u64>, ask_sizes: vector<u64>, unique_priority_idx: order_book_types::IncreasingIdx, creation_time_micros: u64, metadata: M): native_order_types::NativeBulkOrder<M>
Implementation
public fun new_bulk_order_v1<M: store + copy + drop>(
    account: address,
    order_id: OrderId,
    sequence_number: u64,
    bid_prices: vector<u64>,
    bid_sizes: vector<u64>,
    ask_prices: vector<u64>,
    ask_sizes: vector<u64>,
    unique_priority_idx: IncreasingIdx,
    creation_time_micros: u64,
    metadata: M,
): NativeBulkOrder<M> {
    NativeBulkOrder::V1 {
        account,
        order_id,
        sequence_number,
        bid_prices,
        bid_sizes,
        ask_prices,
        ask_sizes,
        unique_priority_idx,
        creation_time_micros,
        metadata,
    }
}