> ## Documentation Index
> Fetch the complete documentation index at: https://docs.therootnetwork.com/llms.txt
> Use this file to discover all available pages before exploring further.

# VortexDistribution

## Calls

### setAdmin

Set a new admin account that can perform privileged operations.

The dispatch origin for this call must be *Root*.

Parameters:

* `new`: The new admin account.

**Namespace**

```
api.tx.vortexDistribution.setAdmin
```

**Type**

```
function setAdmin(
  new: AccountId
)
```

### createVtxDist

Create a new Vortex distribution.

The dispatch origin for this call must be *Root* or *Admin*.

**Namespace**

```
api.tx.vortexDistribution.createVtxDist
```

**Type**

```
function createVtxDist()
```

### disableVtxDist

Disable a Vortex distribution.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The ID of the distribution to disable.

**Namespace**

```
api.tx.vortexDistribution.disableVtxDist
```

**Type**

```
function disableVtxDist(
  id: VtxDistIdentifier
)
```

### setConsiderCurrentBalance

Set whether to consider current balances for reward calculations.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `value`: Boolean indicating whether to consider current balances.

**Namespace**

```
api.tx.vortexDistribution.setConsiderCurrentBalance
```

**Type**

```
function setConsiderCurrentBalance(
  value: boolean
)
```

### setDisableRedeem

Enable or disable token redemption functionality.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `value`: Boolean indicating whether to disable redemption.

**Namespace**

```
api.tx.vortexDistribution.setDisableRedeem
```

**Type**

```
function setDisableRedeem(
  value: boolean
)
```

### setEnableManualRewardInput

Enable or disable manual reward input.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `value`: Boolean indicating whether to enable manual reward input.

**Namespace**

```
api.tx.vortexDistribution.setEnableManualRewardInput
```

**Type**

```
function setEnableManualRewardInput(
  value: boolean
)
```

### setFeePotAssetBalances

Set fee pot asset balances.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.
* `assets_balances`: List of asset balances.

**Namespace**

```
api.tx.vortexDistribution.setFeePotAssetBalances
```

**Type**

```
function setFeePotAssetBalances(
  id: VtxDistIdentifier,
  assets_balances: Vec<(AssetId, Balance)>
)
```

### setVtxVaultAssetBalances

Set Vortex vault asset balances.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.
* `assets_balances`: List of asset balances.

**Namespace**

```
api.tx.vortexDistribution.setVtxVaultAssetBalances
```

**Type**

```
function setVtxVaultAssetBalances(
  id: VtxDistIdentifier,
  assets_balances: Vec<(AssetId, Balance)>
)
```

### setVtxTotalSupply

Set Vortex total supply.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.
* `supply`: Total supply amount.

**Namespace**

```
api.tx.vortexDistribution.setVtxTotalSupply
```

**Type**

```
function setVtxTotalSupply(
  id: VtxDistIdentifier,
  supply: Balance
)
```

### setAssetPrices

Set asset prices.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.
* `asset_prices`: List of asset prices.

**Namespace**

```
api.tx.vortexDistribution.setAssetPrices
```

**Type**

```
function setAssetPrices(
  id: VtxDistIdentifier,
  asset_prices: Vec<(AssetId, Balance)>
)
```

### registerRewardPoints

Register reward points.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.
* `reward_points`: List of reward points.

**Namespace**

```
api.tx.vortexDistribution.registerRewardPoints
```

**Type**

```
function registerRewardPoints(
  id: VtxDistIdentifier,
  reward_points: Vec<(AccountId, Balance)>
)
```

### registerWorkPoints

Register work points.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.
* `work_points`: List of work points.

**Namespace**

```
api.tx.vortexDistribution.registerWorkPoints
```

**Type**

```
function registerWorkPoints(
  id: VtxDistIdentifier,
  work_points: Vec<(AccountId, Balance)>
)
```

### triggerVtxDistribution

Trigger a Vortex distribution.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.

**Namespace**

```
api.tx.vortexDistribution.triggerVtxDistribution
```

**Type**

```
function triggerVtxDistribution(
  id: VtxDistIdentifier
)
```

### startVtxDist

Start a Vortex distribution.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.

**Namespace**

```
api.tx.vortexDistribution.startVtxDist
```

**Type**

```
function startVtxDist(
  id: VtxDistIdentifier
)
```

### payUnsigned

