MatchingEngine
The MatchingEngine
contract is an on-chain matching engine for executing orders. It allows users to trade assets using limit and market orders.
State Variables
Events
OrderCanceled
OrderCanceled
Event emitted when an order is canceled.
OrderMatched
OrderMatched
Event emitted when an order is matched.
PairAdded
PairAdded
Event emitted when a trading pair is added to the orderbook.
Functions
initialize
initialize
Initializes the matching engine with the orderbook factory and listing requirements.
Parameters
Requirements:
The caller must have the
DEFAULT_ADMIN_ROLE
.
setListingFee
setListingFee
Sets the listing requirements.
Parameters
Requirements:
The caller must have the
DEFAULT_ADMIN_ROLE
.
setOrderbookFactory
setOrderbookFactory
Sets the address of the orderbook factory.
Requirements:
The caller must have the
DEFAULT_ADMIN_ROLE
.
setMembership
setMembership
Sets the address of the membership contract.
membership_(address)
: Address of the membership contract.
Requirements:
The caller must have the
DEFAULT_ADMIN_ROLE
.
setAccountant
setAccountant
Sets the address of the accountant contract.
accountant_(address)
: Address of the accountant contract.
Requirements:
The caller must have the
DEFAULT_ADMIN_ROLE
.
setFee
Sets the fee numerator and denominator of trading.
feeNum_(uint256)
: The numerator of the fee fraction.feeDenom_(uint256)
: The denominator of the fee fraction.
Requirements:
The caller must have the
DEFAULT_ADMIN_ROLE
.The fee numerator and denominator must be valid.
setFeeTo
Sets the fee recipient.
feeTo_(address)
: Address of the fee recipient.
Requirements:
The caller must have the
DEFAULT_ADMIN_ROLE
.
marketBuy
marketBuy
Executes a market buy order, buying the base asset using the quote asset at the best available price in the orderbook up to n
orders, and makes an order at the market price.
Parameters
Returns
true
if the order was successfully executed, otherwisefalse
.
marketSell
marketSell
Executes a market sell order, selling the base asset for the quote asset at the best available price in the orderbook up to n
orders, and makes an order at the market price.
Parameters
Returns
true
if the order was successfully executed, otherwisefalse
.
limitBuy
limitBuy
Executes a limit buy order, places a limit order in the orderbook for buying the base asset using the quote asset at a specified price, and makes an order at the limit price.
Parameters
Returns
true
if the order was successfully executed, otherwisefalse
.
limitSell
limitSell
Executes a limit sell order, places a limit order in the orderbook for selling the base asset for the quote asset at a specified price, and makes an order at the limit price.
Parameters
Returns
true
if the order was successfully executed, otherwisefalse
.
makeBuy
makeBuy
Stores a bid order in the orderbook for the base asset using the quote asset, with a specified price at
.
Parameters
Returns
true
if the order was successfully executed, otherwisefalse
.
makeSell
makeSell
Stores an ask order in the orderbook for the quote asset using the base asset, with a specified price at
.
Parameters
Returns
true
if the order was successfully executed, otherwisefalse
.
addPair
addPair
Creates an orderbook for a new trading pair and returns its address.
Parameters
Returns
book
: The address of the newly created orderbook.
cancelOrder
cancelOrder
Cancels an order in an orderbook by the given order ID and order type.
Parameters
Returns
true
if the order was successfully canceled, otherwisefalse
.
getOrderbookById
getOrderbookById
Returns the address of the orderbook with the given ID.
Parameters
Returns
The address of the orderbook.
getBaseQuote
getBaseQuote
Returns the base and quote asset addresses for the given orderbook.
Parameters
Returns
getFee
getFee
Returns the fee numerator and denominator.
Returns:
numerator(uint256)
: The fee numerator.denominator(uint256)
: The fee denominator.
getFeeTo
getFeeTo
Returns the address of the fee recipient.
Returns:
The address of the fee recipient.
getOrderbookFactory
getOrderbookFactory
Returns the address of the orderbook factory contract.
Returns:
The address of the orderbook factory contract.
getListingFee
getListingFee
Returns the listing fee token address and amount.
Returns:
feeToken(address)
: The address of the listing fee token.feeAmount(uint256)
: The listing fee token amount.
getMembership
getMembership
Returns the address of the membership contract.
Returns:
The address of the membership contract.
getAccountant
getAccountant
Returns the address of the accountant contract.
Returns:
The address of the accountant contract.
Last updated