@talismn/balances 3.0.3 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -82,25 +82,7 @@ export type ExtraAmount<TLabel extends string> = BaseAmountWithLabel<TLabel> & {
82
82
  includeInTotal?: boolean;
83
83
  };
84
84
  //#endregion
85
- //#region src/types/balances.d.ts
86
- type FormattedAmount<GenericAmount extends AmountWithLabel<TLabel>, TLabel extends string> = Omit<GenericAmount, "amount"> & {
87
- amount: BalanceFormatter;
88
- };
89
- export declare function excludeFromTransferableAmount(locks: Amount | FormattedAmount<LockedAmount<string>, string> | Array<FormattedAmount<LockedAmount<string>, string>>): bigint;
90
- export declare function excludeFromFeePayableLocks(locks: Amount | LockedAmount<string> | Array<LockedAmount<string>>): Array<LockedAmount<string>>;
91
- export declare function includeInTotalExtraAmount(extra?: FormattedAmount<ExtraAmount<string>, string> | Array<FormattedAmount<ExtraAmount<string>, string>>): bigint;
92
- /** A utility type used to extract the underlying `BalanceType` of a specific source from a generalised `BalanceJson` */
93
- export type NarrowBalanceType<S extends IBalance, P> = S extends {
94
- source: P;
95
- } ? S : never;
96
- export type BalanceSource = BalanceJson["source"];
97
- /** TODO: Remove this in favour of a frontend-friendly `ChaindataProvider` */
98
- export type HydrateDb = Partial<{
99
- networks: NetworkList;
100
- tokens: TokenList;
101
- tokenRates: TokenRatesList;
102
- }>;
103
- export type BalanceSearchQuery = Partial<NonFunctionProperties<Balance>> | ((balance: Balance) => boolean);
85
+ //#region src/classes/Balances.d.ts
104
86
  /**
105
87
  * A collection of balances.
106
88
  */
@@ -182,7 +164,6 @@ export declare class Balances {
182
164
  get count(): number;
183
165
  /**
184
166
  * Get the summed value of balances in this collection.
185
- * TODO: Sum up token amounts AND fiat amounts
186
167
  *
187
168
  * @example
188
169
  * // Get the sum of all transferable balances in usd.
@@ -190,10 +171,116 @@ export declare class Balances {
190
171
  */
191
172
  get sum(): SumBalancesFormatter;
192
173
  }
