Orderbook

State Variables

NameTypeDescription

pair

Pair (Private Struct)

Represents the pair of assets being traded in the orderbook. Contains the pair's ID, base asset address, quote asset address, and engine contract address.

decDiff

uint64 (Private)

The decimal difference used for converting between base and quote assets.

baseBquote

bool (Private)

Indicates whether the base asset is the quote asset or not.

priceLists

NewOrderLinkedList.PriceLinkedList (Private Instance)

An instance of the NewOrderLinkedList.PriceLinkedList struct representing the price linked list.

_askOrders

NewOrderOrderbook.OrderStorage (Private Instance)

An instance of the NewOrderOrderbook.OrderStorage struct representing the ask orders in the orderbook.

_bidOrders

NewOrderOrderbook.OrderStorage (Private Instance)

An instance of the NewOrderOrderbook.OrderStorage struct representing the bid orders in the orderbook.

Functions

initialize

Initializes the orderbook contract with the provided parameters.

Parameters

NameTypeDescription

id_

uint256

The identifier for the pair

base_

address

The address of the base asset

quote_

address

The address of the quote asset

engine_

address

The address of the engine contract

setLmp

Sets the last matched price in the price linked list.

Parameters

NameTypeDescription

price

uint256

The last matched price.

placeAsk

Places an ask order in the orderbook.

Parameters

NameTypeDescription

owner

address

The address of the order owner.

price

uint256

The price of the ask order.

amount

uint256

The amount of the ask order.

placeBid

Places a bid order in the orderbook.

Parameters

NameTypeDescription

owner

address

The address of the order owner.

price

uint256

The price of the bid order.

amount

uint256

The amount of the bid order.

cancelOrder

Cancels an order from the orderbook.

Parameters

NameTypeDescription

orderId

uint256

The identifier of the order to cancel.

isBid

bool

Indicates whether the order is a bid order.

owner

address

The address of the order owner.

Returns

NameTypeDescription

remaining

uint256

The remaining amount of the canceled order.

base

address

The address of the base asset.

quote

address

The address of the quote asset.

execute

Executes an order from the orderbook.

Parameters

NameTypeDescription

orderId

uint256

The identifier of the order to execute.

isBid

bool

Indicates whether the order is a bid order.

price

uint256

The price at which the order is executed.

sender

address

The address of the sender executing the order.

amount

uint256

The amount of the order to execute.

Returns

VariableTypeDescription

owner

address

The address of the order owner.

fpop

Pops the first order with the given price from the orderbook.

Parameters

NameTypeDescription

isBid

bool

Indicates whether the order is a bid order.

price

uint256

The price of the order to pop.

Returns

NameTypeDescription

orderId

uint256

The identifier of the popped order.

getRequired

Retrieves the required amount for executing the order.

Parameters

NameTypeDescription

isBid

bool

Indicates whether the order is a bid order or not.

price

uint256

The price at which the order is executed.

orderId

uint256

The identifier of the order.

Returns

NameTypeDescription

required

uint256

The required amount for executing the order.

heads()

Retrieves the head prices of the bid and ask lists.

Returns

NameTypeDescription

bidHead

uint256

The head price of the bid list.

askHead

uint256

The head price of the ask list.

askHead()

Retrieves the head price of the ask list.

Returns

NameTypeDescription

askHead

uint256

The head price of the ask list.

bidHead()

Retrieves the head price of the bid list.

Returns

NameTypeDescription

bidHead

uint256

The head price of the bid list.

mktPrice()

Retrieves the market's last matched price.

Returns

NameTypeDescription

mktPrice

uint256

The market price.

getPrices

Retrieves the prices from the bid or ask list.

Parameters

NameTypeDescription

isBid

bool

Indicates whether to retrieve prices from the bid list or the ask list.

n

uint256

The number of prices to match with.

Returns

NameTypeDescription

prices

uint256[] memory

An array of prices.

getOrderIds

Retrieves the order IDs at a specific price from the bid or ask list.

Parameters

NameTypeDescription

isBid

bool

Indicates whether to retrieve order IDs from the bid list or the ask list.

price

uint256

The price to retrieve order IDs for.

n

uint256

The number of order IDs to retrieve.

Returns

NameTypeDescription

orderIds

uint256[] memory

An array of order IDs.

getOrders

Retrieves the orders at a specific price from the bid or ask list.

Parameters

NameTypeDescription

isBid

bool

Indicates whether to retrieve orders from the bid list or the ask list.

price

uint256

The price to retrieve orders for.

n

uint256

The number of orders to retrieve.

Returns

NameTypeDescription

orders

NewOrderOrderbook.Order[] memory

An array of orders.

getOrder

Retrieves a specific order from the bid or ask list.

Parameters

NameTypeDescription

isBid

bool

Indicates whether to retrieve the order from the bid list or the ask list.

orderId

uint256

The identifier of the order to retrieve.

Returns

NameTypeDescription

order

NewOrderOrderbook.Order

The order.

assetValue

Retrieves the asset value in the quote asset if isBid is true, otherwise retrieves the asset value in the base asset.

Parameters

NameTypeDescription

amount

uint256

The amount of the asset.

isBid

bool

Indicates whether to retrieve the asset value in the quote asset or the base asset.

Returns

NameTypeDescription

converted

uint256

The converted asset value.

Last updated