Process unsigned payouts.

The dispatch origin for this call must be *None*.

Parameters:

* `id`: The distribution ID.
* `current_block`: Current block number.

**Namespace**

```
api.tx.vortexDistribution.payUnsigned
```

**Type**

```
function payUnsigned(
  id: VtxDistIdentifier,
  current_block: BlockNumber
)
```

### setVtxVaultRedeemAssetList

Set redeemable assets list.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `assets_list`: List of redeemable assets.

**Namespace**

```
api.tx.vortexDistribution.setVtxVaultRedeemAssetList
```

**Type**

```
function setVtxVaultRedeemAssetList(
  assets_list: Vec<AssetId>
)
```

### registerRewards

Register rewards manually.

The dispatch origin for this call must be *Root* or *Admin*.

Parameters:

* `id`: The distribution ID.
* `rewards`: List of rewards.

**Namespace**

```
api.tx.vortexDistribution.registerRewards
```

**Type**

```
function registerRewards(
  id: VtxDistIdentifier,
  rewards: Vec<(AccountId, Balance)>
)
```

### redeemTokensFromVault

Redeem tokens from the Vortex vault.

The dispatch origin for this call must be *Signed*.

Parameters:

* `vortex_token_amount`: Amount of Vortex tokens to redeem.

**Namespace**

```
api.tx.vortexDistribution.redeemTokensFromVault
```

**Type**

```
function redeemTokensFromVault(
  vortex_token_amount: Balance
)
```

## Storage

### adminAccount

The admin account that can perform privileged operations.

**Namespace**

```
api.query.vortexDistribution.adminAccount
```

**Type**

```
function adminAccount(): Option<AccountId>
```

### nextVortexId

The next available Vortex distribution ID.

**Namespace**

```
api.query.vortexDistribution.nextVortexId
```

**Type**

```
function nextVortexId(): VtxDistIdentifier
```

### considerCurrentBalance

Flag indicating whether to consider current balances for reward calculations.

**Namespace**

```
api.query.vortexDistribution.considerCurrentBalance
```

**Type**

```
function considerCurrentBalance(): boolean
```

### disableRedeem

Flag to disable token redemption functionality.

**Namespace**

```
api.query.vortexDistribution.disableRedeem
```

**Type**

```
function disableRedeem(): boolean
```

### enableManualRewardInput

Flag to enable manual reward input.

**Namespace**

```
api.query.vortexDistribution.enableManualRewardInput
```

**Type**

```
function enableManualRewardInput(): boolean
```

### vtxVaultRedeemAssetList

List of assets available for redemption.

**Namespace**

```
api.query.vortexDistribution.vtxVaultRedeemAssetList
```

**Type**

```
function vtxVaultRedeemAssetList(): Vec<AssetId>
```

### totalRewardPoints

Total reward points for each distribution cycle.

**Namespace**

```
api.query.vortexDistribution.totalRewardPoints
```

**Type**

```
function totalRewardPoints(
  id: VtxDistIdentifier
): Balance
```

### totalWorkPoints

Total work points for each distribution cycle.

**Namespace**

```
api.query.vortexDistribution.totalWorkPoints
```

**Type**

```
function totalWorkPoints(
  id: VtxDistIdentifier
): Balance
```

### vtxDistStatuses

Status of each Vortex distribution.

**Namespace**

```
api.query.vortexDistribution.vtxDistStatuses
```

**Type**

```
function vtxDistStatuses(
  id: VtxDistIdentifier
): VtxDistStatus
```

### vtxTotalSupply

Total supply of Vortex tokens for each distribution.

**Namespace**

```
api.query.vortexDistribution.vtxTotalSupply
```

**Type**

```
function vtxTotalSupply(
  id: VtxDistIdentifier
): Balance
```

### vtxPrice

Vortex token price for each distribution.

**Namespace**

```
api.query.vortexDistribution.vtxPrice
```

**Type**

```
function vtxPrice(
  id: VtxDistIdentifier
): Balance
```

### vtxDistOrderbook

Order book for each Vortex distribution.

**Namespace**

```
api.query.vortexDistribution.vtxDistOrderbook
```

**Type**

```
function vtxDistOrderbook(
  id: VtxDistIdentifier,
  account: AccountId
): (Balance, boolean)
```

### rewardPoints

Reward points for each account in each distribution.

**Namespace**

