TL-B
create_vault#21cfe02b query_id:uint64 asset:Asset = InMsgBody;
Name Type Required Description query_id uint64 no Query ID asset Asset yes The asset for which a Vault will be created.
TL-B
create_volatile_pool#97d51f2f query_id:uint64 asset0:Asset asset1:Asset = InMsgBody;
Name Type Required Description query_id uint64 no Query ID asset0 Asset yes The asset for which a Pool will be created. asset1 Asset yes The asset for which a Poo will be created.
📘 Assets can be reordered.
Assets can be switched (asset0 becomes asset1 and vice versa).
This ensures a consistent address for a Pool regardless of asset order (e.g. A / B or B / A).
TL-B
native$0000 = Asset;
jetton$0001 workchain_id:int8 address:uint256 = Asset;
extra_currency$0010 currency_id:int32 = Asset;
TL-B
timestamp#_ _:uint32 = Timestamp;
TL-B
given_in$0 = SwapKind;
given_out$1 = SwapKind; // Not implemented.
Set of parameters relevant for the entire swap.
TL-B
swap_params#_ deadline:Timestamp recipient_addr:MsgAddressInt referral_addr:MsgAddress
fulfill_payload:(Maybe ^Cell) reject_payload:(Maybe ^Cell) = SwapParams;
Name Type Required Description deadlineTimestamp no Specifies a deadline for the swap. If the swap reaches the Pool after this time, it will be rejected. Default : 0 (disabled). recipient_addrMsgAddress no Specifies an address where funds will be sent after the swap. Default: sender's address. referral_addrMsgAddress no Referral address. Required for the Referral Program. fulfill_payloadMaybe ^Cell no Custom payload that will be attached to the fund transfer upon a successful swap. reject_payloadMaybe ^Cell no Custom payload that will be attached to the fund transfer upon a rejected swap.
Set of parameters relevant for the specific step.
TL-B
step#_ pool_addr:MsgAddressInt params:SwapStepParams = SwapStep;
Name Type Required Description pool_addr MsgAddressInt yes The pool is responsible for swapping assets at this step. params SwapStepParams yes Set of extra parameters relevant for a specific step.
Set of extra parameters relevant for a specific step.
TL-B
step_params#_ kind:SwapKind limit:Coins next:(Maybe ^SwapStep) = SwapStepParams;
Name Type Required Description kind SwapKind no Note : Only given_in option is implemented.limit Coins no Minimum output of the swap. If the actual value is less than specified, the swap will be rejected. next Maybe ^SwapStep no Reference to the next step. Can be used for multi-hop swaps.
TL-B
volatile$0 = PoolType;
stable$1 = PoolType;
TL-B
pool_params#_ pool_type:PoolType asset0:Asset asset1:Asset = PoolParams;
TL-B
swap#ea06185d query_id:uint64 amount:Coins _:SwapStep swap_params:^SwapParams = InMsgBody;
Name Type Required Description query_id uint64 no Query ID amount Coins yes TON amount for the swap swap_params ^SwapParams yes Set of parameters relevant for the entire swap
TL-B
deposit_liquidity#d55e4686 query_id:uint64 amount:Coins pool_params:PoolParams
min_lp_amount:Coins
asset0_target_balance:Coins asset1_target_balance:Coins
fulfill_payload:(Maybe ^Cell)
reject_payload:(Maybe ^Cell) = InMsgBody;
Name Type Required Description query_id uint64 no Query ID amount Coins yes pool_params PoolParams yes min_lp_amount Coins no asset0_target_balance Coins yes asset1_target_balance Coins yes fulfill_payload Maybe ^Cell no reject_payload Maybe ^Cell no
TL-B
payout#474f86cf query_id:uint64 payload:(Maybe ^Cell) = InMsgBody;
Name Type Required Description query_id uint64 no Query ID payload Maybe ^Cell no
TL-B
swap#e3a0d482 _:SwapStep swap_params:^SwapParams = ForwardPayload;
Name Type Required Description swap_params ^SwapParams yes
TL-B
deposit_liquidity#40e108d6 pool_params:PoolParams min_lp_amount:Coins
asset0_target_balance:Coins asset1_target_balance:Coins
fulfill_payload:(Maybe ^Cell)
reject_payload:(Maybe ^Cell) = ForwardPayload;
Name Type Required Description pool_params PoolParams yes min_lp_amount Coins no asset0_target_balance Coins yes asset1_target_balance Coins yes fulfill_payload Maybe ^Cell no reject_payload Maybe ^Cell no
To simplify the process of indexing, DeDust Procotol uses mechanism of events.
For that purpose we use "external messages" proposed by TON Blockchain.
TL-B
swap#9c610de3 asset_in:Asset asset_out:Asset amount_in:Coins amount_out:Coins
^[ sender_addr:MsgAddressInt referral_addr:MsgAddress
reserve0:Coins reserve1:Coins ] = ExtOutMsgBody;
Name Type Required Description asset_in Asset yes The asset provided by the user. asset_out Asset yes The asset received by the user. amount_out Coins yes Amount of asset_out received by the user. amount_in Coins yes Amount of asset_in supplied by the user. sender_addr MsgAddressInt yes Address of the contract that initiated the swap. referral_addr MsgAddress no Referral address. Required for the Referral Program. reserve0 Coins yes Amount of asset0 remaining in reserve after the swap. reserve1 Coins yes Amount of asset1 remaining in reserve after the swap.
TL-B
deposit#b544f4a4 sender_addr:MsgAddressInt amount0:Coins amount1:Coins
reserve0:Coins reserve1:Coins liquidity:Coins = ExtOutMsgBody;
Name Type Required Description sender_addrMsgAddressInt yes Address of the contract that initiated the deposit. amount0Coins yes Amount of asset0 provided by the sender. amount1Coins yes Amount of asset1 provided by the sender. reserve0Coins yes Amount of asset0 remaining in reserve after the withdrawal. reserve1Coins yes Amount of asset1 remaining in reserve after the withdrawal. liquidityCoins yes Amount of LP tokens issued for the sender.
TL-B
withdrawal#3aa870a6 sender_addr:MsgAddressInt liquidity:Coins
amount0:Coins amount1:Coins
reserve0:Coins reserve1:Coins = ExtOutMsgBody;
Name Type Required Description sender_addrMsgAddressInt yes Address of the contract that initiated the withdrawal. liquidityCoins yes Amount of LP tokens burned by the sender. amount0Coins yes Amount of asset0 sent to the sender. amount1Coins yes Amount of asset1 sent to the sender. reserve0Coins yes Amount of asset0 remaining in reserve after the withdrawal. reserve1Coins yes Amount of asset1 remaining in reserve after the withdrawal.
TL-B
cancel_deposit#166cedee query_id:uint64 payload:(Maybe ^Cell) = InMsgBody;
Name Type Required Description query_iduint64 no Query ID payloadMaybe ^Cell no Custom payload that will be attached to the funds transfer to the user.