193
- export declare const getBalanceId: (balance: Pick<IBalance, "address" | "tokenId">) => string;
194
- /**
195
- * An individual balance.
196
- */
174
+ //#endregion
175
+ //#region src/classes/formatters.d.ts
176
+ export declare class BalanceValueGetter {
177
+ #private;
178
+ constructor(storage: BalanceJson);
179
+ get(valueType: BalanceStatusTypes): AmountWithLabel<string>[];
180
+ add(valueType: BalanceStatusTypes, amount: Omit<AmountWithLabel<string>, "type">): void;
181
+ }
182
+ export declare class BalanceFormatter {
183
+ #private;
184
+ constructor(planck: string | bigint | undefined, decimals?: number | undefined, fiatRatios?: TokenRates | null);
185
+ toJSON: () => string;
186
+ get planck(): bigint;
187
+ get tokens(): string;
188
+ fiat(currency: TokenRateCurrency): number | null;
189
+ }
190
+ export declare class PlanckSumBalancesFormatter {
191
+ #private;
192
+ constructor(balances: Balances);
193
+ /**
194
+ * The total balance of these tokens. Includes the free and the reserved amount.
195
+ */
196
+ get total(): bigint;
197
+ /** The non-reserved balance of these tokens. Includes the frozen amount. Is included in the total. */
198
+ get free(): bigint;
199
+ /** The reserved balance of these tokens. Is included in the total. */
200
+ get reserved(): bigint;
201
+ /** The frozen balance of these tokens. Is included in the free amount. */
202
+ get locked(): bigint;
203
+ /** @deprecated Use balances.locked */
204
+ get frozen(): bigint;
205
+ /** The transferable balance of these tokens. Is generally the free amount - the miscFrozen amount. */
206
+ get transferable(): bigint;
207
+ /** The unavailable balance of these tokens. */
208
+ get unavailable(): bigint;
209
+ /** The feePayable balance of these tokens. Is generally the free amount - the feeFrozen amount. */
210
+ get feePayable(): bigint;
211
+ }
212
+ export declare class FiatSumBalancesFormatter {
213
+ #private;
214
+ constructor(balances: Balances, currency: TokenRateCurrency);
215
+ /**
216
+ * The total balance of these tokens. Includes the free and the reserved amount.
217
+ */
218
+ get total(): number;
219
+ /** The non-reserved balance of these tokens. Includes the frozen amount. Is included in the total. */
220
+ get free(): number;
221
+ /** The reserved balance of these tokens. Is included in the total. */
222
+ get reserved(): number;
223
+ /** The frozen balance of these tokens. Is included in the free amount. */
224
+ get locked(): number;
225
+ /** @deprecated Use balances.locked */
226
+ get frozen(): number;
227
+ /** The transferable balance of these tokens. Is generally the free amount - the miscFrozen amount. */
228
+ get transferable(): number;
229
+ /** The unavailable balance of these tokens. */
230
+ get unavailable(): number;
231
+ /** The feePayable balance of these tokens. Is generally the free amount - the feeFrozen amount. */
232
+ get feePayable(): number;
233
+ }
234
+ export declare class SumBalancesFormatter {
235
+ #private;
236
+ constructor(balances: Balances);
237
+ get planck(): PlanckSumBalancesFormatter;
238
+ fiat(currency: TokenRateCurrency): FiatSumBalancesFormatter;
239
+ change24h(currency: TokenRateCurrency): Change24hCurrencyFormatter;
240
+ }
241
+ export declare class Change24hCurrencyFormatter {
242
+ #private;
243
+ constructor(balances: Balances, currency: TokenRateCurrency);
244
+ get total(): {
245
+ diff: number;
246
+ ratio: number;
247
+ } | null;
248
+ get free(): {
249
+ diff: number;
250
+ ratio: number;
251
+ } | null;
252
+ get reserved(): {
253
+ diff: number;
254
+ ratio: number;
255
+ } | null;
256
+ get locked(): {
257
+ diff: number;
258
+ ratio: number;
259
+ } | null;
260
+ get frozen(): {
261
+ diff: number;
262
+ ratio: number;
263
+ } | null;
264
+ get transferable(): {
265
+ diff: number;
266
+ ratio: number;
267
+ } | null;
268
+ get unavailable(): {
269
+ diff: number;
270
+ ratio: number;
271
+ } | null;
272
+ get feePayable(): {
273
+ diff: number;
274
+ ratio: number;
275
+ } | null;
276
+ }
277
+ //#endregion
278
+ //#region src/classes/FormattedAmount.d.ts
279
+ type FormattedAmount<GenericAmount extends AmountWithLabel<TLabel>, TLabel extends string> = Omit<GenericAmount, "amount"> & {
280
+ amount: BalanceFormatter;
281
+ };
282
+ //#endregion
283
+ //#region src/classes/Balance.d.ts
197
284
  export declare class Balance {
198
285
  #private;
199
286
  constructor(storage: BalanceJson | IBalance, hydrate?: HydrateDb);
@@ -328,6 +415,20 @@ export declare class Balance {
328
415
  } | null;
329
416
  get tokenId(): string;
330
417
  get token(): {
418
+ id: string;
419
+ networkId: string;
420
+ isDefault?: boolean | undefined;
421
+ decimals: number;
422
+ symbol: string;
423
+ name?: string | undefined;
424
+ logo?: string | undefined;
425
+ coingeckoId?: string | undefined;
426
+ noDiscovery?: boolean | undefined;
427
+ mirrorOf?: string | undefined;
428
+ type: "evm-erc20";
429
+ platform: "ethereum";
430
+ contractAddress: `0x${string}`;
431
+ } | {
331
432
  id: string;
332
433
  networkId: string;
333
434
  isDefault?: boolean | undefined;
@@ -355,8 +456,11 @@ export declare class Balance {
355
456
  coingeckoId?: string | undefined;
356
457
  noDiscovery?: boolean | undefined;
357
458
  mirrorOf?: string | undefined;
358
- type: "substrate-native";
459
+ type: "substrate-foreignassets";
359
460
  platform: "polkadot";
461
+ onChainId: string;
462
+ isFrozen?: boolean | undefined;
463
+ isSufficient: boolean;
360
464
  existentialDeposit: string;
361
465
  } | {
362
466
  id: string;
@@ -392,9 +496,8 @@ export declare class Balance {
392
496
  coingeckoId?: string | undefined;
393
497
  noDiscovery?: boolean | undefined;
394
498
  mirrorOf?: string | undefined;
395
- type: "substrate-psp22";
396
- platform: "polkadot";
397
- contractAddress: string;
499
+ type: "evm-native";
500
+ platform: "ethereum";
398
501
  } | {
399
502
  id: string;
400
503
  networkId: string;
@@ -423,21 +526,12 @@ export declare class Balance {
423
526
  coingeckoId?: string | undefined;
424
527
  noDiscovery?: boolean | undefined;
425
528
  mirrorOf?: string | undefined;
426
- type: "evm-native";
427
- platform: "ethereum";
428
- } | {
429
- id: string;
430
- networkId: string;
431
- isDefault?: boolean | undefined;
432
- decimals: number;
433
- symbol: string;
434
- name?: string | undefined;
435
- logo?: string | undefined;
436
- coingeckoId?: string | undefined;
437
- noDiscovery?: boolean | undefined;
438
- mirrorOf?: string | undefined;
439
- type: "sol-native";
440
- platform: "solana";
529
+ type: "substrate-dtao";
530
+ platform: "polkadot";
531
+ netuid: number;
532
+ subnetName?: string | undefined;
533
+ hotkey?: string | undefined;
534
+ isTransferable: boolean;
441
535
  } | {
442
536
  id: string;
443
537
  networkId: string;
@@ -449,11 +543,8 @@ export declare class Balance {
449
543
  coingeckoId?: string | undefined;
450
544
  noDiscovery?: boolean | undefined;
451
545
  mirrorOf?: string | undefined;
452
- type: "substrate-foreignassets";
546
+ type: "substrate-native";
453
547
  platform: "polkadot";
454
- onChainId: string;
455
- isFrozen?: boolean | undefined;
456
- isSufficient: boolean;
457
548
  existentialDeposit: string;
458
549
  } | {
459
550
  id: string;
@@ -466,9 +557,9 @@ export declare class Balance {
466
557
  coingeckoId?: string | undefined;
467
558
  noDiscovery?: boolean | undefined;
468
559
  mirrorOf?: string | undefined;
469
- type: "sol-spl";
470
- platform: "solana";
471
- mintAddress: string;
560
+ type: "substrate-psp22";
561
+ platform: "polkadot";
562
+ contractAddress: string;
472
563
  } | {
473
564
  id: string;
474
565
  networkId: string;
@@ -495,9 +586,8 @@ export declare class Balance {
495
586
  coingeckoId?: string | undefined;
496
587
  noDiscovery?: boolean | undefined;
497
588
  mirrorOf?: string | undefined;
498
- type: "evm-erc20";
499
- platform: "ethereum";
500
- contractAddress: `0x${string}`;
589
+ type: "sol-native";
590
+ platform: "solana";
501
591
  } | {
502
592
  id: string;
503
593
  networkId: string;
@@ -509,10 +599,9 @@ export declare class Balance {
509
599
  coingeckoId?: string | undefined;
510
600
  noDiscovery?: boolean | undefined;
511
601
  mirrorOf?: string | undefined;
512
- type: "sol-token2022";
602
+ type: "sol-spl";
513
603
  platform: "solana";
514
604
  mintAddress: string;
515
- isTransferable?: boolean | undefined;
516
605
  } | {
517
606
  id: string;
518
607
  networkId: string;
@@ -524,12 +613,10 @@ export declare class Balance {
524
613
  coingeckoId?: string | undefined;
525
614
  noDiscovery?: boolean | undefined;
526
615
  mirrorOf?: string | undefined;
527
- type: "substrate-dtao";
528
- platform: "polkadot";
529
- netuid: number;
530
- subnetName?: string | undefined;
531
- hotkey?: string | undefined;
532
- isTransferable: boolean;
616
+ type: "sol-token2022";
617
+ platform: "solana";
618
+ mintAddress: string;
619
+ isTransferable?: boolean | undefined;
533
620
  } | null;
534
621
  get decimals(): number | null;
535
622
  get rates(): TokenRates | null;
@@ -581,117 +668,20 @@ export declare class Balance {
581
668
  /** The feePayable balance of this token. Is generally the free amount - the feeFrozen amount. */
582
669
  get feePayable(): BalanceFormatter;
583
670
  }
584
- /** raw "locked" values, straight from the IBalance JSON (see getRawTotalPlanck) */
585
- export declare const getRawLocks: (balance: IBalance) => AmountWithLabel<string>[];
586
- /**
587
- * Computes `new Balance(b).total.planck` without constructing a Balance (which allocates
588
- * several BalanceFormatters per access) — used for high-frequency zero-balance filtering.
589
- * MUST mirror Balance.total exactly, including the DelegatedStaking-hold/nompool rule
590
- * (guarded by a parity test in balance-raw-helpers.test.ts).
591
- */
592
- export declare const getRawTotalPlanck: (balance: IBalance) => bigint;
593
- export declare class BalanceValueGetter {
594
- #private;
595
- constructor(storage: BalanceJson);
596
- get(valueType: BalanceStatusTypes): AmountWithLabel<string>[];
597
- add(valueType: BalanceStatusTypes, amount: Omit<AmountWithLabel<string>, "type">): void;
598
- }
599
- export declare class BalanceFormatter {
600
- #private;
601
- constructor(planck: string | bigint | undefined, decimals?: number | undefined, fiatRatios?: TokenRates | null);
602
- toJSON: () => string;
603
- get planck(): bigint;
604
- get tokens(): string;
605
- fiat(currency: TokenRateCurrency): number | null;
606
- }
607
- export declare class PlanckSumBalancesFormatter {
608
- #private;
609
- constructor(balances: Balances);
610
- /**
611
- * The total balance of these tokens. Includes the free and the reserved amount.
612
- */
613
- get total(): bigint;
614
- /** The non-reserved balance of these tokens. Includes the frozen amount. Is included in the total. */
615
- get free(): bigint;
616
- /** The reserved balance of these tokens. Is included in the total. */
617
- get reserved(): bigint;
618
- /** The frozen balance of these tokens. Is included in the free amount. */
619
- get locked(): bigint;
620
- /** @deprecated Use balances.locked */
621
- get frozen(): bigint;
622
- /** The transferable balance of these tokens. Is generally the free amount - the miscFrozen amount. */
623
- get transferable(): bigint;
624
- /** The unavailable balance of these tokens. */
625
- get unavailable(): bigint;
626
- /** The feePayable balance of these tokens. Is generally the free amount - the feeFrozen amount. */
627
- get feePayable(): bigint;
628
- }
629
- export declare class FiatSumBalancesFormatter {
630
- #private;
631
- constructor(balances: Balances, currency: TokenRateCurrency);
632
- /**
633
- * The total balance of these tokens. Includes the free and the reserved amount.
634
- */
635
- get total(): number;
636
- /** The non-reserved balance of these tokens. Includes the frozen amount. Is included in the total. */
637
- get free(): number;
638
- /** The reserved balance of these tokens. Is included in the total. */
639
- get reserved(): number;
640
- /** The frozen balance of these tokens. Is included in the free amount. */
641
- get locked(): number;
642
- /** @deprecated Use balances.locked */
643
- get frozen(): number;
644
- /** The transferable balance of these tokens. Is generally the free amount - the miscFrozen amount. */
645
- get transferable(): number;
646
- /** The unavailable balance of these tokens. */
647
- get unavailable(): number;
648
- /** The feePayable balance of these tokens. Is generally the free amount - the feeFrozen amount. */
649
- get feePayable(): number;
650
- }
651
- export declare class SumBalancesFormatter {
652
- #private;
653
- constructor(balances: Balances);
654
- get planck(): PlanckSumBalancesFormatter;
655
- fiat(currency: TokenRateCurrency): FiatSumBalancesFormatter;
656
- change24h(currency: TokenRateCurrency): Change24hCurrencyFormatter;
657
- }
658
- export declare class Change24hCurrencyFormatter {
659
- #private;
660
- constructor(balances: Balances, currency: TokenRateCurrency);
661
- get total(): {
662
- diff: number;
663
- ratio: number;
664
- } | null;
665
- get free(): {
666
- diff: number;
667
- ratio: number;
668
- } | null;
669
- get reserved(): {
670
- diff: number;
671
- ratio: number;
672
- } | null;
673
- get locked(): {
674
- diff: number;
675
- ratio: number;
676
- } | null;
677
- get frozen(): {
678
- diff: number;
679
- ratio: number;
680
- } | null;
681
- get transferable(): {
682
- diff: number;
683
- ratio: number;
684
- } | null;
685
- get unavailable(): {
686
- diff: number;
687
- ratio: number;
688
- } | null;
689
- get feePayable(): {
690
- diff: number;
691
- ratio: number;
692
- } | null;
693
- }
694
- export declare const filterMirrorTokens: (balance: Balance, _i: number, balances: Balance[]) => boolean;
671
+ /** raw values of a given type, straight from the IBalance JSON (no Balance/formatter allocation) */
672
+ //#endregion
673
+ //#region src/types/balances.d.ts
674
+ export type NarrowBalanceType<S extends IBalance, P> = S extends {
675
+ source: P;
676
+ } ? S : never;
677
+ export type BalanceSource = BalanceJson["source"];
678
+ /** TODO: Remove this in favour of a frontend-friendly `ChaindataProvider` */
679
+ export type HydrateDb = Partial<{
680
+ networks: NetworkList;
681
+ tokens: TokenList;
682
+ tokenRates: TokenRatesList;
683
+ }>;
684
+ export type BalanceSearchQuery = Partial<NonFunctionProperties<Balance>> | ((balance: Balance) => boolean);
695
685
  //#endregion
696
686
  //#region src/types/chainConnectors.d.ts
697
687
  export type ChainConnectors = {
@@ -877,6 +867,28 @@ export declare class BalancesProvider {
877
867
  }
878
868
  export declare const getSweepStaleVariant: (balance: IBalance) => IBalance;
879
869
  //#endregion
870
+ //#region src/classes/helpers.d.ts
871
+ export declare function excludeFromTransferableAmount(locks: Amount | FormattedAmount<LockedAmount<string>, string> | Array<FormattedAmount<LockedAmount<string>, string>>): bigint;
872
+ export declare function excludeFromFeePayableLocks(locks: Amount | LockedAmount<string> | Array<LockedAmount<string>>): Array<LockedAmount<string>>;
873
+ export declare function includeInTotalExtraAmount(extra?: FormattedAmount<ExtraAmount<string>, string> | Array<FormattedAmount<ExtraAmount<string>, string>>): bigint;
874
+ /** A utility type used to extract the underlying `BalanceType` of a specific source from a generalised `BalanceJson` */
875
+ export declare const getBalanceId: (balance: Pick<IBalance, "address" | "tokenId">) => string;
876
+ /**
877
+ * An individual balance.
878
+ */
879
+ export declare const filterMirrorTokens: (balance: Balance, _i: number, balances: Balance[]) => boolean;
880
+ //#endregion
881
+ //#region src/classes/rawBalance.d.ts
882
+ /** raw "locked" values, straight from the IBalance JSON (see getRawTotalPlanck) */
883
+ export declare const getRawLocks: (balance: IBalance) => AmountWithLabel<string>[];
884
+ /**
885
+ * Computes `new Balance(b).total.planck` without constructing a Balance (which allocates
886
+ * several BalanceFormatters per access) — used for high-frequency zero-balance filtering.
887
+ * MUST mirror Balance.total exactly, including the DelegatedStaking-hold/nompool rule
888
+ * (guarded by a parity test in balance-raw-helpers.test.ts).
889
+ */
890
+ export declare const getRawTotalPlanck: (balance: IBalance) => bigint;
891
+ //#endregion
880
892
  //#region src/modules/abis/erc20BalancesAggregator.d.ts
881
893
  export declare const erc20BalancesAggregatorAbi: readonly [{
882
894
  readonly name: "balances";
@@ -1876,7 +1888,7 @@ export declare const calculateToken2022TransferFee: (transferFeeConfig: {
1876
1888
  newerTransferFee: TransferFee;
1877
1889
  }, epoch: bigint, amount: bigint) => bigint;
1878
1890
  //#endregion
1879
- //#region ../../node_modules/.pnpm/@solana+nominal-types@8.2.0_typescript@7.0.2/node_modules/@solana/nominal-types/dist/types/index.d.ts
1891
+ //#region ../../node_modules/.pnpm/@solana+nominal-types@8.3.0_typescript@7.0.2/node_modules/@solana/nominal-types/dist/types/index.d.ts
1880
1892
  type StringEncoding = 'base58' | 'base64';
1881
1893
  /**
1882
1894
  * Use this to produce a new type that satisfies the original type, but not the other way around.
@@ -1947,7 +1959,7 @@ type EncodedString<T extends string, TEncoding extends StringEncoding> = Nominal
1947
1959
  */
1948
1960
  type NominalType<TKey extends string, TMarker extends string> = { readonly [K in `__${TKey}:@solana/kit`]: TMarker; };
1949
1961
  //#endregion
1950
- //#region ../../node_modules/.pnpm/@solana+addresses@8.2.0_fastestsmallesttextencoderdecoder@1.0.22_typescript@7.0.2/node_modules/@solana/addresses/dist/types/address.d.ts
1962
+ //#region ../../node_modules/.pnpm/@solana+addresses@8.3.0_fastestsmallesttextencoderdecoder@1.0.22_typescript@7.0.2/node_modules/@solana/addresses/dist/types/address.d.ts
1951
1963
  /**
1952
1964
  * Represents a string that validates as a Solana address. Functions that require well-formed
1953
1965
  * addresses should specify their inputs in terms of this type.
@@ -3715,22 +3727,22 @@ type I5rtkmhm2dng4u = {
3715
3727
  "new": SS58String;
3716
3728
  };
3717
3729
  type I4gqmlq9k6jlk3 = Array<SizedHex<20>>;
3718
- type I3gs634k5hg7e2 = Array<{
3730
+ type Irbru2v9j271i = Array<{
3719
3731
  "phase": Phase;
3720
3732
  "event": Enum<{
3721
- "System": Anonymize$1<Ifcemg54q8bo51>;
3733
+ "System": Anonymize$1<Icg4e87nf06rj2>;
3722
3734
  "Grandpa": GrandpaEvent;
3723
3735
  "Balances": Anonymize$1<Iao8h4hv7atnq3>;
3724
3736
  "TransactionPayment": TransactionPaymentEvent;
3725
- "SubtensorModule": Anonymize$1<I1kbgtdk80ope3>;
3726
- "Utility": Anonymize$1<Ibifm45sfkfuq>;
3727
- "Sudo": Anonymize$1<I2bml8gilnr9hm>;
3728
- "Multisig": Anonymize$1<I4u52lpbs07fme>;
3737
+ "SubtensorModule": Anonymize$1<I3kjjl1vjtfb0a>;
3738
+ "Utility": Anonymize$1<I363fmqeuv06ol>;
3739
+ "Sudo": Anonymize$1<I2ivimfli3dgp1>;
3740
+ "Multisig": Anonymize$1<I6n3fedd5u02md>;
3729
3741
  "Preimage": PreimageEvent;
3730
- "Scheduler": Anonymize$1<I3d26immfllvam>;
3731
- "Proxy": Anonymize$1<I73doki8p5behi>;
3732
- "Commitments": Anonymize$1<I5ohlg8gv4pe9g>;
3733
- "AdminUtils": Anonymize$1<I7e2dfidi4918r>;
3742
+ "Scheduler": Anonymize$1<I16l28vbmivm8t>;
3743
+ "Proxy": Anonymize$1<I5mkp35aomkbdn>;
3744
+ "Commitments": Anonymize$1<I2bvu7rvt3acvt>;
3745
+ "AdminUtils": Anonymize$1<I38ot7d3htb975>;
3734
3746
  "SafeMode": Anonymize$1<I3q8c83f5dvokp>;
3735
3747
  "Ethereum": Anonymize$1<I510u4q1qqh897>;
3736
3748
  "EVM": Anonymize$1<I9k071kk4cn1u8>;
@@ -3739,12 +3751,12 @@ type I3gs634k5hg7e2 = Array<{
3739
3751
  "Crowdloan": Anonymize$1<Idt6e28sh9mlt5>;
3740
3752
  "Swap": Anonymize$1<I65ga25qerlven>;
3741
3753
  "Contracts": Anonymize$1<I211sbjvh5hjqu>;
3742
- "MevShield": Anonymize$1<Ib9g7kvdd35o5>;
3743
- "LimitOrders": Anonymize$1<I5atc3v03sk1i>;
3754
+ "MevShield": Anonymize$1<I3d2e0rnod8ms0>;
3755
+ "LimitOrders": Anonymize$1<I8p9ve97hjfjlt>;
3744
3756
  }>;
3745
3757
  "topics": Anonymize$1<Ic5m5lp1oioo8r>;
3746
3758
  }>;
3747
- type Ifcemg54q8bo51 = AnonymousEnum$1<{
3759
+ type Icg4e87nf06rj2 = AnonymousEnum$1<{
3748
3760
  /**
3749
3761
  * An extrinsic completed successfully.
3750
3762
  */
@@ -3752,7 +3764,7 @@ type Ifcemg54q8bo51 = AnonymousEnum$1<{
3752
3764
  /**
3753
3765
  * An extrinsic failed.
3754
3766
  */
3755
- "ExtrinsicFailed": Anonymize$1<I6g6pbm61ngfbu>;
3767
+ "ExtrinsicFailed": Anonymize$1<I474kpdjo5rcju>;
3756
3768
  /**
3757
3769
  * `:code` was updated.
3758
3770
  */
@@ -3776,13 +3788,13 @@ type Ifcemg54q8bo51 = AnonymousEnum$1<{
3776
3788
  /**
3777
3789
  * An invalid authorized upgrade was rejected while trying to apply it.
3778
3790
  */
3779
- "RejectedInvalidAuthorizedUpgrade": Anonymize$1<I5frontl14n8fc>;
3791
+ "RejectedInvalidAuthorizedUpgrade": Anonymize$1<Id6qp8mkqpsm2t>;
3780
3792
  }>;
3781
- type I6g6pbm61ngfbu = {
3782
- "dispatch_error": Anonymize$1<Ibb8u96f04kc5k>;
3793
+ type I474kpdjo5rcju = {
3794
+ "dispatch_error": Anonymize$1<I8p4c3h8cei06k>;
3783
3795
  "dispatch_info": Anonymize$1<Ic9s8f85vjtncc>;
3784
3796
  };
3785
- type Ibb8u96f04kc5k = AnonymousEnum$1<{
3797
+ type I8p4c3h8cei06k = AnonymousEnum$1<{
3786
3798
  "Other": undefined;
3787
3799
  "CannotLookup": undefined;
3788
3800
  "BadOrigin": undefined;
@@ -3794,27 +3806,27 @@ type Ibb8u96f04kc5k = AnonymousEnum$1<{
3794
3806
  "Grandpa": Anonymize$1<I7q8i0pp1gkas6>;
3795
3807
  "Balances": Anonymize$1<Idj13i7adlomht>;
3796
3808
  "TransactionPayment": undefined;
3797
- "SubtensorModule": Anonymize$1<Iev725cikdtgnb>;
3809
+ "SubtensorModule": Anonymize$1<Ig8a5rkrhqg1t>;
3798
3810
  "Utility": Anonymize$1<I499qmubmch1cg>;
3799
3811
  "Sudo": Anonymize$1<Iaug04qjhbli00>;
3800
3812
  "Multisig": Anonymize$1<Ia76qmhhg4jvb9>;
3801
3813
  "Preimage": Anonymize$1<I4cfhml1prt4lu>;
3802
3814
  "Scheduler": Anonymize$1<If7oa8fprnilo5>;
3803
3815
  "Proxy": Anonymize$1<I7ae37ntp06co6>;
3804
- "Commitments": Anonymize$1<I8a8dfn9etteh2>;
3805
- "AdminUtils": Anonymize$1<I2guea50s3p1tm>;
3816
+ "Commitments": Anonymize$1<Ib6fkib7o6l8hn>;
3817
+ "AdminUtils": Anonymize$1<Ib04gplfgb2o95>;
3806
3818
  "SafeMode": Anonymize$1<I65gapcjsc3grr>;
3807
3819
  "Ethereum": Anonymize$1<I1mp6vnoh32l4q>;
3808
3820
  "EVM": Anonymize$1<I226s9mgj51cd2>;
3809
3821
  "EVMChainId": undefined;
3810
3822
  "BaseFee": undefined;
3811
3823
  "Drand": Anonymize$1<I8veee4gumsdel>;
3812
- "Crowdloan": Anonymize$1<Ib6urnafldre7p>;
3824
+ "Crowdloan": Anonymize$1<I7fi6dghk3ei1e>;
3813
3825
  "Swap": Anonymize$1<I22ibgc43i6ncp>;
3814
3826
  "Contracts": Anonymize$1<I2489g9rnboo1t>;
3815
3827
  "MevShield": Anonymize$1<I9nr0khl8rsnc8>;
3816
3828
  "AlphaAssets": undefined;
3817
- "LimitOrders": Anonymize$1<I3nvrjjlqigcv3>;
3829
+ "LimitOrders": Anonymize$1<Ibvo0g98cpnkei>;
3818
3830
  }>;
3819
3831
  "ConsumerRemaining": undefined;
3820
3832
  "NoProviders": undefined;
@@ -3828,7 +3840,7 @@ type Ibb8u96f04kc5k = AnonymousEnum$1<{
3828
3840
  "RootNotAllowed": undefined;
3829
3841
  "Trie": Anonymize$1<Idh4cj79bvroj8>;
3830
3842
  }>;
3831
- type Iev725cikdtgnb = AnonymousEnum$1<{
3843
+ type Ig8a5rkrhqg1t = AnonymousEnum$1<{
3832
3844
  /**
3833
3845
  * The root network does not exist.
3834
3846
  */
@@ -4013,8 +4025,8 @@ type Iev725cikdtgnb = AnonymousEnum$1<{
4013
4025
  */
4014
4026
  "RegistrationNotPermittedOnRootSubnet": undefined;
4015
4027
  /**
4016
- * Retired: root admission is burn-based and no longer stake-gated.
4017
- * Kept so later error variants keep their metadata indices.
4028
+ * A root registrant must hold at least as much root stake as the seat it
4029
+ * would evict.
4018
4030
  */
4019
4031
  "StakeTooLowForRoot": undefined;
4020
4032
  /**
@@ -4475,8 +4487,8 @@ type Iev725cikdtgnb = AnonymousEnum$1<{
4475
4487
  */
4476
4488
  "ColdkeyCollateralPositionsFull": undefined;
4477
4489
  /**
4478
- * Retired (kept for SCALE index stability): direct basket deposits into an
4479
- * uncurated fund are now held as the fund's root (TAO cash) slot instead of
4490
+ * Retired (kept for SCALE index stability): direct basket deposits into a fund
4491
+ * with no holdings are held as the fund's root (TAO cash) slot instead of
4480
4492
  * erroring.
4481
4493
  */
4482
4494
  "BasketHasNoWeights": undefined;
@@ -4487,19 +4499,91 @@ type Iev725cikdtgnb = AnonymousEnum$1<{
4487
4499
  */
4488
4500
  "RootStakeLocked": undefined;
4489
4501
  /**
4490
- * The `migrate_seed_beta_basket_v2` seed or its per-hotkey deferred-dividend release
4491
- * has not completed. Basket deposits, claims, coldkey / root-touching hotkey swaps,
4492
- * and root stake add/remove/transfer/swap are paused until it finishes so snapshotted
4493
- * conversion cannot desync from live stake (`Σ owed == BasketShares`).
4502
+ * The `migrate_seed_beta_basket_v2` seed has not completed. Basket deposits, claims,
4503
+ * coldkey / root-touching hotkey swaps, and root stake add/remove/transfer/swap are
4504
+ * paused until it finishes so snapshotted conversion cannot desync from live stake
4505
+ * (`Σ owed == BasketShares`).
4494
4506
  */
4495
4507
  "BetaBasketSeedInProgress": undefined;
4496
4508
  /**
4497
- * `set_root_weights` is disabled network-wide ([`crate::RootWeightSettingEnabled`]
4498
- * is false). Root Reborn launches gated: every fund runs the null strategy
4499
- * (dividends accumulate in place) until weight setting is switched on by
4500
- * governance or a later upgrade.
4509
+ * Retired (kept for SCALE index stability): the `set_root_weights` extrinsic and
4510
+ * its network-wide gate were removed. Funds have no target vector; dividends
4511
+ * accumulate in place and composition changes only through `swap_basket`.
4501
4512
  */
4502
4513
  "RootWeightSettingDisabled": undefined;
4514
+ /**
4515
+ * A root claim would process more root hotkeys and basket rows than the
4516
+ * fixed admission envelope. Use
4517
+ * `claim_root_with_hotkey` per validator so admission weight matches
4518
+ * the holdings actually walked.
4519
+ */
4520
+ "RootClaimTooHeavy": undefined;
4521
+ /**
4522
+ * Retired (kept for SCALE index stability on the 463 testnet/devnet runtime):
4523
+ * `set_root_weights` concentration cap. The live guard is
4524
+ * [`Error::BasketConcentrationCapExceeded`].
4525
+ */
4526
+ "RootWeightCapExceeded": undefined;
4527
+ /**
4528
+ * A queued root-dividend deposit could not be settled. Operations which change
4529
+ * the hotkey's root claimant base must retry after the deposit becomes executable.
4530
+ */
4531
+ "BasketDepositPending": undefined;
4532
+ /**
4533
+ * A per-subnet weight batch is empty or has more items than there are networks.
4534
+ */
4535
+ "InvalidBatchLength": undefined;
4536
+ /**
4537
+ * The destination coldkey already stakes through the maximum number of hotkeys
4538
+ * that third-party transfers may add, or the signer's own `StakingHotkeys` list is
4539
+ * at its cap. Staking to a hotkey the coldkey already stakes through is still
4540
+ * accepted.
4541
+ */
4542
+ "TooManyStakingHotkeys": undefined;
4543
+ /**
4544
+ * The coldkey stakes through more hotkeys, or holds more stake positions, than a
4545
+ * coldkey swap can move in one call. Consolidate (unstake or move stake) first.
4546
+ */
4547
+ "ColdkeySwapTooHeavy": undefined;
4548
+ /**
4549
+ * A `swap_basket` buy would leave the destination holding above
4550
+ * [`crate::BasketConcentrationCap`] of fund NAV (holdings marked at realizable
4551
+ * value). With the cap at 1/16 a traded fund must spread across at least 16
4552
+ * holdings. Not enforced while the chain has fewer subnets than the cap demands.
4553
+ */
4554
+ "BasketConcentrationCapExceeded": undefined;
4555
+ /**
4556
+ * `swap_basket` is disabled network-wide ([`crate::BasketTradingEnabled`] is false).
4557
+ */
4558
+ "BasketTradingDisabled": undefined;
4559
+ /**
4560
+ * Basket trading is frozen for this validator hotkey by governance
4561
+ * ([`crate::BasketTradingFrozen`]).
4562
+ */
4563
+ "BasketTradingFrozen": undefined;
4564
+ /**
4565
+ * The trade would push more TAO through the fund than its turnover bucket holds
4566
+ * ([`crate::BasketDailyTurnoverCap`] of fund NAV, refilling over
4567
+ * [`crate::BASKET_TRADE_REFILL_BLOCKS`]). Wait for the bucket to refill or trade
4568
+ * a smaller amount.
4569
+ */
4570
+ "BasketTurnoverBudgetExceeded": undefined;
4571
+ /**
4572
+ * `swap_basket` origin and destination are the same subnet.
4573
+ */
4574
+ "BasketSameSubnet": undefined;
4575
+ /**
4576
+ * The trade would leave the fund holding more of the destination subnet than
4577
+ * [`crate::BasketLiquidityCap`] allows as a share of that subnet's alpha reserve.
4578
+ * Trade a smaller amount or pick a deeper pool.
4579
+ */
4580
+ "BasketLiquidityCapExceeded": undefined;
4581
+ /**
4582
+ * The `swap_basket` buy leg credited less than the caller's `min_amount_out`
4583
+ * (destination alpha, or TAO when the destination is root). The trade rolled
4584
+ * back. Re-quote and retry, or lower the floor.
4585
+ */
4586
+ "BasketMinOutNotMet": undefined;
4503
4587
  }>;
4504
4588
  type I499qmubmch1cg = AnonymousEnum$1<{
4505
4589
  /**
@@ -4553,7 +4637,7 @@ type I7ae37ntp06co6 = AnonymousEnum$1<{
4553
4637
  */
4554
4638
  "InvalidDerivedAccountId": undefined;
4555
4639
  }>;
4556
- type I8a8dfn9etteh2 = AnonymousEnum$1<{
4640
+ type Ib6fkib7o6l8hn = AnonymousEnum$1<{
4557
4641
  /**
4558
4642
  * Account passed too many additional fields to their commitment
4559
4643
  */
@@ -4570,8 +4654,12 @@ type I8a8dfn9etteh2 = AnonymousEnum$1<{
4570
4654
  * Indicates that unreserve returned a leftover, which is unexpected.
4571
4655
  */
4572
4656
  "UnexpectedUnreserveLeftover": undefined;
4657
+ /**
4658
+ * `TimelockRevealFailed` fields may only be created by the runtime.
4659
+ */
4660
+ "TimelockRevealFailedNotAllowed": undefined;
4573
4661
  }>;
4574
- type I2guea50s3p1tm = AnonymousEnum$1<{
4662
+ type Ib04gplfgb2o95 = AnonymousEnum$1<{
4575
4663
  /**
4576
4664
  * The subnet does not exist, check the netuid parameter
4577
4665
  */
@@ -4636,6 +4724,10 @@ type I2guea50s3p1tm = AnonymousEnum$1<{
4636
4724
  * The collateral drain ratio must be positive and at most the settable maximum.
4637
4725
  */
4638
4726
  "CollateralDrainRatioOutOfBounds": undefined;
4727
+ /**
4728
+ * GRANDPA changes must take effect at the end of the current block.
4729
+ */
4730
+ "GrandpaChangeDelayMustBeZero": undefined;
4639
4731
  }>;
4640
4732
  type I65gapcjsc3grr = AnonymousEnum$1<{
4641
4733
  /**
@@ -4755,7 +4847,7 @@ type I8veee4gumsdel = AnonymousEnum$1<{
4755
4847
  */
4756
4848
  "PulseVerificationError": undefined;
4757
4849
  }>;
4758
- type Ib6urnafldre7p = AnonymousEnum$1<{
4850
+ type I7fi6dghk3ei1e = AnonymousEnum$1<{
4759
4851
  /**
4760
4852
  * The crowdloan initial deposit is too low.
4761
4853
  */
@@ -4864,6 +4956,10 @@ type Ib6urnafldre7p = AnonymousEnum$1<{
4864
4956
  * The minimum contribution is too high.
4865
4957
  */
4866
4958
  "MinimumContributionTooHigh": undefined;
4959
+ /**
4960
+ * The finalization call did not spend the full amount raised.
4961
+ */
4962
+ "FundsNotSettled": undefined;
4867
4963
  }>;
4868
4964
  type I22ibgc43i6ncp = AnonymousEnum$1<{
4869
4965
  /**
@@ -5108,7 +5204,7 @@ type I9nr0khl8rsnc8 = AnonymousEnum$1<{
5108
5204
  */
5109
5205
  "WeightExceedsAbsoluteMax": undefined;
5110
5206
  }>;
5111
- type I3nvrjjlqigcv3 = AnonymousEnum$1<{
5207
+ type Ibvo0g98cpnkei = AnonymousEnum$1<{
5112
5208
  /**
5113
5209
  * The provided signature does not match the order payload and signer.
5114
5210
  */
@@ -5190,12 +5286,48 @@ type I3nvrjjlqigcv3 = AnonymousEnum$1<{
5190
5286
  * differently-composed batch.
5191
5287
  */
5192
5288
  "ZeroShareInBatch": undefined;
5289
+ /**
5290
+ * Linked order named a provider with no recorded output.
5291
+ */
5292
+ "NoLinkedOutput": undefined;
5293
+ /**
5294
+ * Linked order signer differs from the provider's signer.
5295
+ */
5296
+ "LinkedOutputSignerMismatch": undefined;
5297
+ /**
5298
+ * Provider output asset is not what the linked order spends.
5299
+ */
5300
+ "LinkedOutputAssetMismatch": undefined;
5301
+ /**
5302
+ * Provider record has passed its `expires_at` deadline.
5303
+ */
5304
+ "LinkedOutputExpired": undefined;
5305
+ /**
5306
+ * Linked fraction floored to zero against the recorded output.
5307
+ */
5308
+ "LinkedAmountResolvedToZero": undefined;
5309
+ /**
5310
+ * Partial fill submitted against a linked (consuming) order.
5311
+ */
5312
+ "PartialFillNotSupportedForLinkedAmount": undefined;
5313
+ /**
5314
+ * Partial fill submitted against a provider (`has_linked_order`).
5315
+ */
5316
+ "PartialFillNotSupportedForProvider": undefined;
5317
+ /**
5318
+ * `prune_linked_output` called by a non-signer on an unexpired record.
5319
+ */
5320
+ "LinkedOutputNotPrunable": undefined;
5321
+ /**
5322
+ * The order owner is temporarily prohibited from moving funds.
5323
+ */
5324
+ "OrderSignerFrozen": undefined;
5193
5325
  }>;
5194
- type I5frontl14n8fc = {
5326
+ type Id6qp8mkqpsm2t = {
5195
5327
  "code_hash": SizedHex<32>;
5196
- "error": Anonymize$1<Ibb8u96f04kc5k>;
5328
+ "error": Anonymize$1<I8p4c3h8cei06k>;
5197
5329
  };
5198
- type I1kbgtdk80ope3 = AnonymousEnum$1<{
5330
+ type I3kjjl1vjtfb0a = AnonymousEnum$1<{
5199
5331
  /**
5200
5332
  * a new network is added.
5201
5333
  */
@@ -5221,7 +5353,8 @@ type I1kbgtdk80ope3 = AnonymousEnum$1<{
5221
5353
  */
5222
5354
  "WeightsSet": Anonymize$1<I9jd27rnpm8ttv>;
5223
5355
  /**
5224
- * a root validator set its beta-basket distribution vector (uid on the root subnet).
5356
+ * Retired (kept for SCALE index stability): emitted by the removed
5357
+ * `set_root_weights` extrinsic. Never emitted on current runtimes.
5225
5358
  */
5226
5359
  "RootWeightsSet": number;
5227
5360
  /**
@@ -5399,7 +5532,7 @@ type I1kbgtdk80ope3 = AnonymousEnum$1<{
5399
5532
  /**
5400
5533
  * a sudo call is done.
5401
5534
  */
5402
- "Sudid": Anonymize$1<I38vhitvbd00gg>;
5535
+ "Sudid": Anonymize$1<I2tgj23u15fhfj>;
5403
5536
  /**
5404
5537
  * registration is allowed/disallowed for a subnet.
5405
5538
  */
@@ -5585,7 +5718,7 @@ type I1kbgtdk80ope3 = AnonymousEnum$1<{
5585
5718
  * * **netuid**: The netuid of the batch item that failed.
5586
5719
  * * **error**: The dispatch error emitted by the failed item.
5587
5720
  */
5588
- "BatchWeightItemFailed": Anonymize$1<I6fil5rhn4n2kv>;
5721
+ "BatchWeightItemFailed": Anonymize$1<I2tborcevr26jg>;
5589
5722
  /**
5590
5723
  * Stake has been transferred from one coldkey to another on the same subnet.
5591
5724
  * Parameters:
@@ -5727,16 +5860,17 @@ type I1kbgtdk80ope3 = AnonymousEnum$1<{
5727
5860
  */
5728
5861
  "RootClaimed": Anonymize$1<I1lh338fvf2g5i>;
5729
5862
  /**
5730
- * A validator's beta basket (fund) received a dividend deposit: the dividend was
5731
- * deployed across subnets per the validator's weight vector, adding `tao` of
5732
- * realizable NAV to the fund and minting `shares` fund shares at the pre-deposit NAV.
5863
+ * A validator's beta basket (fund) received a dividend deposit: the dividend alpha
5864
+ * was credited in place to the fund's holding on the subnet it was earned on,
5865
+ * adding `tao` of realizable NAV to the fund and minting `shares` fund shares at
5866
+ * the pre-deposit NAV.
5733
5867
  */
5734
5868
  "BasketDeposited": Anonymize$1<I8raosbmu7qne>;
5735
5869
  /**
5736
5870
  * A staker deposited TAO from their balance directly into a validator's beta
5737
- * basket: the TAO was deployed across subnets per the validator's weight vector
5738
- * and `shares` fund shares were credited to the staker via their claimed
5739
- * watermark.
5871
+ * basket: the TAO was split across the fund's current holdings by value (or held
5872
+ * as the root cash slot of an empty fund) and `shares` fund shares were credited
5873
+ * to the staker via their claimed watermark.
5740
5874
  */
5741
5875
  "BasketStakedIn": Anonymize$1<Ib9iq518ulvk6b>;
5742
5876
  /**
@@ -5861,11 +5995,57 @@ type I1kbgtdk80ope3 = AnonymousEnum$1<{
5861
5995
  * A miner set the self-maintaining collateral floor for a hotkey.
5862
5996
  */
5863
5997
  "MinCollateralSet": Anonymize$1<I8311u0vagk8ti>;
5998
+ /**
5999
+ * A subnet's liquid-alpha consensus mode was updated.
6000
+ * Appended to preserve existing SCALE event indices.
6001
+ */
6002
+ "LiquidAlphaConsensusModeSet": Anonymize$1<I3fk3bga536kbc>;
6003
+ /**
6004
+ * A fund's frozen display baseline was stamped at its first share mint: its
6005
+ * index-spliced display and total-return stake prices start at the current
6006
+ * index levels from this block on (see `BetaBaseline` storage). Appended to
6007
+ * preserve existing SCALE event indices.
6008
+ */
6009
+ "BetaBaselineStamped": Anonymize$1<Ie7hipi75c7vn0>;
6010
+ /**
6011
+ * A terminally untradeable basket alpha slice was explicitly written off. This is
6012
+ * distinct from a swap/transfer failure: only a pool too shallow to execute any sale
6013
+ * is eligible, and removing the exact slice preserves every holder's fund proportion.
6014
+ * Appended to preserve existing SCALE event indices.
6015
+ */
6016
+ "BasketAlphaWrittenOff": Anonymize$1<I5lc3fje3csiff>;
6017
+ /**
6018
+ * A contributor's lease dividends could not be transferred this interval. The amount
6019
+ * is recorded against that contributor and retried at the next distribution.
6020
+ */
6021
+ "SubnetLeaseDividendSkipped": Anonymize$1<Ic149bnrif7lpr>;
6022
+ /**
6023
+ * A share pool's denominator was rewritten to the sum of its live shares, so every
6024
+ * member is quoted exactly its fraction of the pool value.
6025
+ */
6026
+ "SharePoolDenominatorReconciled": Anonymize$1<I7f38r2vt6r9k1>;
6027
+ /**
6028
+ * A validator rebalanced its beta basket: `alpha_sold` of `origin_netuid` was sold
6029
+ * for `tao_mid` TAO, which bought `alpha_bought` of `destination_netuid`. Fund
6030
+ * shares and staker entitlements are unaffected; only the fund's composition changed.
6031
+ */
6032
+ "BasketSwapped": Anonymize$1<I4c943g1d2vpls>;
6033
+ /**
6034
+ * A root claim skipped `rows` dust rows of the fund: rows whose whole holding was
6035
+ * worth less than `min(BasketClaimRowDustCapTao, BasketClaimRowDustBps × anchored
6036
+ * NAV)`, or whose slice for this claimant was worth less than
6037
+ * `BasketClaimSliceDustTao`, each worth at most `BasketClaimForfeitCapTao` for this
6038
+ * claimant, all at the anchored (fast-EMA-capped) mark. Those rows were neither sold
6039
+ * nor paid. The claim burned the whole entitlement, so the claimant's slices of those
6040
+ * rows — about `forfeited_tao_est` at the pre-sale realizable quote — stay in the fund
6041
+ * for the remaining holders.
6042
+ */
6043
+ "BasketClaimDustSkipped": Anonymize$1<I2oi507u9m8p7e>;
5864
6044
  }>;
5865
6045
  type Io45lnue7n40k = [SS58String, SS58String, bigint, bigint, number, bigint];
5866
6046
  type I83e4tgdv5ohg1 = [SS58String, SS58String, number, SS58String, number, bigint];
5867
6047
  type I39p6ln31i4n46 = [number, boolean];
5868
- type I38vhitvbd00gg = ResultPayload<undefined, Anonymize$1<Ibb8u96f04kc5k>>;
6048
+ type I2tgj23u15fhfj = ResultPayload<undefined, Anonymize$1<I8p4c3h8cei06k>>;
5869
6049
  type Ifkgc6cte1k96e = {
5870
6050
  /**
5871
6051
  * the account ID of coldkey
@@ -5940,7 +6120,7 @@ type I4hnmf90qkrer9 = {
5940
6120
  type Ijsohbv0raf36 = [SS58String, number, SizedHex<32>];
5941
6121
  type I4ga01hppthoe1 = [SS58String, number, Anonymize$1<Ic5m5lp1oioo8r>];
5942
6122
  type I4hckkcv10tcue = [Anonymize$1<Icgljjb6j82uhn>, SS58String];
5943
- type I6fil5rhn4n2kv = [number, Anonymize$1<Ibb8u96f04kc5k>];
6123
+ type I2tborcevr26jg = [number, Anonymize$1<I8p4c3h8cei06k>];
5944
6124
  type If2ieedn10ujdv = [SS58String, SS58String, SS58String, number, number, bigint];
5945
6125
  type Iaseh340tnovdh = [SS58String, SS58String, number, number, bigint];
5946
6126
  type I8m5umt6snnmlj = [SS58String, SS58String, bigint, number];
@@ -6081,8 +6261,8 @@ type I8raosbmu7qne = {
6081
6261
  */
6082
6262
  "hotkey": SS58String;
6083
6263
  /**
6084
- * Realizable NAV the deposit added to the fund (post-buy NAV minus the
6085
- * pre-buy snapshot; the deposit bears its own buy slippage).
6264
+ * Realizable NAV the deposit added to the fund (the origin holding's
6265
+ * realizable value after the credit minus before it).
6086
6266
  */
6087
6267
  "tao": bigint;
6088
6268
  /**
@@ -6472,12 +6652,93 @@ type I8311u0vagk8ti = {
6472
6652
  */
6473
6653
  "min_locked": bigint;
6474
6654
  };
6475
- type Ibifm45sfkfuq = AnonymousEnum$1<{
6655
+ type I3fk3bga536kbc = [number, Anonymize$1<I229aourr5nmc9>];
6656
+ type I229aourr5nmc9 = AnonymousEnum$1<{
6657
+ "Current": undefined;
6658
+ "Previous": undefined;
6659
+ "Auto": undefined;
6660
+ }>;
6661
+ type Ie7hipi75c7vn0 = {
6662
+ /**
6663
+ * Validator hotkey whose fund was stamped.
6664
+ */
6665
+ "hotkey": SS58String;
6666
+ };
6667
+ type I5lc3fje3csiff = {
6668
+ /**
6669
+ * Validator hotkey whose basket held the alpha.
6670
+ */
6671
+ "hotkey": SS58String;
6672
+ /**
6673
+ * Subnet whose pool was terminally too shallow.
6674
+ */
6675
+ "netuid": number;
6676
+ /**
6677
+ * Alpha removed from basket custody and recorded as burned.
6678
+ */
6679
+ "alpha": bigint;
6680
+ };
6681
+ type I7f38r2vt6r9k1 = {
6682
+ /**
6683
+ * The hotkey whose pool was reconciled.
6684
+ */
6685
+ "hotkey": SS58String;
6686
+ /**
6687
+ * The subnet of the pool.
6688
+ */
6689
+ "netuid": number;
6690
+ };
6691
+ type I4c943g1d2vpls = {
6692
+ /**
6693
+ * Validator hotkey whose basket was rebalanced.
6694
+ */
6695
+ "hotkey": SS58String;
6696
+ /**
6697
+ * Subnet sold out of (root = the fund's TAO slot).
6698
+ */
6699
+ "origin_netuid": number;
6700
+ /**
6701
+ * Subnet bought into (root = the fund's TAO slot).
6702
+ */
6703
+ "destination_netuid": number;
6704
+ /**
6705
+ * Alpha (or TAO when origin is root) removed from the origin holding.
6706
+ */
6707
+ "alpha_sold": bigint;
6708
+ /**
6709
+ * TAO that passed through the middle of the swap; counted against the fund's
6710
+ * daily turnover budget.
6711
+ */
6712
+ "tao_mid": bigint;
6713
+ /**
6714
+ * Alpha (or TAO when destination is root) added to the destination holding.
6715
+ */
6716
+ "alpha_bought": bigint;
6717
+ };
6718
+ type I2oi507u9m8p7e = {
6719
+ /**
6720
+ * Validator hotkey the basket belongs to.
6721
+ */
6722
+ "hotkey": SS58String;
6723
+ /**
6724
+ * Staker coldkey that claimed.
6725
+ */
6726
+ "coldkey": SS58String;
6727
+ /**
6728
+ * Fund rows the claim did not sell.
6729
+ */
6730
+ "rows": number;
6731
+ /**
6732
+ * Estimated TAO value of the claimant's slices of those rows, left in the fund.
6733
+ */
6734
+ "forfeited_tao_est": bigint;
6735
+ };
6736
+ type I363fmqeuv06ol = AnonymousEnum$1<{
6476
6737
  /**
6477
6738
  * Batch of dispatches did not complete fully. Index of first failing dispatch given, as
6478
6739
  * well as the error.
6479
6740
  */
6480
- "BatchInterrupted": Anonymize$1<Icea0g1kirlibu>;
6741
+ "BatchInterrupted": Anonymize$1<I1ljeiuva9p2f8>;
6481
6742
  /**
6482
6743
  * Batch of dispatches completed fully with no error.
6483
6744
  */
@@ -6493,11 +6754,11 @@ type Ibifm45sfkfuq = AnonymousEnum$1<{
6493
6754
  /**
6494
6755
  * A single item within a Batch of dispatches has completed with error.
6495
6756
  */
6496
- "ItemFailed": Anonymize$1<Ievlf9lhdsr1nr>;
6757
+ "ItemFailed": Anonymize$1<I2d979qe85gckv>;
6497
6758
  /**
6498
6759
  * A call was dispatched.
6499
6760
  */
6500
- "DispatchedAs": Anonymize$1<I19524pum8hcn3>;
6761
+ "DispatchedAs": Anonymize$1<Idh038mr0ve455>;
6501
6762
  /**
6502
6763
  * Main call was dispatched.
6503
6764
  */
@@ -6505,26 +6766,26 @@ type Ibifm45sfkfuq = AnonymousEnum$1<{
6505
6766
  /**
6506
6767
  * The fallback call was dispatched.
6507
6768
  */
6508
- "IfElseFallbackCalled": Anonymize$1<Ibc87trltre934>;
6769
+ "IfElseFallbackCalled": Anonymize$1<I86e6l1su1si95>;
6509
6770
  }>;
6510
- type Icea0g1kirlibu = {
6771
+ type I1ljeiuva9p2f8 = {
6511
6772
  "index": number;
6512
- "error": Anonymize$1<Ibb8u96f04kc5k>;
6773
+ "error": Anonymize$1<I8p4c3h8cei06k>;
6513
6774
  };
6514
- type Ievlf9lhdsr1nr = {
6515
- "error": Anonymize$1<Ibb8u96f04kc5k>;
6775
+ type I2d979qe85gckv = {
6776
+ "error": Anonymize$1<I8p4c3h8cei06k>;
6516
6777
  };
6517
- type I19524pum8hcn3 = {
6518
- "result": Anonymize$1<I38vhitvbd00gg>;
6778
+ type Idh038mr0ve455 = {
6779
+ "result": Anonymize$1<I2tgj23u15fhfj>;
6519
6780
  };
6520
- type Ibc87trltre934 = {
6521
- "main_error": Anonymize$1<Ibb8u96f04kc5k>;
6781
+ type I86e6l1su1si95 = {
6782
+ "main_error": Anonymize$1<I8p4c3h8cei06k>;
6522
6783
  };
6523
- type I2bml8gilnr9hm = AnonymousEnum$1<{
6784
+ type I2ivimfli3dgp1 = AnonymousEnum$1<{
6524
6785
  /**
6525
6786
  * A sudo call just took place.
6526
6787
  */
6527
- "Sudid": Anonymize$1<I7d2gga3mq2mfi>;
6788
+ "Sudid": Anonymize$1<Iep7dr37rblk5l>;
6528
6789
  /**
6529
6790
  * The sudo key has been updated.
6530
6791
  */
@@ -6536,15 +6797,15 @@ type I2bml8gilnr9hm = AnonymousEnum$1<{
6536
6797
  /**
6537
6798
  * A [sudo_as](Pallet::sudo_as) call just took place.
6538
6799
  */
6539
- "SudoAsDone": Anonymize$1<I7d2gga3mq2mfi>;
6800
+ "SudoAsDone": Anonymize$1<Iep7dr37rblk5l>;
6540
6801
  }>;
6541
- type I7d2gga3mq2mfi = {
6802
+ type Iep7dr37rblk5l = {
6542
6803
  /**
6543
6804
  * The result of the call made by the sudo user.
6544
6805
  */
6545
- "sudo_result": Anonymize$1<I38vhitvbd00gg>;
6806
+ "sudo_result": Anonymize$1<I2tgj23u15fhfj>;
6546
6807
  };
6547
- type I4u52lpbs07fme = AnonymousEnum$1<{
6808
+ type I6n3fedd5u02md = AnonymousEnum$1<{
6548
6809
  /**
6549
6810
  * A new multisig operation has begun.
6550
6811
  */
@@ -6556,7 +6817,7 @@ type I4u52lpbs07fme = AnonymousEnum$1<{
6556
6817
  /**
6557
6818
  * A multisig operation has been executed.
6558
6819
  */
6559
- "MultisigExecuted": Anonymize$1<I4t316ffal1f68>;
6820
+ "MultisigExecuted": Anonymize$1<I686omifdantj9>;
6560
6821
  /**
6561
6822
  * A multisig operation has been cancelled.
6562
6823
  */
@@ -6566,14 +6827,14 @@ type I4u52lpbs07fme = AnonymousEnum$1<{
6566
6827
  */
6567
6828
  "DepositPoked": Anonymize$1<I8gtde5abn1g9a>;
6568
6829
  }>;
6569
- type I4t316ffal1f68 = {
6830
+ type I686omifdantj9 = {
6570
6831
  "approving": SS58String;
6571
6832
  "timepoint": Anonymize$1<Itvprrpb0nm3o>;
6572
6833
  "multisig": SS58String;
6573
6834
  "call_hash": SizedHex<32>;
6574
- "result": Anonymize$1<I38vhitvbd00gg>;
6835
+ "result": Anonymize$1<I2tgj23u15fhfj>;
6575
6836
  };
6576
- type I3d26immfllvam = AnonymousEnum$1<{
6837
+ type I16l28vbmivm8t = AnonymousEnum$1<{
6577
6838
  /**
6578
6839
  * Scheduled some task.
6579
6840
  */
@@ -6585,7 +6846,7 @@ type I3d26immfllvam = AnonymousEnum$1<{
6585
6846
  /**
6586
6847
  * Dispatched some task.
6587
6848
  */
6588
- "Dispatched": Anonymize$1<Ic4n2079t9s369>;
6849
+ "Dispatched": Anonymize$1<I7d5m523quh7c1>;
6589
6850
  /**
6590
6851
  * Set a retry configuration for some task.
6591
6852
  */
@@ -6616,25 +6877,25 @@ type I3d26immfllvam = AnonymousEnum$1<{
6616
6877
  */
6617
6878
  "AgendaIncomplete": Anonymize$1<Ibtsa3docbr9el>;
6618
6879
  }>;
6619
- type Ic4n2079t9s369 = {
6880
+ type I7d5m523quh7c1 = {
6620
6881
  "task": Anonymize$1<I9jd27rnpm8ttv>;
6621
6882
  "id"?: Anonymize$1<I4s6vifaf8k998>;
6622
- "result": Anonymize$1<I38vhitvbd00gg>;
6883
+ "result": Anonymize$1<I2tgj23u15fhfj>;
6623
6884
  };
6624
- type I73doki8p5behi = AnonymousEnum$1<{
6885
+ type I5mkp35aomkbdn = AnonymousEnum$1<{
6625
6886
  /**
6626
6887
  * A proxy was executed correctly, with the given.
6627
6888
  */
6628
- "ProxyExecuted": Anonymize$1<I19524pum8hcn3>;
6889
+ "ProxyExecuted": Anonymize$1<Idh038mr0ve455>;
6629
6890
  /**
6630
6891
  * A pure account has been created by new proxy with given
6631
6892
  * disambiguation index and proxy type.
6632
6893
  */
6633
- "PureCreated": Anonymize$1<Iek6442ldi23n3>;
6894
+ "PureCreated": Anonymize$1<I4h005nshv9cmm>;
6634
6895
  /**
6635
6896
  * A pure proxy was killed by its spawner.
6636
6897
  */
6637
- "PureKilled": Anonymize$1<Idpdo54rotesu2>;
6898
+ "PureKilled": Anonymize$1<I65ie0pg8a2o2r>;
6638
6899
  /**
6639
6900
  * An announcement was placed to make a call in the future.
6640
6901
  */
@@ -6642,11 +6903,11 @@ type I73doki8p5behi = AnonymousEnum$1<{
6642
6903
  /**
6643
6904
  * A proxy was added.
6644
6905
  */
6645
- "ProxyAdded": Anonymize$1<Ibco2bqthggul0>;
6906
+ "ProxyAdded": Anonymize$1<Ieglriopqk5p81>;
6646
6907
  /**
6647
6908
  * A proxy was removed.
6648
6909
  */
6649
- "ProxyRemoved": Anonymize$1<Ibco2bqthggul0>;
6910
+ "ProxyRemoved": Anonymize$1<Ieglriopqk5p81>;
6650
6911
  /**
6651
6912
  * A deposit stored for proxies or announcements was poked / updated.
6652
6913
  */
@@ -6656,13 +6917,13 @@ type I73doki8p5behi = AnonymousEnum$1<{
6656
6917
  */
6657
6918
  "RealPaysFeeSet": Anonymize$1<Ic2lo6kvbsecob>;
6658
6919
  }>;
6659
- type Iek6442ldi23n3 = {
6920
+ type I4h005nshv9cmm = {
6660
6921
  "pure": SS58String;
6661
6922
  "who": SS58String;
6662
- "proxy_type": Anonymize$1<I8v1041j74kmaj>;
6923
+ "proxy_type": Anonymize$1<I4855cvrampgh6>;
6663
6924
  "disambiguation_index": number;
6664
6925
  };
6665
- type I8v1041j74kmaj = AnonymousEnum$1<{
6926
+ type I4855cvrampgh6 = AnonymousEnum$1<{
6666
6927
  "Any": undefined;
6667
6928
  "Owner": undefined;
6668
6929
  "NonCritical": undefined;
@@ -6681,17 +6942,18 @@ type I8v1041j74kmaj = AnonymousEnum$1<{
6681
6942
  "SwapHotkey": undefined;
6682
6943
  "SubnetLeaseBeneficiary": undefined;
6683
6944
  "RootClaim": undefined;
6945
+ "BasketTrading": undefined;
6684
6946
  }>;
6685
- type Idpdo54rotesu2 = {
6947
+ type I65ie0pg8a2o2r = {
6686
6948
  "pure": SS58String;
6687
6949
  "spawner": SS58String;
6688
- "proxy_type": Anonymize$1<I8v1041j74kmaj>;
6950
+ "proxy_type": Anonymize$1<I4855cvrampgh6>;
6689
6951
  "disambiguation_index": number;
6690
6952
  };
6691
- type Ibco2bqthggul0 = {
6953
+ type Ieglriopqk5p81 = {
6692
6954
  "delegator": SS58String;
6693
6955
  "delegatee": SS58String;
6694
- "proxy_type": Anonymize$1<I8v1041j74kmaj>;
6956
+ "proxy_type": Anonymize$1<I4855cvrampgh6>;
6695
6957
  "delay": number;
6696
6958
  };
6697
6959
  type Ic2lo6kvbsecob = {
@@ -6699,7 +6961,7 @@ type Ic2lo6kvbsecob = {
6699
6961
  "delegate": SS58String;
6700
6962
  "pays_fee": boolean;
6701
6963
  };
6702
- type I5ohlg8gv4pe9g = AnonymousEnum$1<{
6964
+ type I2bvu7rvt3acvt = AnonymousEnum$1<{
6703
6965
  /**
6704
6966
  * A commitment was set
6705
6967
  */
@@ -6712,6 +6974,10 @@ type I5ohlg8gv4pe9g = AnonymousEnum$1<{
6712
6974
  * A timelock-encrypted commitment was auto-revealed
6713
6975
  */
6714
6976
  "CommitmentRevealed": Anonymize$1<Idcqgi2844k5he>;
6977
+ /**
6978
+ * A timelock-encrypted commitment could not be revealed and was left in place
6979
+ */
6980
+ "CommitmentRevealFailed": Anonymize$1<I4k7lbqu1hockt>;
6715
6981
  }>;
6716
6982
  type Idcqgi2844k5he = {
6717
6983
  /**
@@ -6737,11 +7003,36 @@ type Iej2173ou338sm = {
6737
7003
  */
6738
7004
  "reveal_round": bigint;
6739
7005
  };
6740
- type I7e2dfidi4918r = AnonymousEnum$1<{
7006
+ type I4k7lbqu1hockt = {
7007
+ /**
7008
+ * The netuid of the commitment
7009
+ */
7010
+ "netuid": number;
7011
+ /**
7012
+ * The account
7013
+ */
7014
+ "who": SS58String;
7015
+ /**
7016
+ * The drand round that was attempted
7017
+ */
7018
+ "reveal_round": bigint;
7019
+ /**
7020
+ * Why reveal failed
7021
+ */
7022
+ "error": Enum<{
7023
+ "SignatureDeserialize": undefined;
7024
+ "CiphertextDeserialize": undefined;
7025
+ "Decrypt": undefined;
7026
+ "EmptyPlaintext": undefined;
7027
+ "PulseExpired": undefined;
7028
+ "RoundMismatch": undefined;
7029
+ }>;
7030
+ };
7031
+ type I38ot7d3htb975 = AnonymousEnum$1<{
6741
7032
  /**
6742
7033
  * Event emitted when a precompile operation is updated.
6743
7034
  */
6744
- "PrecompileUpdated": Anonymize$1<Ic2qbis4e68na8>;
7035
+ "PrecompileUpdated": Anonymize$1<I5emsms8keuaac>;
6745
7036
  /**
6746
7037
  * Event emitted when the Yuma3 enable is toggled.
6747
7038
  */
@@ -6771,22 +7062,42 @@ type I7e2dfidi4918r = AnonymousEnum$1<{
6771
7062
  */
6772
7063
  "CollateralDrainRatioSet": Anonymize$1<Ii5ndf7h688tr>;
6773
7064
  /**
6774
- * Root basket weight setting (`set_root_weights`) was enabled or disabled
6775
- * network-wide.
7065
+ * The basket concentration cap (`BasketConcentrationCap`) was set.
7066
+ */
7067
+ "BasketConcentrationCapSet": Anonymize$1<Ieju6qo4sptvs6>;
7068
+ /**
7069
+ * Validator basket trading (`swap_basket`) was enabled or disabled network-wide.
6776
7070
  */
6777
- "RootWeightSettingToggled": Anonymize$1<I94dejtmu6d72i>;
7071
+ "BasketTradingToggled": Anonymize$1<I94dejtmu6d72i>;
7072
+ /**
7073
+ * Basket trading was frozen or unfrozen for one validator hotkey.
7074
+ */
7075
+ "BasketTradingFrozenSet": Anonymize$1<Ifh6muqgp7cgvc>;
7076
+ /**
7077
+ * The basket daily turnover budget (`BasketDailyTurnoverCap`) was set.
7078
+ */
7079
+ "BasketDailyTurnoverCapSet": Anonymize$1<Ieju6qo4sptvs6>;
7080
+ /**
7081
+ * The basket liquidity cap (`BasketLiquidityCap`) was set.
7082
+ */
7083
+ "BasketLiquidityCapSet": Anonymize$1<Ieju6qo4sptvs6>;
7084
+ /**
7085
+ * The root-claim dust floors were set (`BasketClaimRowDustCapTao`,
7086
+ * `BasketClaimRowDustBps`, `BasketClaimSliceDustTao`, `BasketClaimForfeitCapTao`).
7087
+ */
7088
+ "BasketClaimDustSet": Anonymize$1<I1efeqe055hnfk>;
6778
7089
  }>;
6779
- type Ic2qbis4e68na8 = {
7090
+ type I5emsms8keuaac = {
6780
7091
  /**
6781
7092
  * The type of precompile operation being updated.
6782
7093
  */
6783
- "precompile_id": Anonymize$1<I6u8m363vi2hk5>;
7094
+ "precompile_id": Anonymize$1<Idfs9n0m9b3jp2>;
6784
7095
  /**
6785
7096
  * Indicates if the precompile operation is enabled or not.
6786
7097
  */
6787
7098
  "enabled": boolean;
6788
7099
  };
6789
- type I6u8m363vi2hk5 = AnonymousEnum$1<{
7100
+ type Idfs9n0m9b3jp2 = AnonymousEnum$1<{
6790
7101
  "BalanceTransfer": undefined;
6791
7102
  "Staking": undefined;
6792
7103
  "Subnet": undefined;
@@ -6800,6 +7111,11 @@ type I6u8m363vi2hk5 = AnonymousEnum$1<{
6800
7111
  "AddressMapping": undefined;
6801
7112
  "VotingPower": undefined;
6802
7113
  "AccountBalance": undefined;
7114
+ "Scheduler": undefined;
7115
+ "Drand": undefined;
7116
+ "Timestamp": undefined;
7117
+ "RuntimeConfiguration": undefined;
7118
+ "PrecompileRegistry": undefined;
6803
7119
  }>;
6804
7120
  type Ie31ro5s5e089f = {
6805
7121
  /**
@@ -6831,12 +7147,47 @@ type Ii5ndf7h688tr = {
6831
7147
  */
6832
7148
  "drain_ratio": bigint;
6833
7149
  };
7150
+ type Ieju6qo4sptvs6 = {
7151
+ /**
7152
+ * Max u16-normalized share of fund NAV one holding may reach through a
7153
+ * `swap_basket` buy (`u16::MAX` = 100%).
7154
+ */
7155
+ "cap": number;
7156
+ };
6834
7157
  type I94dejtmu6d72i = {
6835
7158
  /**
6836
- * Whether validators can now set root basket weights.
7159
+ * Whether validators can now rebalance their baskets.
6837
7160
  */
6838
7161
  "enabled": boolean;
6839
7162
  };
7163
+ type Ifh6muqgp7cgvc = {
7164
+ /**
7165
+ * Validator hotkey whose fund is affected.
7166
+ */
7167
+ "hotkey": SS58String;
7168
+ /**
7169
+ * Whether `swap_basket` is now refused for this hotkey.
7170
+ */
7171
+ "frozen": boolean;
7172
+ };
7173
+ type I1efeqe055hnfk = {
7174
+ /**
7175
+ * Cap, in rao, of the row floor `min(cap, bps × anchored NAV)` (`0` = row skip off).
7176
+ */
7177
+ "row_cap_rao": bigint;
7178
+ /**
7179
+ * Relative row floor in basis points of the fund's anchored NAV (`0` = row skip off).
7180
+ */
7181
+ "row_bps": number;
7182
+ /**
7183
+ * Rao value below which a claim leaves its own slice of a row unsold (`0` = off).
7184
+ */
7185
+ "slice_rao": bigint;
7186
+ /**
7187
+ * Largest slice, in rao, either rule may leave unsold (`0` = every skip off).
7188
+ */
7189
+ "forfeit_cap_rao": bigint;
7190
+ };
6840
7191
  type I3q8c83f5dvokp = AnonymousEnum$1<{
6841
7192
  /**
6842
7193
  * The safe-mode was entered until inclusively this block.
@@ -7130,7 +7481,7 @@ type Idht9upmipvd4j = {
7130
7481
  */
7131
7482
  "code_hash": SizedHex<32>;
7132
7483
  };
7133
- type Ib9g7kvdd35o5 = AnonymousEnum$1<{
7484
+ type I3d2e0rnod8ms0 = AnonymousEnum$1<{
7134
7485
  /**
7135
7486
  * Encrypted wrapper accepted.
7136
7487
  */
@@ -7146,7 +7497,7 @@ type Ib9g7kvdd35o5 = AnonymousEnum$1<{
7146
7497
  /**
7147
7498
  * Extrinsic dispatch failed during on_initialize.
7148
7499
  */
7149
- "ExtrinsicDispatchFailed": Anonymize$1<Icea0g1kirlibu>;
7500
+ "ExtrinsicDispatchFailed": Anonymize$1<I1ljeiuva9p2f8>;
7150
7501
  /**
7151
7502
  * Extrinsic was successfully dispatched during on_initialize.
7152
7503
  */
@@ -7187,7 +7538,7 @@ type Icns2sqr5hp8s3 = {
7187
7538
  type Icnkee0to4c5ac = {
7188
7539
  "value": number;
7189
7540
  };
7190
- type I5atc3v03sk1i = AnonymousEnum$1<{
7541
+ type I8p9ve97hjfjlt = AnonymousEnum$1<{
7191
7542
  /**
7192
7543
  * A limit order was successfully executed.
7193
7544
  */
@@ -7195,7 +7546,7 @@ type I5atc3v03sk1i = AnonymousEnum$1<{
7195
7546
  /**
7196
7547
  * An order was skipped during execution.
7197
7548
  */
7198
- "OrderSkipped": Anonymize$1<Idt8sj9279kl8h>;
7549
+ "OrderSkipped": Anonymize$1<I7fsb2ggi0p38u>;
7199
7550
  /**
7200
7551
  * A user registered a cancellation intent for their order.
7201
7552
  */
@@ -7208,6 +7559,18 @@ type I5atc3v03sk1i = AnonymousEnum$1<{
7208
7559
  * Root has either enabled(true) or disabled(false) the pallet
7209
7560
  */
7210
7561
  "LimitOrdersPalletStatusChanged": Anonymize$1<I94dejtmu6d72i>;
7562
+ /**
7563
+ * A provider order recorded its post-fee output for a later linked draw.
7564
+ */
7565
+ "LinkedOutputRecorded": Anonymize$1<I3bo03q6favt23>;
7566
+ /**
7567
+ * A linked order drew against a provider record, consuming it.
7568
+ */
7569
+ "LinkedOutputConsumed": Anonymize$1<Icp9q94f7t4cvv>;
7570
+ /**
7571
+ * A provider record was removed without being drawn.
7572
+ */
7573
+ "LinkedOutputPruned": Anonymize$1<I4ei8bi736no30>;
7211
7574
  }>;
7212
7575
  type Icgs2mnjcld0or = {
7213
7576
  "order_id": SizedHex<32>;
@@ -7228,9 +7591,9 @@ type I8ihq9g3g7resb = AnonymousEnum$1<{
7228
7591
  "TakeProfit": undefined;
7229
7592
  "StopLoss": undefined;
7230
7593
  }>;
7231
- type Idt8sj9279kl8h = {
7594
+ type I7fsb2ggi0p38u = {
7232
7595
  "order_id": SizedHex<32>;
7233
- "reason": Anonymize$1<Ibb8u96f04kc5k>;
7596
+ "reason": Anonymize$1<I8p4c3h8cei06k>;
7234
7597
  };
7235
7598
  type I2p6dpmllidcdk = {
7236
7599
  "order_id": SizedHex<32>;
@@ -7263,6 +7626,27 @@ type I3mn41f2cukm3a = {
7263
7626
  */
7264
7627
  "executed_count": number;
7265
7628
  };
7629
+ type I3bo03q6favt23 = {
7630
+ "order_id": SizedHex<32>;
7631
+ "signer": SS58String;
7632
+ "asset": Anonymize$1<I6mv9ds2k3b74j>;
7633
+ "total": bigint;
7634
+ "expires_at": bigint;
7635
+ };
7636
+ type I6mv9ds2k3b74j = AnonymousEnum$1<{
7637
+ "Tao": undefined;
7638
+ "Alpha": Anonymize$1<I7f38r2vt6r9k1>;
7639
+ }>;
7640
+ type Icp9q94f7t4cvv = {
7641
+ "provider": SizedHex<32>;
7642
+ "consumer": SizedHex<32>;
7643
+ "amount": bigint;
7644
+ "undrawn": bigint;
7645
+ };
7646
+ type I4ei8bi736no30 = {
7647
+ "order_id": SizedHex<32>;
7648
+ "total": bigint;
7649
+ };
7266
7650
  type I5188lmmdnhos0 = Array<{
7267
7651
  "id": Enum<{
7268
7652
  "Preimage": PreimagePalletHoldReason;
@@ -7287,7 +7671,7 @@ type I8tqsm2j01rn5j = {
7287
7671
  "last_update": bigint;
7288
7672
  };
7289
7673
  type I19jngnl8banpc = [SS58String, number, SS58String];
7290
- type I50nns99df0pho = AnonymousEnum$1<{
7674
+ type I5qeacfd1c156k = AnonymousEnum$1<{
7291
7675
  "SetSNOwnerHotkey": number;
7292
7676
  "OwnerHyperparamUpdate": [number, Enum<{
7293
7677
  "Unknown": undefined;
@@ -7324,6 +7708,7 @@ type I50nns99df0pho = AnonymousEnum$1<{
7324
7708
  "TriggerEpoch": undefined;
7325
7709
  "CollateralLockShare": undefined;
7326
7710
  "CollateralDrainRatio": undefined;
7711
+ "LiquidAlphaConsensusMode": undefined;
7327
7712
  }>];
7328
7713
  "NetworkLastRegistered": undefined;
7329
7714
  "LastTxBlock": SS58String;
@@ -7335,7 +7720,7 @@ type Ib9tptuv3cggfs = AnonymousEnum$1<{
7335
7720
  "Burn": undefined;
7336
7721
  "Recycle": undefined;
7337
7722
  }>;
7338
- type Ibpirkcgeit2cg = {
7723
+ type I4iv0rnqs8i6fm = {
7339
7724
  "netuid": number;
7340
7725
  "phase": Enum<{
7341
7726
  "SubnetRootDividendsRootClaimable": undefined;
@@ -7363,6 +7748,7 @@ type Ibpirkcgeit2cg = {
7363
7748
  "NetworkDecayingLock": undefined;
7364
7749
  "SubnetBasketHoldingsToRoot": undefined;
7365
7750
  "NetworkPendingBasketDeposits": undefined;
7751
+ "NetworkAlphaAssetCounters": undefined;
7366
7752
  }>;
7367
7753
  "last_key"?: Anonymize$1<Iabpgqcjikia83>;
7368
7754
  "subnet_total_alpha_value"?: Anonymize$1<I35p85j063s0il>;
@@ -7412,6 +7798,28 @@ type Ifjlj958aeheic = {
7412
7798
  type Icrrf4uohj5gb0 = Array<[SizedHex<32>, bigint, bigint, bigint]>;
7413
7799
  type I76jd8kl1mtn5g = Array<[SS58String, bigint, Uint8Array, bigint]>;
7414
7800
  type I4jqk5si14p5oi = Array<[SS58String, Uint8Array, bigint]>;
7801
+ type Ialhk5ui1mhg1h = {
7802
+ "price_divisor": bigint;
7803
+ "rate0": bigint;
7804
+ "tr_splice": bigint;
7805
+ "first_block": bigint;
7806
+ };
7807
+ type I57r7jpv7r3s9m = {
7808
+ "bag_level": bigint;
7809
+ "stake_level": bigint;
7810
+ "block": bigint;
7811
+ };
7812
+ type Ie5p7gv9nptpoc = {
7813
+ "cursor": Uint8Array;
7814
+ "weight_sum": bigint;
7815
+ "rel_bag_sum": bigint;
7816
+ "rel_stake_sum": bigint;
7817
+ };
7818
+ type I7r96a602oaap8 = {
7819
+ "nav": bigint;
7820
+ "display": bigint;
7821
+ "stake": bigint;
7822
+ };
7415
7823
  type I7tof95tckt2r = [SizedHex<20>, bigint];
7416
7824
  type Ia46odf30322a1 = [number, SizedHex<20>];
7417
7825
  type Ieruonr5pk2d7h = {
@@ -7440,18 +7848,18 @@ type I32es0rp64745v = AnonymousEnum$1<{
7440
7848
  "system": Anonymize$1<I9gqitj4t615g3>;
7441
7849
  "Ethereum": Anonymize$1<I9hp9au9bfqil7>;
7442
7850
  }>;
7443
- type I6tqrno2gaos08 = [Array<{
7851
+ type Ibbe63mdl8niqr = [Array<{
7444
7852
  "delegate": SS58String;
7445
- "proxy_type": Anonymize$1<I8v1041j74kmaj>;
7853
+ "proxy_type": Anonymize$1<I4855cvrampgh6>;
7446
7854
  "delay": number;
7447
7855
  }>, bigint];
7448
7856
  type I7nkl7ntqohel8 = Array<Anonymize$1<I7svnfko10tq2e>>;
7449
- type I3m6d7ohcp5n4v = {
7857
+ type Ifjbhmqlrm96rb = {
7450
7858
  "deposit": bigint;
7451
7859
  "block": number;
7452
- "info": Anonymize$1<I4122t6tpcniur>;
7860
+ "info": Anonymize$1<Ie5icb4csjej6e>;
7453
7861
  };
7454
- type I4122t6tpcniur = Array<Enum<{
7862
+ type Ie5icb4csjej6e = Array<Enum<{
7455
7863
  "None": undefined;
7456
7864
  "Raw0": undefined;
7457
7865
  "Raw1": number;
@@ -7592,6 +8000,10 @@ type I4122t6tpcniur = Array<Enum<{
7592
8000
  };
7593
8001
  "ResetBondsFlag": undefined;
7594
8002
  "BigRaw": Uint8Array;
8003
+ "TimelockRevealFailed": {
8004
+ "encrypted": Uint8Array;
8005
+ "reveal_round": bigint;
8006
+ };
7595
8007
  }>>;
7596
8008
  type Ib9pv5dg6upo6t = Array<Anonymize$1<Ie2iqtdb0stqo1>>;
7597
8009
  type I27ub49plcvb4c = {
@@ -7656,6 +8068,12 @@ type I1i3fp62frtrdk = AnonymousEnum$1<{
7656
8068
  "PartiallyFilled": bigint;
7657
8069
  "Cancelled": undefined;
7658
8070
  }>;
8071
+ type I7b1atpv3fba3o = {
8072
+ "signer": SS58String;
8073
+ "asset": Anonymize$1<I6mv9ds2k3b74j>;
8074
+ "total": bigint;
8075
+ "expires_at": bigint;
8076
+ };
7659
8077
  type Ijc5n210o8bbf = {
7660
8078
  "limits": {
7661
8079
  "event_topics": number;
@@ -7707,7 +8125,7 @@ type Ibck9ekr2i96uj = AnonymousEnum$1<{
7707
8125
  type I3a5kuu5t5jj3g = {
7708
8126
  "equivocation_proof": Anonymize$1<I9puqgoda8ofk4>;
7709
8127
  };
7710
- type I4m0jq797pckog = AnonymousEnum$1<{
8128
+ type I1c2l6pbupt5je = AnonymousEnum$1<{
7711
8129
  /**
7712
8130
  * Sets the caller weights for the incentive mechanism. The call can be
7713
8131
  * made from the hotkey account so is potentially insecure, however, the damage
@@ -7753,19 +8171,6 @@ type I4m0jq797pckog = AnonymousEnum$1<{
7753
8171
  * * `MaxWeightExceeded`: Attempting to set weights with max value exceeding limit.
7754
8172
  */
7755
8173
  "set_weights": Anonymize$1<Icv6ofu4lqekr4>;
7756
- /**
7757
- * --- Sets a root validator's basket distribution vector `w` on the root subnet
7758
- * (netuid 0). `dests` are subnet netuids and `weights` are the proportions of the
7759
- * validator's root dividends to deploy into each subnet's alpha basket.
7760
- * Requires at least [`crate::MIN_ROOT_BASKET_WEIGHTS`] positive destinations
7761
- * (softened when fewer networks exist).
7762
- *
7763
- * # Args:
7764
- * * `origin`: the root validator hotkey.
7765
- * * `dests` (Vec<u16>): destination subnet netuids.
7766
- * * `weights` (Vec<u16>): per-subnet weights (normalized on use).
7767
- */
7768
- "set_root_weights": Anonymize$1<I9lpud8mopek2c>;
7769
8174
  /**
7770
8175
  * Sets the caller weights for the incentive mechanism for mechanisms. The call
7771
8176
  * can be made from the hotkey account so is potentially insecure, however, the damage
@@ -8254,7 +8659,17 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8254
8659
  * Admission is burn-based: the coldkey pays the root burn price
8255
8660
  * (demand-priced like subnet registration), recycled out of issuance.
8256
8661
  * No prior stake is required. When the network is full, the
8257
- * lowest-staked member is pruned to make room.
8662
+ * lowest-staked non-immune member is pruned to make room.
8663
+ *
8664
+ * After a successful registration, the hotkey is auto-childkeyed
8665
+ * to every existing subnet owner unless the validator opted out
8666
+ * of auto parent delegation. Pruning a seat clears that
8667
+ * validator's protocol auto-parent edges.
8668
+ *
8669
+ * Declared weight is `WeightInfo::root_register` plus a
8670
+ * `TotalNetworks`-scaled `DbWeight` term for the per-subnet
8671
+ * persist (and prune cleanup). Re-benchmark on reference
8672
+ * hardware so the base measurement includes that work.
8258
8673
  */
8259
8674
  "root_register": Anonymize$1<Ie7hipi75c7vn0>;
8260
8675
  /**
@@ -8466,6 +8881,11 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8466
8881
  * * `NotEnoughStakeToWithdraw`: Thrown if there is not enough stake on the hotkey to withdraw this amount.
8467
8882
  *
8468
8883
  * * `TxRateLimitExceeded`: Thrown if key has hit transaction rate limit.
8884
+ *
8885
+ * The declared weight covers up to [`crate::MAX_UNSTAKE_ALL_LEGS`] positions
8886
+ * (one `remove_stake` plus a `StakingHotkeys` walk each) and is refunded to
8887
+ * the subnets actually visited and unstaked. Remaining positions stay for a
8888
+ * later call so the envelope fits the normal-class block.
8469
8889
  */
8470
8890
  "unstake_all": Anonymize$1<Ie7hipi75c7vn0>;
8471
8891
  /**
@@ -8487,6 +8907,11 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8487
8907
  * * `NotEnoughStakeToWithdraw`: Thrown if there is not enough stake on the hotkey to withdraw this amount.
8488
8908
  *
8489
8909
  * * `TxRateLimitExceeded`: Thrown if key has hit transaction rate limit.
8910
+ *
8911
+ * The declared weight covers up to [`crate::MAX_UNSTAKE_ALL_LEGS`] positions
8912
+ * (one `remove_stake` plus a `StakingHotkeys` walk each) and is refunded to
8913
+ * the subnets actually visited and unstaked. Remaining positions stay for a
8914
+ * later call so the envelope fits the normal-class block.
8490
8915
  */
8491
8916
  "unstake_all_alpha": Anonymize$1<Ie7hipi75c7vn0>;
8492
8917
  /**
@@ -8503,7 +8928,9 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8503
8928
  *
8504
8929
  * * `destination_netuid`: The subnet ID to move stake to.
8505
8930
  *
8506
- * * `alpha_amount`: The alpha stake amount to move.
8931
+ * * `alpha_amount`: The alpha stake amount to move. `AlphaBalance::MAX`
8932
+ * means the live origin position at execution (so a preceding
8933
+ * `claim_root_with_hotkey` in the same batch is included).
8507
8934
  *
8508
8935
  */
8509
8936
  "move_stake": Anonymize$1<I9d117ni3tprb>;
@@ -8529,6 +8956,7 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8529
8956
  * * `AmountTooLow`: The TAO-equivalent of the transfer is below the minimum stake requirement.
8530
8957
  * * `TransferDisallowed`: Transfers are disabled on the origin or destination subnet.
8531
8958
  * * `StakeUnavailable`: The remaining stake would not cover the locked amount on the origin subnet.
8959
+ * * `CannotUseSystemAccount`: The destination coldkey is the protocol-owned basket escrow.
8532
8960
  *
8533
8961
  * # Events
8534
8962
  * May emit a `StakeTransferred` event on success.
@@ -8657,6 +9085,17 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8657
9085
  * May emit a `StakeSwapped` event on success.
8658
9086
  */
8659
9087
  "swap_stake_limit": Anonymize$1<I6r22p9usi2mkl>;
9088
+ /**
9089
+ * Moves stake from one hotkey to another and, when the subnets differ,
9090
+ * protects the swap with a relative price limit.
9091
+ *
9092
+ * `limit_price` is the minimum acceptable destination-alpha per
9093
+ * origin-alpha ratio, scaled by 1e9. When `allow_partial` is false the
9094
+ * call is fill-or-kill; otherwise it moves only the amount executable
9095
+ * before the limit is crossed. `alpha_amount` of `AlphaBalance::MAX`
9096
+ * means the live origin position at execution.
9097
+ */
9098
+ "move_stake_limit": Anonymize$1<Iflid9fim112b6>;
8660
9099
  /**
8661
9100
  * Attempts to associate a hotkey with a coldkey.
8662
9101
  *
@@ -8866,26 +9305,50 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8866
9305
  * Claims the root emissions for a coldkey across every validator it root-stakes to.
8867
9306
  *
8868
9307
  * Redemption is fund-level: for each validator, the staker's accrued entitlement is
8869
- * redeemed as their pro-rata fraction of that basket (sold to TAO and staked on root).
8870
- * The `subnets` argument is retained for call-data compatibility with pre-basket
8871
- * clients; it is ignored — baskets have no per-subnet claim selection.
9308
+ * paid as their pro-rata fraction of the basket's full-liquidation NAV and staked on
9309
+ * root. The corresponding alpha fraction is sold; any concavity surplus over the
9310
+ * NAV-priced entitlement remains in the basket as root TAO for the other holders. The
9311
+ * `subnets` argument is retained for call-data compatibility with pre-basket clients;
9312
+ * it is ignored — baskets have no per-subnet claim selection.
8872
9313
  *
8873
9314
  * Prefer [`Pallet::claim_root_with_hotkey`] to claim a single validator.
8874
9315
  *
9316
+ * Dust rows are not sold (see [`Pallet::claim_root_with_hotkey`]); the claimant's
9317
+ * slice of them stays in the fund. A claim that is admitted and then fails is
9318
+ * charged the work it did, not the declared envelope; a claim refused at admission
9319
+ * keeps the envelope.
9320
+ *
8875
9321
  * # Arguments
8876
9322
  * * `origin`: The signature of the caller's coldkey.
8877
9323
  * * `subnets`: Ignored. Kept so old clients' encoded call data still decodes.
8878
9324
  *
8879
9325
  * # Events
8880
9326
  * * `RootClaimed`: On successfully claiming the root emissions for a coldkey.
9327
+ * * `BasketClaimDustSkipped`: Per fund whose dust rows were left unsold.
9328
+ *
9329
+ * # Errors
9330
+ * * `RootClaimTooHeavy`: More hotkeys or fund rows than one claim may walk.
8881
9331
  */
8882
9332
  "claim_root": Anonymize$1<I2t4b7068rtebl>;
8883
9333
  /**
8884
9334
  * Claims the root emissions for a coldkey on one validator hotkey.
8885
9335
  *
8886
9336
  * Redemption is fund-level for that validator: the staker's accrued entitlement is
8887
- * redeemed as their pro-rata fraction of each basket holding (sold to TAO and staked
8888
- * on root). Other validators' accrued yield is left untouched.
9337
+ * paid as their pro-rata fraction of the basket's full-liquidation NAV and staked on
9338
+ * root. The corresponding alpha fraction is sold; any concavity surplus over the
9339
+ * NAV-priced entitlement remains in the basket as root TAO for the other holders.
9340
+ * Other validators' accrued yield is left untouched.
9341
+ *
9342
+ * Dust rows are not sold: a fund row worth less than
9343
+ * `min(BasketClaimRowDustCapTao, BasketClaimRowDustBps × anchored NAV)`, or one
9344
+ * whose slice for this claimant is worth less than `BasketClaimSliceDustTao`, is
9345
+ * skipped when that slice is also worth at most `BasketClaimForfeitCapTao` (all at
9346
+ * the anchored mark, which decides dust only). The claim burns the full
9347
+ * entitlement, so the claimant's slice of a skipped row — never more than the cap
9348
+ * at the anchored mark — is left to the remaining holders (`BasketClaimDustSkipped`
9349
+ * reports it). A claim
9350
+ * that is admitted and then fails is charged the work it did, not the declared
9351
+ * envelope; a claim refused at admission keeps the envelope.
8889
9352
  *
8890
9353
  * # Arguments
8891
9354
  * * `origin`: The signature of the caller's coldkey.
@@ -8893,27 +9356,33 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8893
9356
  *
8894
9357
  * # Events
8895
9358
  * * `RootClaimed`: On successfully claiming the root emissions for this coldkey+hotkey.
9359
+ * * `BasketClaimDustSkipped`: When the claim left dust rows unsold.
9360
+ *
9361
+ * # Errors
9362
+ * * `RootClaimTooHeavy`: The fund has more rows (or queued credits) than one claim
9363
+ * may walk.
8896
9364
  */
8897
9365
  "claim_root_with_hotkey": Anonymize$1<Ie7hipi75c7vn0>;
8898
9366
  /**
8899
9367
  * Stakes TAO from the caller's balance directly into a validator's basket.
8900
9368
  *
8901
- * The TAO is deployed across subnets per the validator's root weight vector
8902
- * (exactly like a dividend deposit) and the caller is credited a fund
8903
- * entitlement at the fund's pre-buy realizable NAV, priced against the
8904
- * realizable value the deposit added — the depositor bears their own entry
8905
- * slippage and swap fees. An uncurated fund (no usable weight vector) is
8906
- * mirrored instead: the deposit deploys pro-rata across the fund's current
8907
- * holdings by realizable value, keeping deposits symmetric with claims (which
8908
- * redeem pro-rata of every holding); a deposit into an empty uncurated fund is
8909
- * held as the fund's root (TAO cash) slot. The credited entitlement is
8910
- * redeemable through [`Pallet::claim_root_with_hotkey`] (or coldkey-wide
8911
- * [`Pallet::claim_root`]); it does not require or affect root stake, and it
8912
- * does not change any staker's dividend accrual.
9369
+ * The TAO enters by the fund's current holdings: it is split pro-rata across
9370
+ * every holding by realizable value and buys each one, so the deposit acquires
9371
+ * the exposure the fund already has and stays symmetric with claims (which
9372
+ * redeem pro-rata of every holding). A deposit into a fund with no holdings is
9373
+ * held as the fund's root (TAO cash) slot. Inflows never change a fund's
9374
+ * composition; only the validator's [`Pallet::swap_basket`] trades do. The
9375
+ * caller is credited a fund entitlement at the fund's pre-buy realizable NAV,
9376
+ * priced against the realizable value the deposit added — the depositor bears
9377
+ * their own entry slippage and swap fees.
9378
+ * The credited entitlement is redeemable through
9379
+ * [`Pallet::claim_root_with_hotkey`] (or coldkey-wide [`Pallet::claim_root`]);
9380
+ * it does not require or affect root stake, and it does not change any
9381
+ * staker's dividend accrual.
8913
9382
  *
8914
9383
  * # Arguments
8915
9384
  * * `origin`: The signature of the caller's coldkey.
8916
- * * `hotkey`: The validator whose basket to deposit into.
9385
+ * * `hotkey`: The root-registered validator whose basket to deposit into.
8917
9386
  * * `amount_staked`: TAO to take from the caller's balance and deploy.
8918
9387
  *
8919
9388
  * # Events
@@ -8922,11 +9391,53 @@ type I4m0jq797pckog = AnonymousEnum$1<{
8922
9391
  *
8923
9392
  * # Errors
8924
9393
  * * `HotKeyAccountNotExists`: The hotkey is not a registered account.
8925
- * * `AmountTooLow`: Below the minimum stake, or the deposit's realizable value
8926
- * rounds to zero entitlement.
9394
+ * * `HotKeyNotRegisteredInSubNet`: The hotkey is not registered on root.
9395
+ * * `AmountTooLow`: Below the minimum stake, the deposit's realizable value
9396
+ * rounds to zero entitlement, or a holding cannot be priced (or would receive
9397
+ * a zero-TAO slice) so the deposit cannot buy every position its shares claim.
8927
9398
  * * `NotEnoughBalanceToStake`: The caller cannot cover `amount_staked`.
8928
9399
  */
8929
9400
  "stake_into_basket": Anonymize$1<I9946op5slcfjf>;
9401
+ /**
9402
+ * --- Rebalances a root validator's beta basket: sells `amount` of the fund's
9403
+ * `origin_netuid` holding for TAO and buys `destination_netuid` with it. Either
9404
+ * side may be root (netuid 0), the fund's TAO cash slot. Fund shares and staker
9405
+ * entitlements are unchanged; only the fund's composition moves.
9406
+ *
9407
+ * Guardrails: each AMM leg must fill fully within 2% of the subnet's moving price;
9408
+ * the TAO through the middle is taken from the fund's turnover bucket
9409
+ * (`BasketDailyTurnoverCap` of NAV, refilling over 7200 blocks); the destination holding may not
9410
+ * end above `BasketLiquidityCap` of the destination pool's alpha reserve, nor above
9411
+ * `BasketConcentrationCap` of NAV. Trading must be enabled network-wide and not frozen for
9412
+ * the hotkey by governance. On top of the protocol band the caller may set its own
9413
+ * floor: the buy leg must credit at least `min_amount_out` or the trade rolls back.
9414
+ *
9415
+ * # Arguments
9416
+ * * `origin`: Signed by the coldkey that owns `hotkey` (or its `BasketTrading` proxy).
9417
+ * * `hotkey`: The root-registered validator whose basket to rebalance.
9418
+ * * `origin_netuid`: Subnet to sell out of (root = the TAO slot).
9419
+ * * `destination_netuid`: Subnet to buy into (root = the TAO slot).
9420
+ * * `amount`: Alpha of `origin_netuid` to sell (TAO at 1:1 when origin is root).
9421
+ * * `min_amount_out`: Least amount the buy leg must credit to the destination
9422
+ * holding, in `destination_netuid` alpha (rao of TAO when the destination is
9423
+ * root), after fees. `0` sets no floor; the 2% protocol band still applies.
9424
+ *
9425
+ * # Events
9426
+ * * `BasketSwapped`: On success, with the amounts on both legs.
9427
+ *
9428
+ * # Errors
9429
+ * * `BasketTradingDisabled`, `BasketTradingFrozen`: Gated off.
9430
+ * * `BasketSameSubnet`: Origin equals destination.
9431
+ * * `NonAssociatedColdKey`: Caller does not own `hotkey`.
9432
+ * * `HotKeyNotRegisteredInSubNet`: `hotkey` is not on root.
9433
+ * * `NotEnoughStakeToWithdraw`: The fund holds less than `amount` on origin.
9434
+ * * `SlippageTooHigh`: A leg could not fill within 2% of the moving price.
9435
+ * * `BasketMinOutNotMet`: The buy leg credited less than `min_amount_out`.
9436
+ * * `BasketTurnoverBudgetExceeded`: The trade exceeds what the fund's turnover bucket holds.
9437
+ * * `BasketLiquidityCapExceeded`: The destination holding would exceed the liquidity cap.
9438
+ * * `BasketConcentrationCapExceeded`: The destination would exceed the concentration cap.
9439
+ */
9440
+ "swap_basket": Anonymize$1<Ia8qodr4vtdlkh>;
8930
9441
  /**
8931
9442
  * --- Sets the root claim dust threshold (sudo). Basket redemption is fund-level, so
8932
9443
  * only the `NetUid::ROOT` entry is meaningful; other netuids are rejected.
@@ -9050,8 +9561,10 @@ type I4m0jq797pckog = AnonymousEnum$1<{
9050
9561
  */
9051
9562
  "register_limit": Anonymize$1<I96vnf03ahk1m9>;
9052
9563
  /**
9053
- * Allows a root validator to toggle auto parent delegation
9054
- * for new subnets owner hotkey
9564
+ * Allows a root validator to toggle auto parent delegation.
9565
+ * When enabled (the default), the validator is childkeyed to
9566
+ * subnet owners on new subnet registration and on this
9567
+ * validator's own root registration.
9055
9568
  */
9056
9569
  "set_auto_parent_delegation_enabled": Anonymize$1<Iavmlc8d5lfdju>;
9057
9570
  /**
@@ -9144,6 +9657,7 @@ type I4m0jq797pckog = AnonymousEnum$1<{
9144
9657
  * * `AmountTooLow`: The TAO-equivalent of the transfer is below the minimum stake requirement.
9145
9658
  * * `TransferDisallowed`: Transfers are disabled on the origin or destination subnet.
9146
9659
  * * `StakeUnavailable`: The remaining stake would not cover the locked amount on the origin subnet.
9660
+ * * `CannotUseSystemAccount`: The destination coldkey is the protocol-owned basket escrow.
9147
9661
  *
9148
9662
  * # Events
9149
9663
  * May emit a `StakeAndHotkeyTransferred` event on success.
@@ -9221,10 +9735,6 @@ type Icv6ofu4lqekr4 = {
9221
9735
  "weights": Anonymize$1<Icgljjb6j82uhn>;
9222
9736
  "version_key": bigint;
9223
9737
  };
9224
- type I9lpud8mopek2c = {
9225
- "dests": Anonymize$1<Icgljjb6j82uhn>;
9226
- "weights": Anonymize$1<Icgljjb6j82uhn>;
9227
- };
9228
9738
  type I48embv0n659kj = {
9229
9739
  "netuid": number;
9230
9740
  "mecid": number;
@@ -9328,13 +9838,6 @@ type I27gr0ss2ikvqh = {
9328
9838
  "hotkey": SS58String;
9329
9839
  "coldkey": SS58String;
9330
9840
  };
9331
- type Ie7hipi75c7vn0 = {
9332
- "hotkey": SS58String;
9333
- };
9334
- type I7f38r2vt6r9k1 = {
9335
- "netuid": number;
9336
- "hotkey": SS58String;
9337
- };
9338
9841
  type I6b53cjq4m9nsr = {
9339
9842
  "hotkey": SS58String;
9340
9843
  "new_hotkey": SS58String;
@@ -9431,6 +9934,15 @@ type I6r22p9usi2mkl = {
9431
9934
  "limit_price": bigint;
9432
9935
  "allow_partial": boolean;
9433
9936
  };
9937
+ type Iflid9fim112b6 = {
9938
+ "origin_hotkey": SS58String;
9939
+ "destination_hotkey": SS58String;
9940
+ "origin_netuid": number;
9941
+ "destination_netuid": number;
9942
+ "alpha_amount": bigint;
9943
+ "limit_price": bigint;
9944
+ "allow_partial": boolean;
9945
+ };
9434
9946
  type I96k3nrdjfd63k = {
9435
9947
  "netuid": number;
9436
9948
  "evm_key": SizedHex<20>;
@@ -9478,6 +9990,13 @@ type I9946op5slcfjf = {
9478
9990
  "hotkey": SS58String;
9479
9991
  "amount_staked": bigint;
9480
9992
  };
9993
+ type Ia8qodr4vtdlkh = {
9994
+ "hotkey": SS58String;
9995
+ "origin_netuid": number;
9996
+ "destination_netuid": number;
9997
+ "amount": bigint;
9998
+ "min_amount_out": bigint;
9999
+ };
9481
10000
  type Ifcj247vgfdg56 = {
9482
10001
  "netuid": number;
9483
10002
  "new_value": bigint;
@@ -9518,7 +10037,7 @@ type I8lgenv7jnai9a = {
9518
10037
  "alpha": bigint;
9519
10038
  "limit_price": bigint;
9520
10039
  };
9521
- type I7nah218deu5vm = AnonymousEnum$1<{
10040
+ type Ibqb0covkkaile = AnonymousEnum$1<{
9522
10041
  /**
9523
10042
  * Send a batch of dispatch calls.
9524
10043
  *
@@ -9539,7 +10058,7 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9539
10058
  * and the error of the failed call. If all were successful, then the `BatchCompleted`
9540
10059
  * event is deposited.
9541
10060
  */
9542
- "batch": Anonymize$1<I4ugsfd6fvm16k>;
10061
+ "batch": Anonymize$1<I6krirhcafusbj>;
9543
10062
  /**
9544
10063
  * Send a call through an indexed pseudonym of the sender.
9545
10064
  *
@@ -9555,7 +10074,7 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9555
10074
  *
9556
10075
  * The dispatch origin for this call must be _Signed_.
9557
10076
  */
9558
- "as_derivative": Anonymize$1<I4gjcajk974838>;
10077
+ "as_derivative": Anonymize$1<Ie5cqv9mpfc1m5>;
9559
10078
  /**
9560
10079
  * Send a batch of dispatch calls and atomically execute them.
9561
10080
  * The whole transaction will rollback and fail if any of the calls failed.
@@ -9571,7 +10090,7 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9571
10090
  * ## Complexity
9572
10091
  * - O(C) where C is the number of calls to be batched.
9573
10092
  */
9574
- "batch_all": Anonymize$1<I4ugsfd6fvm16k>;
10093
+ "batch_all": Anonymize$1<I6krirhcafusbj>;
9575
10094
  /**
9576
10095
  * Dispatches a function call with a provided origin.
9577
10096
  *
@@ -9580,7 +10099,7 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9580
10099
  * ## Complexity
9581
10100
  * - O(1).
9582
10101
  */
9583
- "dispatch_as": Anonymize$1<Icuj8ja2l10ls>;
10102
+ "dispatch_as": Anonymize$1<I5nh7866g9ol18>;
9584
10103
  /**
9585
10104
  * Send a batch of dispatch calls.
9586
10105
  * Unlike `batch`, it allows errors and won't interrupt.
@@ -9596,7 +10115,7 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9596
10115
  * ## Complexity
9597
10116
  * - O(C) where C is the number of calls to be batched.
9598
10117
  */
9599
- "force_batch": Anonymize$1<I4ugsfd6fvm16k>;
10118
+ "force_batch": Anonymize$1<I6krirhcafusbj>;
9600
10119
  /**
9601
10120
  * Dispatch a function call with a specified weight.
9602
10121
  *
@@ -9605,7 +10124,7 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9605
10124
  *
9606
10125
  * The dispatch origin for this call must be _Root_.
9607
10126
  */
9608
- "with_weight": Anonymize$1<Iba6f23v08tq40>;
10127
+ "with_weight": Anonymize$1<I70imi2h82hc9j>;
9609
10128
  /**
9610
10129
  * Dispatch a fallback call in the event the main call fails to execute.
9611
10130
  * May be called from any origin except `None`.
@@ -9631,7 +10150,7 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9631
10150
  * - Some use cases might involve submitting a `batch` type call in either main, fallback
9632
10151
  * or both.
9633
10152
  */
9634
- "if_else": Anonymize$1<Ickcin37mibler>;
10153
+ "if_else": Anonymize$1<Iffcjm0pa10o6k>;
9635
10154
  /**
9636
10155
  * Dispatches a function call with a provided origin.
9637
10156
  *
@@ -9639,32 +10158,32 @@ type I7nah218deu5vm = AnonymousEnum$1<{
9639
10158
  *
9640
10159
  * The dispatch origin for this call must be _Root_.
9641
10160
  */
9642
- "dispatch_as_fallible": Anonymize$1<Icuj8ja2l10ls>;
10161
+ "dispatch_as_fallible": Anonymize$1<I5nh7866g9ol18>;
9643
10162
  }>;
9644
- type I4ugsfd6fvm16k = {
10163
+ type I6krirhcafusbj = {
9645
10164
  "calls": Array<TxCallData>;
9646
10165
  };
9647
- type I4gjcajk974838 = {
10166
+ type Ie5cqv9mpfc1m5 = {
9648
10167
  "index": number;
9649
10168
  "call": TxCallData;
9650
10169
  };
9651
- type Icuj8ja2l10ls = {
10170
+ type I5nh7866g9ol18 = {
9652
10171
  "as_origin": Anonymize$1<I32es0rp64745v>;
9653
10172
  "call": TxCallData;
9654
10173
  };
9655
- type Iba6f23v08tq40 = {
10174
+ type I70imi2h82hc9j = {
9656
10175
  "call": TxCallData;
9657
10176
  "weight": Anonymize$1<I4q39t5hn830vp>;
9658
10177
  };
9659
- type Ickcin37mibler = {
10178
+ type Iffcjm0pa10o6k = {
9660
10179
  "main": TxCallData;
9661
10180
  "fallback": TxCallData;
9662
10181
  };
9663
- type I7qaae52f173co = AnonymousEnum$1<{
10182
+ type Ib7f6jmk9f26v8 = AnonymousEnum$1<{
9664
10183
  /**
9665
10184
  * Authenticates the sudo key and dispatches a function call with `Root` origin.
9666
10185
  */
9667
- "sudo": Anonymize$1<I2pfv6joe5h8ag>;
10186
+ "sudo": Anonymize$1<I75087q1gjkeq7>;
9668
10187
  /**
9669
10188
  * Authenticates the sudo key and dispatches a function call with `Root` origin.
9670
10189
  * This function does not check the weight of the call, and instead allows the
@@ -9672,7 +10191,7 @@ type I7qaae52f173co = AnonymousEnum$1<{
9672
10191
  *
9673
10192
  * The dispatch origin for this call must be _Signed_.
9674
10193
  */
9675
- "sudo_unchecked_weight": Anonymize$1<Iba6f23v08tq40>;
10194
+ "sudo_unchecked_weight": Anonymize$1<I70imi2h82hc9j>;
9676
10195
  /**
9677
10196
  * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo
9678
10197
  * key.
@@ -9684,7 +10203,7 @@ type I7qaae52f173co = AnonymousEnum$1<{
9684
10203
  *
9685
10204
  * The dispatch origin for this call must be _Signed_.
9686
10205
  */
9687
- "sudo_as": Anonymize$1<Iaig4sr8e0h0lu>;
10206
+ "sudo_as": Anonymize$1<I1bgk7jqfhgcvh>;
9688
10207
  /**
9689
10208
  * Permanently removes the sudo key.
9690
10209
  *
@@ -9692,17 +10211,17 @@ type I7qaae52f173co = AnonymousEnum$1<{
9692
10211
  */
9693
10212
  "remove_key": undefined;
9694
10213
  }>;
9695
- type I2pfv6joe5h8ag = {
10214
+ type I75087q1gjkeq7 = {
9696
10215
  "call": TxCallData;
9697
10216
  };
9698
10217
  type I8k3rnvpeeh4hv = {
9699
10218
  "new": MultiAddress;
9700
10219
  };
9701
- type Iaig4sr8e0h0lu = {
10220
+ type I1bgk7jqfhgcvh = {
9702
10221
  "who": MultiAddress;
9703
10222
  "call": TxCallData;
9704
10223
  };
9705
- type Idfn594vl7q5k1 = AnonymousEnum$1<{
10224
+ type I61d1bquq8rsur = AnonymousEnum$1<{
9706
10225
  /**
9707
10226
  * Immediately dispatch a multi-signature call using a single approval from the caller.
9708
10227
  *
@@ -9717,7 +10236,7 @@ type Idfn594vl7q5k1 = AnonymousEnum$1<{
9717
10236
  * ## Complexity
9718
10237
  * O(Z + C) where Z is the length of the call and C its execution weight.
9719
10238
  */
9720
- "as_multi_threshold_1": Anonymize$1<Ib6g6i7fi6mcm4>;
10239
+ "as_multi_threshold_1": Anonymize$1<I9o9jjp62ka9ds>;
9721
10240
  /**
9722
10241
  * Register approval for a dispatch to be made from a deterministic composite account if
9723
10242
  * approved by a total of `threshold - 1` of `other_signatories`.
@@ -9759,7 +10278,7 @@ type Idfn594vl7q5k1 = AnonymousEnum$1<{
9759
10278
  * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit
9760
10279
  * taken for its lifetime of `DepositBase + threshold * DepositFactor`.
9761
10280
  */
9762
- "as_multi": Anonymize$1<Ia0k7qt3uugio4>;
10281
+ "as_multi": Anonymize$1<I6i6a8rcv8627c>;
9763
10282
  /**
9764
10283
  * Register approval for a dispatch to be made from a deterministic composite account if
9765
10284
  * approved by a total of `threshold - 1` of `other_signatories`.
@@ -9834,22 +10353,22 @@ type Idfn594vl7q5k1 = AnonymousEnum$1<{
9834
10353
  */
9835
10354
  "poke_deposit": Anonymize$1<I6lqh1vgb4mcja>;
9836
10355
  }>;
9837
- type Ib6g6i7fi6mcm4 = {
10356
+ type I9o9jjp62ka9ds = {
9838
10357
  "other_signatories": Anonymize$1<Ia2lhg7l2hilo3>;
9839
10358
  "call": TxCallData;
9840
10359
  };
9841
- type Ia0k7qt3uugio4 = {
10360
+ type I6i6a8rcv8627c = {
9842
10361
  "threshold": number;
9843
10362
  "other_signatories": Anonymize$1<Ia2lhg7l2hilo3>;
9844
10363
  "maybe_timepoint"?: Anonymize$1<I95jfd8j5cr5eh>;
9845
10364
  "call": TxCallData;
9846
10365
  "max_weight": Anonymize$1<I4q39t5hn830vp>;
9847
10366
  };
9848
- type I1nbfq9ghalfts = AnonymousEnum$1<{
10367
+ type I4g1vftkvlff0u = AnonymousEnum$1<{
9849
10368
  /**
9850
10369
  * Anonymously schedule a task.
9851
10370
  */
9852
- "schedule": Anonymize$1<I7l4ur0qt0ri13>;
10371
+ "schedule": Anonymize$1<I9psfsdblsmrj7>;
9853
10372
  /**
9854
10373
  * Cancel an anonymously scheduled task.
9855
10374
  */
@@ -9857,7 +10376,7 @@ type I1nbfq9ghalfts = AnonymousEnum$1<{
9857
10376
  /**
9858
10377
  * Schedule a named task.
9859
10378
  */
9860
- "schedule_named": Anonymize$1<I9vuv1dvkkou3u>;
10379
+ "schedule_named": Anonymize$1<Ic7j1jdi3fd6bu>;
9861
10380
  /**
9862
10381
  * Cancel a named scheduled task.
9863
10382
  */
@@ -9865,11 +10384,11 @@ type I1nbfq9ghalfts = AnonymousEnum$1<{
9865
10384
  /**
9866
10385
  * Anonymously schedule a task after a delay.
9867
10386
  */
9868
- "schedule_after": Anonymize$1<I7dpsfrsieu6gb>;
10387
+ "schedule_after": Anonymize$1<I55hdif1gsjubs>;
9869
10388
  /**
9870
10389
  * Schedule a named task after a delay.
9871
10390
  */
9872
- "schedule_named_after": Anonymize$1<I9tpicjbp6i82t>;
10391
+ "schedule_named_after": Anonymize$1<I9ard2ctaov151>;
9873
10392
  /**
9874
10393
  * Set a retry configuration for a task so that, in case its scheduled run fails, it will
9875
10394
  * be retried after `period` blocks, for a total amount of `retries` retries or until it
@@ -9909,33 +10428,33 @@ type I1nbfq9ghalfts = AnonymousEnum$1<{
9909
10428
  */
9910
10429
  "cancel_retry_named": Anonymize$1<Ifs1i5fk9cqvr6>;
9911
10430
  }>;
9912
- type I7l4ur0qt0ri13 = {
10431
+ type I9psfsdblsmrj7 = {
9913
10432
  "when": number;
9914
10433
  "maybe_periodic"?: Anonymize$1<Iep7au1720bm0e>;
9915
10434
  "priority": number;
9916
10435
  "call": TxCallData;
9917
10436
  };
9918
- type I9vuv1dvkkou3u = {
10437
+ type Ic7j1jdi3fd6bu = {
9919
10438
  "id": SizedHex<32>;
9920
10439
  "when": number;
9921
10440
  "maybe_periodic"?: Anonymize$1<Iep7au1720bm0e>;
9922
10441
  "priority": number;
9923
10442
  "call": TxCallData;
9924
10443
  };
9925
- type I7dpsfrsieu6gb = {
10444
+ type I55hdif1gsjubs = {
9926
10445
  "after": number;
9927
10446
  "maybe_periodic"?: Anonymize$1<Iep7au1720bm0e>;
9928
10447
  "priority": number;
9929
10448
  "call": TxCallData;
9930
10449
  };
9931
- type I9tpicjbp6i82t = {
10450
+ type I9ard2ctaov151 = {
9932
10451
  "id": SizedHex<32>;
9933
10452
  "after": number;
9934
10453
  "maybe_periodic"?: Anonymize$1<Iep7au1720bm0e>;
9935
10454
  "priority": number;
9936
10455
  "call": TxCallData;
9937
10456
  };
9938
- type Iauejd04ricr9d = AnonymousEnum$1<{
10457
+ type I92qmeppin02un = AnonymousEnum$1<{
9939
10458
  /**
9940
10459
  * Dispatch the given `call` from an account that the sender is authorised for through
9941
10460
  * `add_proxy`.
@@ -9947,7 +10466,7 @@ type Iauejd04ricr9d = AnonymousEnum$1<{
9947
10466
  * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.
9948
10467
  * - `call`: The call to be made by the `real` account.
9949
10468
  */
9950
- "proxy": Anonymize$1<I8ce6ks5jovptb>;
10469
+ "proxy": Anonymize$1<I8eecp5lj213g5>;
9951
10470
  /**
9952
10471
  * Register a proxy account for the sender that is able to make calls on its behalf.
9953
10472
  *
@@ -9959,7 +10478,7 @@ type Iauejd04ricr9d = AnonymousEnum$1<{
9959
10478
  * - `delay`: The announcement period required of the initial proxy. Will generally be
9960
10479
  * zero.
9961
10480
  */
9962
- "add_proxy": Anonymize$1<It11trpppbc3l>;
10481
+ "add_proxy": Anonymize$1<I3ounjkfdo4m6u>;
9963
10482
  /**
9964
10483
  * Unregister a proxy account for the sender.
9965
10484
  *
@@ -9969,7 +10488,7 @@ type Iauejd04ricr9d = AnonymousEnum$1<{
9969
10488
  * - `proxy`: The account that the `caller` would like to remove as a proxy.
9970
10489
  * - `proxy_type`: The permissions currently enabled for the removed proxy account.
9971
10490
  */
9972
- "remove_proxy": Anonymize$1<It11trpppbc3l>;
10491
+ "remove_proxy": Anonymize$1<I3ounjkfdo4m6u>;
9973
10492
  /**
9974
10493
  * Unregister all proxy accounts for the sender.
9975
10494
  *
@@ -9999,7 +10518,7 @@ type Iauejd04ricr9d = AnonymousEnum$1<{
9999
10518
  *
10000
10519
  * Fails if there are insufficient funds to pay for deposit.
10001
10520
  */
10002
- "create_pure": Anonymize$1<Ietml13sclqs1q>;
10521
+ "create_pure": Anonymize$1<I8i9ii5oob5jeb>;
10003
10522
  /**
10004
10523
  * Removes a previously spawned pure proxy.
10005
10524
  *
@@ -10018,7 +10537,7 @@ type Iauejd04ricr9d = AnonymousEnum$1<{
10018
10537
  * Fails with `NoPermission` in case the caller is not a previously created pure
10019
10538
  * account whose `create_pure` call has corresponding parameters.
10020
10539
  */
10021
- "kill_pure": Anonymize$1<Iftfic7p3uban2>;
10540
+ "kill_pure": Anonymize$1<Ic5eup222limvr>;
10022
10541
  /**
10023
10542
  * Publish the hash of a proxy-call that will be made in the future.
10024
10543
  *
@@ -10076,7 +10595,7 @@ type Iauejd04ricr9d = AnonymousEnum$1<{
10076
10595
  * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.
10077
10596
  * - `call`: The call to be made by the `real` account.
10078
10597
  */
10079
- "proxy_announced": Anonymize$1<I73kfq9gvndrh3>;
10598
+ "proxy_announced": Anonymize$1<I5f8o56bkooed7>;
10080
10599
  /**
10081
10600
  * Poke / Adjust deposits made for proxies and announcements based on current values.
10082
10601
  * This can be used by accounts to possibly lower their locked amount.
@@ -10102,57 +10621,57 @@ type Iauejd04ricr9d = AnonymousEnum$1<{
10102
10621
  */
10103
10622
  "set_real_pays_fee": Anonymize$1<Ibm6on6oe0malt>;
10104
10623
  }>;
10105
- type I8ce6ks5jovptb = {
10624
+ type I8eecp5lj213g5 = {
10106
10625
  "real": MultiAddress;
10107
- "force_proxy_type"?: Anonymize$1<Iccd9gbcgdpjso>;
10626
+ "force_proxy_type"?: Anonymize$1<I11ionvtt1in56>;
10108
10627
  "call": TxCallData;
10109
10628
  };
10110
- type Iccd9gbcgdpjso = (Anonymize$1<I8v1041j74kmaj>) | undefined;
10111
- type It11trpppbc3l = {
10629
+ type I11ionvtt1in56 = (Anonymize$1<I4855cvrampgh6>) | undefined;
10630
+ type I3ounjkfdo4m6u = {
10112
10631
  "delegate": MultiAddress;
10113
- "proxy_type": Anonymize$1<I8v1041j74kmaj>;
10632
+ "proxy_type": Anonymize$1<I4855cvrampgh6>;
10114
10633
  "delay": number;
10115
10634
  };
10116
- type Ietml13sclqs1q = {
10117
- "proxy_type": Anonymize$1<I8v1041j74kmaj>;
10635
+ type I8i9ii5oob5jeb = {
10636
+ "proxy_type": Anonymize$1<I4855cvrampgh6>;
10118
10637
  "delay": number;
10119
10638
  "index": number;
10120
10639
  };
10121
- type Iftfic7p3uban2 = {
10640
+ type Ic5eup222limvr = {
10122
10641
  "spawner": MultiAddress;
10123
- "proxy_type": Anonymize$1<I8v1041j74kmaj>;
10642
+ "proxy_type": Anonymize$1<I4855cvrampgh6>;
10124
10643
  "index": number;
10125
10644
  "height": number;
10126
10645
  "ext_index": number;
10127
10646
  };
10128
- type I73kfq9gvndrh3 = {
10647
+ type I5f8o56bkooed7 = {
10129
10648
  "delegate": MultiAddress;
10130
10649
  "real": MultiAddress;
10131
- "force_proxy_type"?: Anonymize$1<Iccd9gbcgdpjso>;
10650
+ "force_proxy_type"?: Anonymize$1<I11ionvtt1in56>;
10132
10651
  "call": TxCallData;
10133
10652
  };
10134
10653
  type Ibm6on6oe0malt = {
10135
10654
  "delegate": MultiAddress;
10136
10655
  "pays_fee": boolean;
10137
10656
  };
10138
- type I5bqhvupj937er = AnonymousEnum$1<{
10657
+ type I4rl1n35obh34e = AnonymousEnum$1<{
10139
10658
  /**
10140
10659
  * Set the commitment for a given netuid
10141
10660
  */
10142
- "set_commitment": Anonymize$1<I57v1t6776pl3a>;
10661
+ "set_commitment": Anonymize$1<I61t1b69aba6p0>;
10143
10662
  /**
10144
10663
  * Sudo-set MaxSpace
10145
10664
  */
10146
10665
  "set_max_space": Anonymize$1<I1il5mj68vvsms>;
10147
10666
  }>;
10148
- type I57v1t6776pl3a = {
10667
+ type I61t1b69aba6p0 = {
10149
10668
  "netuid": number;
10150
- "info": Anonymize$1<I4122t6tpcniur>;
10669
+ "info": Anonymize$1<Ie5icb4csjej6e>;
10151
10670
  };
10152
10671
  type I1il5mj68vvsms = {
10153
10672
  "new_limit": number;
10154
10673
  };
10155
- type I89qogqd90ifll = AnonymousEnum$1<{
10674
+ type I22206lc3l1rdi = AnonymousEnum$1<{
10156
10675
  /**
10157
10676
  * The extrinsic sets the new authorities for Aura consensus.
10158
10677
  * It is only callable by the root account.
@@ -10425,6 +10944,10 @@ type I89qogqd90ifll = AnonymousEnum$1<{
10425
10944
  * Sets values for liquid alpha
10426
10945
  */
10427
10946
  "sudo_set_alpha_values": Anonymize$1<I71lu4gpn88cf0>;
10947
+ /**
10948
+ * Sets which consensus values liquid alpha uses for a subnet.
10949
+ */
10950
+ "sudo_set_liquid_alpha_consensus_mode": Anonymize$1<Ibr3jgvn47f6ub>;
10428
10951
  /**
10429
10952
  * Sets the duration of the dissolve network schedule.
10430
10953
  *
@@ -10480,14 +11003,13 @@ type I89qogqd90ifll = AnonymousEnum$1<{
10480
11003
  *
10481
11004
  * Schedule a change in the authorities.
10482
11005
  *
10483
- * The change will be applied at the end of execution of the block `in_blocks` after the
10484
- * current block. This value may be 0, in which case the change is applied at the end of
10485
- * the current block.
11006
+ * The change is applied at the end of the current block, so `in_blocks` must be 0. This
11007
+ * keeps the authority set and its set ID consistent in every persisted block state.
10486
11008
  *
10487
11009
  * If the `forced` parameter is defined, this indicates that the current set has been
10488
- * synchronously determined to be offline and that after `in_blocks` the given change
10489
- * should be applied. The given block number indicates the median last finalized block
10490
- * number and it should be used as the canon block when starting the new grandpa voter.
11010
+ * synchronously determined to be offline. The given block number indicates the median
11011
+ * last finalized block number and it should be used as the canon block when starting the
11012
+ * new grandpa voter.
10491
11013
  *
10492
11014
  * No change should be signaled while any change is pending. Returns an error if a change
10493
11015
  * is already pending.
@@ -10531,7 +11053,7 @@ type I89qogqd90ifll = AnonymousEnum$1<{
10531
11053
  * # Weight
10532
11054
  * Weight is handled by the `#[pallet::weight]` attribute.
10533
11055
  */
10534
- "sudo_toggle_evm_precompile": Anonymize$1<Ic2qbis4e68na8>;
11056
+ "sudo_toggle_evm_precompile": Anonymize$1<I5emsms8keuaac>;
10535
11057
  /**
10536
11058
  *
10537
11059
  *
@@ -10800,13 +11322,54 @@ type I89qogqd90ifll = AnonymousEnum$1<{
10800
11322
  */
10801
11323
  "sudo_set_collateral_drain_ratio": Anonymize$1<Ii5ndf7h688tr>;
10802
11324
  /**
10803
- * Enables or disables root basket weight setting (`set_root_weights`)
10804
- * network-wide. Root Reborn launches with this OFF so every fund runs the
10805
- * null (accumulate in place) strategy as the observable baseline; flip it on
10806
- * later to open basket curation. Gates only the setter — existing vectors,
10807
- * dividend deployment, and reads are unaffected. Root-only.
11325
+ * Sets the basket concentration cap ([`pallet_subtensor::BasketConcentrationCap`]):
11326
+ * the largest u16-normalized share (`u16::MAX` = 100%) of fund NAV any single
11327
+ * holding may reach through a `swap_basket` buy. A cap of `u16::MAX / 16 + 1`
11328
+ * forces traded funds to spread across at least 16 holdings. The check is skipped
11329
+ * while fewer subnets exist on chain than the cap demands. Root-only.
11330
+ */
11331
+ "sudo_set_basket_concentration_cap": Anonymize$1<Ieju6qo4sptvs6>;
11332
+ /**
11333
+ * Enables or disables validator basket trading (`swap_basket`) network-wide.
11334
+ * Defaults OFF. Gates only the trade path: deposits, claims, dividend accrual,
11335
+ * and reads are unaffected. Root-only.
11336
+ */
11337
+ "sudo_set_basket_trading_enabled": Anonymize$1<I94dejtmu6d72i>;
11338
+ /**
11339
+ * Freezes or unfreezes basket trading for one validator hotkey
11340
+ * ([`pallet_subtensor::BasketTradingFrozen`]), e.g. after a suspected key
11341
+ * compromise. A frozen fund still accepts deposits and pays claims. Root-only.
11342
+ */
11343
+ "sudo_set_basket_trading_frozen": Anonymize$1<Ifh6muqgp7cgvc>;
11344
+ /**
11345
+ * Sets the basket daily turnover budget ([`pallet_subtensor::BasketDailyTurnoverCap`]):
11346
+ * the capacity of each fund's `swap_basket` turnover bucket as a u16-normalized share
11347
+ * of fund NAV (`u16::MAX` = 100%). The bucket refills over 7200 blocks, so at most one
11348
+ * capacity can be traded at any instant and about one per day sustained. Root-only.
11349
+ */
11350
+ "sudo_set_basket_daily_turnover_cap": Anonymize$1<Ieju6qo4sptvs6>;
11351
+ /**
11352
+ * Sets the basket liquidity cap ([`pallet_subtensor::BasketLiquidityCap`]): the
11353
+ * largest u16-normalized share of a subnet's alpha reserve (`u16::MAX` = 100%) a fund
11354
+ * may hold on that subnet after a `swap_basket` buy. Bounds the fund's exposure to
11355
+ * any one pool's liquidity: with cap `L` the value at risk on a pool with TAO
11356
+ * reserve `R` is about `R × L² / (1 + L)`. Root-only.
11357
+ */
11358
+ "sudo_set_basket_liquidity_cap": Anonymize$1<Ieju6qo4sptvs6>;
11359
+ /**
11360
+ * Sets the four root-claim dust knobs at once. A claim does not sell a fund row
11361
+ * whose whole holding is worth less than `min(row_cap_rao, row_bps × anchored NAV)`
11362
+ * ([`pallet_subtensor::BasketClaimRowDustCapTao`],
11363
+ * [`pallet_subtensor::BasketClaimRowDustBps`]), nor a row where the claimant's own
11364
+ * slice is worth less than `slice_rao` ([`pallet_subtensor::BasketClaimSliceDustTao`]),
11365
+ * provided that slice is worth at most `forfeit_cap_rao`
11366
+ * ([`pallet_subtensor::BasketClaimForfeitCapTao`]) — all at the anchored mark; the
11367
+ * skipped slices stay in the fund for the other holders. Zero turns the respective
11368
+ * skip off (a zero cap turns every skip off). `row_bps` is at most 10_000 (100%).
11369
+ * Declared at four times the sibling one-write basket setter's weight (four
11370
+ * writes; a dedicated benchmark exists for CI to measure). Root-only.
10808
11371
  */
10809
- "sudo_set_root_weight_setting_enabled": Anonymize$1<I94dejtmu6d72i>;
11372
+ "sudo_set_basket_claim_dust": Anonymize$1<I1efeqe055hnfk>;
10810
11373
  /**
10811
11374
  * Sets the per-block cap on subnet epochs (dynamic tempo throttle).
10812
11375
  */
@@ -10943,6 +11506,10 @@ type I71lu4gpn88cf0 = {
10943
11506
  "alpha_low": number;
10944
11507
  "alpha_high": number;
10945
11508
  };
11509
+ type Ibr3jgvn47f6ub = {
11510
+ "netuid": number;
11511
+ "mode": Anonymize$1<I229aourr5nmc9>;
11512
+ };
10946
11513
  type I98iornf3ajrp9 = {
10947
11514
  "duration": number;
10948
11515
  };
@@ -11211,7 +11778,7 @@ type Ifd3mkud9g8rb1 = {
11211
11778
  type Iakvbbhvger3oa = {
11212
11779
  "oldest_round": bigint;
11213
11780
  };
11214
- type I7u3i7as46m052 = AnonymousEnum$1<{
11781
+ type I4aace3g7urkfs = AnonymousEnum$1<{
11215
11782
  /**
11216
11783
  * Create a crowdloan that will raise funds up to a maximum cap and if successful,
11217
11784
  * will either transfer funds to the target address or dispatch the call
@@ -11232,7 +11799,7 @@ type I7u3i7as46m052 = AnonymousEnum$1<{
11232
11799
  * - `call`: The call to dispatch when the crowdloan is finalized.
11233
11800
  * - `target_address`: The address to transfer the raised funds to.
11234
11801
  */
11235
- "create": Anonymize$1<I4t6ackul815hk>;
11802
+ "create": Anonymize$1<Id7vjasec7na9g>;
11236
11803
  /**
11237
11804
  * Contribute to an active crowdloan.
11238
11805
  *
@@ -11269,6 +11836,8 @@ type I7u3i7as46m052 = AnonymousEnum$1<{
11269
11836
  * When dispatching a call, the CurrentCrowdloanId will be set to the crowdloan id
11270
11837
  * being finalized so the dispatched call can access it temporarily by accessing
11271
11838
  * the `CurrentCrowdloanId` storage item.
11839
+ * The call must spend the full raised amount from the funds account; otherwise
11840
+ * finalization and any partial effects are rolled back.
11272
11841
  *
11273
11842
  * The dispatch origin for this call must be _Signed_ and must be the creator of the crowdloan.
11274
11843
  *
@@ -11346,7 +11915,7 @@ type I7u3i7as46m052 = AnonymousEnum$1<{
11346
11915
  */
11347
11916
  "set_max_contribution": Anonymize$1<I9braq9qhpo8fl>;
11348
11917
  }>;
11349
- type I4t6ackul815hk = {
11918
+ type Id7vjasec7na9g = {
11350
11919
  "deposit": bigint;
11351
11920
  "min_contribution": bigint;
11352
11921
  "cap": bigint;
@@ -11660,7 +12229,7 @@ type I5lq4pf17u9hc8 = {
11660
12229
  type Ic07rk250cl0js = {
11661
12230
  "encrypted_call": Uint8Array;
11662
12231
  };
11663
- type Ifhbgqacqigvj3 = AnonymousEnum$1<{
12232
+ type I2enlcrvdobpqt = AnonymousEnum$1<{
11664
12233
  /**
11665
12234
  * Execute a batch of signed limit orders. Admin-gated.
11666
12235
  *
@@ -11676,7 +12245,7 @@ type Ifhbgqacqigvj3 = AnonymousEnum$1<{
11676
12245
  * whole batch by returning the underlying error, reverting any orders
11677
12246
  * already executed in this call.
11678
12247
  */
11679
- "execute_orders": Anonymize$1<I13cr1jhg3ick>;
12248
+ "execute_orders": Anonymize$1<I2gnn08emp92fv>;
11680
12249
  /**
11681
12250
  * Execute a batch of signed limit orders for a single subnet using
11682
12251
  * aggregated (netted) pool interaction.
@@ -11701,7 +12270,7 @@ type Ifhbgqacqigvj3 = AnonymousEnum$1<{
11701
12270
  * All orders in the batch must target `netuid`. Orders for a different
11702
12271
  * subnet are skipped.
11703
12272
  */
11704
- "execute_batched_orders": Anonymize$1<Iaiidau60pa8a>;
12273
+ "execute_batched_orders": Anonymize$1<I39mr7pd2tq42p>;
11705
12274
  /**
11706
12275
  * Register a cancellation intent for an order.
11707
12276
  *
@@ -11709,7 +12278,7 @@ type Ifhbgqacqigvj3 = AnonymousEnum$1<{
11709
12278
  * provided so the pallet can derive the `OrderId`. Once marked
11710
12279
  * Cancelled, the order can never be executed.
11711
12280
  */
11712
- "cancel_order": Anonymize$1<I5kfem6cgo8bnh>;
12281
+ "cancel_order": Anonymize$1<I2ki6vvodcknh0>;
11713
12282
  /**
11714
12283
  * Set a status for the limit orders pallet
11715
12284
  *
@@ -11718,17 +12287,22 @@ type Ifhbgqacqigvj3 = AnonymousEnum$1<{
11718
12287
  * true means enabling, false means disabling
11719
12288
  */
11720
12289
  "set_pallet_status": Anonymize$1<I94dejtmu6d72i>;
12290
+ /**
12291
+ * Remove a provider record. The signer may prune at any time; anyone
12292
+ * may prune after `expires_at`. Moves no funds.
12293
+ */
12294
+ "prune_linked_output": Anonymize$1<Icounsrraf8e8l>;
11721
12295
  }>;
11722
- type I13cr1jhg3ick = {
11723
- "orders": Anonymize$1<I3sfvk6u6ka73k>;
12296
+ type I2gnn08emp92fv = {
12297
+ "orders": Anonymize$1<I1geeil1sisqgc>;
11724
12298
  "should_fail": boolean;
11725
12299
  };
11726
- type I3sfvk6u6ka73k = Array<{
11727
- "order": Anonymize$1<I6fs7nagvib2jh>;
12300
+ type I1geeil1sisqgc = Array<{
12301
+ "order": Anonymize$1<I955ov9hehthlm>;
11728
12302
  "signature": MultiSignature;
11729
12303
  "partial_fill"?: Anonymize$1<I35p85j063s0il>;
11730
12304
  }>;
11731
- type I6fs7nagvib2jh = AnonymousEnum$1<{
12305
+ type I955ov9hehthlm = AnonymousEnum$1<{
11732
12306
  "V1": {
11733
12307
  "signer": SS58String;
11734
12308
  "hotkey": SS58String;
@@ -11744,53 +12318,78 @@ type I6fs7nagvib2jh = AnonymousEnum$1<{
11744
12318
  "chain_id": bigint;
11745
12319
  "partial_fills_enabled": boolean;
11746
12320
  };
12321
+ "V2": {
12322
+ "signer": SS58String;
12323
+ "hotkey": SS58String;
12324
+ "netuid": number;
12325
+ "order_type": Anonymize$1<I8ihq9g3g7resb>;
12326
+ "amount": Enum<{
12327
+ "Fixed": bigint;
12328
+ "LinkedPercentage": {
12329
+ "provider": SizedHex<32>;
12330
+ "pct": number;
12331
+ };
12332
+ }>;
12333
+ "limit_price": bigint;
12334
+ "expiry": bigint;
12335
+ "fee_rate": number;
12336
+ "fee_recipient": SS58String;
12337
+ "relayer"?: Anonymize$1<I9ov9amur2hn1d>;
12338
+ "max_slippage"?: Anonymize$1<I4arjljr6dpflb>;
12339
+ "chain_id": bigint;
12340
+ "partial_fills_enabled": boolean;
12341
+ "has_linked_order": boolean;
12342
+ };
11747
12343
  }>;
11748
12344
  type I9ov9amur2hn1d = (Anonymize$1<Ia2lhg7l2hilo3>) | undefined;
11749
- type Iaiidau60pa8a = {
12345
+ type I39mr7pd2tq42p = {
11750
12346
  "netuid": number;
11751
- "orders": Anonymize$1<I3sfvk6u6ka73k>;
12347
+ "orders": Anonymize$1<I1geeil1sisqgc>;
12348
+ };
12349
+ type I2ki6vvodcknh0 = {
12350
+ "order": Anonymize$1<I955ov9hehthlm>;
11752
12351
  };
11753
- type I5kfem6cgo8bnh = {
11754
- "order": Anonymize$1<I6fs7nagvib2jh>;
12352
+ type Icounsrraf8e8l = {
12353
+ "order_id": SizedHex<32>;
11755
12354
  };
11756
- type Icqgfma7tj4kp4 = AnonymousEnum$1<{
12355
+ type Ifqpkj93u7u816 = AnonymousEnum$1<{
11757
12356
  "System": Anonymize$1<Iekve0i6djpd9f>;
11758
12357
  "Timestamp": Anonymize$1<I7d75gqfg6jh9c>;
11759
12358
  "Grandpa": Anonymize$1<Ibck9ekr2i96uj>;
11760
12359
  "Balances": Anonymize$1<I9svldsp29mh87>;
11761
- "SubtensorModule": Anonymize$1<I4m0jq797pckog>;
11762
- "Utility": Anonymize$1<I7nah218deu5vm>;
11763
- "Sudo": Anonymize$1<I7qaae52f173co>;
11764
- "Multisig": Anonymize$1<Idfn594vl7q5k1>;
12360
+ "SubtensorModule": Anonymize$1<I1c2l6pbupt5je>;
12361
+ "Utility": Anonymize$1<Ibqb0covkkaile>;
12362
+ "Sudo": Anonymize$1<Ib7f6jmk9f26v8>;
12363
+ "Multisig": Anonymize$1<I61d1bquq8rsur>;
11765
12364
  "Preimage": Anonymize$1<If81ks88t5mpk5>;
11766
- "Scheduler": Anonymize$1<I1nbfq9ghalfts>;
11767
- "Proxy": Anonymize$1<Iauejd04ricr9d>;
11768
- "Commitments": Anonymize$1<I5bqhvupj937er>;
11769
- "AdminUtils": Anonymize$1<I89qogqd90ifll>;
12365
+ "Scheduler": Anonymize$1<I4g1vftkvlff0u>;
12366
+ "Proxy": Anonymize$1<I92qmeppin02un>;
12367
+ "Commitments": Anonymize$1<I4rl1n35obh34e>;
12368
+ "AdminUtils": Anonymize$1<I22206lc3l1rdi>;
11770
12369
  "SafeMode": Anonymize$1<I48eehof2eias5>;
11771
12370
  "Ethereum": Anonymize$1<I3lo8is2egp8k4>;
11772
12371
  "EVM": Anonymize$1<Iafltn68socb5h>;
11773
12372
  "BaseFee": Anonymize$1<I2aqcjbjlffus>;
11774
12373
  "Drand": Anonymize$1<Ibdf4fkp7qcokd>;
11775
- "Crowdloan": Anonymize$1<I7u3i7as46m052>;
12374
+ "Crowdloan": Anonymize$1<I4aace3g7urkfs>;
11776
12375
  "Swap": Anonymize$1<Id0qcnu1chac12>;
11777
12376
  "Contracts": Anonymize$1<I6jivj2j5qp8sa>;
11778
12377
  "MevShield": Anonymize$1<I5fpdlstuub4e0>;
11779
- "LimitOrders": Anonymize$1<Ifhbgqacqigvj3>;
12378
+ "LimitOrders": Anonymize$1<I2enlcrvdobpqt>;
11780
12379
  }>;
11781
- type Ibtp9952qoipot = ResultPayload<Anonymize$1<I38vhitvbd00gg>, Anonymize$1<I5nrjkj9qumobs>>;
11782
- type Ib4jttiiie8lcu = ResultPayload<Anonymize$1<I7ag5k7bmmgq3j>, Anonymize$1<Ibb8u96f04kc5k>>;
11783
- type I3e56kgbm7nkqc = ResultPayload<Anonymize$1<Ie3rl25flint9v>, Anonymize$1<Ibb8u96f04kc5k>>;
11784
- type Ifmh088ivqs9s8 = {
12380
+ type I6jkah5k0508u5 = ResultPayload<Anonymize$1<I2tgj23u15fhfj>, Anonymize$1<I5nrjkj9qumobs>>;
12381
+ type I4lbgficb22f1i = ResultPayload<Anonymize$1<I7ag5k7bmmgq3j>, Anonymize$1<I8p4c3h8cei06k>>;
12382
+ type I19vcmto68hf1n = ResultPayload<Anonymize$1<Ie3rl25flint9v>, Anonymize$1<I8p4c3h8cei06k>>;
12383
+ type I1i5gcj1g66t9s = {
11785
12384
  "gas_consumed": Anonymize$1<I4q39t5hn830vp>;
11786
12385
  "gas_required": Anonymize$1<I4q39t5hn830vp>;
11787
12386
  "storage_deposit": Anonymize$1<If7bmpttbdmqu4>;
11788
12387
  "debug_message": Uint8Array;
11789
- "result": ResultPayload<Anonymize$1<I620n7irgfspm4>, Anonymize$1<Ibb8u96f04kc5k>>;
11790
- "events"?: Anonymize$1<Ideo1t39ckdhkj>;
12388
+ "result": ResultPayload<Anonymize$1<I620n7irgfspm4>, Anonymize$1<I8p4c3h8cei06k>>;
12389
+ "events"?: Anonymize$1<I4f2t1t6j0hl66>;
11791
12390
  };
11792
- type Ideo1t39ckdhkj = (Anonymize$1<I3gs634k5hg7e2>) | undefined;
11793
- type I6haggd6r8nfrq = {
12391
+ type I4f2t1t6j0hl66 = (Anonymize$1<Irbru2v9j271i>) | undefined;
12392
+ type I8rnr9khmpumvg = {
11794
12393
  "gas_consumed": Anonymize$1<I4q39t5hn830vp>;
11795
12394
  "gas_required": Anonymize$1<I4q39t5hn830vp>;
11796
12395
  "storage_deposit": Anonymize$1<If7bmpttbdmqu4>;
@@ -11798,10 +12397,10 @@ type I6haggd6r8nfrq = {
11798
12397
  "result": ResultPayload<{
11799
12398
  "result": Anonymize$1<I620n7irgfspm4>;
11800
12399
  "account_id": SS58String;
11801
- }, Anonymize$1<Ibb8u96f04kc5k>>;
11802
- "events"?: Anonymize$1<Ideo1t39ckdhkj>;
12400
+ }, Anonymize$1<I8p4c3h8cei06k>>;
12401
+ "events"?: Anonymize$1<I4f2t1t6j0hl66>;
11803
12402
  };
11804
- type I7b9uu7map16jq = ResultPayload<Anonymize$1<Icjs1v5avc8kdj>, Anonymize$1<Ibb8u96f04kc5k>>;
12403
+ type Idtedbn12sqdfp = ResultPayload<Anonymize$1<Icjs1v5avc8kdj>, Anonymize$1<I8p4c3h8cei06k>>;
11805
12404
  type I9u22scd4ksrjm = ResultPayload<Anonymize$1<Iabpgqcjikia83>, Enum<{
11806
12405
  "DoesntExist": undefined;
11807
12406
  "KeyDecodingFailed": undefined;
@@ -12211,14 +12810,13 @@ type I8bn6o1k1jal8f = Array<[SS58String, Array<[number, {
12211
12810
  type I3pbrjdm4vnbsa = (Anonymize$1<I6ouflveob4eli>) | undefined;
12212
12811
  type Iaa9klnetuoncg = (Anonymize$1<I8tqsm2j01rn5j>) | undefined;
12213
12812
  type I6e5v3c8v6006s = Array<[number, bigint, bigint]>;
12214
- type Id819kcso1e55l = {
12813
+ type Icj6me7ae49ft9 = {
12215
12814
  "hotkey": SS58String;
12216
12815
  "nav_tao": bigint;
12217
12816
  "spot_nav_tao": bigint;
12218
12817
  "shares": bigint;
12219
12818
  "deposited_tao": bigint;
12220
12819
  "redeemed_tao": bigint;
12221
- "weights": Anonymize$1<I95g6i7ilua7lq>;
12222
12820
  "holdings": Array<{
12223
12821
  "netuid": number;
12224
12822
  "alpha": bigint;
@@ -12226,7 +12824,69 @@ type Id819kcso1e55l = {
12226
12824
  "realizable_tao": bigint;
12227
12825
  }>;
12228
12826
  };
12229
- type Ib7i77a0semn9 = Array<Anonymize$1<Id819kcso1e55l>>;
12827
+ type I9tml3ucf2ji9 = Array<Anonymize$1<Icj6me7ae49ft9>>;
12828
+ type I489vg7ldsoqco = (Anonymize$1<I37k4j2kn9amem>) | undefined;
12829
+ type I37k4j2kn9amem = {
12830
+ "hotkey": SS58String;
12831
+ "beta": bigint;
12832
+ "beta_total": bigint;
12833
+ "nav_tao": bigint;
12834
+ "value_tao": bigint;
12835
+ "spot_value_tao": bigint;
12836
+ };
12837
+ type Itk4us3dujtnq = Array<Anonymize$1<I37k4j2kn9amem>>;
12838
+ type I1kko85se1j76q = (Anonymize$1<I3uk4lgifvtocq>) | undefined;
12839
+ type I3uk4lgifvtocq = {
12840
+ "hotkey": SS58String;
12841
+ "spot_price": bigint;
12842
+ "display_price": bigint;
12843
+ "stake_price": bigint;
12844
+ "staker_yield": bigint;
12845
+ "staker_twr": bigint;
12846
+ "bag_index": bigint;
12847
+ "stake_index": bigint;
12848
+ "first_block": bigint;
12849
+ "provisional": boolean;
12850
+ "spot_nav_tao": bigint;
12851
+ "shares": bigint;
12852
+ "display_shares": bigint;
12853
+ };
12854
+ type I1ekgmgbc7944g = {
12855
+ "pricing": Array<Anonymize$1<I3uk4lgifvtocq>>;
12856
+ "next"?: Anonymize$1<Ihfphjolmsqq1>;
12857
+ };
12858
+ type Ib79aluc5vvn4f = (Anonymize$1<Ifu7chs882vf16>) | undefined;
12859
+ type Ifu7chs882vf16 = {
12860
+ "hotkey": SS58String;
12861
+ "beta": bigint;
12862
+ "display_beta": bigint;
12863
+ "display_price": bigint;
12864
+ "value_tao": bigint;
12865
+ "spot_value_tao": bigint;
12866
+ "provisional": boolean;
12867
+ };
12868
+ type I96giokn5gpcih = Array<Anonymize$1<Ifu7chs882vf16>>;
12869
+ type Ib4aj3n3imrbbt = {
12870
+ "enabled": boolean;
12871
+ "frozen": boolean;
12872
+ "refill_blocks": bigint;
12873
+ "tao_available": bigint;
12874
+ "budget_tao": bigint;
12875
+ };
12876
+ type Idbvhenser4uaq = (Anonymize$1<I9e297vpcm4m74>) | undefined;
12877
+ type I9e297vpcm4m74 = {
12878
+ "hotkey": SS58String;
12879
+ "owed_shares": bigint;
12880
+ "accrued_tao": bigint;
12881
+ "redeemable_tao": bigint;
12882
+ "forfeited_tao_est": bigint;
12883
+ "rows": number;
12884
+ "rows_to_sell": number;
12885
+ "dust_rows": number;
12886
+ "swept": number;
12887
+ "flushed_credits": number;
12888
+ };
12889
+ type Ia1dgslg70jbtg = Array<Anonymize$1<I9e297vpcm4m74>>;
12230
12890
  type I5fc46fadm1en5 = Array<{
12231
12891
  "name": Uint8Array;
12232
12892
  "index": number;
@@ -12335,7 +12995,7 @@ type IStorage = {
12335
12995
  * Events have a large in-memory size. Box the events to not go out-of-memory
12336
12996
  * just in case someone still reads them from within the runtime.
12337
12997
  */
12338
- Events: StorageDescriptor<[], Anonymize<I3gs634k5hg7e2>, false, never>;
12998
+ Events: StorageDescriptor<[], Anonymize<Irbru2v9j271i>, false, never>;
12339
12999
  /**
12340
13000
  * The number of events in the `Events<T>` list.
12341
13001
  */
@@ -12629,6 +13289,18 @@ type IStorage = {
12629
13289
  * DMAP ( hot, netuid ) --> take | Returns the hotkey childkey take for a specific subnet
12630
13290
  */
12631
13291
  ChildkeyTake: StorageDescriptor<Anonymize<I6ouflveob4eli>, number, false, never>;
13292
+ /**
13293
+ * MAP ( parent ) --> () | Parents with live child relations whose stake just changed.
13294
+ * Drained in `on_idle`, where each parent's total stake is re-checked against
13295
+ * `StakeThreshold` and `ChildkeyThresholdSuspended` is set or cleared.
13296
+ */
13297
+ ChildkeyThresholdChecks: StorageDescriptor<[Key: SS58String], null, true, never>;
13298
+ /**
13299
+ * MAP ( parent ) --> () | Parents whose total stake is below `StakeThreshold`. Their child
13300
+ * relations stay stored but are inert (hidden from `get_children` / `get_parents`)
13301
+ * except on subnets they own, until they qualify again.
13302
+ */
13303
+ ChildkeyThresholdSuspended: StorageDescriptor<[Key: SS58String], null, true, never>;
12632
13304
  /**
12633
13305
  * DMAP ( netuid, parent ) --> (Vec<(proportion,child)>, cool_down_block)
12634
13306
  */
@@ -12649,12 +13321,6 @@ type IStorage = {
12649
13321
  * DMAP ( netuid, hotkey ) --> u64 | Last root alpha dividend this hotkey got on tempo.
12650
13322
  */
12651
13323
  RootAlphaDividendsPerSubnet: StorageDescriptor<Anonymize<I7svnfko10tq2e>, bigint, false, never>;
12652
- /**
12653
- * Root dividend credits whose per-hotkey allocation was calculated by an epoch while the
12654
- * beta-basket seed migration owned the destination maps. Credits are released to the same
12655
- * hotkey on that subnet's first epoch after the seed completes.
12656
- */
12657
- DeferredRootAlphaDividends: StorageDescriptor<Anonymize<I7svnfko10tq2e>, bigint, false, never>;
12658
13324
  /**
12659
13325
  * DMAP ( hotkey, netuid ) --> alpha | Root dividend credits waiting to enter the
12660
13326
  * validator's beta basket. Epochs enqueue here instead of depositing inline (a deposit
@@ -12715,6 +13381,17 @@ type IStorage = {
12715
13381
  * MAP ( netuid ) --> moving_price | The subnet moving price.
12716
13382
  */
12717
13383
  SubnetMovingPrice: StorageDescriptor<[Key: number], bigint, false, never>;
13384
+ /**
13385
+ * MAP ( netuid ) --> fast moving price | A fast EMA of the subnet's spot price
13386
+ * (TAO per alpha, unclamped) with a [`BASKET_FAST_EMA_HALF_LIFE_BLOCKS`] half-life,
13387
+ * updated once per block right after [`SubnetMovingPrice`] from the spot at the end of
13388
+ * the previous block, so no extrinsic in the current block can move it. It is a trading
13389
+ * anchor only — `swap_basket` bounds every leg to within
13390
+ * [`BASKET_TRADE_MAX_SLIPPAGE_BPS`] of the strictest of this, the slow EMA, and spot —
13391
+ * and plays no part in emission. Absent until the subnet's first update after the
13392
+ * upgrade (trading on it is refused until then).
13393
+ */
13394
+ SubnetFastMovingPrice: StorageDescriptor<[Key: number], bigint, true, never>;
12718
13395
  /**
12719
13396
  * MAP ( netuid ) --> root_prop | The subnet root proportion.
12720
13397
  */
@@ -12808,6 +13485,10 @@ type IStorage = {
12808
13485
  * DMAP ( hot, netuid ) --> alpha | Returns the total amount of alpha a hotkey owns.
12809
13486
  */
12810
13487
  TotalHotkeyAlpha: StorageDescriptor<Anonymize<I6ouflveob4eli>, bigint, false, never>;
13488
+ /**
13489
+ * MAP ( netuid ) --> alpha | Returns the total alpha staked across all hotkeys on a subnet.
13490
+ */
13491
+ TotalAlphaStaked: StorageDescriptor<[Key: number], bigint, false, never>;
12811
13492
  /**
12812
13493
  * DMAP ( hot, netuid ) --> alpha | Returns the total amount of alpha a hotkey owned in the last epoch.
12813
13494
  */
@@ -12828,6 +13509,18 @@ type IStorage = {
12828
13509
  * NMAP ( hot, cold, netuid ) --> alpha | Returns the alpha shares for a hotkey, coldkey, netuid triplet, stores SafeFloat.
12829
13510
  */
12830
13511
  AlphaV2: StorageDescriptor<Anonymize<I7svrbkiu01iec>, Anonymize<I9a0jm719fs81d>, false, never>;
13512
+ /**
13513
+ * DMAP ( hot, netuid ) --> epoch | Generation of the hotkey's alpha share pool on a subnet.
13514
+ * Incremented each time the pool is closed (its share denominator is written to zero
13515
+ * because the pool holds no value). Share rows stamped with an older epoch belong to a
13516
+ * closed pool and are read as absent, so they can never claim value deposited later.
13517
+ */
13518
+ AlphaSharePoolEpoch: StorageDescriptor<Anonymize<I6ouflveob4eli>, bigint, false, never>;
13519
+ /**
13520
+ * NMAP ( hot, cold, netuid ) --> epoch | Pool epoch in which an `AlphaV2` (or legacy
13521
+ * `Alpha`) share row was last written. Absent means epoch 0.
13522
+ */
13523
+ AlphaShareEpoch: StorageDescriptor<Anonymize<I7svrbkiu01iec>, bigint, false, never>;
12831
13524
  /**
12832
13525
  * DMAP ( coldkey, netuid, hotkey ) --> LockState | Exponential lock per coldkey per subnet.
12833
13526
  */
@@ -12987,7 +13680,7 @@ type IStorage = {
12987
13680
  /**
12988
13681
  * MAP ( RateLimitKey ) --> Block number in which the last rate limited operation occured
12989
13682
  */
12990
- LastRateLimitedBlock: StorageDescriptor<[Key: Anonymize<I50nns99df0pho>], bigint, false, never>;
13683
+ LastRateLimitedBlock: StorageDescriptor<[Key: Anonymize<I5qeacfd1c156k>], bigint, false, never>;
12991
13684
  /**
12992
13685
  * MAP ( netuid ) --> transfer_toggle
12993
13686
  */
@@ -13282,6 +13975,10 @@ type IStorage = {
13282
13975
  * MAP ( netuid ) --> (alpha_low, alpha_high)
13283
13976
  */
13284
13977
  AlphaValues: StorageDescriptor<[Key: number], Anonymize<I9jd27rnpm8ttv>, false, never>;
13978
+ /**
13979
+ * Consensus mode used by liquid alpha for each subnet.
13980
+ */
13981
+ LiquidAlphaConsensusMode: StorageDescriptor<[Key: number], Anonymize<I229aourr5nmc9>, false, never>;
13285
13982
  /**
13286
13983
  * MAP ( netuid ) --> If subtoken trading enabled
13287
13984
  */
@@ -13293,7 +13990,7 @@ type IStorage = {
13293
13990
  /**
13294
13991
  * ITEM ( current_dissolve_cleanup_status ) dissolve status for the network
13295
13992
  */
13296
- CurrentDissolveCleanupStatus: StorageDescriptor<[], Anonymize<Ibpirkcgeit2cg>, true, never>;
13993
+ CurrentDissolveCleanupStatus: StorageDescriptor<[], Anonymize<I4iv0rnqs8i6fm>, true, never>;
13297
13994
  /**
13298
13995
  * ITEM ( network_registration_queue ) Network registrations waiting to be executed.
13299
13996
  */
@@ -13308,6 +14005,12 @@ type IStorage = {
13308
14005
  * Used by smart contracts to determine validator voting power for subnet governance.
13309
14006
  */
13310
14007
  VotingPower: StorageDescriptor<Anonymize<I7svnfko10tq2e>, bigint, false, never>;
14008
+ /**
14009
+ * MAP ( netuid ) --> total_voting_power | Sum of all validator voting-power
14010
+ * entries on the subnet. Kept in sync with `VotingPower` so consumers can
14011
+ * read the aggregate without iterating the complete validator map.
14012
+ */
14013
+ TotalVotingPower: StorageDescriptor<[Key: number], bigint, false, never>;
13311
14014
  /**
13312
14015
  * MAP ( netuid ) --> bool | Whether voting power tracking is enabled for this subnet.
13313
14016
  * When enabled, VotingPower EMA is updated every epoch. Default is false.
@@ -13355,6 +14058,10 @@ type IStorage = {
13355
14058
  * MAP ( netuid ) --> consensus
13356
14059
  */
13357
14060
  Consensus: StorageDescriptor<[Key: number], Anonymize<Icgljjb6j82uhn>, false, never>;
14061
+ /**
14062
+ * MAP ( netuid storage index ) --> previous epoch consensus for each mechanism
14063
+ */
14064
+ ConsensusByMechanism: StorageDescriptor<[Key: number], Anonymize<Icgljjb6j82uhn>, false, never>;
13358
14065
  /**
13359
14066
  * MAP ( netuid ) --> incentive
13360
14067
  */
@@ -13472,16 +14179,103 @@ type IStorage = {
13472
14179
  */
13473
14180
  RootStakeUnlockInterval: StorageDescriptor<[], bigint, false, never>;
13474
14181
  /**
13475
- * Master switch for `set_root_weights` (basket curation). Defaults to OFF: Root Reborn
13476
- * launches with every fund uncurated — dividends accumulate in place — so the null
13477
- * strategy is the observable network-wide baseline, and validators cannot stampede
13478
- * into TAO-cash (netuid 0) vectors on day one, which would recreate the old
13479
- * mechanical sell-pressure regime under a new name. Flipped on later via
13480
- * `AdminUtils::sudo_set_root_weight_setting_enabled` (or a migration in the enabling
13481
- * upgrade). Gates only the setter: existing stored vectors, dividend deployment, and
13482
- * all read paths are unaffected.
14182
+ * Master switch for `swap_basket` (validator-directed basket rebalancing). Defaults to
14183
+ * OFF. Flipped on via `AdminUtils::sudo_set_basket_trading_enabled`. Gates only the
14184
+ * trade path: deposits, claims, dividend accrual, and all read paths are unaffected.
14185
+ */
14186
+ BasketTradingEnabled: StorageDescriptor<[], boolean, false, never>;
14187
+ /**
14188
+ * --- SET ( validator_hotkey ) --> basket trading frozen for this fund.
14189
+ *
14190
+ * Per-fund kill switch set by governance (`AdminUtils::sudo_set_basket_trading_frozen`),
14191
+ * e.g. after a suspected key compromise. A frozen fund still accepts deposits and pays
14192
+ * claims; only `swap_basket` is refused. Follows the fund on hotkey swap.
14193
+ */
14194
+ BasketTradingFrozen: StorageDescriptor<[Key: SS58String], null, true, never>;
14195
+ /**
14196
+ * --- ITEM --> capacity of a fund's `swap_basket` turnover bucket as a u16-normalized
14197
+ * share of the fund's NAV (`u16::MAX` = 100%). The bucket refills at
14198
+ * `capacity / BASKET_TRADE_REFILL_BLOCKS` per block, so at most one capacity can be
14199
+ * pushed through the fund at any instant and about one per day sustained. Each leg is
14200
+ * also bounded to [`crate::BASKET_TRADE_MAX_SLIPPAGE_BPS`] of *both* the moving price
14201
+ * and the spot price. Set via `AdminUtils::sudo_set_basket_daily_turnover_cap`.
14202
+ */
14203
+ BasketDailyTurnoverCap: StorageDescriptor<[], number, false, never>;
14204
+ /**
14205
+ * --- ITEM --> max share of a subnet's alpha reserve (`SubnetAlphaIn`) a fund may hold
14206
+ * on that subnet after a `swap_basket` buy (u16-normalized, `u16::MAX` = 100%).
14207
+ *
14208
+ * The concentration cap ([`BasketConcentrationCap`]) marks holdings at realizable value, which
14209
+ * is bounded by the pool's TAO reserve, so on a thin pool a fund could keep buying while
14210
+ * counterparties sell back into its own price support and the realizable share never
14211
+ * grows. This cap bounds the fund's exposure to any one pool's liquidity instead: with
14212
+ * cap `L` the value at risk on a pool with TAO reserve `R` is about `R × L² / (1 + L)`
14213
+ * (≈ 1% of `R` at 10%). Set via `AdminUtils::sudo_set_basket_liquidity_cap`.
14214
+ */
14215
+ BasketLiquidityCap: StorageDescriptor<[], number, false, never>;
14216
+ /**
14217
+ * --- ITEM --> cap, in rao, of the row-dust floor of a root claim. A claim skips a fund
14218
+ * row entirely when the fund's whole holding on that subnet is worth less than
14219
+ * `min(this cap, BasketClaimRowDustBps × anchored NAV)` at the anchored mark: the row is
14220
+ * neither sold nor paid, and the claimant's slice of it (below the floor by
14221
+ * construction) stays in the fund for the remaining holders. `0` disables the row skip.
14222
+ * Set via `AdminUtils::sudo_set_basket_claim_dust`.
14223
+ */
14224
+ BasketClaimRowDustCapTao: StorageDescriptor<[], bigint, false, never>;
14225
+ /**
14226
+ * --- ITEM --> relative part of the row-dust floor, in basis points of the fund's
14227
+ * anchored NAV (see [`BasketClaimRowDustCapTao`]). Keeps the floor proportionate for
14228
+ * small funds. `0` disables the row skip. Set via `AdminUtils::sudo_set_basket_claim_dust`.
13483
14229
  */
13484
- RootWeightSettingEnabled: StorageDescriptor<[], boolean, false, never>;
14230
+ BasketClaimRowDustBps: StorageDescriptor<[], number, false, never>;
14231
+ /**
14232
+ * --- ITEM --> rao value below which a root claim skips a fund row for this claimant:
14233
+ * when the claimant's pro-rata slice of the row is worth less than this at the anchored
14234
+ * mark, the row is neither sold nor paid and the slice stays in the fund for the
14235
+ * remaining holders. `0` disables the skip. Set via
14236
+ * `AdminUtils::sudo_set_basket_claim_dust`.
14237
+ */
14238
+ BasketClaimSliceDustTao: StorageDescriptor<[], bigint, false, never>;
14239
+ /**
14240
+ * --- ITEM --> rao value a claimant's slice of a row may be worth, at the anchored
14241
+ * mark, and still be skipped by either dust rule. A row the rules mark as dust whose
14242
+ * slice for this claimant is worth more than this is sold as before, so no single
14243
+ * skipped slice ever leaves more than this in the fund. `0` turns every skip off (a
14244
+ * slice can only be skipped if it is worth nothing). Set via
14245
+ * `AdminUtils::sudo_set_basket_claim_dust`.
14246
+ */
14247
+ BasketClaimForfeitCapTao: StorageDescriptor<[], bigint, false, never>;
14248
+ /**
14249
+ * --- MAP ( validator_hotkey ) --> `(tao_available, last_refill_block)` of the fund's
14250
+ * `swap_basket` turnover bucket. A missing row is a full bucket (a new fund starts full).
14251
+ * On each trade the bucket is refilled for the blocks elapsed since `last_refill_block`
14252
+ * at `budget / BASKET_TRADE_REFILL_BLOCKS` per block, clamped to one budget (NAV at
14253
+ * that moment), then the TAO through the middle of the swap is taken out. Follows the
14254
+ * fund on hotkey swap (lower level, later refill block).
14255
+ */
14256
+ BasketTradeBucket: StorageDescriptor<[Key: SS58String], Anonymize<I200n1ov5tbcvr>, true, never>;
14257
+ /**
14258
+ * --- MAP ( validator_hotkey, netuid ) --> `(alpha_bought, last_block)` of
14259
+ * destination-pool flow used by `swap_basket` in the current refill window.
14260
+ *
14261
+ * The standing-position liquidity cap resets when the fund sells the holding
14262
+ * back to zero. This map does not: it accumulates alpha bought into `netuid`
14263
+ * and decays to zero over [`crate::BASKET_TRADE_REFILL_BLOCKS`], so
14264
+ * accumulate/unwind cycles cannot spend the turnover budget as band slack.
14265
+ * Follows the fund on hotkey swap (higher used, later block).
14266
+ */
14267
+ BasketLiquidityUsed: StorageDescriptor<Anonymize<I6ouflveob4eli>, Anonymize<I200n1ov5tbcvr>, true, never>;
14268
+ /**
14269
+ * --- ITEM --> max share of a fund's NAV one holding may reach through a `swap_basket`
14270
+ * buy, u16-normalized (`u16::MAX` = 100%). Holdings are marked at realizable value. A
14271
+ * cap of 1/16 forces a traded fund to spread across at least 16 holdings, so trading
14272
+ * cannot recreate single-subnet concentration. Only buys are checked: a holding that
14273
+ * grows past the cap through price appreciation or in-place dividends is left alone
14274
+ * (it can be sold down, not topped up). Skipped at check time while fewer subnets
14275
+ * exist than the cap demands (young chains, tests). Set via
14276
+ * `AdminUtils::sudo_set_basket_concentration_cap`.
14277
+ */
14278
+ BasketConcentrationCap: StorageDescriptor<[], number, false, never>;
13485
14279
  /**
13486
14280
  * Basket redemption is fund-level (not per-subnet), so only the `NetUid::ROOT` entry is
13487
14281
  * consulted: a claim below `RootClaimableThreshold[ROOT]` TAO is skipped as dust. Other
@@ -13506,13 +14300,14 @@ type IStorage = {
13506
14300
  * `(hotkey, escrow, netuid)` across subnets (the root slot is the fund's TAO/cash position),
13507
14301
  * and its net asset value `N` is the realizable (slippage-aware) TAO value of those
13508
14302
  * holdings. Stakers' entitlements are denominated in *fund shares*, never in any particular
13509
- * subnet's alpha: deposits mint `value_added * P / N` shares, where `value_added` is the
13510
- * realizable NAV the deposit actually added (so existing holders are neither diluted nor
13511
- * taxed with the deposit's buy slippage), and redemption pays the staker's owed share
13512
- * fraction `owed / P` of every holding, sold pro-rata. Direct deposits
13513
- * (`stake_into_basket`) mint the same way, credited via the signed [`BasketClaimed`]
13514
- * watermark. Because entitlement is decoupled from composition, holdings can be rebalanced
13515
- * (validator-directed trading, dissolution conversions) without touching any staker's claim.
14303
+ * subnet's alpha: dividend deposits mint `value_added * P / N` shares, where `value_added`
14304
+ * is the realizable NAV the deposit actually added, and redemption pays the staker's owed
14305
+ * share fraction `owed / P` of every holding, sold pro-rata. Direct `stake_into_basket`
14306
+ * deposits additionally cap that NAV-priced mint by the fraction of every existing holding
14307
+ * actually acquired, so their proportional redemption cannot sell more units than they
14308
+ * bought. Their shares are credited through the signed [`BasketClaimed`] watermark. Because
14309
+ * entitlement is decoupled from composition, holdings can be rebalanced (validator-directed
14310
+ * trading, dissolution conversions) without touching any staker's claim.
13516
14311
  */
13517
14312
  BasketShares: StorageDescriptor<[Key: SS58String], bigint, false, never>;
13518
14313
  /**
@@ -13525,6 +14320,66 @@ type IStorage = {
13525
14320
  * claimable.
13526
14321
  */
13527
14322
  BasketRate: StorageDescriptor<[Key: SS58String], bigint, false, never>;
14323
+ /**
14324
+ * --- MAP ( validator_hotkey ) --> the fund's frozen display baseline (see
14325
+ * [`BetaBaselineOf`]).
14326
+ *
14327
+ * Stamped once at the fund's first share mint (or seeded from the frozen SDK table by
14328
+ * `migrate_stamp_beta_baselines` for funds that predate on-chain stamping) and never
14329
+ * rewritten, so the spliced display/stake prices stay continuous for the fund's whole
14330
+ * life. Scoped to one fund *life*: follows the fund on hotkey swap, and is retired
14331
+ * when the last share is claimed or a dust revival starts a new life (see
14332
+ * `retire_beta_display_state`), so an entry exists only while the fund has
14333
+ * outstanding shares. Also absent for funds born before this storage existed that
14334
+ * have not minted since; such funds price provisionally at the live index level
14335
+ * until their next mint stamps them.
14336
+ */
14337
+ BetaBaseline: StorageDescriptor<[Key: SS58String], Anonymize<Ialhk5ui1mhg1h>, true, never>;
14338
+ /**
14339
+ * --- MAP ( validator_hotkey ) --> the fund's staker total-return accumulator.
14340
+ *
14341
+ * The one canonical root-staker return series. Starts at 1.0 and multiplies by
14342
+ * `1 + stakers_value / total_root_stake` on every dividend share mint — the value that
14343
+ * deposit actually added per rao of claimant root stake, locked in at the deposit's own
14344
+ * (realizable) pricing. Flows never move it; only dividends do. The staker return of
14345
+ * τ1 staked over any window (claim-and-restake convention) is `Twr(t1) / Twr(t0) - 1`,
14346
+ * so any two archive samples agree for every consumer. Everything staker-facing
14347
+ * derives from it: `stake_price` is this accumulator spliced onto the stake index
14348
+ * (`tr_splice × Twr`), and the index chains its relatives. The rate-delta figure
14349
+ * `(BasketRate - rate0) * price` is *not* an alternative return series — it is the
14350
+ * pending-entitlement mark (`staker_yield`), which re-values all accrued β at today's
14351
+ * price. Accumulates from the upgrade that introduced it; earlier history lives in the
14352
+ * seeded `tr_splice` (see `migrate_stamp_beta_baselines`). Like [`BetaBaseline`],
14353
+ * scoped to one fund life: moves on hotkey swap and is retired when the fund drains or
14354
+ * a dust revival starts a new life.
14355
+ */
14356
+ BasketTwr: StorageDescriptor<[Key: SS58String], bigint, false, never>;
14357
+ /**
14358
+ * --- ITEM --> the latest published beta-index snapshot (see [`BetaIndexSnapshotOf`]).
14359
+ *
14360
+ * Refreshed by the paged background sweep in block processing; read by baseline stamps
14361
+ * so no state-changing path ever sweeps every fund inline. Absent until the first
14362
+ * pass after genesis (or the runtime upgrade that introduced it) completes; stamps
14363
+ * simply wait for the next mint while it is absent.
14364
+ */
14365
+ BetaIndexSnapshot: StorageDescriptor<[], Anonymize<I57r7jpv7r3s9m>, true, never>;
14366
+ /**
14367
+ * --- ITEM --> in-progress paged beta-index sweep (see [`BetaIndexSweepOf`]).
14368
+ *
14369
+ * Present only mid-pass. `advance_beta_index_sweep` processes one strictly bounded
14370
+ * page per block and clears this on completion.
14371
+ */
14372
+ BetaIndexSweep: StorageDescriptor<[], Anonymize<Ie5p7gv9nptpoc>, true, never>;
14373
+ /**
14374
+ * --- MAP ( validator_hotkey ) --> the fund's last completed index-sweep sample
14375
+ * (see [`BetaIndexFundSampleOf`]).
14376
+ *
14377
+ * Written by the sweep as it visits each fund (the current pass's sample replaces the
14378
+ * previous pass's in the same visit) and consumed as the start-of-period state of the
14379
+ * next pass's price relative. Removed when the fund becomes unpriceable, retires, or
14380
+ * starts a new life, so no relative ever chains across a gap in the fund's history.
14381
+ */
14382
+ BetaIndexFundSample: StorageDescriptor<[Key: SS58String], Anonymize<I7r96a602oaap8>, true, never>;
13528
14383
  /**
13529
14384
  * --- DMAP ( validator_hotkey, staker_coldkey ) --> fund shares already claimed (watermark).
13530
14385
  *
@@ -13593,6 +14448,12 @@ type IStorage = {
13593
14448
  * MAP ( lease_id ) --> accumulated_dividends | The accumulated dividends for a given lease that needs to be distributed.
13594
14449
  */
13595
14450
  AccumulatedLeaseDividends: StorageDescriptor<[Key: number], bigint, false, never>;
14451
+ /**
14452
+ * DMAP ( lease_id, contributor ) --> alpha | A contributor's dividend slices that could not
14453
+ * be transferred yet. The alpha stays in the lease position and is retried, for that
14454
+ * contributor only, at the next distribution.
14455
+ */
14456
+ SubnetLeaseUnpaidDividends: StorageDescriptor<Anonymize<I7svnfko10tq2e>, bigint, false, never>;
13596
14457
  /**
13597
14458
  * ITEM ( CommitRevealWeightsVersion )
13598
14459
  */
@@ -13676,7 +14537,9 @@ type IStorage = {
13676
14537
  /**
13677
14538
  * MAP ( hotkey ) --> parent_delegation_enabled
13678
14539
  *
13679
- * When `true`, this root validator allows auto parent delegation.
14540
+ * When `true`, this root validator allows auto parent delegation:
14541
+ * new subnets childkey existing root validators to the new owner,
14542
+ * and a new root validator childkeys to all current subnet owners.
13680
14543
  * Defaults to `true`; validators can opt out at any time
13681
14544
  * by calling `set_auto_parent_delegation_enabled(false)`.
13682
14545
  */
@@ -13741,7 +14604,7 @@ type IStorage = {
13741
14604
  * The set of account proxies. Maps the account which has delegated to the accounts
13742
14605
  * which are being delegated to, together with the amount held on deposit.
13743
14606
  */
13744
- Proxies: StorageDescriptor<[Key: SS58String], Anonymize<I6tqrno2gaos08>, false, never>;
14607
+ Proxies: StorageDescriptor<[Key: SS58String], Anonymize<Ibbe63mdl8niqr>, false, never>;
13745
14608
  /**
13746
14609
  * The announcements made by the proxy (key).
13747
14610
  */
@@ -13749,24 +14612,35 @@ type IStorage = {
13749
14612
  /**
13750
14613
  * The result of the last call made by the proxy (key).
13751
14614
  */
13752
- LastCallResult: StorageDescriptor<[Key: SS58String], Anonymize<I38vhitvbd00gg>, true, never>;
14615
+ LastCallResult: StorageDescriptor<[Key: SS58String], Anonymize<I2tgj23u15fhfj>, true, never>;
13753
14616
  /**
13754
14617
  * Tracks which (real, delegate) pairs have opted in to the real account paying
13755
14618
  * transaction fees for proxy calls made by the delegate.
13756
14619
  * Existence of an entry means the real account pays; absence means the delegate pays
13757
14620
  * (default).
14621
+ *
14622
+ * The versioned prefix deliberately requires renewed consent after the authorization fix.
14623
+ * Legacy `RealPaysFee` entries cannot distinguish owner consent from restricted-proxy
14624
+ * grants, so copying them would preserve unauthorized spending permissions.
13758
14625
  */
13759
- RealPaysFee: StorageDescriptor<Anonymize<I2na29tt2afp0j>, null, true, never>;
14626
+ RealPaysFeeConsentV1: StorageDescriptor<Anonymize<I2na29tt2afp0j>, null, true, never>;
13760
14627
  };
13761
14628
  Commitments: {
13762
14629
  /**
13763
14630
  * Tracks all CommitmentOf that have at least one timelocked field.
13764
14631
  */
13765
14632
  TimelockedIndex: StorageDescriptor<[], Anonymize<I7nkl7ntqohel8>, false, never>;
14633
+ /**
14634
+ * Last `TimelockedIndex` entry visited by a reveal pass that hit the per-block
14635
+ * decryption budget. The next pass resumes after it so a burst of matured
14636
+ * commitments at the front of the index cannot starve the rest. Absent when the
14637
+ * previous pass covered the whole index.
14638
+ */
14639
+ TimelockRevealCursor: StorageDescriptor<[], Anonymize<I7svnfko10tq2e>, true, never>;
13766
14640
  /**
13767
14641
  * Identity data by account
13768
14642
  */
13769
- CommitmentOf: StorageDescriptor<Anonymize<I7svnfko10tq2e>, Anonymize<I3m6d7ohcp5n4v>, true, never>;
14643
+ CommitmentOf: StorageDescriptor<Anonymize<I7svnfko10tq2e>, Anonymize<Ifjbhmqlrm96rb>, true, never>;
13770
14644
  /**
13771
14645
  */
13772
14646
  LastCommitment: StorageDescriptor<Anonymize<I7svnfko10tq2e>, number, true, never>;
@@ -13789,7 +14663,7 @@ type IStorage = {
13789
14663
  /**
13790
14664
  * Map PrecompileEnum --> enabled
13791
14665
  */
13792
- PrecompileEnable: StorageDescriptor<[Key: Anonymize<I6u8m363vi2hk5>], boolean, false, never>;
14666
+ PrecompileEnable: StorageDescriptor<[Key: Anonymize<Idfs9n0m9b3jp2>], boolean, false, never>;
13793
14667
  };
13794
14668
  SafeMode: {
13795
14669
  /**
@@ -14099,6 +14973,11 @@ type IStorage = {
14099
14973
  * Defaults to `false` so bare node deployments are safe; genesis sets it to `true`.
14100
14974
  */
14101
14975
  LimitOrdersEnabled: StorageDescriptor<[], boolean, false, never>;
14976
+ /**
14977
+ * Output recorded by orders that declared `has_linked_order`, keyed by
14978
+ * the provider's `OrderId`. Single-use: the first linked draw removes it.
14979
+ */
14980
+ LinkedOutputs: StorageDescriptor<[Key: SizedHex<32>], Anonymize<I7b1atpv3fba3o>, true, never>;
14102
14981
  /**
14103
14982
  * Tracks which named migrations have already been applied.
14104
14983
  * Keyed by a short migration name; value is always `true`.
@@ -14370,19 +15249,6 @@ type ICalls = {
14370
15249
  * * `MaxWeightExceeded`: Attempting to set weights with max value exceeding limit.
14371
15250
  */
14372
15251
  set_weights: TxDescriptor<Anonymize<Icv6ofu4lqekr4>>;
14373
- /**
14374
- * --- Sets a root validator's basket distribution vector `w` on the root subnet
14375
- * (netuid 0). `dests` are subnet netuids and `weights` are the proportions of the
14376
- * validator's root dividends to deploy into each subnet's alpha basket.
14377
- * Requires at least [`crate::MIN_ROOT_BASKET_WEIGHTS`] positive destinations
14378
- * (softened when fewer networks exist).
14379
- *
14380
- * # Args:
14381
- * * `origin`: the root validator hotkey.
14382
- * * `dests` (Vec<u16>): destination subnet netuids.
14383
- * * `weights` (Vec<u16>): per-subnet weights (normalized on use).
14384
- */
14385
- set_root_weights: TxDescriptor<Anonymize<I9lpud8mopek2c>>;
14386
15252
  /**
14387
15253
  * Sets the caller weights for the incentive mechanism for mechanisms. The call
14388
15254
  * can be made from the hotkey account so is potentially insecure, however, the damage
@@ -14871,7 +15737,17 @@ type ICalls = {
14871
15737
  * Admission is burn-based: the coldkey pays the root burn price
14872
15738
  * (demand-priced like subnet registration), recycled out of issuance.
14873
15739
  * No prior stake is required. When the network is full, the
14874
- * lowest-staked member is pruned to make room.
15740
+ * lowest-staked non-immune member is pruned to make room.
15741
+ *
15742
+ * After a successful registration, the hotkey is auto-childkeyed
15743
+ * to every existing subnet owner unless the validator opted out
15744
+ * of auto parent delegation. Pruning a seat clears that
15745
+ * validator's protocol auto-parent edges.
15746
+ *
15747
+ * Declared weight is `WeightInfo::root_register` plus a
15748
+ * `TotalNetworks`-scaled `DbWeight` term for the per-subnet
15749
+ * persist (and prune cleanup). Re-benchmark on reference
15750
+ * hardware so the base measurement includes that work.
14875
15751
  */
14876
15752
  root_register: TxDescriptor<Anonymize<Ie7hipi75c7vn0>>;
14877
15753
  /**
@@ -15083,6 +15959,11 @@ type ICalls = {
15083
15959
  * * `NotEnoughStakeToWithdraw`: Thrown if there is not enough stake on the hotkey to withdraw this amount.
15084
15960
  *
15085
15961
  * * `TxRateLimitExceeded`: Thrown if key has hit transaction rate limit.
15962
+ *
15963
+ * The declared weight covers up to [`crate::MAX_UNSTAKE_ALL_LEGS`] positions
15964
+ * (one `remove_stake` plus a `StakingHotkeys` walk each) and is refunded to
15965
+ * the subnets actually visited and unstaked. Remaining positions stay for a
15966
+ * later call so the envelope fits the normal-class block.
15086
15967
  */
15087
15968
  unstake_all: TxDescriptor<Anonymize<Ie7hipi75c7vn0>>;
15088
15969
  /**
@@ -15104,6 +15985,11 @@ type ICalls = {
15104
15985
  * * `NotEnoughStakeToWithdraw`: Thrown if there is not enough stake on the hotkey to withdraw this amount.
15105
15986
  *
15106
15987
  * * `TxRateLimitExceeded`: Thrown if key has hit transaction rate limit.
15988
+ *
15989
+ * The declared weight covers up to [`crate::MAX_UNSTAKE_ALL_LEGS`] positions
15990
+ * (one `remove_stake` plus a `StakingHotkeys` walk each) and is refunded to
15991
+ * the subnets actually visited and unstaked. Remaining positions stay for a
15992
+ * later call so the envelope fits the normal-class block.
15107
15993
  */
15108
15994
  unstake_all_alpha: TxDescriptor<Anonymize<Ie7hipi75c7vn0>>;
15109
15995
  /**
@@ -15120,7 +16006,9 @@ type ICalls = {
15120
16006
  *
15121
16007
  * * `destination_netuid`: The subnet ID to move stake to.
15122
16008
  *
15123
- * * `alpha_amount`: The alpha stake amount to move.
16009
+ * * `alpha_amount`: The alpha stake amount to move. `AlphaBalance::MAX`
16010
+ * means the live origin position at execution (so a preceding
16011
+ * `claim_root_with_hotkey` in the same batch is included).
15124
16012
  *
15125
16013
  */
15126
16014
  move_stake: TxDescriptor<Anonymize<I9d117ni3tprb>>;
@@ -15146,6 +16034,7 @@ type ICalls = {
15146
16034
  * * `AmountTooLow`: The TAO-equivalent of the transfer is below the minimum stake requirement.
15147
16035
  * * `TransferDisallowed`: Transfers are disabled on the origin or destination subnet.
15148
16036
  * * `StakeUnavailable`: The remaining stake would not cover the locked amount on the origin subnet.
16037
+ * * `CannotUseSystemAccount`: The destination coldkey is the protocol-owned basket escrow.
15149
16038
  *
15150
16039
  * # Events
15151
16040
  * May emit a `StakeTransferred` event on success.
@@ -15274,6 +16163,17 @@ type ICalls = {
15274
16163
  * May emit a `StakeSwapped` event on success.
15275
16164
  */
15276
16165
  swap_stake_limit: TxDescriptor<Anonymize<I6r22p9usi2mkl>>;
16166
+ /**
16167
+ * Moves stake from one hotkey to another and, when the subnets differ,
16168
+ * protects the swap with a relative price limit.
16169
+ *
16170
+ * `limit_price` is the minimum acceptable destination-alpha per
16171
+ * origin-alpha ratio, scaled by 1e9. When `allow_partial` is false the
16172
+ * call is fill-or-kill; otherwise it moves only the amount executable
16173
+ * before the limit is crossed. `alpha_amount` of `AlphaBalance::MAX`
16174
+ * means the live origin position at execution.
16175
+ */
16176
+ move_stake_limit: TxDescriptor<Anonymize<Iflid9fim112b6>>;
15277
16177
  /**
15278
16178
  * Attempts to associate a hotkey with a coldkey.
15279
16179
  *
@@ -15483,26 +16383,50 @@ type ICalls = {
15483
16383
  * Claims the root emissions for a coldkey across every validator it root-stakes to.
15484
16384
  *
15485
16385
  * Redemption is fund-level: for each validator, the staker's accrued entitlement is
15486
- * redeemed as their pro-rata fraction of that basket (sold to TAO and staked on root).
15487
- * The `subnets` argument is retained for call-data compatibility with pre-basket
15488
- * clients; it is ignored — baskets have no per-subnet claim selection.
16386
+ * paid as their pro-rata fraction of the basket's full-liquidation NAV and staked on
16387
+ * root. The corresponding alpha fraction is sold; any concavity surplus over the
16388
+ * NAV-priced entitlement remains in the basket as root TAO for the other holders. The
16389
+ * `subnets` argument is retained for call-data compatibility with pre-basket clients;
16390
+ * it is ignored — baskets have no per-subnet claim selection.
15489
16391
  *
15490
16392
  * Prefer [`Pallet::claim_root_with_hotkey`] to claim a single validator.
15491
16393
  *
16394
+ * Dust rows are not sold (see [`Pallet::claim_root_with_hotkey`]); the claimant's
16395
+ * slice of them stays in the fund. A claim that is admitted and then fails is
16396
+ * charged the work it did, not the declared envelope; a claim refused at admission
16397
+ * keeps the envelope.
16398
+ *
15492
16399
  * # Arguments
15493
16400
  * * `origin`: The signature of the caller's coldkey.
15494
16401
  * * `subnets`: Ignored. Kept so old clients' encoded call data still decodes.
15495
16402
  *
15496
16403
  * # Events
15497
16404
  * * `RootClaimed`: On successfully claiming the root emissions for a coldkey.
16405
+ * * `BasketClaimDustSkipped`: Per fund whose dust rows were left unsold.
16406
+ *
16407
+ * # Errors
16408
+ * * `RootClaimTooHeavy`: More hotkeys or fund rows than one claim may walk.
15498
16409
  */
15499
16410
  claim_root: TxDescriptor<Anonymize<I2t4b7068rtebl>>;
15500
16411
  /**
15501
16412
  * Claims the root emissions for a coldkey on one validator hotkey.
15502
16413
  *
15503
16414
  * Redemption is fund-level for that validator: the staker's accrued entitlement is
15504
- * redeemed as their pro-rata fraction of each basket holding (sold to TAO and staked
15505
- * on root). Other validators' accrued yield is left untouched.
16415
+ * paid as their pro-rata fraction of the basket's full-liquidation NAV and staked on
16416
+ * root. The corresponding alpha fraction is sold; any concavity surplus over the
16417
+ * NAV-priced entitlement remains in the basket as root TAO for the other holders.
16418
+ * Other validators' accrued yield is left untouched.
16419
+ *
16420
+ * Dust rows are not sold: a fund row worth less than
16421
+ * `min(BasketClaimRowDustCapTao, BasketClaimRowDustBps × anchored NAV)`, or one
16422
+ * whose slice for this claimant is worth less than `BasketClaimSliceDustTao`, is
16423
+ * skipped when that slice is also worth at most `BasketClaimForfeitCapTao` (all at
16424
+ * the anchored mark, which decides dust only). The claim burns the full
16425
+ * entitlement, so the claimant's slice of a skipped row — never more than the cap
16426
+ * at the anchored mark — is left to the remaining holders (`BasketClaimDustSkipped`
16427
+ * reports it). A claim
16428
+ * that is admitted and then fails is charged the work it did, not the declared
16429
+ * envelope; a claim refused at admission keeps the envelope.
15506
16430
  *
15507
16431
  * # Arguments
15508
16432
  * * `origin`: The signature of the caller's coldkey.
@@ -15510,27 +16434,33 @@ type ICalls = {
15510
16434
  *
15511
16435
  * # Events
15512
16436
  * * `RootClaimed`: On successfully claiming the root emissions for this coldkey+hotkey.
16437
+ * * `BasketClaimDustSkipped`: When the claim left dust rows unsold.
16438
+ *
16439
+ * # Errors
16440
+ * * `RootClaimTooHeavy`: The fund has more rows (or queued credits) than one claim
16441
+ * may walk.
15513
16442
  */
15514
16443
  claim_root_with_hotkey: TxDescriptor<Anonymize<Ie7hipi75c7vn0>>;
15515
16444
  /**
15516
16445
  * Stakes TAO from the caller's balance directly into a validator's basket.
15517
16446
  *
15518
- * The TAO is deployed across subnets per the validator's root weight vector
15519
- * (exactly like a dividend deposit) and the caller is credited a fund
15520
- * entitlement at the fund's pre-buy realizable NAV, priced against the
15521
- * realizable value the deposit added — the depositor bears their own entry
15522
- * slippage and swap fees. An uncurated fund (no usable weight vector) is
15523
- * mirrored instead: the deposit deploys pro-rata across the fund's current
15524
- * holdings by realizable value, keeping deposits symmetric with claims (which
15525
- * redeem pro-rata of every holding); a deposit into an empty uncurated fund is
15526
- * held as the fund's root (TAO cash) slot. The credited entitlement is
15527
- * redeemable through [`Pallet::claim_root_with_hotkey`] (or coldkey-wide
15528
- * [`Pallet::claim_root`]); it does not require or affect root stake, and it
15529
- * does not change any staker's dividend accrual.
16447
+ * The TAO enters by the fund's current holdings: it is split pro-rata across
16448
+ * every holding by realizable value and buys each one, so the deposit acquires
16449
+ * the exposure the fund already has and stays symmetric with claims (which
16450
+ * redeem pro-rata of every holding). A deposit into a fund with no holdings is
16451
+ * held as the fund's root (TAO cash) slot. Inflows never change a fund's
16452
+ * composition; only the validator's [`Pallet::swap_basket`] trades do. The
16453
+ * caller is credited a fund entitlement at the fund's pre-buy realizable NAV,
16454
+ * priced against the realizable value the deposit added — the depositor bears
16455
+ * their own entry slippage and swap fees.
16456
+ * The credited entitlement is redeemable through
16457
+ * [`Pallet::claim_root_with_hotkey`] (or coldkey-wide [`Pallet::claim_root`]);
16458
+ * it does not require or affect root stake, and it does not change any
16459
+ * staker's dividend accrual.
15530
16460
  *
15531
16461
  * # Arguments
15532
16462
  * * `origin`: The signature of the caller's coldkey.
15533
- * * `hotkey`: The validator whose basket to deposit into.
16463
+ * * `hotkey`: The root-registered validator whose basket to deposit into.
15534
16464
  * * `amount_staked`: TAO to take from the caller's balance and deploy.
15535
16465
  *
15536
16466
  * # Events
@@ -15539,11 +16469,53 @@ type ICalls = {
15539
16469
  *
15540
16470
  * # Errors
15541
16471
  * * `HotKeyAccountNotExists`: The hotkey is not a registered account.
15542
- * * `AmountTooLow`: Below the minimum stake, or the deposit's realizable value
15543
- * rounds to zero entitlement.
16472
+ * * `HotKeyNotRegisteredInSubNet`: The hotkey is not registered on root.
16473
+ * * `AmountTooLow`: Below the minimum stake, the deposit's realizable value
16474
+ * rounds to zero entitlement, or a holding cannot be priced (or would receive
16475
+ * a zero-TAO slice) so the deposit cannot buy every position its shares claim.
15544
16476
  * * `NotEnoughBalanceToStake`: The caller cannot cover `amount_staked`.
15545
16477
  */
15546
16478
  stake_into_basket: TxDescriptor<Anonymize<I9946op5slcfjf>>;
16479
+ /**
16480
+ * --- Rebalances a root validator's beta basket: sells `amount` of the fund's
16481
+ * `origin_netuid` holding for TAO and buys `destination_netuid` with it. Either
16482
+ * side may be root (netuid 0), the fund's TAO cash slot. Fund shares and staker
16483
+ * entitlements are unchanged; only the fund's composition moves.
16484
+ *
16485
+ * Guardrails: each AMM leg must fill fully within 2% of the subnet's moving price;
16486
+ * the TAO through the middle is taken from the fund's turnover bucket
16487
+ * (`BasketDailyTurnoverCap` of NAV, refilling over 7200 blocks); the destination holding may not
16488
+ * end above `BasketLiquidityCap` of the destination pool's alpha reserve, nor above
16489
+ * `BasketConcentrationCap` of NAV. Trading must be enabled network-wide and not frozen for
16490
+ * the hotkey by governance. On top of the protocol band the caller may set its own
16491
+ * floor: the buy leg must credit at least `min_amount_out` or the trade rolls back.
16492
+ *
16493
+ * # Arguments
16494
+ * * `origin`: Signed by the coldkey that owns `hotkey` (or its `BasketTrading` proxy).
16495
+ * * `hotkey`: The root-registered validator whose basket to rebalance.
16496
+ * * `origin_netuid`: Subnet to sell out of (root = the TAO slot).
16497
+ * * `destination_netuid`: Subnet to buy into (root = the TAO slot).
16498
+ * * `amount`: Alpha of `origin_netuid` to sell (TAO at 1:1 when origin is root).
16499
+ * * `min_amount_out`: Least amount the buy leg must credit to the destination
16500
+ * holding, in `destination_netuid` alpha (rao of TAO when the destination is
16501
+ * root), after fees. `0` sets no floor; the 2% protocol band still applies.
16502
+ *
16503
+ * # Events
16504
+ * * `BasketSwapped`: On success, with the amounts on both legs.
16505
+ *
16506
+ * # Errors
16507
+ * * `BasketTradingDisabled`, `BasketTradingFrozen`: Gated off.
16508
+ * * `BasketSameSubnet`: Origin equals destination.
16509
+ * * `NonAssociatedColdKey`: Caller does not own `hotkey`.
16510
+ * * `HotKeyNotRegisteredInSubNet`: `hotkey` is not on root.
16511
+ * * `NotEnoughStakeToWithdraw`: The fund holds less than `amount` on origin.
16512
+ * * `SlippageTooHigh`: A leg could not fill within 2% of the moving price.
16513
+ * * `BasketMinOutNotMet`: The buy leg credited less than `min_amount_out`.
16514
+ * * `BasketTurnoverBudgetExceeded`: The trade exceeds what the fund's turnover bucket holds.
16515
+ * * `BasketLiquidityCapExceeded`: The destination holding would exceed the liquidity cap.
16516
+ * * `BasketConcentrationCapExceeded`: The destination would exceed the concentration cap.
16517
+ */
16518
+ swap_basket: TxDescriptor<Anonymize<Ia8qodr4vtdlkh>>;
15547
16519
  /**
15548
16520
  * --- Sets the root claim dust threshold (sudo). Basket redemption is fund-level, so
15549
16521
  * only the `NetUid::ROOT` entry is meaningful; other netuids are rejected.
@@ -15667,8 +16639,10 @@ type ICalls = {
15667
16639
  */
15668
16640
  register_limit: TxDescriptor<Anonymize<I96vnf03ahk1m9>>;
15669
16641
  /**
15670
- * Allows a root validator to toggle auto parent delegation
15671
- * for new subnets owner hotkey
16642
+ * Allows a root validator to toggle auto parent delegation.
16643
+ * When enabled (the default), the validator is childkeyed to
16644
+ * subnet owners on new subnet registration and on this
16645
+ * validator's own root registration.
15672
16646
  */
15673
16647
  set_auto_parent_delegation_enabled: TxDescriptor<Anonymize<Iavmlc8d5lfdju>>;
15674
16648
  /**
@@ -15761,6 +16735,7 @@ type ICalls = {
15761
16735
  * * `AmountTooLow`: The TAO-equivalent of the transfer is below the minimum stake requirement.
15762
16736
  * * `TransferDisallowed`: Transfers are disabled on the origin or destination subnet.
15763
16737
  * * `StakeUnavailable`: The remaining stake would not cover the locked amount on the origin subnet.
16738
+ * * `CannotUseSystemAccount`: The destination coldkey is the protocol-owned basket escrow.
15764
16739
  *
15765
16740
  * # Events
15766
16741
  * May emit a `StakeAndHotkeyTransferred` event on success.
@@ -15853,7 +16828,7 @@ type ICalls = {
15853
16828
  * and the error of the failed call. If all were successful, then the `BatchCompleted`
15854
16829
  * event is deposited.
15855
16830
  */
15856
- batch: TxDescriptor<Anonymize<I4ugsfd6fvm16k>>;
16831
+ batch: TxDescriptor<Anonymize<I6krirhcafusbj>>;
15857
16832
  /**
15858
16833
  * Send a call through an indexed pseudonym of the sender.
15859
16834
  *
@@ -15869,7 +16844,7 @@ type ICalls = {
15869
16844
  *
15870
16845
  * The dispatch origin for this call must be _Signed_.
15871
16846
  */
15872
- as_derivative: TxDescriptor<Anonymize<I4gjcajk974838>>;
16847
+ as_derivative: TxDescriptor<Anonymize<Ie5cqv9mpfc1m5>>;
15873
16848
  /**
15874
16849
  * Send a batch of dispatch calls and atomically execute them.
15875
16850
  * The whole transaction will rollback and fail if any of the calls failed.
@@ -15885,7 +16860,7 @@ type ICalls = {
15885
16860
  * ## Complexity
15886
16861
  * - O(C) where C is the number of calls to be batched.
15887
16862
  */
15888
- batch_all: TxDescriptor<Anonymize<I4ugsfd6fvm16k>>;
16863
+ batch_all: TxDescriptor<Anonymize<I6krirhcafusbj>>;
15889
16864
  /**
15890
16865
  * Dispatches a function call with a provided origin.
15891
16866
  *
@@ -15894,7 +16869,7 @@ type ICalls = {
15894
16869
  * ## Complexity
15895
16870
  * - O(1).
15896
16871
  */
15897
- dispatch_as: TxDescriptor<Anonymize<Icuj8ja2l10ls>>;
16872
+ dispatch_as: TxDescriptor<Anonymize<I5nh7866g9ol18>>;
15898
16873
  /**
15899
16874
  * Send a batch of dispatch calls.
15900
16875
  * Unlike `batch`, it allows errors and won't interrupt.
@@ -15910,7 +16885,7 @@ type ICalls = {
15910
16885
  * ## Complexity
15911
16886
  * - O(C) where C is the number of calls to be batched.
15912
16887
  */
15913
- force_batch: TxDescriptor<Anonymize<I4ugsfd6fvm16k>>;
16888
+ force_batch: TxDescriptor<Anonymize<I6krirhcafusbj>>;
15914
16889
  /**
15915
16890
  * Dispatch a function call with a specified weight.
15916
16891
  *
@@ -15919,7 +16894,7 @@ type ICalls = {
15919
16894
  *
15920
16895
  * The dispatch origin for this call must be _Root_.
15921
16896
  */
15922
- with_weight: TxDescriptor<Anonymize<Iba6f23v08tq40>>;
16897
+ with_weight: TxDescriptor<Anonymize<I70imi2h82hc9j>>;
15923
16898
  /**
15924
16899
  * Dispatch a fallback call in the event the main call fails to execute.
15925
16900
  * May be called from any origin except `None`.
@@ -15945,7 +16920,7 @@ type ICalls = {
15945
16920
  * - Some use cases might involve submitting a `batch` type call in either main, fallback
15946
16921
  * or both.
15947
16922
  */
15948
- if_else: TxDescriptor<Anonymize<Ickcin37mibler>>;
16923
+ if_else: TxDescriptor<Anonymize<Iffcjm0pa10o6k>>;
15949
16924
  /**
15950
16925
  * Dispatches a function call with a provided origin.
15951
16926
  *
@@ -15953,13 +16928,13 @@ type ICalls = {
15953
16928
  *
15954
16929
  * The dispatch origin for this call must be _Root_.
15955
16930
  */
15956
- dispatch_as_fallible: TxDescriptor<Anonymize<Icuj8ja2l10ls>>;
16931
+ dispatch_as_fallible: TxDescriptor<Anonymize<I5nh7866g9ol18>>;
15957
16932
  };
15958
16933
  Sudo: {
15959
16934
  /**
15960
16935
  * Authenticates the sudo key and dispatches a function call with `Root` origin.
15961
16936
  */
15962
- sudo: TxDescriptor<Anonymize<I2pfv6joe5h8ag>>;
16937
+ sudo: TxDescriptor<Anonymize<I75087q1gjkeq7>>;
15963
16938
  /**
15964
16939
  * Authenticates the sudo key and dispatches a function call with `Root` origin.
15965
16940
  * This function does not check the weight of the call, and instead allows the
@@ -15967,7 +16942,7 @@ type ICalls = {
15967
16942
  *
15968
16943
  * The dispatch origin for this call must be _Signed_.
15969
16944
  */
15970
- sudo_unchecked_weight: TxDescriptor<Anonymize<Iba6f23v08tq40>>;
16945
+ sudo_unchecked_weight: TxDescriptor<Anonymize<I70imi2h82hc9j>>;
15971
16946
  /**
15972
16947
  * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo
15973
16948
  * key.
@@ -15979,7 +16954,7 @@ type ICalls = {
15979
16954
  *
15980
16955
  * The dispatch origin for this call must be _Signed_.
15981
16956
  */
15982
- sudo_as: TxDescriptor<Anonymize<Iaig4sr8e0h0lu>>;
16957
+ sudo_as: TxDescriptor<Anonymize<I1bgk7jqfhgcvh>>;
15983
16958
  /**
15984
16959
  * Permanently removes the sudo key.
15985
16960
  *
@@ -16002,7 +16977,7 @@ type ICalls = {
16002
16977
  * ## Complexity
16003
16978
  * O(Z + C) where Z is the length of the call and C its execution weight.
16004
16979
  */
16005
- as_multi_threshold_1: TxDescriptor<Anonymize<Ib6g6i7fi6mcm4>>;
16980
+ as_multi_threshold_1: TxDescriptor<Anonymize<I9o9jjp62ka9ds>>;
16006
16981
  /**
16007
16982
  * Register approval for a dispatch to be made from a deterministic composite account if
16008
16983
  * approved by a total of `threshold - 1` of `other_signatories`.
@@ -16044,7 +17019,7 @@ type ICalls = {
16044
17019
  * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit
16045
17020
  * taken for its lifetime of `DepositBase + threshold * DepositFactor`.
16046
17021
  */
16047
- as_multi: TxDescriptor<Anonymize<Ia0k7qt3uugio4>>;
17022
+ as_multi: TxDescriptor<Anonymize<I6i6a8rcv8627c>>;
16048
17023
  /**
16049
17024
  * Register approval for a dispatch to be made from a deterministic composite account if
16050
17025
  * approved by a total of `threshold - 1` of `other_signatories`.
@@ -16160,7 +17135,7 @@ type ICalls = {
16160
17135
  /**
16161
17136
  * Anonymously schedule a task.
16162
17137
  */
16163
- schedule: TxDescriptor<Anonymize<I7l4ur0qt0ri13>>;
17138
+ schedule: TxDescriptor<Anonymize<I9psfsdblsmrj7>>;
16164
17139
  /**
16165
17140
  * Cancel an anonymously scheduled task.
16166
17141
  */
@@ -16168,7 +17143,7 @@ type ICalls = {
16168
17143
  /**
16169
17144
  * Schedule a named task.
16170
17145
  */
16171
- schedule_named: TxDescriptor<Anonymize<I9vuv1dvkkou3u>>;
17146
+ schedule_named: TxDescriptor<Anonymize<Ic7j1jdi3fd6bu>>;
16172
17147
  /**
16173
17148
  * Cancel a named scheduled task.
16174
17149
  */
@@ -16176,11 +17151,11 @@ type ICalls = {
16176
17151
  /**
16177
17152
  * Anonymously schedule a task after a delay.
16178
17153
  */
16179
- schedule_after: TxDescriptor<Anonymize<I7dpsfrsieu6gb>>;
17154
+ schedule_after: TxDescriptor<Anonymize<I55hdif1gsjubs>>;
16180
17155
  /**
16181
17156
  * Schedule a named task after a delay.
16182
17157
  */
16183
- schedule_named_after: TxDescriptor<Anonymize<I9tpicjbp6i82t>>;
17158
+ schedule_named_after: TxDescriptor<Anonymize<I9ard2ctaov151>>;
16184
17159
  /**
16185
17160
  * Set a retry configuration for a task so that, in case its scheduled run fails, it will
16186
17161
  * be retried after `period` blocks, for a total amount of `retries` retries or until it
@@ -16232,7 +17207,7 @@ type ICalls = {
16232
17207
  * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.
16233
17208
  * - `call`: The call to be made by the `real` account.
16234
17209
  */
16235
- proxy: TxDescriptor<Anonymize<I8ce6ks5jovptb>>;
17210
+ proxy: TxDescriptor<Anonymize<I8eecp5lj213g5>>;
16236
17211
  /**
16237
17212
  * Register a proxy account for the sender that is able to make calls on its behalf.
16238
17213
  *
@@ -16244,7 +17219,7 @@ type ICalls = {
16244
17219
  * - `delay`: The announcement period required of the initial proxy. Will generally be
16245
17220
  * zero.
16246
17221
  */
16247
- add_proxy: TxDescriptor<Anonymize<It11trpppbc3l>>;
17222
+ add_proxy: TxDescriptor<Anonymize<I3ounjkfdo4m6u>>;
16248
17223
  /**
16249
17224
  * Unregister a proxy account for the sender.
16250
17225
  *
@@ -16254,7 +17229,7 @@ type ICalls = {
16254
17229
  * - `proxy`: The account that the `caller` would like to remove as a proxy.
16255
17230
  * - `proxy_type`: The permissions currently enabled for the removed proxy account.
16256
17231
  */
16257
- remove_proxy: TxDescriptor<Anonymize<It11trpppbc3l>>;
17232
+ remove_proxy: TxDescriptor<Anonymize<I3ounjkfdo4m6u>>;
16258
17233
  /**
16259
17234
  * Unregister all proxy accounts for the sender.
16260
17235
  *
@@ -16284,7 +17259,7 @@ type ICalls = {
16284
17259
  *
16285
17260
  * Fails if there are insufficient funds to pay for deposit.
16286
17261
  */
16287
- create_pure: TxDescriptor<Anonymize<Ietml13sclqs1q>>;
17262
+ create_pure: TxDescriptor<Anonymize<I8i9ii5oob5jeb>>;
16288
17263
  /**
16289
17264
  * Removes a previously spawned pure proxy.
16290
17265
  *
@@ -16303,7 +17278,7 @@ type ICalls = {
16303
17278
  * Fails with `NoPermission` in case the caller is not a previously created pure
16304
17279
  * account whose `create_pure` call has corresponding parameters.
16305
17280
  */
16306
- kill_pure: TxDescriptor<Anonymize<Iftfic7p3uban2>>;
17281
+ kill_pure: TxDescriptor<Anonymize<Ic5eup222limvr>>;
16307
17282
  /**
16308
17283
  * Publish the hash of a proxy-call that will be made in the future.
16309
17284
  *
@@ -16361,7 +17336,7 @@ type ICalls = {
16361
17336
  * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.
16362
17337
  * - `call`: The call to be made by the `real` account.
16363
17338
  */
16364
- proxy_announced: TxDescriptor<Anonymize<I73kfq9gvndrh3>>;
17339
+ proxy_announced: TxDescriptor<Anonymize<I5f8o56bkooed7>>;
16365
17340
  /**
16366
17341
  * Poke / Adjust deposits made for proxies and announcements based on current values.
16367
17342
  * This can be used by accounts to possibly lower their locked amount.
@@ -16391,7 +17366,7 @@ type ICalls = {
16391
17366
  /**
16392
17367
  * Set the commitment for a given netuid
16393
17368
  */
16394
- set_commitment: TxDescriptor<Anonymize<I57v1t6776pl3a>>;
17369
+ set_commitment: TxDescriptor<Anonymize<I61t1b69aba6p0>>;
16395
17370
  /**
16396
17371
  * Sudo-set MaxSpace
16397
17372
  */
@@ -16670,6 +17645,10 @@ type ICalls = {
16670
17645
  * Sets values for liquid alpha
16671
17646
  */
16672
17647
  sudo_set_alpha_values: TxDescriptor<Anonymize<I71lu4gpn88cf0>>;
17648
+ /**
17649
+ * Sets which consensus values liquid alpha uses for a subnet.
17650
+ */
17651
+ sudo_set_liquid_alpha_consensus_mode: TxDescriptor<Anonymize<Ibr3jgvn47f6ub>>;
16673
17652
  /**
16674
17653
  * Sets the duration of the dissolve network schedule.
16675
17654
  *
@@ -16725,14 +17704,13 @@ type ICalls = {
16725
17704
  *
16726
17705
  * Schedule a change in the authorities.
16727
17706
  *
16728
- * The change will be applied at the end of execution of the block `in_blocks` after the
16729
- * current block. This value may be 0, in which case the change is applied at the end of
16730
- * the current block.
17707
+ * The change is applied at the end of the current block, so `in_blocks` must be 0. This
17708
+ * keeps the authority set and its set ID consistent in every persisted block state.
16731
17709
  *
16732
17710
  * If the `forced` parameter is defined, this indicates that the current set has been
16733
- * synchronously determined to be offline and that after `in_blocks` the given change
16734
- * should be applied. The given block number indicates the median last finalized block
16735
- * number and it should be used as the canon block when starting the new grandpa voter.
17711
+ * synchronously determined to be offline. The given block number indicates the median
17712
+ * last finalized block number and it should be used as the canon block when starting the
17713
+ * new grandpa voter.
16736
17714
  *
16737
17715
  * No change should be signaled while any change is pending. Returns an error if a change
16738
17716
  * is already pending.
@@ -16776,7 +17754,7 @@ type ICalls = {
16776
17754
  * # Weight
16777
17755
  * Weight is handled by the `#[pallet::weight]` attribute.
16778
17756
  */
16779
- sudo_toggle_evm_precompile: TxDescriptor<Anonymize<Ic2qbis4e68na8>>;
17757
+ sudo_toggle_evm_precompile: TxDescriptor<Anonymize<I5emsms8keuaac>>;
16780
17758
  /**
16781
17759
  *
16782
17760
  *
@@ -17045,13 +18023,54 @@ type ICalls = {
17045
18023
  */
17046
18024
  sudo_set_collateral_drain_ratio: TxDescriptor<Anonymize<Ii5ndf7h688tr>>;
17047
18025
  /**
17048
- * Enables or disables root basket weight setting (`set_root_weights`)
17049
- * network-wide. Root Reborn launches with this OFF so every fund runs the
17050
- * null (accumulate in place) strategy as the observable baseline; flip it on
17051
- * later to open basket curation. Gates only the setter — existing vectors,
17052
- * dividend deployment, and reads are unaffected. Root-only.
18026
+ * Sets the basket concentration cap ([`pallet_subtensor::BasketConcentrationCap`]):
18027
+ * the largest u16-normalized share (`u16::MAX` = 100%) of fund NAV any single
18028
+ * holding may reach through a `swap_basket` buy. A cap of `u16::MAX / 16 + 1`
18029
+ * forces traded funds to spread across at least 16 holdings. The check is skipped
18030
+ * while fewer subnets exist on chain than the cap demands. Root-only.
18031
+ */
18032
+ sudo_set_basket_concentration_cap: TxDescriptor<Anonymize<Ieju6qo4sptvs6>>;
18033
+ /**
18034
+ * Enables or disables validator basket trading (`swap_basket`) network-wide.
18035
+ * Defaults OFF. Gates only the trade path: deposits, claims, dividend accrual,
18036
+ * and reads are unaffected. Root-only.
18037
+ */
18038
+ sudo_set_basket_trading_enabled: TxDescriptor<Anonymize<I94dejtmu6d72i>>;
18039
+ /**
18040
+ * Freezes or unfreezes basket trading for one validator hotkey
18041
+ * ([`pallet_subtensor::BasketTradingFrozen`]), e.g. after a suspected key
18042
+ * compromise. A frozen fund still accepts deposits and pays claims. Root-only.
18043
+ */
18044
+ sudo_set_basket_trading_frozen: TxDescriptor<Anonymize<Ifh6muqgp7cgvc>>;
18045
+ /**
18046
+ * Sets the basket daily turnover budget ([`pallet_subtensor::BasketDailyTurnoverCap`]):
18047
+ * the capacity of each fund's `swap_basket` turnover bucket as a u16-normalized share
18048
+ * of fund NAV (`u16::MAX` = 100%). The bucket refills over 7200 blocks, so at most one
18049
+ * capacity can be traded at any instant and about one per day sustained. Root-only.
17053
18050
  */
17054
- sudo_set_root_weight_setting_enabled: TxDescriptor<Anonymize<I94dejtmu6d72i>>;
18051
+ sudo_set_basket_daily_turnover_cap: TxDescriptor<Anonymize<Ieju6qo4sptvs6>>;
18052
+ /**
18053
+ * Sets the basket liquidity cap ([`pallet_subtensor::BasketLiquidityCap`]): the
18054
+ * largest u16-normalized share of a subnet's alpha reserve (`u16::MAX` = 100%) a fund
18055
+ * may hold on that subnet after a `swap_basket` buy. Bounds the fund's exposure to
18056
+ * any one pool's liquidity: with cap `L` the value at risk on a pool with TAO
18057
+ * reserve `R` is about `R × L² / (1 + L)`. Root-only.
18058
+ */
18059
+ sudo_set_basket_liquidity_cap: TxDescriptor<Anonymize<Ieju6qo4sptvs6>>;
18060
+ /**
18061
+ * Sets the four root-claim dust knobs at once. A claim does not sell a fund row
18062
+ * whose whole holding is worth less than `min(row_cap_rao, row_bps × anchored NAV)`
18063
+ * ([`pallet_subtensor::BasketClaimRowDustCapTao`],
18064
+ * [`pallet_subtensor::BasketClaimRowDustBps`]), nor a row where the claimant's own
18065
+ * slice is worth less than `slice_rao` ([`pallet_subtensor::BasketClaimSliceDustTao`]),
18066
+ * provided that slice is worth at most `forfeit_cap_rao`
18067
+ * ([`pallet_subtensor::BasketClaimForfeitCapTao`]) — all at the anchored mark; the
18068
+ * skipped slices stay in the fund for the other holders. Zero turns the respective
18069
+ * skip off (a zero cap turns every skip off). `row_bps` is at most 10_000 (100%).
18070
+ * Declared at four times the sibling one-write basket setter's weight (four
18071
+ * writes; a dedicated benchmark exists for CI to measure). Root-only.
18072
+ */
18073
+ sudo_set_basket_claim_dust: TxDescriptor<Anonymize<I1efeqe055hnfk>>;
17055
18074
  /**
17056
18075
  * Sets the per-block cap on subnet epochs (dynamic tempo throttle).
17057
18076
  */
@@ -17232,7 +18251,7 @@ type ICalls = {
17232
18251
  * - `call`: The call to dispatch when the crowdloan is finalized.
17233
18252
  * - `target_address`: The address to transfer the raised funds to.
17234
18253
  */
17235
- create: TxDescriptor<Anonymize<I4t6ackul815hk>>;
18254
+ create: TxDescriptor<Anonymize<Id7vjasec7na9g>>;
17236
18255
  /**
17237
18256
  * Contribute to an active crowdloan.
17238
18257
  *
@@ -17269,6 +18288,8 @@ type ICalls = {
17269
18288
  * When dispatching a call, the CurrentCrowdloanId will be set to the crowdloan id
17270
18289
  * being finalized so the dispatched call can access it temporarily by accessing
17271
18290
  * the `CurrentCrowdloanId` storage item.
18291
+ * The call must spend the full raised amount from the funds account; otherwise
18292
+ * finalization and any partial effects are rolled back.
17272
18293
  *
17273
18294
  * The dispatch origin for this call must be _Signed_ and must be the creator of the crowdloan.
17274
18295
  *
@@ -17575,7 +18596,7 @@ type ICalls = {
17575
18596
  * whole batch by returning the underlying error, reverting any orders
17576
18597
  * already executed in this call.
17577
18598
  */
17578
- execute_orders: TxDescriptor<Anonymize<I13cr1jhg3ick>>;
18599
+ execute_orders: TxDescriptor<Anonymize<I2gnn08emp92fv>>;
17579
18600
  /**
17580
18601
  * Execute a batch of signed limit orders for a single subnet using
17581
18602
  * aggregated (netted) pool interaction.
@@ -17600,7 +18621,7 @@ type ICalls = {
17600
18621
  * All orders in the batch must target `netuid`. Orders for a different
17601
18622
  * subnet are skipped.
17602
18623
  */
17603
- execute_batched_orders: TxDescriptor<Anonymize<Iaiidau60pa8a>>;
18624
+ execute_batched_orders: TxDescriptor<Anonymize<I39mr7pd2tq42p>>;
17604
18625
  /**
17605
18626
  * Register a cancellation intent for an order.
17606
18627
  *
@@ -17608,7 +18629,7 @@ type ICalls = {
17608
18629
  * provided so the pallet can derive the `OrderId`. Once marked
17609
18630
  * Cancelled, the order can never be executed.
17610
18631
  */
17611
- cancel_order: TxDescriptor<Anonymize<I5kfem6cgo8bnh>>;
18632
+ cancel_order: TxDescriptor<Anonymize<I2ki6vvodcknh0>>;
17612
18633
  /**
17613
18634
  * Set a status for the limit orders pallet
17614
18635
  *
@@ -17617,6 +18638,11 @@ type ICalls = {
17617
18638
  * true means enabling, false means disabling
17618
18639
  */
17619
18640
  set_pallet_status: TxDescriptor<Anonymize<I94dejtmu6d72i>>;
18641
+ /**
18642
+ * Remove a provider record. The signer may prune at any time; anyone
18643
+ * may prune after `expires_at`. Moves no funds.
18644
+ */
18645
+ prune_linked_output: TxDescriptor<Anonymize<Icounsrraf8e8l>>;
17620
18646
  };
17621
18647
  };
17622
18648
  type IEvent = {
@@ -17628,7 +18654,7 @@ type IEvent = {
17628
18654
  /**
17629
18655
  * An extrinsic failed.
17630
18656
  */
17631
- ExtrinsicFailed: PlainDescriptor<Anonymize<I6g6pbm61ngfbu>>;
18657
+ ExtrinsicFailed: PlainDescriptor<Anonymize<I474kpdjo5rcju>>;
17632
18658
  /**
17633
18659
  * `:code` was updated.
17634
18660
  */
@@ -17652,7 +18678,7 @@ type IEvent = {
17652
18678
  /**
17653
18679
  * An invalid authorized upgrade was rejected while trying to apply it.
17654
18680
  */
17655
- RejectedInvalidAuthorizedUpgrade: PlainDescriptor<Anonymize<I5frontl14n8fc>>;
18681
+ RejectedInvalidAuthorizedUpgrade: PlainDescriptor<Anonymize<Id6qp8mkqpsm2t>>;
17656
18682
  };
17657
18683
  Grandpa: {
17658
18684
  /**
@@ -17793,7 +18819,8 @@ type IEvent = {
17793
18819
  */
17794
18820
  WeightsSet: PlainDescriptor<Anonymize<I9jd27rnpm8ttv>>;
17795
18821
  /**
17796
- * a root validator set its beta-basket distribution vector (uid on the root subnet).
18822
+ * Retired (kept for SCALE index stability): emitted by the removed
18823
+ * `set_root_weights` extrinsic. Never emitted on current runtimes.
17797
18824
  */
17798
18825
  RootWeightsSet: PlainDescriptor<number>;
17799
18826
  /**
@@ -17971,7 +18998,7 @@ type IEvent = {
17971
18998
  /**
17972
18999
  * a sudo call is done.
17973
19000
  */
17974
- Sudid: PlainDescriptor<Anonymize<I38vhitvbd00gg>>;
19001
+ Sudid: PlainDescriptor<Anonymize<I2tgj23u15fhfj>>;
17975
19002
  /**
17976
19003
  * registration is allowed/disallowed for a subnet.
17977
19004
  */
@@ -18157,7 +19184,7 @@ type IEvent = {
18157
19184
  * * **netuid**: The netuid of the batch item that failed.
18158
19185
  * * **error**: The dispatch error emitted by the failed item.
18159
19186
  */
18160
- BatchWeightItemFailed: PlainDescriptor<Anonymize<I6fil5rhn4n2kv>>;
19187
+ BatchWeightItemFailed: PlainDescriptor<Anonymize<I2tborcevr26jg>>;
18161
19188
  /**
18162
19189
  * Stake has been transferred from one coldkey to another on the same subnet.
18163
19190
  * Parameters:
@@ -18299,16 +19326,17 @@ type IEvent = {
18299
19326
  */
18300
19327
  RootClaimed: PlainDescriptor<Anonymize<I1lh338fvf2g5i>>;
18301
19328
  /**
18302
- * A validator's beta basket (fund) received a dividend deposit: the dividend was
18303
- * deployed across subnets per the validator's weight vector, adding `tao` of
18304
- * realizable NAV to the fund and minting `shares` fund shares at the pre-deposit NAV.
19329
+ * A validator's beta basket (fund) received a dividend deposit: the dividend alpha
19330
+ * was credited in place to the fund's holding on the subnet it was earned on,
19331
+ * adding `tao` of realizable NAV to the fund and minting `shares` fund shares at
19332
+ * the pre-deposit NAV.
18305
19333
  */
18306
19334
  BasketDeposited: PlainDescriptor<Anonymize<I8raosbmu7qne>>;
18307
19335
  /**
18308
19336
  * A staker deposited TAO from their balance directly into a validator's beta
18309
- * basket: the TAO was deployed across subnets per the validator's weight vector
18310
- * and `shares` fund shares were credited to the staker via their claimed
18311
- * watermark.
19337
+ * basket: the TAO was split across the fund's current holdings by value (or held
19338
+ * as the root cash slot of an empty fund) and `shares` fund shares were credited
19339
+ * to the staker via their claimed watermark.
18312
19340
  */
18313
19341
  BasketStakedIn: PlainDescriptor<Anonymize<Ib9iq518ulvk6b>>;
18314
19342
  /**
@@ -18433,13 +19461,59 @@ type IEvent = {
18433
19461
  * A miner set the self-maintaining collateral floor for a hotkey.
18434
19462
  */
18435
19463
  MinCollateralSet: PlainDescriptor<Anonymize<I8311u0vagk8ti>>;
19464
+ /**
19465
+ * A subnet's liquid-alpha consensus mode was updated.
19466
+ * Appended to preserve existing SCALE event indices.
19467
+ */
19468
+ LiquidAlphaConsensusModeSet: PlainDescriptor<Anonymize<I3fk3bga536kbc>>;
19469
+ /**
19470
+ * A fund's frozen display baseline was stamped at its first share mint: its
19471
+ * index-spliced display and total-return stake prices start at the current
19472
+ * index levels from this block on (see `BetaBaseline` storage). Appended to
19473
+ * preserve existing SCALE event indices.
19474
+ */
19475
+ BetaBaselineStamped: PlainDescriptor<Anonymize<Ie7hipi75c7vn0>>;
19476
+ /**
19477
+ * A terminally untradeable basket alpha slice was explicitly written off. This is
19478
+ * distinct from a swap/transfer failure: only a pool too shallow to execute any sale
19479
+ * is eligible, and removing the exact slice preserves every holder's fund proportion.
19480
+ * Appended to preserve existing SCALE event indices.
19481
+ */
19482
+ BasketAlphaWrittenOff: PlainDescriptor<Anonymize<I5lc3fje3csiff>>;
19483
+ /**
19484
+ * A contributor's lease dividends could not be transferred this interval. The amount
19485
+ * is recorded against that contributor and retried at the next distribution.
19486
+ */
19487
+ SubnetLeaseDividendSkipped: PlainDescriptor<Anonymize<Ic149bnrif7lpr>>;
19488
+ /**
19489
+ * A share pool's denominator was rewritten to the sum of its live shares, so every
19490
+ * member is quoted exactly its fraction of the pool value.
19491
+ */
19492
+ SharePoolDenominatorReconciled: PlainDescriptor<Anonymize<I7f38r2vt6r9k1>>;
19493
+ /**
19494
+ * A validator rebalanced its beta basket: `alpha_sold` of `origin_netuid` was sold
19495
+ * for `tao_mid` TAO, which bought `alpha_bought` of `destination_netuid`. Fund
19496
+ * shares and staker entitlements are unaffected; only the fund's composition changed.
19497
+ */
19498
+ BasketSwapped: PlainDescriptor<Anonymize<I4c943g1d2vpls>>;
19499
+ /**
19500
+ * A root claim skipped `rows` dust rows of the fund: rows whose whole holding was
19501
+ * worth less than `min(BasketClaimRowDustCapTao, BasketClaimRowDustBps × anchored
19502
+ * NAV)`, or whose slice for this claimant was worth less than
19503
+ * `BasketClaimSliceDustTao`, each worth at most `BasketClaimForfeitCapTao` for this
19504
+ * claimant, all at the anchored (fast-EMA-capped) mark. Those rows were neither sold
19505
+ * nor paid. The claim burned the whole entitlement, so the claimant's slices of those
19506
+ * rows — about `forfeited_tao_est` at the pre-sale realizable quote — stay in the fund
19507
+ * for the remaining holders.
19508
+ */
19509
+ BasketClaimDustSkipped: PlainDescriptor<Anonymize<I2oi507u9m8p7e>>;
18436
19510
  };
18437
19511
  Utility: {
18438
19512
  /**
18439
19513
  * Batch of dispatches did not complete fully. Index of first failing dispatch given, as
18440
19514
  * well as the error.
18441
19515
  */
18442
- BatchInterrupted: PlainDescriptor<Anonymize<Icea0g1kirlibu>>;
19516
+ BatchInterrupted: PlainDescriptor<Anonymize<I1ljeiuva9p2f8>>;
18443
19517
  /**
18444
19518
  * Batch of dispatches completed fully with no error.
18445
19519
  */
@@ -18455,11 +19529,11 @@ type IEvent = {
18455
19529
  /**
18456
19530
  * A single item within a Batch of dispatches has completed with error.
18457
19531
  */
18458
- ItemFailed: PlainDescriptor<Anonymize<Ievlf9lhdsr1nr>>;
19532
+ ItemFailed: PlainDescriptor<Anonymize<I2d979qe85gckv>>;
18459
19533
  /**
18460
19534
  * A call was dispatched.
18461
19535
  */
18462
- DispatchedAs: PlainDescriptor<Anonymize<I19524pum8hcn3>>;
19536
+ DispatchedAs: PlainDescriptor<Anonymize<Idh038mr0ve455>>;
18463
19537
  /**
18464
19538
  * Main call was dispatched.
18465
19539
  */
@@ -18467,13 +19541,13 @@ type IEvent = {
18467
19541
  /**
18468
19542
  * The fallback call was dispatched.
18469
19543
  */
18470
- IfElseFallbackCalled: PlainDescriptor<Anonymize<Ibc87trltre934>>;
19544
+ IfElseFallbackCalled: PlainDescriptor<Anonymize<I86e6l1su1si95>>;
18471
19545
  };
18472
19546
  Sudo: {
18473
19547
  /**
18474
19548
  * A sudo call just took place.
18475
19549
  */
18476
- Sudid: PlainDescriptor<Anonymize<I7d2gga3mq2mfi>>;
19550
+ Sudid: PlainDescriptor<Anonymize<Iep7dr37rblk5l>>;
18477
19551
  /**
18478
19552
  * The sudo key has been updated.
18479
19553
  */
@@ -18485,7 +19559,7 @@ type IEvent = {
18485
19559
  /**
18486
19560
  * A [sudo_as](Pallet::sudo_as) call just took place.
18487
19561
  */
18488
- SudoAsDone: PlainDescriptor<Anonymize<I7d2gga3mq2mfi>>;
19562
+ SudoAsDone: PlainDescriptor<Anonymize<Iep7dr37rblk5l>>;
18489
19563
  };
18490
19564
  Multisig: {
18491
19565
  /**
@@ -18499,7 +19573,7 @@ type IEvent = {
18499
19573
  /**
18500
19574
  * A multisig operation has been executed.
18501
19575
  */
18502
- MultisigExecuted: PlainDescriptor<Anonymize<I4t316ffal1f68>>;
19576
+ MultisigExecuted: PlainDescriptor<Anonymize<I686omifdantj9>>;
18503
19577
  /**
18504
19578
  * A multisig operation has been cancelled.
18505
19579
  */
@@ -18535,7 +19609,7 @@ type IEvent = {
18535
19609
  /**
18536
19610
  * Dispatched some task.
18537
19611
  */
18538
- Dispatched: PlainDescriptor<Anonymize<Ic4n2079t9s369>>;
19612
+ Dispatched: PlainDescriptor<Anonymize<I7d5m523quh7c1>>;
18539
19613
  /**
18540
19614
  * Set a retry configuration for some task.
18541
19615
  */
@@ -18570,16 +19644,16 @@ type IEvent = {
18570
19644
  /**
18571
19645
  * A proxy was executed correctly, with the given.
18572
19646
  */
18573
- ProxyExecuted: PlainDescriptor<Anonymize<I19524pum8hcn3>>;
19647
+ ProxyExecuted: PlainDescriptor<Anonymize<Idh038mr0ve455>>;
18574
19648
  /**
18575
19649
  * A pure account has been created by new proxy with given
18576
19650
  * disambiguation index and proxy type.
18577
19651
  */
18578
- PureCreated: PlainDescriptor<Anonymize<Iek6442ldi23n3>>;
19652
+ PureCreated: PlainDescriptor<Anonymize<I4h005nshv9cmm>>;
18579
19653
  /**
18580
19654
  * A pure proxy was killed by its spawner.
18581
19655
  */
18582
- PureKilled: PlainDescriptor<Anonymize<Idpdo54rotesu2>>;
19656
+ PureKilled: PlainDescriptor<Anonymize<I65ie0pg8a2o2r>>;
18583
19657
  /**
18584
19658
  * An announcement was placed to make a call in the future.
18585
19659
  */
@@ -18587,11 +19661,11 @@ type IEvent = {
18587
19661
  /**
18588
19662
  * A proxy was added.
18589
19663
  */
18590
- ProxyAdded: PlainDescriptor<Anonymize<Ibco2bqthggul0>>;
19664
+ ProxyAdded: PlainDescriptor<Anonymize<Ieglriopqk5p81>>;
18591
19665
  /**
18592
19666
  * A proxy was removed.
18593
19667
  */
18594
- ProxyRemoved: PlainDescriptor<Anonymize<Ibco2bqthggul0>>;
19668
+ ProxyRemoved: PlainDescriptor<Anonymize<Ieglriopqk5p81>>;
18595
19669
  /**
18596
19670
  * A deposit stored for proxies or announcements was poked / updated.
18597
19671
  */
@@ -18614,12 +19688,16 @@ type IEvent = {
18614
19688
  * A timelock-encrypted commitment was auto-revealed
18615
19689
  */
18616
19690
  CommitmentRevealed: PlainDescriptor<Anonymize<Idcqgi2844k5he>>;
19691
+ /**
19692
+ * A timelock-encrypted commitment could not be revealed and was left in place
19693
+ */
19694
+ CommitmentRevealFailed: PlainDescriptor<Anonymize<I4k7lbqu1hockt>>;
18617
19695
  };
18618
19696
  AdminUtils: {
18619
19697
  /**
18620
19698
  * Event emitted when a precompile operation is updated.
18621
19699
  */
18622
- PrecompileUpdated: PlainDescriptor<Anonymize<Ic2qbis4e68na8>>;
19700
+ PrecompileUpdated: PlainDescriptor<Anonymize<I5emsms8keuaac>>;
18623
19701
  /**
18624
19702
  * Event emitted when the Yuma3 enable is toggled.
18625
19703
  */
@@ -18649,10 +19727,30 @@ type IEvent = {
18649
19727
  */
18650
19728
  CollateralDrainRatioSet: PlainDescriptor<Anonymize<Ii5ndf7h688tr>>;
18651
19729
  /**
18652
- * Root basket weight setting (`set_root_weights`) was enabled or disabled
18653
- * network-wide.
19730
+ * The basket concentration cap (`BasketConcentrationCap`) was set.
19731
+ */
19732
+ BasketConcentrationCapSet: PlainDescriptor<Anonymize<Ieju6qo4sptvs6>>;
19733
+ /**
19734
+ * Validator basket trading (`swap_basket`) was enabled or disabled network-wide.
19735
+ */
19736
+ BasketTradingToggled: PlainDescriptor<Anonymize<I94dejtmu6d72i>>;
19737
+ /**
19738
+ * Basket trading was frozen or unfrozen for one validator hotkey.
19739
+ */
19740
+ BasketTradingFrozenSet: PlainDescriptor<Anonymize<Ifh6muqgp7cgvc>>;
19741
+ /**
19742
+ * The basket daily turnover budget (`BasketDailyTurnoverCap`) was set.
19743
+ */
19744
+ BasketDailyTurnoverCapSet: PlainDescriptor<Anonymize<Ieju6qo4sptvs6>>;
19745
+ /**
19746
+ * The basket liquidity cap (`BasketLiquidityCap`) was set.
19747
+ */
19748
+ BasketLiquidityCapSet: PlainDescriptor<Anonymize<Ieju6qo4sptvs6>>;
19749
+ /**
19750
+ * The root-claim dust floors were set (`BasketClaimRowDustCapTao`,
19751
+ * `BasketClaimRowDustBps`, `BasketClaimSliceDustTao`, `BasketClaimForfeitCapTao`).
18654
19752
  */
18655
- RootWeightSettingToggled: PlainDescriptor<Anonymize<I94dejtmu6d72i>>;
19753
+ BasketClaimDustSet: PlainDescriptor<Anonymize<I1efeqe055hnfk>>;
18656
19754
  };
18657
19755
  SafeMode: {
18658
19756
  /**
@@ -18872,7 +19970,7 @@ type IEvent = {
18872
19970
  /**
18873
19971
  * Extrinsic dispatch failed during on_initialize.
18874
19972
  */
18875
- ExtrinsicDispatchFailed: PlainDescriptor<Anonymize<Icea0g1kirlibu>>;
19973
+ ExtrinsicDispatchFailed: PlainDescriptor<Anonymize<I1ljeiuva9p2f8>>;
18876
19974
  /**
18877
19975
  * Extrinsic was successfully dispatched during on_initialize.
18878
19976
  */
@@ -18914,7 +20012,7 @@ type IEvent = {
18914
20012
  /**
18915
20013
  * An order was skipped during execution.
18916
20014
  */
18917
- OrderSkipped: PlainDescriptor<Anonymize<Idt8sj9279kl8h>>;
20015
+ OrderSkipped: PlainDescriptor<Anonymize<I7fsb2ggi0p38u>>;
18918
20016
  /**
18919
20017
  * A user registered a cancellation intent for their order.
18920
20018
  */
@@ -18927,6 +20025,18 @@ type IEvent = {
18927
20025
  * Root has either enabled(true) or disabled(false) the pallet
18928
20026
  */
18929
20027
  LimitOrdersPalletStatusChanged: PlainDescriptor<Anonymize<I94dejtmu6d72i>>;
20028
+ /**
20029
+ * A provider order recorded its post-fee output for a later linked draw.
20030
+ */
20031
+ LinkedOutputRecorded: PlainDescriptor<Anonymize<I3bo03q6favt23>>;
20032
+ /**
20033
+ * A linked order drew against a provider record, consuming it.
20034
+ */
20035
+ LinkedOutputConsumed: PlainDescriptor<Anonymize<Icp9q94f7t4cvv>>;
20036
+ /**
20037
+ * A provider record was removed without being drawn.
20038
+ */
20039
+ LinkedOutputPruned: PlainDescriptor<Anonymize<I4ei8bi736no30>>;
18930
20040
  };
18931
20041
  };
18932
20042
  type IError = {
@@ -19239,8 +20349,8 @@ type IError = {
19239
20349
  */
19240
20350
  RegistrationNotPermittedOnRootSubnet: PlainDescriptor<undefined>;
19241
20351
  /**
19242
- * Retired: root admission is burn-based and no longer stake-gated.
19243
- * Kept so later error variants keep their metadata indices.
20352
+ * A root registrant must hold at least as much root stake as the seat it
20353
+ * would evict.
19244
20354
  */
19245
20355
  StakeTooLowForRoot: PlainDescriptor<undefined>;
19246
20356
  /**
@@ -19701,8 +20811,8 @@ type IError = {
19701
20811
  */
19702
20812
  ColdkeyCollateralPositionsFull: PlainDescriptor<undefined>;
19703
20813
  /**
19704
- * Retired (kept for SCALE index stability): direct basket deposits into an
19705
- * uncurated fund are now held as the fund's root (TAO cash) slot instead of
20814
+ * Retired (kept for SCALE index stability): direct basket deposits into a fund
20815
+ * with no holdings are held as the fund's root (TAO cash) slot instead of
19706
20816
  * erroring.
19707
20817
  */
19708
20818
  BasketHasNoWeights: PlainDescriptor<undefined>;
@@ -19713,19 +20823,91 @@ type IError = {
19713
20823
  */
19714
20824
  RootStakeLocked: PlainDescriptor<undefined>;
19715
20825
  /**
19716
- * The `migrate_seed_beta_basket_v2` seed or its per-hotkey deferred-dividend release
19717
- * has not completed. Basket deposits, claims, coldkey / root-touching hotkey swaps,
19718
- * and root stake add/remove/transfer/swap are paused until it finishes so snapshotted
19719
- * conversion cannot desync from live stake (`Σ owed == BasketShares`).
20826
+ * The `migrate_seed_beta_basket_v2` seed has not completed. Basket deposits, claims,
20827
+ * coldkey / root-touching hotkey swaps, and root stake add/remove/transfer/swap are
20828
+ * paused until it finishes so snapshotted conversion cannot desync from live stake
20829
+ * (`Σ owed == BasketShares`).
19720
20830
  */
19721
20831
  BetaBasketSeedInProgress: PlainDescriptor<undefined>;
19722
20832
  /**
19723
- * `set_root_weights` is disabled network-wide ([`crate::RootWeightSettingEnabled`]
19724
- * is false). Root Reborn launches gated: every fund runs the null strategy
19725
- * (dividends accumulate in place) until weight setting is switched on by
19726
- * governance or a later upgrade.
20833
+ * Retired (kept for SCALE index stability): the `set_root_weights` extrinsic and
20834
+ * its network-wide gate were removed. Funds have no target vector; dividends
20835
+ * accumulate in place and composition changes only through `swap_basket`.
19727
20836
  */
19728
20837
  RootWeightSettingDisabled: PlainDescriptor<undefined>;
20838
+ /**
20839
+ * A root claim would process more root hotkeys and basket rows than the
20840
+ * fixed admission envelope. Use
20841
+ * `claim_root_with_hotkey` per validator so admission weight matches
20842
+ * the holdings actually walked.
20843
+ */
20844
+ RootClaimTooHeavy: PlainDescriptor<undefined>;
20845
+ /**
20846
+ * Retired (kept for SCALE index stability on the 463 testnet/devnet runtime):
20847
+ * `set_root_weights` concentration cap. The live guard is
20848
+ * [`Error::BasketConcentrationCapExceeded`].
20849
+ */
20850
+ RootWeightCapExceeded: PlainDescriptor<undefined>;
20851
+ /**
20852
+ * A queued root-dividend deposit could not be settled. Operations which change
20853
+ * the hotkey's root claimant base must retry after the deposit becomes executable.
20854
+ */
20855
+ BasketDepositPending: PlainDescriptor<undefined>;
20856
+ /**
20857
+ * A per-subnet weight batch is empty or has more items than there are networks.
20858
+ */
20859
+ InvalidBatchLength: PlainDescriptor<undefined>;
20860
+ /**
20861
+ * The destination coldkey already stakes through the maximum number of hotkeys
20862
+ * that third-party transfers may add, or the signer's own `StakingHotkeys` list is
20863
+ * at its cap. Staking to a hotkey the coldkey already stakes through is still
20864
+ * accepted.
20865
+ */
20866
+ TooManyStakingHotkeys: PlainDescriptor<undefined>;
20867
+ /**
20868
+ * The coldkey stakes through more hotkeys, or holds more stake positions, than a
20869
+ * coldkey swap can move in one call. Consolidate (unstake or move stake) first.
20870
+ */
20871
+ ColdkeySwapTooHeavy: PlainDescriptor<undefined>;
20872
+ /**
20873
+ * A `swap_basket` buy would leave the destination holding above
20874
+ * [`crate::BasketConcentrationCap`] of fund NAV (holdings marked at realizable
20875
+ * value). With the cap at 1/16 a traded fund must spread across at least 16
20876
+ * holdings. Not enforced while the chain has fewer subnets than the cap demands.
20877
+ */
20878
+ BasketConcentrationCapExceeded: PlainDescriptor<undefined>;
20879
+ /**
20880
+ * `swap_basket` is disabled network-wide ([`crate::BasketTradingEnabled`] is false).
20881
+ */
20882
+ BasketTradingDisabled: PlainDescriptor<undefined>;
20883
+ /**
20884
+ * Basket trading is frozen for this validator hotkey by governance
20885
+ * ([`crate::BasketTradingFrozen`]).
20886
+ */
20887
+ BasketTradingFrozen: PlainDescriptor<undefined>;
20888
+ /**
20889
+ * The trade would push more TAO through the fund than its turnover bucket holds
20890
+ * ([`crate::BasketDailyTurnoverCap`] of fund NAV, refilling over
20891
+ * [`crate::BASKET_TRADE_REFILL_BLOCKS`]). Wait for the bucket to refill or trade
20892
+ * a smaller amount.
20893
+ */
20894
+ BasketTurnoverBudgetExceeded: PlainDescriptor<undefined>;
20895
+ /**
20896
+ * `swap_basket` origin and destination are the same subnet.
20897
+ */
20898
+ BasketSameSubnet: PlainDescriptor<undefined>;
20899
+ /**
20900
+ * The trade would leave the fund holding more of the destination subnet than
20901
+ * [`crate::BasketLiquidityCap`] allows as a share of that subnet's alpha reserve.
20902
+ * Trade a smaller amount or pick a deeper pool.
20903
+ */
20904
+ BasketLiquidityCapExceeded: PlainDescriptor<undefined>;
20905
+ /**
20906
+ * The `swap_basket` buy leg credited less than the caller's `min_amount_out`
20907
+ * (destination alpha, or TAO when the destination is root). The trade rolled
20908
+ * back. Re-quote and retry, or lower the floor.
20909
+ */
20910
+ BasketMinOutNotMet: PlainDescriptor<undefined>;
19729
20911
  };
19730
20912
  Utility: {
19731
20913
  /**
@@ -19917,6 +21099,10 @@ type IError = {
19917
21099
  * Indicates that unreserve returned a leftover, which is unexpected.
19918
21100
  */
19919
21101
  UnexpectedUnreserveLeftover: PlainDescriptor<undefined>;
21102
+ /**
21103
+ * `TimelockRevealFailed` fields may only be created by the runtime.
21104
+ */
21105
+ TimelockRevealFailedNotAllowed: PlainDescriptor<undefined>;
19920
21106
  };
19921
21107
  AdminUtils: {
19922
21108
  /**
@@ -19983,6 +21169,10 @@ type IError = {
19983
21169
  * The collateral drain ratio must be positive and at most the settable maximum.
19984
21170
  */
19985
21171
  CollateralDrainRatioOutOfBounds: PlainDescriptor<undefined>;
21172
+ /**
21173
+ * GRANDPA changes must take effect at the end of the current block.
21174
+ */
21175
+ GrandpaChangeDelayMustBeZero: PlainDescriptor<undefined>;
19986
21176
  };
19987
21177
  SafeMode: {
19988
21178
  /**
@@ -20221,6 +21411,10 @@ type IError = {
20221
21411
  * The minimum contribution is too high.
20222
21412
  */
20223
21413
  MinimumContributionTooHigh: PlainDescriptor<undefined>;
21414
+ /**
21415
+ * The finalization call did not spend the full amount raised.
21416
+ */
21417
+ FundsNotSettled: PlainDescriptor<undefined>;
20224
21418
  };
20225
21419
  Swap: {
20226
21420
  /**
@@ -20547,6 +21741,42 @@ type IError = {
20547
21741
  * differently-composed batch.
20548
21742
  */
20549
21743
  ZeroShareInBatch: PlainDescriptor<undefined>;
21744
+ /**
21745
+ * Linked order named a provider with no recorded output.
21746
+ */
21747
+ NoLinkedOutput: PlainDescriptor<undefined>;
21748
+ /**
21749
+ * Linked order signer differs from the provider's signer.
21750
+ */
21751
+ LinkedOutputSignerMismatch: PlainDescriptor<undefined>;
21752
+ /**
21753
+ * Provider output asset is not what the linked order spends.
21754
+ */
21755
+ LinkedOutputAssetMismatch: PlainDescriptor<undefined>;
21756
+ /**
21757
+ * Provider record has passed its `expires_at` deadline.
21758
+ */
21759
+ LinkedOutputExpired: PlainDescriptor<undefined>;
21760
+ /**
21761
+ * Linked fraction floored to zero against the recorded output.
21762
+ */
21763
+ LinkedAmountResolvedToZero: PlainDescriptor<undefined>;
21764
+ /**
21765
+ * Partial fill submitted against a linked (consuming) order.
21766
+ */
21767
+ PartialFillNotSupportedForLinkedAmount: PlainDescriptor<undefined>;
21768
+ /**
21769
+ * Partial fill submitted against a provider (`has_linked_order`).
21770
+ */
21771
+ PartialFillNotSupportedForProvider: PlainDescriptor<undefined>;
21772
+ /**
21773
+ * `prune_linked_output` called by a non-signer on an unexpired record.
21774
+ */
21775
+ LinkedOutputNotPrunable: PlainDescriptor<undefined>;
21776
+ /**
21777
+ * The order owner is temporarily prohibited from moving funds.
21778
+ */
21779
+ OrderSignerFrozen: PlainDescriptor<undefined>;
20550
21780
  };
20551
21781
  };
20552
21782
  type IConstants = {
@@ -21255,6 +22485,10 @@ type IConstants = {
21255
22485
  * this in the runtime configuration.
21256
22486
  */
21257
22487
  PalletHotkey: PlainDescriptor<SS58String>;
22488
+ /**
22489
+ * How long, in milliseconds, a provider's recorded output stays drawable.
22490
+ */
22491
+ LinkedOutputTtl: PlainDescriptor<bigint>;
21258
22492
  };
21259
22493
  };
21260
22494
  type IViewFns = {
@@ -21262,11 +22496,11 @@ type IViewFns = {
21262
22496
  /**
21263
22497
  * Check if a `RuntimeCall` is allowed for a given `ProxyType`.
21264
22498
  */
21265
- check_permissions: RuntimeDescriptor<[call: Anonymize<Icqgfma7tj4kp4>, proxy_type: Anonymize<I8v1041j74kmaj>], boolean>;
22499
+ check_permissions: RuntimeDescriptor<[call: Anonymize<Ifqpkj93u7u816>, proxy_type: Anonymize<I4855cvrampgh6>], boolean>;
21266
22500
  /**
21267
22501
  * Check if one `ProxyType` is a subset of another `ProxyType`.
21268
22502
  */
21269
- is_superset: RuntimeDescriptor<[to_check: Anonymize<I8v1041j74kmaj>, against: Anonymize<I8v1041j74kmaj>], boolean>;
22503
+ is_superset: RuntimeDescriptor<[to_check: Anonymize<I4855cvrampgh6>, against: Anonymize<I4855cvrampgh6>], boolean>;
21270
22504
  };
21271
22505
  };
21272
22506
  type IRuntimeCalls = {
@@ -21319,7 +22553,7 @@ type IRuntimeCalls = {
21319
22553
  * Returns an inclusion outcome which specifies if this extrinsic is included in
21320
22554
  * this block or not.
21321
22555
  */
21322
- apply_extrinsic: RuntimeDescriptor<[extrinsic: Uint8Array], Anonymize<Ibtp9952qoipot>>;
22556
+ apply_extrinsic: RuntimeDescriptor<[extrinsic: Uint8Array], Anonymize<I6jkah5k0508u5>>;
21323
22557
  /**
21324
22558
  * Finish the current block.
21325
22559
  */
@@ -21519,11 +22753,11 @@ type IRuntimeCalls = {
21519
22753
  /**
21520
22754
  * Query information of a dispatch class, weight, and fee of a given encoded `Call`.
21521
22755
  */
21522
- query_call_info: RuntimeDescriptor<[call: Anonymize<Icqgfma7tj4kp4>, len: number], Anonymize<I6spmpef2c7svf>>;
22756
+ query_call_info: RuntimeDescriptor<[call: Anonymize<Ifqpkj93u7u816>, len: number], Anonymize<I6spmpef2c7svf>>;
21523
22757
  /**
21524
22758
  * Query fee details of a given encoded `Call`.
21525
22759
  */
21526
- query_call_fee_details: RuntimeDescriptor<[call: Anonymize<Icqgfma7tj4kp4>, len: number], Anonymize<Iei2mvq0mjvt81>>;
22760
+ query_call_fee_details: RuntimeDescriptor<[call: Anonymize<Ifqpkj93u7u816>, len: number], Anonymize<Iei2mvq0mjvt81>>;
21527
22761
  /**
21528
22762
  * Query the output of the current `WeightToFee` given some input.
21529
22763
  */
@@ -21563,10 +22797,10 @@ type IRuntimeCalls = {
21563
22797
  storage_at: RuntimeDescriptor<[address: SizedHex<20>, index: Anonymize<I4totqt881mlti>], SizedHex<32>>;
21564
22798
  /**
21565
22799
  */
21566
- call: RuntimeDescriptor<[from: SizedHex<20>, to: SizedHex<20>, data: Uint8Array, value: Anonymize<I4totqt881mlti>, gas_limit: Anonymize<I4totqt881mlti>, max_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, max_priority_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, nonce: Anonymize<Ic4rgfgksgmm3e>, estimate: boolean, access_list: Anonymize<I3dj14b7k3rkm5>, authorization_list: Anonymize<Ic5egmm215ml6k>], Anonymize<Ib4jttiiie8lcu>>;
22800
+ call: RuntimeDescriptor<[from: SizedHex<20>, to: SizedHex<20>, data: Uint8Array, value: Anonymize<I4totqt881mlti>, gas_limit: Anonymize<I4totqt881mlti>, max_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, max_priority_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, nonce: Anonymize<Ic4rgfgksgmm3e>, estimate: boolean, access_list: Anonymize<I3dj14b7k3rkm5>, authorization_list: Anonymize<Ic5egmm215ml6k>], Anonymize<I4lbgficb22f1i>>;
21567
22801
  /**
21568
22802
  */
21569
- create: RuntimeDescriptor<[from: SizedHex<20>, data: Uint8Array, value: Anonymize<I4totqt881mlti>, gas_limit: Anonymize<I4totqt881mlti>, max_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, max_priority_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, nonce: Anonymize<Ic4rgfgksgmm3e>, estimate: boolean, access_list: Anonymize<I3dj14b7k3rkm5>, authorization_list: Anonymize<Ic5egmm215ml6k>], Anonymize<I3e56kgbm7nkqc>>;
22803
+ create: RuntimeDescriptor<[from: SizedHex<20>, data: Uint8Array, value: Anonymize<I4totqt881mlti>, gas_limit: Anonymize<I4totqt881mlti>, max_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, max_priority_fee_per_gas: Anonymize<Ic4rgfgksgmm3e>, nonce: Anonymize<Ic4rgfgksgmm3e>, estimate: boolean, access_list: Anonymize<I3dj14b7k3rkm5>, authorization_list: Anonymize<Ic5egmm215ml6k>], Anonymize<I19vcmto68hf1n>>;
21570
22804
  /**
21571
22805
  * Return the current block.
21572
22806
  */
@@ -21624,19 +22858,19 @@ type IRuntimeCalls = {
21624
22858
  *
21625
22859
  * See [`crate::Pallet::bare_call`].
21626
22860
  */
21627
- call: RuntimeDescriptor<[origin: SS58String, dest: SS58String, value: bigint, gas_limit: Anonymize<Iasb8k6ash5mjn>, storage_deposit_limit: Anonymize<I35p85j063s0il>, input_data: Uint8Array], Anonymize<Ifmh088ivqs9s8>>;
22861
+ call: RuntimeDescriptor<[origin: SS58String, dest: SS58String, value: bigint, gas_limit: Anonymize<Iasb8k6ash5mjn>, storage_deposit_limit: Anonymize<I35p85j063s0il>, input_data: Uint8Array], Anonymize<I1i5gcj1g66t9s>>;
21628
22862
  /**
21629
22863
  * Instantiate a new contract.
21630
22864
  *
21631
22865
  * See `[crate::Pallet::bare_instantiate]`.
21632
22866
  */
21633
- instantiate: RuntimeDescriptor<[origin: SS58String, value: bigint, gas_limit: Anonymize<Iasb8k6ash5mjn>, storage_deposit_limit: Anonymize<I35p85j063s0il>, code: Anonymize<I9sijb8gfrns29>, data: Uint8Array, salt: Uint8Array], Anonymize<I6haggd6r8nfrq>>;
22867
+ instantiate: RuntimeDescriptor<[origin: SS58String, value: bigint, gas_limit: Anonymize<Iasb8k6ash5mjn>, storage_deposit_limit: Anonymize<I35p85j063s0il>, code: Anonymize<I9sijb8gfrns29>, data: Uint8Array, salt: Uint8Array], Anonymize<I8rnr9khmpumvg>>;
21634
22868
  /**
21635
22869
  * Upload new code without instantiating a contract from it.
21636
22870
  *
21637
22871
  * See [`crate::Pallet::bare_upload_code`].
21638
22872
  */
21639
- upload_code: RuntimeDescriptor<[origin: SS58String, code: Uint8Array, storage_deposit_limit: Anonymize<I35p85j063s0il>, determinism: Anonymize<I2dfliekq1ed7e>], Anonymize<I7b9uu7map16jq>>;
22873
+ upload_code: RuntimeDescriptor<[origin: SS58String, code: Uint8Array, storage_deposit_limit: Anonymize<I35p85j063s0il>, determinism: Anonymize<I2dfliekq1ed7e>], Anonymize<Idtedbn12sqdfp>>;
21640
22874
  /**
21641
22875
  * Query a given storage key in a given contract.
21642
22876
  *
@@ -21800,23 +23034,79 @@ type IRuntimeCalls = {
21800
23034
  * Network-wide total beta basket NAV across all validators, in TAO (marked).
21801
23035
  */
21802
23036
  get_root_basket_total_nav: RuntimeDescriptor<[], bigint>;
21803
- /**
21804
- * A validator's basket weight vector `w`: (subnet, weight) it deploys dividends into.
21805
- */
21806
- get_validator_weights: RuntimeDescriptor<[hotkey: SS58String], Anonymize<I95g6i7ilua7lq>>;
21807
23037
  /**
21808
23038
  * Full explorer-facing summary of one validator's basket: NAV (realizable and spot),
21809
- * shares, lifetime deposit/redemption counters, weights, and per-subnet holdings.
23039
+ * shares, lifetime deposit/redemption counters, and per-subnet holdings.
21810
23040
  */
21811
- get_validator_basket_summary: RuntimeDescriptor<[hotkey: SS58String], Anonymize<Id819kcso1e55l>>;
23041
+ get_validator_basket_summary: RuntimeDescriptor<[hotkey: SS58String], Anonymize<Icj6me7ae49ft9>>;
21812
23042
  /**
21813
23043
  * Summaries for every validator with an active basket (network-wide leaderboard).
21814
23044
  */
21815
- get_all_validator_baskets: RuntimeDescriptor<[], Anonymize<Ib7i77a0semn9>>;
23045
+ get_all_validator_baskets: RuntimeDescriptor<[], Anonymize<I9tml3ucf2ji9>>;
21816
23046
  /**
21817
23047
  * A staker's positions across all its validators: (hotkey, owed shares, payout TAO).
21818
23048
  */
21819
23049
  get_root_basket_positions: RuntimeDescriptor<[coldkey: SS58String], Anonymize<I4h6ivgjtd51lv>>;
23050
+ /**
23051
+ * One staker's share-denominated position on one validator: owed shares, outstanding
23052
+ * supply, fund NAV, and the position's realizable and spot TAO values. `None` when
23053
+ * the staker has no owed shares there.
23054
+ */
23055
+ get_basket_position: RuntimeDescriptor<[hotkey: SS58String, coldkey: SS58String], Anonymize<I489vg7ldsoqco>>;
23056
+ /**
23057
+ * A coldkey's full basket portfolio: one share-denominated position per validator
23058
+ * on which it has owed shares.
23059
+ */
23060
+ get_root_basket_portfolio: RuntimeDescriptor<[coldkey: SS58String], Anonymize<Itk4us3dujtnq>>;
23061
+ /**
23062
+ * One fund's standardized pricing snapshot (index-spliced display price,
23063
+ * total-return stake price, staker yield, published index levels), or `None`
23064
+ * when the hotkey has no outstanding shares. The single source of truth every
23065
+ * consumer should display. Reads the published index snapshot in O(1) and
23066
+ * scans only this fund's holdings.
23067
+ */
23068
+ get_beta_pricing: RuntimeDescriptor<[hotkey: SS58String], Anonymize<I1kko85se1j76q>>;
23069
+ /**
23070
+ * One bounded page of pricing snapshots for funds with outstanding shares, all
23071
+ * marked against the same published index snapshot. `limit` is clamped to a
23072
+ * hard per-call cap (0 = full page); the returned `next` cursor resumes the
23073
+ * enumeration (`None` when complete), so the full leaderboard is a short loop
23074
+ * of bounded calls instead of one unbounded scan.
23075
+ */
23076
+ get_all_beta_pricing: RuntimeDescriptor<[start_after: Anonymize<Ihfphjolmsqq1>, limit: number], Anonymize<I1ekgmgbc7944g>>;
23077
+ /**
23078
+ * The published `(bag index, stake index)` levels: the chained NAV-weighted
23079
+ * display-price index (mix performance, flow-neutral) and the chained
23080
+ * total-return stake index (what τ1 staked in the average fund became),
23081
+ * maintained by the background sweep at realizable marks.
23082
+ */
23083
+ get_beta_index: RuntimeDescriptor<[], Anonymize<I200n1ov5tbcvr>>;
23084
+ /**
23085
+ * One staker's display-denominated β position on one validator
23086
+ * (`display_beta * display_price` = spot value; `value_tao` = what a claim
23087
+ * pays), or `None` when the staker has no owed β there.
23088
+ */
23089
+ get_beta_position: RuntimeDescriptor<[hotkey: SS58String, coldkey: SS58String], Anonymize<Ib79aluc5vvn4f>>;
23090
+ /**
23091
+ * A coldkey's full display-denominated β portfolio, one position per validator
23092
+ * with owed β, all marked against the same published index snapshot.
23093
+ */
23094
+ get_beta_portfolio: RuntimeDescriptor<[coldkey: SS58String], Anonymize<I96giokn5gpcih>>;
23095
+ /**
23096
+ * One fund's `swap_basket` trading status: the network-wide and per-hotkey gates
23097
+ * plus the turnover window a trade at the current block would be charged to.
23098
+ */
23099
+ get_basket_trading_status: RuntimeDescriptor<[hotkey: SS58String], Anonymize<Ib4aj3n3imrbbt>>;
23100
+ /**
23101
+ * What `claim_root_with_hotkey` would do now for this staker with the dust rules
23102
+ * applied: full entitlement, the part a claim pays, rows sold vs skipped. `None`
23103
+ * when the staker has no owed shares on the validator.
23104
+ */
23105
+ get_basket_claim_preview: RuntimeDescriptor<[hotkey: SS58String, coldkey: SS58String], Anonymize<Idbvhenser4uaq>>;
23106
+ /**
23107
+ * The same for every validator a coldkey-wide `claim_root` would touch.
23108
+ */
23109
+ get_root_basket_claim_previews: RuntimeDescriptor<[coldkey: SS58String], Anonymize<Ia1dgslg70jbtg>>;
21820
23110
  };
21821
23111
  /**
21822
23112
  */
@@ -22327,6 +23617,7 @@ export declare const BALANCE_MODULES: (IBalanceModule<"evm-erc20", {
22327
23617
  }, {
22328
23618
  palletId: string;
22329
23619
  }>)[];
23620
+ /** @deprecated unused */
22330
23621
  export type AnyBalanceModule = (typeof BALANCE_MODULES)[number];
22331
23622
  //#endregion
22332
23623
  export { type DTaoClaimTarget, type DTaoConvictionLockInfo, MINIMETADATA_VERSION };