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.