Types
AMM
AMM Settings
Some AMM strategies require additional settings whenever pool with such strategy is about to be created. Person who initiates this process must provide AMM settings cell within the transaction. Please, keep in mind that non-Constant Product pools may be created by the DEX administration only.CurveFi Stable
Asset
native
Used for TONcoin.jetton
Used for any jettons.extra
Used for extra currencies.DepositLiquidityCondition
none
Equivalent to no-condition.lp_quantity
Allows to set minimum quantity of LP tokens you will get in return after liquidity deposition happens. If real quantity is lower than the given one, transaction will be reverted.reserves_ratio
Allows to check pool reserves ratio before your liquidity deposition happens. In other words, all of the following formulas must be true:reserves1 / reserves2 >= min_nominator / denominatorreserves1 / reserves2 <= max_nominator / denominator
complex
Just a combination of lp_quantity and reserves_ratio.WithdrawLiquidityCondition
PoolParams
PublicPoolCreationParams
PrivatePoolCreationParams
PoolCreationParams
NotificationDataSingle
receiver is none, it’s considered being equal to transaction recipient.
NotificationData
PoolUpdateParams
SwapParams
SwapStepParams
SwapStepInternalParams
PoolReserves
DepositLiquidityParamsTrimmed
DepositLiquidityParams
WithdrawLiquidityParams
custom_payload within burn message.
ContractUpdate
Messages
Related to swaps
SwapNative
SwapJetton
SwapExtra
SwapSuccessfulEvent
SwapFailedEvent
Related to pools creation and liquidity provisioning
CreatePoolNative
CreatePoolJetton
CreatePoolExtra
DepositLiquidityNative
DepositLiquidityJetton
DepositLiquidityExtra
DepositLiquiditySuccessfulEvent
DepositLiquidityFailedEvent
LiquidityWithdrawalEvent
WithdrawDeposit
Burn (liquidity withdrawal)
To withdraw liquidity, user simply needs to burn his LP tokens by sending the following message to his LP jetton wallet, according to jetton standard:custom_payload, regular jetton wallets do not support it, and therefore there is no
way for user to provide any extra data related to token burning. That’s why we slightly modified code of our LP jetton
wallets, and they support custom_payload.
If needed, user may use it, passing WithdrawLiquidityParams as a custom_payload.
Miscellaneous
Payout
- Operation was initiated without notifications (custom payloads)
- Operation was initiated with notification, but it’s recipient differs from the wallet that receives funds
CreateVault
Notification
Inter-contract communication
SwapInternal
PayoutInternal
Deploy
CreatePoolCreatorRequest
CreatePoolCreatorInternal
CreatePoolRequest
CreatePoolInternal
CreateLiquidityDepositoryRequest
CreateLiquidityDepositoryInternal
DepositLiquidityInternal
CreateVaultInternal
UpdatePoolInternal
ActivateVaultInternal
WithdrawInternal
UpdateContractInternal
Administrative
UpdateAdmin
UpdatePool
ActivateVault
Withdraw
UpdateCodeCell
UpdateContract
contract_address must be none in case of administrator wanting to upgrade the Factory itself.