```
api.query.vortexDistribution.rewardPoints
```

**Type**

```
function rewardPoints(
  id: VtxDistIdentifier,
  account: AccountId
): Balance
```

### workPoints

Work points for each account in each distribution.

**Namespace**

```
api.query.vortexDistribution.workPoints
```

**Type**

```
function workPoints(
  id: VtxDistIdentifier,
  account: AccountId
): Balance
```

### feePotAssetsList

Fee pot asset list for each distribution.

**Namespace**

```
api.query.vortexDistribution.feePotAssetsList
```

**Type**

```
function feePotAssetsList(
  id: VtxDistIdentifier
): Vec<(AssetId, Balance)>
```

### vtxVaultAssetsList

Vortex vault asset list for each distribution.

**Namespace**

```
api.query.vortexDistribution.vtxVaultAssetsList
```

**Type**

```
function vtxVaultAssetsList(
  id: VtxDistIdentifier
): Vec<(AssetId, Balance)>
```

### assetPrices

Asset prices for each distribution.

**Namespace**

```
api.query.vortexDistribution.assetPrices
```

**Type**

```
function assetPrices(
  id: VtxDistIdentifier,
  asset: AssetId
): Balance
```

### totalNetworkReward

Total network reward for each distribution.

**Namespace**

```
api.query.vortexDistribution.totalNetworkReward
```

**Type**

```
function totalNetworkReward(
  id: VtxDistIdentifier
): Balance
```

### totalBootstrapReward

Total bootstrap reward for each distribution.

**Namespace**

```
api.query.vortexDistribution.totalBootstrapReward
```

**Type**

```
function totalBootstrapReward(
  id: VtxDistIdentifier
): Balance
```

### totalVortex

Total Vortex amount for each distribution.

**Namespace**

```
api.query.vortexDistribution.totalVortex
```

**Type**

```
function totalVortex(
  id: VtxDistIdentifier
): Balance
```

### nextUnsignedAt

Next unsigned transaction block number.

**Namespace**

```
api.query.vortexDistribution.nextUnsignedAt
```

**Type**

```
function nextUnsignedAt(): BlockNumber
```

### vtxDistPayoutPivot

Payout pivot block for each distribution.

**Namespace**

```
api.query.vortexDistribution.vtxDistPayoutPivot
```

**Type**

```
function vtxDistPayoutPivot(
  id: VtxDistIdentifier
): Vec<u8>
```

### vtxRewardCalculationPivot

Reward calculation pivot block for each distribution.

**Namespace**

```
api.query.vortexDistribution.vtxRewardCalculationPivot
```

**Type**

```
function vtxRewardCalculationPivot(
  id: VtxDistIdentifier
): Vec<u8>
```

## Constants

### VTX\_DIST\_UNSIGNED\_PRIORITY

Priority for unsigned transactions.

**Type**

```
TransactionPriority
```

### PRECISION\_MULTIPLIER

Precision multiplier for integer math (10^6).

**Type**

```
u128
```

### PRICE\_MULTIPLIER

Asset price multiplier (10^6).

**Type**

```
u128
```

## Errors

### RequireAdmin

When admin privileges are required.

### VtxDistIdNotAvailable

When no distribution ID is available.

### VtxDistAlreadyEnabled

When distribution is already enabled.

### VtxDistDisabled

When distribution is disabled.

### NoVtxAssetMinted

When no Vortex assets are minted.

### InvalidAmount

When an invalid amount is provided.

### VtxDistIdInUse

When distribution ID is already in use.

### NotAValidator

When caller is not a validator.

### VortexPeriodNotSet

When Vortex period is not set.

### PivotStringTooLong

When pivot string is too long.

### AssetsShouldNotIncludeVtxAsset

When assets include Vortex asset.

### CannotTrigger

When distribution cannot be triggered.

### CannotRedeem

When distribution cannot be redeemed.

### NotTriggered

When distribution is not triggered.

### ExceededMaxRewards

When rewards exceed maximum limit.

### VortexPriceIsZero

When Vortex price is zero.

### RootPriceIsZero

When root price is zero.

### VtxRedeemDisabled

When Vortex redemption is disabled.

### ManualRewardInputDisabled

When manual reward input is disabled.

### VtxRewardPayoutFailed

When reward payout fails.

### RewardPointsNotRegistered

When reward points are not registered.
