Skip to content

Dex pallet

Derived from live runtime metadata on TRN root (pallet index 16, captured 2026-05-02). For prose-style documentation see Dex on the curated reference side.

Pallet index
16
Calls
7
Events
8
Errors
23
Storage items
5
Constants
5

Calls (extrinsics)

Dex.set_fee_to

See [Pallet::set_fee_to].

ts
api.tx.dex.set_fee_to(fee_to: Option<SeedPrimitivesSignatureAccountId20>)
ArgumentTypeDoc
fee_toOption&lt;SeedPrimitivesSignatureAccountId20&gt;Option<T::AccountId>

Call index: 0

Dex.swap_with_exact_supply

See [Pallet::swap_with_exact_supply].

ts
api.tx.dex.swap_with_exact_supply(amount_in: Compact<u128>, amount_out_min: Compact<u128>, path: Vec<u32>, to: Option<SeedPrimitivesSignatureAccountId20>, deadline: Option<u32>)
ArgumentTypeDoc
amount_inCompact&lt;u128&gt;Balance
amount_out_minCompact&lt;u128&gt;Balance
pathVec&lt;u32&gt;Vec<AssetId>
toOption&lt;SeedPrimitivesSignatureAccountId20&gt;Option<T::AccountId>
deadlineOption&lt;u32&gt;Option<BlockNumberFor<T>>

Call index: 1

Dex.swap_with_exact_target

See [Pallet::swap_with_exact_target].

ts
api.tx.dex.swap_with_exact_target(amount_out: Compact<u128>, amount_in_max: Compact<u128>, path: Vec<u32>, to: Option<SeedPrimitivesSignatureAccountId20>, deadline: Option<u32>)
ArgumentTypeDoc
amount_outCompact&lt;u128&gt;Balance
amount_in_maxCompact&lt;u128&gt;Balance
pathVec&lt;u32&gt;Vec<AssetId>
toOption&lt;SeedPrimitivesSignatureAccountId20&gt;Option<T::AccountId>
deadlineOption&lt;u32&gt;Option<BlockNumberFor<T>>

Call index: 2

Dex.add_liquidity

See [Pallet::add_liquidity].

ts
api.tx.dex.add_liquidity(token_a: u32, token_b: u32, amount_a_desired: Compact<u128>, amount_b_desired: Compact<u128>, amount_a_min: Compact<u128>, amount_b_min: Compact<u128>, to: Option<SeedPrimitivesSignatureAccountId20>, deadline: Option<u32>)
ArgumentTypeDoc
token_au32AssetId
token_bu32AssetId
amount_a_desiredCompact&lt;u128&gt;Balance
amount_b_desiredCompact&lt;u128&gt;Balance
amount_a_minCompact&lt;u128&gt;Balance
amount_b_minCompact&lt;u128&gt;Balance
toOption&lt;SeedPrimitivesSignatureAccountId20&gt;Option<T::AccountId>
deadlineOption&lt;u32&gt;Option<BlockNumberFor<T>>

Call index: 3

Dex.remove_liquidity

See [Pallet::remove_liquidity].

ts
api.tx.dex.remove_liquidity(token_a: u32, token_b: u32, liquidity: Compact<u128>, amount_a_min: Compact<u128>, amount_b_min: Compact<u128>, to: Option<SeedPrimitivesSignatureAccountId20>, deadline: Option<u32>)
ArgumentTypeDoc
token_au32AssetId
token_bu32AssetId
liquidityCompact&lt;u128&gt;Balance
amount_a_minCompact&lt;u128&gt;Balance
amount_b_minCompact&lt;u128&gt;Balance
toOption&lt;SeedPrimitivesSignatureAccountId20&gt;Option<T::AccountId>
deadlineOption&lt;u32&gt;Option<BlockNumberFor<T>>

Call index: 4

Dex.reenable_trading_pair

See [Pallet::reenable_trading_pair].

ts
api.tx.dex.reenable_trading_pair(token_a: u32, token_b: u32)
ArgumentTypeDoc
token_au32AssetId
token_bu32AssetId

Call index: 5

Dex.disable_trading_pair

See [Pallet::disable_trading_pair].

ts
api.tx.dex.disable_trading_pair(token_a: u32, token_b: u32)
ArgumentTypeDoc
token_au32AssetId
token_bu32AssetId

Call index: 6

Events

Dex.FeeToSet

Set FeeTo account success. [fee_to]

FieldTypeDoc
Option<T::AccountId>Option&lt;SeedPrimitivesSignatureAccountId20&gt;

Dex.AddProvision

Add provision success. [who, asset_id_0, contribution_0, asset_id_1, contribution_1]

FieldTypeDoc
T::AccountId[u8;20]
AssetIdu32
Balanceu128
AssetIdu32
Balanceu128

Dex.AddLiquidity

Add liquidity success. [who, asset_id_0, reserve_0_increment, asset_id_1, reserve_1_increment, share_increment, to]

FieldTypeDoc
T::AccountId[u8;20]
AssetIdu32
Balanceu128
AssetIdu32
Balanceu128
Balanceu128
T::AccountId[u8;20]

