Methods
Token Operations
total_supply
Returns the total supply of a specified token
Input:
token
: The contract address of the token
Output:
Total supply as an unsigned 256-bit integer
balanceOf
Retrieves the balance of a specific address for a given token
Inputs:
address
: The address where the balance is to be retrievedtoken
: The contract address of the token
Output:
Balance as an unsigned 256-bit integer
balancesOf
Obtains the balances of multiple addresses and tokens.
Inputs:
addresses
: An array of addressestokens
: An array of token contract addresses
Output:
2D array of balances.
Contract Utilities
get_wrapped_native_token
Returns the contract address of the wrapped native token used in the contract, which is used by default for gas payments
get_latest_gas_price
Fetches the latest gas price used in the contract. This contract property gets updated on each rollup performed
Output:
Gas price as an unsigned 256-bit integer
get_fee_recipient
Retrieves the contract address of the fee recipient in the contract both for gas fees and trade fees (maker and taker fixed fees)
Nonce Operations
get_nonce
and get_nonces
Retrieves the nonce value for a given address (maker)
Inputs:
maker
: Address for get_nonce
; makers
: array of addresses for get_nonces
Output:
Nonce value(s) for inputted address(s)
apply_increase_nonce
Applies an increase to the nonce value for a specific maker. This can be performed only by whitelisted addresses that are responsible for executing rollups
Inputs:
signed_nonce
: The signed new nonce values for specified makersgas_price
: The actual gas price at the time of transaction
Router Operations
get_router
Returns the contract address of the Router associated with a given signer.
Input:
signer
: The address of the signer.
get_route_amount
Retrieves the amount associated with routing.
Output:
Amount as an unsigned 256-bit integer.
router_deposit
Enables a Router to deposit a specified amount of a specific coin into the contract.
Inputs:
router
: The address of the Router receiver of the deposit.amount
: The amount of the coin being deposited.coin_address
: The contract address of the coin.
router_withdraw
Allows a Router to withdraw a specified amount of a specific coin from the contract to a receiver's address.
Inputs:
amount
: The amount of the coin to withdraw.coin_address
: The address of the coin.receiver_address
: The address of the receiver.
register_router
Registers a Router in the contract
add_router_binding
Manages Router bindings
add_router_binding
: Binds a new signer to a RouterBinds caller (Router) to signer_address
Inputs:
signer_address
: The address of the signer
validate_router
Validates that a message was signed by a signer associated with a specific Router.
Inputs:
message
: The message to validate.signature
: The message signaturesigner
: The address of the signer.router
: The Router associated with signer.
get_punishment_factor_bips
Retrieves the punishment factor in basis points (bps) used in the contract.
is_registered
Checks if a Router is registered in the contract.
Input:
router
: The address of the Router.
have_sufficient_amount_to_route
Verifies if a Router has sufficient funds to perform routing.
Input:
router
: The address of the router.
balance_of_router
Retrieves the balance of a Router for a specific coin
Inputs:
router
: The address of the Router.coin
: The address of the coin.
Trade Information
get_ecosystem_trade_info
Provides information on order fill info trades.
Output: Details like the amount filled, last traded price, and number of trades that have happened.
Withdrawal Operations
get_pending_withdraw
Retrieves information about pending withdrawals.
Inputs:
maker
: The address of the user for whom the pending withdrawal information is requested.token
: The address of the token
Output:
Returns details of the pending withdrawal, typically including the amount of the withdrawal, the token address, and the status of the withdrawal request.
request_onchain_withdraw
and apply_onchain_withdraw
Handles the on-chain withdrawal process.
request_onchain_withdraw
: Initiates a withdrawal request.apply_onchain_withdraw
: Executes the withdrawal.
Inputs:
withdraw
: Details of the withdrawal request.
Signer Operations
bind_to_signer
Binds a caller contract address to a signer.
Inputs:
signer
: The address of the signer.
check_sign
Validates that a given message was correctly signed by the trader's signer.
Inputs:
trader
: The address of the trader.message
: The message to validate.signature
.
get_signer
and get_signers
Returns the signer address for a given trader.
get_signer
: For a single trader.get_signers
: For multiple traders.
Inputs:
trader
: The address of the trader.
Miscellaneous Operations
deposit
Allows depositing a specified amount of a token to a receiver's address.
Inputs:
amount
: The amount to deposit.token
: The address of the token.receiver
: The address of the receiver.
apply_withdraw
Executes a withdrawal based on a signed withdrawal request and the current gas price. (for Exchange's internal use)
Inputs:
withdraw_request
: The signed withdrawal requestgas_price
: The current gas price
apply_ecosystem_trades
and apply_single_exetuion_step(s)
Execute ecosystem and router trades respectively (for Exchange's internal use)
Inputs:
apply_ecosystem_trades
: Handles an array of ecosystem trades.apply_router_trade
: Deals with individual trades associated with a single taker orderapply_router_trades
: same as previous but bulk
Last updated