@talismn/balances 3.0.5 → 3.1.0

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
@@ -326,6 +326,7 @@ export declare class Balance {
326
326
  hasCheckMetadataHash?: boolean | undefined;
327
327
  hasExtrinsicSignatureTypePrefix?: boolean | undefined;
328
328
  isUnknownFeeToken?: boolean | undefined;
329
+ hasFrontierMirrorWithdraw?: boolean | undefined;
329
330
  topology: {
330
331
  type: "standalone";
331
332
  } | {
@@ -439,29 +440,8 @@ export declare class Balance {
439
440
  coingeckoId?: string | undefined;
440
441
  noDiscovery?: boolean | undefined;
441
442
  mirrorOf?: string | undefined;
442
- type: "substrate-hydration";
443
- platform: "polkadot";
444
- onChainId: number;
445
- assetType: "Erc20" | "External" | "Token";
446
- isSufficient: boolean;
447
- existentialDeposit: string;
448
- } | {
449
- id: string;
450
- networkId: string;
451
- isDefault?: boolean | undefined;
452
- decimals: number;
453
- symbol: string;
454
- name?: string | undefined;
455
- logo?: string | undefined;
456
- coingeckoId?: string | undefined;
457
- noDiscovery?: boolean | undefined;
458
- mirrorOf?: string | undefined;
459
- type: "substrate-foreignassets";
460
- platform: "polkadot";
461
- onChainId: string;
462
- isFrozen?: boolean | undefined;
463
- isSufficient: boolean;
464
- existentialDeposit: string;
443
+ type: "evm-native";
444
+ platform: "ethereum";
465
445
  } | {
466
446
  id: string;
467
447
  networkId: string;
@@ -496,8 +476,12 @@ export declare class Balance {
496
476
  coingeckoId?: string | undefined;
497
477
  noDiscovery?: boolean | undefined;
498
478
  mirrorOf?: string | undefined;
499
- type: "evm-native";
500
- platform: "ethereum";
479
+ type: "substrate-assets";
480
+ platform: "polkadot";
481
+ assetId: string;
482
+ isFrozen?: boolean | undefined;
483
+ isSufficient: boolean;
484
+ existentialDeposit: string;
501
485
  } | {
502
486
  id: string;
503
487
  networkId: string;
@@ -509,12 +493,12 @@ export declare class Balance {
509
493
  coingeckoId?: string | undefined;
510
494
  noDiscovery?: boolean | undefined;
511
495
  mirrorOf?: string | undefined;
512
- type: "substrate-assets";
496
+ type: "substrate-dtao";
513
497
  platform: "polkadot";
514
- assetId: string;
515
- isFrozen?: boolean | undefined;
516
- isSufficient: boolean;
517
- existentialDeposit: string;
498
+ netuid: number;
499
+ subnetName?: string | undefined;
500
+ hotkey?: string | undefined;
501
+ isTransferable: boolean;
518
502
  } | {
519
503
  id: string;
520
504
  networkId: string;
@@ -526,12 +510,12 @@ export declare class Balance {
526
510
  coingeckoId?: string | undefined;
527
511
  noDiscovery?: boolean | undefined;
528
512
  mirrorOf?: string | undefined;
529
- type: "substrate-dtao";
513
+ type: "substrate-foreignassets";
530
514
  platform: "polkadot";
531
- netuid: number;
532
- subnetName?: string | undefined;
533
- hotkey?: string | undefined;
534
- isTransferable: boolean;
515
+ onChainId: string;
516
+ isFrozen?: boolean | undefined;
517
+ isSufficient: boolean;
518
+ existentialDeposit: string;
535
519
  } | {
536
520
  id: string;
537
521
  networkId: string;
@@ -575,6 +559,23 @@ export declare class Balance {
575
559
  platform: "polkadot";
576
560
  onChainId: string | number;
577
561
  existentialDeposit: string;
562
+ } | {
563
+ id: string;
564
+ networkId: string;
565
+ isDefault?: boolean | undefined;
566
+ decimals: number;
567
+ symbol: string;
568
+ name?: string | undefined;
569
+ logo?: string | undefined;
570
+ coingeckoId?: string | undefined;
571
+ noDiscovery?: boolean | undefined;
572
+ mirrorOf?: string | undefined;
573
+ type: "substrate-hydration";
574
+ platform: "polkadot";
575
+ onChainId: number;
576
+ assetType: "Erc20" | "External" | "Token";
577
+ isSufficient: boolean;
578
+ existentialDeposit: string;
578
579
  } | {
579
580
  id: string;
580
581
  networkId: string;
@@ -746,6 +747,7 @@ export interface IBalanceModule<Type extends TokenType, TokenConfig = unknown, M
746
747
  tokensWithAddresses: TokensWithAddresses;
747
748
  connector: PlatformConnector<TokenPlatform<Type>>;
748
749
  miniMetadata: MiniMetadata<MiniMetadataExtra>;
750
+ hasFrontierMirrorWithdraw?: boolean;
749
751
  /** abort in-flight (time-sliced) decoding, e.g. when a poll loop unsubscribes */
750
752
  signal?: AbortSignal;
751
753
  } : {
@@ -760,6 +762,7 @@ export interface IBalanceModule<Type extends TokenType, TokenConfig = unknown, M
760
762
  tokensWithAddresses: TokensWithAddresses;
761
763
  connector: PlatformConnector<TokenPlatform<Type>>;
762
764
  miniMetadata: MiniMetadata<MiniMetadataExtra>;
765
+ hasFrontierMirrorWithdraw?: boolean;
763
766
  } : {
764
767
  networkId: EthNetworkId;
765
768
  tokensWithAddresses: TokensWithAddresses;
@@ -2039,16 +2042,16 @@ export declare const taoToAlpha: (tao: bigint, scaledAlphaPrice: bigint) => bigi
2039
2042
  export declare const taoToAlphaCeil: (tao: bigint, scaledAlphaPrice: bigint) => bigint;
2040
2043
  //#endregion
2041
2044
  //#region src/modules/substrate-dtao/basketClaims.d.ts
2042
- type BalanceLockLike$1 = {
2045
+ type BalanceLockLike$2 = {
2043
2046
  label: string;
2044
2047
  amount: {
2045
2048
  planck: bigint;
2046
2049
  };
2047
2050
  };
2048
2051
  /** Whether a lock is a claimable root rewards entitlement */
2049
- export declare const isDTaoClaimableLock: (lock: Pick<BalanceLockLike$1, "label">) => boolean;
2052
+ export declare const isDTaoClaimableLock: (lock: Pick<BalanceLockLike$2, "label">) => boolean;
2050
2053
  /** Sum of a balance's claimable root rewards (TAO plancks, marked NAV quote) */
2051
- export declare const getDTaoClaimablePlancks: (locks: BalanceLockLike$1[] | null | undefined) => bigint;
2054
+ export declare const getDTaoClaimablePlancks: (locks: BalanceLockLike$2[] | null | undefined) => bigint;
2052
2055
  /** Identifies the entitlement to claim: claims are per (account, validator) pair */
2053
2056
  type DTaoClaimTarget = {
2054
2057
  networkId: DotNetworkId;
@@ -2064,7 +2067,7 @@ type ClaimBalanceLike = {
2064
2067
  netuid?: number;
2065
2068
  hotkey?: string;
2066
2069
  } | null;
2067
- locks: BalanceLockLike$1[];
2070
+ locks: BalanceLockLike$2[];
2068
2071
  };
2069
2072
  /**
2070
2073
  * The target pair's claimable rewards, null once its entitlement is gone (eg claimed elsewhere).
@@ -2073,7 +2076,7 @@ type ClaimBalanceLike = {
2073
2076
  */
2074
2077
  export declare const findDTaoClaimablePlancks: (balances: ClaimBalanceLike[], { networkId, address, hotkey }: DTaoClaimTarget) => bigint | null;
2075
2078
  //#endregion
2076
- //#region ../../node_modules/.pnpm/polkadot-api@2.2.0_bufferutil@4.0.8_esbuild@0.28.1_rxjs@7.8.2_supports-color@10.2.2_utf-8-validate@6.0.4/node_modules/polkadot-api/dist/types-BJAMtGIT.d.ts
2079
+ //#region ../../node_modules/.pnpm/polkadot-api@3.2.2_bufferutil@4.0.8_esbuild@0.28.1_rxjs@7.8.2_supports-color@10.2.2_utf-8-validate@6.0.4/node_modules/polkadot-api/dist/types-DGFm0iG3.d.ts
2077
2080
  type PlainDescriptor<T> = {
2078
2081
  _type?: T;
2079
2082
  };
@@ -3273,6 +3276,269 @@ type Iei2mvq0mjvt81 = {
3273
3276
  type Ie9sr1iqcg3cgm = ResultPayload<undefined, string>;
3274
3277
  type I1mqgk2tmnn9i2 = (string) | undefined;
3275
3278
  type I6lr8sctk0bi4e = Array<string>;
3279
+ type ExtensionsCheckMortality = Enum<{
3280
+ "Immortal": undefined;
3281
+ "Mortal1": number;
3282
+ "Mortal2": number;
3283
+ "Mortal3": number;
3284
+ "Mortal4": number;
3285
+ "Mortal5": number;
3286
+ "Mortal6": number;
3287
+ "Mortal7": number;
3288
+ "Mortal8": number;
3289
+ "Mortal9": number;
3290
+ "Mortal10": number;
3291
+ "Mortal11": number;
3292
+ "Mortal12": number;
3293
+ "Mortal13": number;
3294
+ "Mortal14": number;
3295
+ "Mortal15": number;
3296
+ "Mortal16": number;
3297
+ "Mortal17": number;
3298
+ "Mortal18": number;
3299
+ "Mortal19": number;
3300
+ "Mortal20": number;
3301
+ "Mortal21": number;
3302
+ "Mortal22": number;
3303
+ "Mortal23": number;
3304
+ "Mortal24": number;
3305
+ "Mortal25": number;
3306
+ "Mortal26": number;
3307
+ "Mortal27": number;
3308
+ "Mortal28": number;
3309
+ "Mortal29": number;
3310
+ "Mortal30": number;
3311
+ "Mortal31": number;
3312
+ "Mortal32": number;
3313
+ "Mortal33": number;
3314
+ "Mortal34": number;
3315
+ "Mortal35": number;
3316
+ "Mortal36": number;
3317
+ "Mortal37": number;
3318
+ "Mortal38": number;
3319
+ "Mortal39": number;
3320
+ "Mortal40": number;
3321
+ "Mortal41": number;
3322
+ "Mortal42": number;
3323
+ "Mortal43": number;
3324
+ "Mortal44": number;
3325
+ "Mortal45": number;
3326
+ "Mortal46": number;
3327
+ "Mortal47": number;
3328
+ "Mortal48": number;
3329
+ "Mortal49": number;
3330
+ "Mortal50": number;
3331
+ "Mortal51": number;
3332
+ "Mortal52": number;
3333
+ "Mortal53": number;
3334
+ "Mortal54": number;
3335
+ "Mortal55": number;
3336
+ "Mortal56": number;
3337
+ "Mortal57": number;
3338
+ "Mortal58": number;
3339
+ "Mortal59": number;
3340
+ "Mortal60": number;
3341
+ "Mortal61": number;
3342
+ "Mortal62": number;
3343
+ "Mortal63": number;
3344
+ "Mortal64": number;
3345
+ "Mortal65": number;
3346
+ "Mortal66": number;
3347
+ "Mortal67": number;
3348
+ "Mortal68": number;
3349
+ "Mortal69": number;
3350
+ "Mortal70": number;
3351
+ "Mortal71": number;
3352
+ "Mortal72": number;
3353
+ "Mortal73": number;
3354
+ "Mortal74": number;
3355
+ "Mortal75": number;
3356
+ "Mortal76": number;
3357
+ "Mortal77": number;
3358
+ "Mortal78": number;
3359
+ "Mortal79": number;
3360
+ "Mortal80": number;
3361
+ "Mortal81": number;
3362
+ "Mortal82": number;
3363
+ "Mortal83": number;
3364
+ "Mortal84": number;
3365
+ "Mortal85": number;
3366
+ "Mortal86": number;
3367
+ "Mortal87": number;
3368
+ "Mortal88": number;
3369
+ "Mortal89": number;
3370
+ "Mortal90": number;
3371
+ "Mortal91": number;
3372
+ "Mortal92": number;
3373
+ "Mortal93": number;
3374
+ "Mortal94": number;
3375
+ "Mortal95": number;
3376
+ "Mortal96": number;
3377
+ "Mortal97": number;
3378
+ "Mortal98": number;
3379
+ "Mortal99": number;
3380
+ "Mortal100": number;
3381
+ "Mortal101": number;
3382
+ "Mortal102": number;
3383
+ "Mortal103": number;
3384
+ "Mortal104": number;
3385
+ "Mortal105": number;
3386
+ "Mortal106": number;
3387
+ "Mortal107": number;
3388
+ "Mortal108": number;
3389
+ "Mortal109": number;
3390
+ "Mortal110": number;
3391
+ "Mortal111": number;
3392
+ "Mortal112": number;
3393
+ "Mortal113": number;
3394
+ "Mortal114": number;
3395
+ "Mortal115": number;
3396
+ "Mortal116": number;
3397
+ "Mortal117": number;
3398
+ "Mortal118": number;
3399
+ "Mortal119": number;
3400
+ "Mortal120": number;
3401
+ "Mortal121": number;
3402
+ "Mortal122": number;
3403
+ "Mortal123": number;
3404
+ "Mortal124": number;
3405
+ "Mortal125": number;
3406
+ "Mortal126": number;
3407
+ "Mortal127": number;
3408
+ "Mortal128": number;
3409
+ "Mortal129": number;
3410
+ "Mortal130": number;
3411
+ "Mortal131": number;
3412
+ "Mortal132": number;
3413
+ "Mortal133": number;
3414
+ "Mortal134": number;
3415
+ "Mortal135": number;
3416
+ "Mortal136": number;
3417
+ "Mortal137": number;
3418
+ "Mortal138": number;
3419
+ "Mortal139": number;
3420
+ "Mortal140": number;
3421
+ "Mortal141": number;
3422
+ "Mortal142": number;
3423
+ "Mortal143": number;
3424
+ "Mortal144": number;
3425
+ "Mortal145": number;
3426
+ "Mortal146": number;
3427
+ "Mortal147": number;
3428
+ "Mortal148": number;
3429
+ "Mortal149": number;
3430
+ "Mortal150": number;
3431
+ "Mortal151": number;
3432
+ "Mortal152": number;
3433
+ "Mortal153": number;
3434
+ "Mortal154": number;
3435
+ "Mortal155": number;
3436
+ "Mortal156": number;
3437
+ "Mortal157": number;
3438
+ "Mortal158": number;
3439
+ "Mortal159": number;
3440
+ "Mortal160": number;
3441
+ "Mortal161": number;
3442
+ "Mortal162": number;
3443
+ "Mortal163": number;
3444
+ "Mortal164": number;
3445
+ "Mortal165": number;
3446
+ "Mortal166": number;
3447
+ "Mortal167": number;
3448
+ "Mortal168": number;
3449
+ "Mortal169": number;
3450
+ "Mortal170": number;
3451
+ "Mortal171": number;
3452
+ "Mortal172": number;
3453
+ "Mortal173": number;
3454
+ "Mortal174": number;
3455
+ "Mortal175": number;
3456
+ "Mortal176": number;
3457
+ "Mortal177": number;
3458
+ "Mortal178": number;
3459
+ "Mortal179": number;
3460
+ "Mortal180": number;
3461
+ "Mortal181": number;
3462
+ "Mortal182": number;
3463
+ "Mortal183": number;
3464
+ "Mortal184": number;
3465
+ "Mortal185": number;
3466
+ "Mortal186": number;
3467
+ "Mortal187": number;
3468
+ "Mortal188": number;
3469
+ "Mortal189": number;
3470
+ "Mortal190": number;
3471
+ "Mortal191": number;
3472
+ "Mortal192": number;
3473
+ "Mortal193": number;
3474
+ "Mortal194": number;
3475
+ "Mortal195": number;
3476
+ "Mortal196": number;
3477
+ "Mortal197": number;
3478
+ "Mortal198": number;
3479
+ "Mortal199": number;
3480
+ "Mortal200": number;
3481
+ "Mortal201": number;
3482
+ "Mortal202": number;
3483
+ "Mortal203": number;
3484
+ "Mortal204": number;
3485
+ "Mortal205": number;
3486
+ "Mortal206": number;
3487
+ "Mortal207": number;
3488
+ "Mortal208": number;
3489
+ "Mortal209": number;
3490
+ "Mortal210": number;
3491
+ "Mortal211": number;
3492
+ "Mortal212": number;
3493
+ "Mortal213": number;
3494
+ "Mortal214": number;
3495
+ "Mortal215": number;
3496
+ "Mortal216": number;
3497
+ "Mortal217": number;
3498
+ "Mortal218": number;
3499
+ "Mortal219": number;
3500
+ "Mortal220": number;
3501
+ "Mortal221": number;
3502
+ "Mortal222": number;
3503
+ "Mortal223": number;
3504
+ "Mortal224": number;
3505
+ "Mortal225": number;
3506
+ "Mortal226": number;
3507
+ "Mortal227": number;
3508
+ "Mortal228": number;
3509
+ "Mortal229": number;
3510
+ "Mortal230": number;
3511
+ "Mortal231": number;
3512
+ "Mortal232": number;
3513
+ "Mortal233": number;
3514
+ "Mortal234": number;
3515
+ "Mortal235": number;
3516
+ "Mortal236": number;
3517
+ "Mortal237": number;
3518
+ "Mortal238": number;
3519
+ "Mortal239": number;
3520
+ "Mortal240": number;
3521
+ "Mortal241": number;
3522
+ "Mortal242": number;
3523
+ "Mortal243": number;
3524
+ "Mortal244": number;
3525
+ "Mortal245": number;
3526
+ "Mortal246": number;
3527
+ "Mortal247": number;
3528
+ "Mortal248": number;
3529
+ "Mortal249": number;
3530
+ "Mortal250": number;
3531
+ "Mortal251": number;
3532
+ "Mortal252": number;
3533
+ "Mortal253": number;
3534
+ "Mortal254": number;
3535
+ "Mortal255": number;
3536
+ }>;
3537
+ declare const ExtensionsCheckMortality: GetEnum<ExtensionsCheckMortality>;
3538
+ type I87rnrnks7g0hm = AnonymousEnum$1<{
3539
+ "Disabled": undefined;
3540
+ "Enabled": undefined;
3541
+ }>;
3276
3542
  type I3m5sq54sjdlso = {};
3277
3543
  type I2brm5b9jij1st = [number, SS58String, SS58String];
3278
3544
  type Id32h28hjj1tch = [SS58String, number, number];
@@ -23198,8 +23464,32 @@ type IRuntimeCalls = {
23198
23464
  try_unshield_tx: RuntimeDescriptor<[dec_key_bytes: Uint8Array, shielded_tx: Anonymize<Ibkf4n1ithlqos>], Anonymize<Iabpgqcjikia83>>;
23199
23465
  };
23200
23466
  };
23201
- type IAsset = PlainDescriptor<void>;
23202
- type BittensorExtensions = {};
23467
+ type BittensorExtensions = {
23468
+ "CheckSpecVersion": {
23469
+ additionalSigned: number;
23470
+ };
23471
+ "CheckTxVersion": {
23472
+ additionalSigned: number;
23473
+ };
23474
+ "CheckGenesis": {
23475
+ additionalSigned: SizedHex<32>;
23476
+ };
23477
+ "CheckMortality": {
23478
+ value: ExtensionsCheckMortality;
23479
+ additionalSigned: SizedHex<32>;
23480
+ };
23481
+ "CheckNonce": {
23482
+ value: number;
23483
+ };
23484
+ "ChargeTransactionPayment": {
23485
+ value: bigint;
23486
+ };
23487
+ "CheckMetadataHash": {
23488
+ value: Anonymize<I87rnrnks7g0hm>;
23489
+ additionalSigned: Anonymize<I4s6vifaf8k998>;
23490
+ };
23491
+ };
23492
+ type IRequiredExtensions = PlainDescriptor<"CheckSpecVersion" | "CheckTxVersion" | "CheckGenesis" | "CheckMortality" | "CheckNonce" | "ChargeTransactionPayment" | "CheckMetadataHash">;
23203
23493
  type PalletsTypedef = {
23204
23494
  __storage: IStorage;
23205
23495
  __tx: ICalls;
@@ -23214,8 +23504,8 @@ type Bittensor = {
23214
23504
  apis: IRuntimeCalls;
23215
23505
  } & Promise<any>;
23216
23506
  metadataTypes: Promise<Uint8Array>;
23217
- asset: IAsset;
23218
23507
  extensions: BittensorExtensions;
23508
+ requiredExtensions: IRequiredExtensions;
23219
23509
  getMetadata: () => Promise<Uint8Array>;
23220
23510
  genesis: string | undefined;
23221
23511
  };
@@ -23290,7 +23580,7 @@ type DTaoConvictionLockInfo = {
23290
23580
  lockType: SubDTaoConvictionLockType;
23291
23581
  label: string;
23292
23582
  };
23293
- type BalanceLockLike = {
23583
+ type BalanceLockLike$1 = {
23294
23584
  amount: {
23295
23585
  planck: bigint;
23296
23586
  };
@@ -23301,7 +23591,7 @@ type BalanceLockLike = {
23301
23591
  * The locked amount cannot be unstaked until the lock decays (or ever, if perpetual);
23302
23592
  * transferring it is allowed but moves the lock and its conviction to the recipient.
23303
23593
  */
23304
- export declare const findDTaoConvictionLock: (locks: BalanceLockLike[] | null | undefined) => DTaoConvictionLockInfo | null;
23594
+ export declare const findDTaoConvictionLock: (locks: BalanceLockLike$1[] | null | undefined) => DTaoConvictionLockInfo | null;
23305
23595
  //#endregion
23306
23596
  //#region src/modules/substrate-dtao/config.d.ts
23307
23597
  declare const MODULE_TYPE$5: "substrate-dtao";
@@ -23365,6 +23655,26 @@ declare const MODULE_TYPE$3: "substrate-hydration";
23365
23655
  //#region src/modules/substrate-hydration/module.d.ts
23366
23656
  export declare const SubHydrationBalanceModule: IBalanceModule<typeof MODULE_TYPE$3, SubHydrationTokenConfig>;
23367
23657
  //#endregion
23658
+ //#region src/modules/substrate-native/evmMirror.d.ts
23659
+ export declare const EVM_MIRROR_LOCK_LABEL = "evm-mirror";
23660
+ export type EvmMirrorWithdrawableMeta = {
23661
+ type: "evm-mirror-withdrawable";
23662
+ h160: `0x${string}`;
23663
+ };
23664
+ type BalanceLockLike = {
23665
+ amount: {
23666
+ planck: bigint;
23667
+ };
23668
+ meta?: unknown;
23669
+ };
23670
+ export declare const isEvmMirrorWithdrawableLock: <T extends Pick<BalanceLockLike, "meta">>(lock: T) => lock is T & {
23671
+ meta: EvmMirrorWithdrawableMeta;
23672
+ };
23673
+ export type EvmMirrorWithdrawable = EvmMirrorWithdrawableMeta & {
23674
+ amount: bigint;
23675
+ };
23676
+ export declare const findEvmMirrorWithdrawable: (locks: BalanceLockLike[] | null | undefined) => EvmMirrorWithdrawable | null;
23677
+ //#endregion
23368
23678
  //#region src/modules/substrate-native/types.d.ts
23369
23679
  export declare const SubNativeTokenConfigSchema: z.ZodObject<{
23370
23680
  networkId: z.ZodOptional<z.ZodString>;
@@ -23397,7 +23707,7 @@ declare const MODULE_TYPE$2: "substrate-native";
23397
23707
  export declare const SubNativeBalanceModule: IBalanceModule<typeof MODULE_TYPE$2, SubNativeTokenConfig, SubNativeModuleConfig, SubNativeMiniMetadataExtra>;
23398
23708
  //#endregion
23399
23709
  //#region src/modules/substrate-native/util/lockTypes.d.ts
23400
- export type BalanceLockType = "reserved" | "democracy" | "crowdloan" | "staking" | "nompools-staking" | "nompools-unbonding" | "subtensor-staking" | "vesting" | "dapp-staking" | `other-${string}` | "other";
23710
+ export type BalanceLockType = "reserved" | "democracy" | "crowdloan" | "staking" | "nompools-staking" | "nompools-unbonding" | "subtensor-staking" | "vesting" | "dapp-staking" | "evm-mirror" | `other-${string}` | "other";
23401
23711
  /**
23402
23712
  * For converting the value of `lock?.id?.toUtf8?.()` which is retrieved from
23403
23713
  * the Balances.Locks storage key into a useful classification for our UI