Dex.RemoveLiquidity

Remove liquidity from the trading pool success. [who, asset_id_0, reserve_0_decrement, asset_id_1, reserve_1_decrement, share_decrement, to]

FieldTypeDoc
T::AccountId[u8;20]
AssetIdu32
Balanceu128
AssetIdu32
Balanceu128
Balanceu128
T::AccountId[u8;20]

Dex.Swap

Use supply Asset to swap target Asset. [trader, trading_path, supply_Asset_amount, target_Asset_amount, to]

FieldTypeDoc
T::AccountId[u8;20]
Vec<AssetId>Vec&lt;u32&gt;
Balanceu128
Balanceu128
T::AccountId[u8;20]

Dex.EnableTradingPair

Enable trading pair. [trading_pair]

FieldTypeDoc
TradingPair(u32,u32)

Dex.DisableTradingPair

Disable trading pair. [trading_pair]

FieldTypeDoc
TradingPair(u32,u32)

Dex.ProvisioningToEnabled

Provisioning trading pair convert to Enabled. [trading_pair, pool_0_amount, pool_1_amount, total_share_amount]

FieldTypeDoc
TradingPair(u32,u32)
Balanceu128
Balanceu128
Balanceu128

Errors

Dex.MustBeEnabled

Trading pair must be in Enabled status

Dex.MustBeNotEnabled

Trading pair must be in NotEnabled status

Dex.InsufficientInputAmount

Insufficient input amount

Dex.InvalidInputAmounts

Must provide non-zero amount of liquidity

Dex.InsufficientAmount

Insufficent amount

Dex.InsufficientAmountA

Insufficient asset_a liquidity amount

Dex.InsufficientAmountB

Insufficient asset_b liquidity amount

Dex.InsufficientLiquidityBurnt

Insufficient liquidity burnt

Dex.InsufficientWithdrawnAmountA

Insufficient withdraw amount for token A

Dex.InsufficientWithdrawnAmountB

Insufficient withdraw amount for token B

Dex.InsufficientOutputAmount

Insufficient output amount

Dex.InvalidLiquidityIncrement

The increment of liquidity is invalid

Dex.InvalidConstantProduct

Invalid constant product K

Dex.IdenticalTokenAddress

Dex.InvalidAssetId

Invalid Asset id

Dex.InvalidTradingPathLength

Invalid trading path length

Dex.InsufficientTargetAmount

Target amount is less to min_target_amount

Dex.ExcessiveSupplyAmount

Supply amount is more than max_supply_amount

Dex.InsufficientLiquidity

Liquidity is not enough

Dex.ZeroSupplyAmount

The supply amount is zero

Dex.ZeroTargetAmount

The target amount is zero

Dex.LiquidityProviderTokenNotCreated

The Liquidity Provider token does not exist

Dex.ExpiredDeadline

The deadline has been missed

Storage

Dex.FeeTo

FeeTo account where network fees are deposited

ts
await api.query.dex.feeTo()

Returns: Option<SeedPrimitivesSignatureAccountId20>

Modifier: Default

Dex.TradingPairLPToken

ts
await api.query.dex.tradingPairLPToken(key1)
  • Key: (u32,u32) (hasher: Twox64Concat)
  • Returns: Option<u32>

Modifier: Default

Dex.LiquidityPool

ts
await api.query.dex.liquidityPool(key1)
  • Key: (u32,u32) (hasher: Twox64Concat)
  • Returns: (u128,u128)

Modifier: Default

Dex.LiquidityPoolLastK

ts
await api.query.dex.liquidityPoolLastK(key1)
  • Key: u32 (hasher: Twox64Concat)
  • Returns: U256

Modifier: Default

Dex.TradingPairStatuses

ts
await api.query.dex.tradingPairStatuses(key1)
  • Key: (u32,u32) (hasher: Twox64Concat)
  • Returns: {"_enum":["NotEnabled","Enabled"]}

Modifier: Default

Constants

Dex.GetExchangeFee

Trading fee rate The first item of the tuple is the numerator of the fee rate, second item is the denominator, fee_rate = numerator / denominator, use (u32, u32) over Rate type to minimize internal division operation.

Type: (u32,u32)
SCALE-encoded value: 0x03000000e8030000

Dex.TradingPathLimit

The limit for length of trading path

Type: u32
SCALE-encoded value: 0x03000000

Dex.DEXBurnPalletId

The DEX's burn id, to provide for a redundant, unredeemable minter/burner address.

Type: [u8;8]
SCALE-encoded value: 0x6275726e2f646578

Dex.LPTokenDecimals

Liquidity pair default token decimals

Type: u8
SCALE-encoded value: 0x12

Dex.DefaultFeeTo

The default FeeTo account

Type: Option<FrameSupportPalletId>
SCALE-encoded value: 0x017478666565706f74

Source: live chain metadata from wss://root.rootnet.live/archive/ws · captured 2026-05-02

Curated independently by Codeology. Source-attributed reference for The Root Network. Not affiliated with Futureverse / TRN Labs.