Flex
Flex exchange system
Classes | Functions | Variables
PriceXchg.cpp File Reference

PriceXchg contract implementation. Contract for trading price for tip3/tip3 exchange. First tip3 in a pair is major and terms "sell", "buy", "amount" are related to the first tip3 in pair. Second tip3 is called "minor". More...

#include "PriceXchg.hpp"
#include <tvm/contract.hpp>
#include <tvm/smart_switcher.hpp>
#include <tvm/contract_handle.hpp>
#include <tvm/default_support_functions.hpp>
#include <tvm/schema/parse_chain_static.hpp>
#include "xchg/dealer.hpp"
#include "xchg/orders_queue.hpp"
Include dependency graph for PriceXchg.cpp:

Classes

class  PriceXchg
 

Functions

 __attribute__ ((noinline)) auto process_queue_impl(price_t price
 
return d process (sell_idx, buy_idx)
 
__always_inline bool is_correct_price (price_t price, uint128 minmove)
 Is it a correct price: price.num % minmove == 0.
 
 DEFINE_JSON_ABI (IPriceXchg, DPriceXchg, EPriceXchg)
 

Variables

address pair
 
address Tip3Config major_tip3cfg
 
address Tip3Config Tip3Config minor_tip3cfg
 
address Tip3Config Tip3Config EversConfig ev_cfg
 
address Tip3Config Tip3Config EversConfig uint128 sells_amount
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchgsells
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 buys_amount
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchgbuys
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 min_amount
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 uint8 deals_limit
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 uint8 uint8 msgs_limit
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 uint8 uint8 IFlexNotifyPtr notify_addr
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 uint8 uint8 IFlexNotifyPtr address major_reserve_wallet
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 uint8 uint8 IFlexNotifyPtr address address minor_reserve_wallet
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 uint8 uint8 IFlexNotifyPtr address address unsigned sell_idx
 
address Tip3Config Tip3Config EversConfig uint128 big_queue< OrderInfoXchg > uint128 big_queue< OrderInfoXchg > uint128 uint8 uint8 IFlexNotifyPtr address address unsigned unsigned buy_idx
 

Detailed Description

PriceXchg contract implementation. Contract for trading price for tip3/tip3 exchange. First tip3 in a pair is major and terms "sell", "buy", "amount" are related to the first tip3 in pair. Second tip3 is called "minor".

Author
Andrew Zhogin

Variable Documentation

◆ buy_idx

address Tip3Config Tip3Config EversConfig uint128 big_queue<OrderInfoXchg> uint128 big_queue<OrderInfoXchg> uint128 uint8 uint8 IFlexNotifyPtr address address unsigned unsigned buy_idx
Initial value:
{
dealer d(price, pair, major_tip3cfg, minor_tip3cfg, ev_cfg, orders_queue{sells_amount, sells}, orders_queue{buys_amount, buys},
min_amount, deals_limit.get(), msgs_limit.get(),
notify_addr, major_reserve_wallet, minor_reserve_wallet)
Class for iterating queue and processing deals.
Definition: dealer.hpp:22
Orders queue to keep orders and common state (tokens amount).
Definition: orders_queue.hpp:16