Create clmm pool
Everyone can create cetus clmm pools directly.
1. Create a clmm pool with some initial liquidity to be added
sdk.Pool.createPoolTransactionPayload()
Function input params
Please refer to the original function for specific parameter types.
tick_spacing
: tick spacing will affect price precision. Now mainnet exist some different type tick_spacing, they correspond to different fee rates.tick spacingfee rate2
0.0001
10
0.0005
60
0.0025
200
0.01
initialize_sqrt_price
: for computational convenience, we use fixed-point numbers to represent square root prices. Use the provided by the SDK transformationprice
tosqrtPrice
:TickMath.priceToSqrtPriceX64()
.uri
: the icon of pool, it's allows null.coin_type_a
: the coin type address about coinA.coin_type_b
: the coin type address about coinB.
How to determine coinTypeA and coinTypeB ?
Complete the Coin Type: Before comparing, ensure that the coin type is complete.
Character-by-Character Comparison: Start from the first character and compare the characters of the two coins' coinType addresses one by one.
ASCII Value Comparison: When encountering differing characters, compare their ASCII values. The coin corresponding to the character with the larger ASCII value is considered "coin a".
Example 1:
coinTypeA:
0x6864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS
coinTypeB:
0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI
Example 2:
coinTypeA:
0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC
coinTypeB:
0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN
Example
amount_a
: the amount about coin A, which used to add liquidity.amount_b
: the amount about coin B, which used to add liquidity.Notice: amount a and b was calculated by
ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts()
, it will affected by selected tick interval、amount about one fixed coin(coinA or coinB)、current sqrt price of pool and allowed price slippage. You can see the usage in the next example.fix_amount_a
:true
means fixed coinA amount,false
means fixed coinB amount.tick_lower
: Represents the index of the lower tick boundary.tick_upper
: Represents the index of the upper tick boundary.
The tick index must be an integer multiple of
tickSpacing
. If the provided parameter is not a multiple oftickSpacing
, the contract will throw an error.-443636 <
tickLowerIndex
< currentTickIndex<tickUpperIndex
< 443636, 443636 is a constant, derived from the maximum range representable by the Q32.62 fixed-point number format.Currently, creating a pool requires adding bidirectional liquidity.
metadataA:
The coin metadata id of the coin a.metadataB:
The coin metadata id of the coin b.
Example
Last updated