Add new dex

This page describes creation of new DEX pool.
These contract methods are called only by admin of that contract.
Creation of pool consist of some parameters for seeting up DEX config.


Constant A used for manipulating with swap function. As larger the value of A, as more the function tends to be constant sum invariant. This constant is stored inside the contact as
Astorage=Ann1A_{storage} = A * n^{n-1}
2n42 \le n \le 4
- number of DEX underlying tokens. You could read more about this constant at Curve whitepaper and an explanation of Curve formulas.
Understanding StableSwap (Curve)
An explanation of Curve formulas


This param is a set of FA12/FA2 tokens that would be traded on DEX. Set type in Tezos contract is the sorted list of unique values, so you must keep in mind that for setting up tokens_info and when calling DEX.


Token Info contains initial data for Token information type - pool underlying token info.

Token info setting

When you want to initialise pool, you should setup initial reserves, rate and precision_multiplier in correct way:
Let 4 TBC = 2 TXZ = 1 TEH (from example)
Then calculate
of these ratios
=4= 4
Token info for TBC
precision_multiplier -
10decimalLPdecimalTBC10^{decimal_{LP} - decimal_{TBC}}
rate -
10decimalLP10decimalLPdecimalTBC(ratioTBC/LCM)10^{decimal_{LP}} * 10^{decimal_{LP} - decimal_{TBC}} * (ratio_{TBC}/LCM)
reserves -
N10decimalTBCratioTBCN * 10^{decimal_{TBC}} * ratio_{TBC}
Token info for TXZ
precision_multiplier -
10decimalLPdecimalTXZ10^{decimal_{LP} - decimal_{TXZ}}
rate -
10decimalLP10decimalLPdecimalTXZ(ratioTXZ/LCM)10^{decimal_{LP}} * 10^{decimal_{LP} - decimal_{TXZ}} * (ratio_{TXZ}/LCM)
reserves -
N10decimalTXZratioTXZN * 10^{decimal_{TXZ}} * ratio_{TXZ}
Token info for TEH
precision_multiplier -
10decimalLPdecimalTEH10^{decimal_{LP} - decimal_{TEH}}
rate -
10decimalLP10decimalLPdecimalTEH(ratioTEH/LCM)10^{decimal_{LP}} * 10^{decimal_{LP} - decimal_{TEH}} * (ratio_{TEH}/LCM)
reserves -
N10decimalTEHratioTEHN * 10^{decimal_{TEH}} * ratio_{TEH}
Then you should receive
LPT=10decimalLPLCMtokensCountLPT = 10^{decimal_{LP}} * LCM * tokensCount
LP tokens.
Details of how to calculate values are in this table. (You can copy and play with this sheet)