@dedot/chaintypes 0.227.0 → 0.229.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dedot/chaintypes",
3
- "version": "0.227.0",
3
+ "version": "0.229.0",
4
4
  "description": "Types for substrate-based chains",
5
5
  "author": "Thang X. Vu <thang@dedot.dev>",
6
6
  "homepage": "https://dedot.dev",
@@ -25,7 +25,7 @@
25
25
  "directory": "dist"
26
26
  },
27
27
  "license": "Apache-2.0",
28
- "gitHead": "f252c757febaca8be040de59b024313dd22b7d88",
28
+ "gitHead": "73d8576fe9aa731d0d7422d5f4441ff315c2d618",
29
29
  "module": "./index.js",
30
30
  "types": "./index.d.ts",
31
31
  "exports": {
@@ -42,6 +42,7 @@ import type {
42
42
  PolkadotRuntimeParachainsDisputesDisputeLocation,
43
43
  PolkadotRuntimeParachainsDisputesDisputeResult,
44
44
  PalletStakingAsyncAhClientUnexpectedKind,
45
+ PalletStakingAsyncAhClientSessionKeysUpdate,
45
46
  StagingXcmV5TraitsOutcome,
46
47
  StagingXcmV5Location,
47
48
  StagingXcmV5Xcm,
@@ -2679,6 +2680,15 @@ export interface ChainEvents extends GenericChainEvents {
2679
2680
  **/
2680
2681
  Unexpected: GenericPalletEvent<'StakingAhClient', 'Unexpected', PalletStakingAsyncAhClientUnexpectedKind>;
2681
2682
 
2683
+ /**
2684
+ * Session keys updated for a validator.
2685
+ **/
2686
+ SessionKeysUpdated: GenericPalletEvent<
2687
+ 'StakingAhClient',
2688
+ 'SessionKeysUpdated',
2689
+ { stash: AccountId32; update: PalletStakingAsyncAhClientSessionKeysUpdate }
2690
+ >;
2691
+
2682
2692
  /**
2683
2693
  * Generic pallet event
2684
2694
  **/
@@ -52,7 +52,7 @@ interface ChainKnownTypes extends GenericChainKnownTypes {
52
52
 
53
53
  /**
54
54
  * @name: WestendApi
55
- * @specVersion: 1021001
55
+ * @specVersion: 1021002
56
56
  **/
57
57
  export interface WestendApi extends GenericSubstrateApi {
58
58
  rpc: ChainJsonRpcApis;
package/westend/tx.d.ts CHANGED
@@ -9547,6 +9547,55 @@ export interface ChainTx<
9547
9547
  >
9548
9548
  >;
9549
9549
 
9550
+ /**
9551
+ * Set session keys for a validator, forwarded from AssetHub.
9552
+ *
9553
+ * This is called when a validator sets their session keys on AssetHub, which forwards
9554
+ * the request to the RelayChain via XCM.
9555
+ *
9556
+ * AssetHub validates both keys and ownership proof before sending.
9557
+ * RC trusts AH's validation and does not re-validate.
9558
+ *
9559
+ * @param {AccountId32Like} stash
9560
+ * @param {BytesLike} keys
9561
+ **/
9562
+ setKeysFromAh: GenericTxCall<
9563
+ (
9564
+ stash: AccountId32Like,
9565
+ keys: BytesLike,
9566
+ ) => ChainSubmittableExtrinsic<
9567
+ {
9568
+ pallet: 'StakingAhClient';
9569
+ palletCall: {
9570
+ name: 'SetKeysFromAh';
9571
+ params: { stash: AccountId32Like; keys: BytesLike };
9572
+ };
9573
+ },
9574
+ ChainKnownTypes
9575
+ >
9576
+ >;
9577
+
9578
+ /**
9579
+ * Purge session keys for a validator, forwarded from AssetHub.
9580
+ *
9581
+ * This is called when a validator purges their session keys on AssetHub, which forwards
9582
+ * the request to the RelayChain via XCM.
9583
+ *
9584
+ * @param {AccountId32Like} stash
9585
+ **/
9586
+ purgeKeysFromAh: GenericTxCall<
9587
+ (stash: AccountId32Like) => ChainSubmittableExtrinsic<
9588
+ {
9589
+ pallet: 'StakingAhClient';
9590
+ palletCall: {
9591
+ name: 'PurgeKeysFromAh';
9592
+ params: { stash: AccountId32Like };
9593
+ };
9594
+ },
9595
+ ChainKnownTypes
9596
+ >
9597
+ >;
9598
+
9550
9599
  /**
9551
9600
  * Generic pallet tx call
9552
9601
  **/
@@ -9291,7 +9291,24 @@ export type PalletStakingAsyncAhClientCall =
9291
9291
  /**
9292
9292
  * manually do what this pallet was meant to do at the end of the migration.
9293
9293
  **/
9294
- | { name: 'ForceOnMigrationEnd' };
9294
+ | { name: 'ForceOnMigrationEnd' }
9295
+ /**
9296
+ * Set session keys for a validator, forwarded from AssetHub.
9297
+ *
9298
+ * This is called when a validator sets their session keys on AssetHub, which forwards
9299
+ * the request to the RelayChain via XCM.
9300
+ *
9301
+ * AssetHub validates both keys and ownership proof before sending.
9302
+ * RC trusts AH's validation and does not re-validate.
9303
+ **/
9304
+ | { name: 'SetKeysFromAh'; params: { stash: AccountId32; keys: Bytes } }
9305
+ /**
9306
+ * Purge session keys for a validator, forwarded from AssetHub.
9307
+ *
9308
+ * This is called when a validator purges their session keys on AssetHub, which forwards
9309
+ * the request to the RelayChain via XCM.
9310
+ **/
9311
+ | { name: 'PurgeKeysFromAh'; params: { stash: AccountId32 } };
9295
9312
 
9296
9313
  export type PalletStakingAsyncAhClientCallLike =
9297
9314
  | { name: 'ValidatorSet'; params: { report: PalletStakingAsyncRcClientValidatorSetReport } }
@@ -9302,7 +9319,24 @@ export type PalletStakingAsyncAhClientCallLike =
9302
9319
  /**
9303
9320
  * manually do what this pallet was meant to do at the end of the migration.
9304
9321
  **/
9305
- | { name: 'ForceOnMigrationEnd' };
9322
+ | { name: 'ForceOnMigrationEnd' }
9323
+ /**
9324
+ * Set session keys for a validator, forwarded from AssetHub.
9325
+ *
9326
+ * This is called when a validator sets their session keys on AssetHub, which forwards
9327
+ * the request to the RelayChain via XCM.
9328
+ *
9329
+ * AssetHub validates both keys and ownership proof before sending.
9330
+ * RC trusts AH's validation and does not re-validate.
9331
+ **/
9332
+ | { name: 'SetKeysFromAh'; params: { stash: AccountId32Like; keys: BytesLike } }
9333
+ /**
9334
+ * Purge session keys for a validator, forwarded from AssetHub.
9335
+ *
9336
+ * This is called when a validator purges their session keys on AssetHub, which forwards
9337
+ * the request to the RelayChain via XCM.
9338
+ **/
9339
+ | { name: 'PurgeKeysFromAh'; params: { stash: AccountId32Like } };
9306
9340
 
9307
9341
  export type PalletStakingAsyncRcClientValidatorSetReport = {
9308
9342
  newValidatorSet: Array<AccountId32>;
@@ -12688,7 +12722,11 @@ export type PalletStakingAsyncAhClientEvent =
12688
12722
  * Something occurred that should never happen under normal operation. Logged as an event
12689
12723
  * for fail-safe observability.
12690
12724
  **/
12691
- | { name: 'Unexpected'; data: PalletStakingAsyncAhClientUnexpectedKind };
12725
+ | { name: 'Unexpected'; data: PalletStakingAsyncAhClientUnexpectedKind }
12726
+ /**
12727
+ * Session keys updated for a validator.
12728
+ **/
12729
+ | { name: 'SessionKeysUpdated'; data: { stash: AccountId32; update: PalletStakingAsyncAhClientSessionKeysUpdate } };
12692
12730
 
12693
12731
  export type PalletStakingAsyncAhClientUnexpectedKind =
12694
12732
  | 'ReceivedValidatorSetWhilePassive'
@@ -12696,7 +12734,10 @@ export type PalletStakingAsyncAhClientUnexpectedKind =
12696
12734
  | 'SessionReportSendFailed'
12697
12735
  | 'SessionReportDropped'
12698
12736
  | 'OffenceSendFailed'
12699
- | 'ValidatorPointDropped';
12737
+ | 'ValidatorPointDropped'
12738
+ | 'InvalidKeysFromAssetHub';
12739
+
12740
+ export type PalletStakingAsyncAhClientSessionKeysUpdate = 'Set' | 'Purged';
12700
12741
 
12701
12742
  /**
12702
12743
  * The `Event` enum of this pallet
@@ -1427,6 +1427,11 @@ export interface ChainConsts extends GenericChainConsts {
1427
1427
  * Pallet `StakingRcClient`'s constants
1428
1428
  **/
1429
1429
  stakingRcClient: {
1430
+ /**
1431
+ * Maximum length of encoded session keys.
1432
+ **/
1433
+ maxSessionKeysLength: number;
1434
+
1430
1435
  /**
1431
1436
  * Generic pallet constant
1432
1437
  **/
@@ -2809,6 +2809,39 @@ export interface ChainErrors extends GenericChainErrors {
2809
2809
  **/
2810
2810
  [error: string]: GenericPalletError;
2811
2811
  };
2812
+ /**
2813
+ * Pallet `StakingRcClient`'s errors
2814
+ **/
2815
+ stakingRcClient: {
2816
+ /**
2817
+ * Failed to send XCM message to the Relay Chain.
2818
+ **/
2819
+ XcmSendFailed: GenericPalletError;
2820
+
2821
+ /**
2822
+ * The origin account is not a registered validator.
2823
+ *
2824
+ * Only accounts that have called `validate()` can set or purge session keys. When called
2825
+ * via a staking proxy, the origin is the delegating account (stash), which must be a
2826
+ * registered validator.
2827
+ **/
2828
+ NotValidator: GenericPalletError;
2829
+
2830
+ /**
2831
+ * The session keys could not be decoded as the expected RelayChainSessionKeys type.
2832
+ **/
2833
+ InvalidKeys: GenericPalletError;
2834
+
2835
+ /**
2836
+ * Delivery fees exceeded the specified maximum.
2837
+ **/
2838
+ FeesExceededMax: GenericPalletError;
2839
+
2840
+ /**
2841
+ * Generic pallet error
2842
+ **/
2843
+ [error: string]: GenericPalletError;
2844
+ };
2812
2845
  /**
2813
2846
  * Pallet `MultiBlockElection`'s errors
2814
2847
  **/
@@ -3786,6 +3786,13 @@ export interface ChainEvents extends GenericChainEvents {
3786
3786
  { slashSession: number; offencesCount: number }
3787
3787
  >;
3788
3788
 
3789
+ /**
3790
+ * Fees were charged for a user operation (set_keys or purge_keys).
3791
+ *
3792
+ * The fee includes both XCM delivery fee and relay chain execution cost.
3793
+ **/
3794
+ FeesPaid: GenericPalletEvent<'StakingRcClient', 'FeesPaid', { who: AccountId32; fees: bigint }>;
3795
+
3789
3796
  /**
3790
3797
  * Something occurred that should never happen under normal operation.
3791
3798
  * Logged as an event for fail-safe observability.
@@ -54,7 +54,7 @@ interface ChainKnownTypes extends GenericChainKnownTypes {
54
54
 
55
55
  /**
56
56
  * @name: WestendAssetHubApi
57
- * @specVersion: 1021002
57
+ * @specVersion: 1021003
58
58
  **/
59
59
  export interface WestendAssetHubApi extends GenericSubstrateApi {
60
60
  rpc: ChainJsonRpcApis;
@@ -13085,6 +13085,101 @@ export interface ChainTx<
13085
13085
  >
13086
13086
  >;
13087
13087
 
13088
+ /**
13089
+ * Set session keys for a validator. Keys are validated on AssetHub and forwarded to RC.
13090
+ *
13091
+ * **Validation on AssetHub:**
13092
+ * Keys are decoded as `T::RelayChainSessionKeys` to ensure they match RC's expected
13093
+ * format. This prevents malicious validators from bloating the XCM queue with garbage
13094
+ * data.
13095
+ *
13096
+ * This, combined with the enforcement of a high minimum validator bond, makes it
13097
+ * reasonable not to require a deposit.
13098
+ *
13099
+ * Note: Ownership proof validation requires PR #1739 which is not backported to
13100
+ * stable2512. The proof parameter will be added when that PR is backported.
13101
+ *
13102
+ * **Fees:**
13103
+ * The actual cost of this call is higher than what the weight-based fee estimate shows.
13104
+ * In addition to the local transaction weight fee, the stash account is charged an XCM
13105
+ * fee (delivery + RC execution cost) via `XcmExecutor::charge_fees`. The relay chain
13106
+ * uses `UnpaidExecution`, so the full remote cost is charged upfront on AssetHub.
13107
+ *
13108
+ * When called via a staking proxy, the proxy pays the transaction weight fee,
13109
+ * while the stash (delegating account) pays the XCM fee.
13110
+ *
13111
+ * **Max Fee Limit:**
13112
+ * Users can optionally specify `max_delivery_and_remote_execution_fee` to limit the
13113
+ * delivery + RC execution fee. This does not include the local transaction weight fee. If
13114
+ * the fee exceeds this limit, the operation fails with `FeesExceededMax`. Pass `None` for
13115
+ * unlimited (no cap).
13116
+ *
13117
+ * NOTE: unlike the current flow for new validators on RC (bond -> set_keys -> validate),
13118
+ * users on Asset Hub MUST call bond and validate BEFORE calling set_keys. Attempting to
13119
+ * set keys before declaring intent to validate will fail with NotValidator.
13120
+ *
13121
+ * @param {BytesLike} keys
13122
+ * @param {bigint | undefined} maxDeliveryAndRemoteExecutionFee
13123
+ **/
13124
+ setKeys: GenericTxCall<
13125
+ (
13126
+ keys: BytesLike,
13127
+ maxDeliveryAndRemoteExecutionFee: bigint | undefined,
13128
+ ) => ChainSubmittableExtrinsic<
13129
+ {
13130
+ pallet: 'StakingRcClient';
13131
+ palletCall: {
13132
+ name: 'SetKeys';
13133
+ params: { keys: BytesLike; maxDeliveryAndRemoteExecutionFee: bigint | undefined };
13134
+ };
13135
+ },
13136
+ ChainKnownTypes
13137
+ >
13138
+ >;
13139
+
13140
+ /**
13141
+ * Remove session keys for a validator.
13142
+ *
13143
+ * This purges the keys from the Relay Chain.
13144
+ *
13145
+ * Unlike `set_keys`, this does not require the caller to be a registered validator.
13146
+ * This is intentional: a validator who has chilled (stopped validating) should still
13147
+ * be able to purge their session keys. This matches the behavior of the original
13148
+ * `pallet-session::purge_keys` which allows anyone to call it.
13149
+ *
13150
+ * The Relay Chain will reject the call with `NoKeys` error if the account has no
13151
+ * keys set.
13152
+ *
13153
+ * **Fees:**
13154
+ * The actual cost of this call is higher than what the weight-based fee estimate shows.
13155
+ * In addition to the local transaction weight fee, the caller is charged an XCM fee
13156
+ * (delivery + RC execution cost) via `XcmExecutor::charge_fees`. The relay chain uses
13157
+ * `UnpaidExecution`, so the full remote cost is charged upfront on AssetHub.
13158
+ *
13159
+ * When called via a staking proxy, the proxy pays the transaction weight fee,
13160
+ * while the delegating account pays the XCM fee.
13161
+ *
13162
+ * **Max Fee Limit:**
13163
+ * Users can optionally specify `max_delivery_and_remote_execution_fee` to limit the
13164
+ * delivery + RC execution fee. This does not include the local transaction weight fee. If
13165
+ * the fee exceeds this limit, the operation fails with `FeesExceededMax`. Pass `None` for
13166
+ * unlimited (no cap).
13167
+ *
13168
+ * @param {bigint | undefined} maxDeliveryAndRemoteExecutionFee
13169
+ **/
13170
+ purgeKeys: GenericTxCall<
13171
+ (maxDeliveryAndRemoteExecutionFee: bigint | undefined) => ChainSubmittableExtrinsic<
13172
+ {
13173
+ pallet: 'StakingRcClient';
13174
+ palletCall: {
13175
+ name: 'PurgeKeys';
13176
+ params: { maxDeliveryAndRemoteExecutionFee: bigint | undefined };
13177
+ };
13178
+ },
13179
+ ChainKnownTypes
13180
+ >
13181
+ >;
13182
+
13088
13183
  /**
13089
13184
  * Generic pallet tx call
13090
13185
  **/
@@ -4133,7 +4133,8 @@ export type AssetHubWestendRuntimeProxyType =
4133
4133
  | 'OldSudoBalances'
4134
4134
  | 'OldIdentityJudgement'
4135
4135
  | 'OldAuction'
4136
- | 'OldParaRegistration';
4136
+ | 'OldParaRegistration'
4137
+ | 'StakingOperator';
4137
4138
 
4138
4139
  /**
4139
4140
  * Contains a variant per dispatchable extrinsic that this pallet has.
@@ -13234,14 +13235,140 @@ export type PalletStakingAsyncRcClientCall =
13234
13235
  * Called to indicate the start of a new session on the relay chain.
13235
13236
  **/
13236
13237
  | { name: 'RelaySessionReport'; params: { report: PalletStakingAsyncRcClientSessionReport } }
13237
- | { name: 'RelayNewOffencePaged'; params: { offences: Array<[number, PalletStakingAsyncRcClientOffence]> } };
13238
+ | { name: 'RelayNewOffencePaged'; params: { offences: Array<[number, PalletStakingAsyncRcClientOffence]> } }
13239
+ /**
13240
+ * Set session keys for a validator. Keys are validated on AssetHub and forwarded to RC.
13241
+ *
13242
+ * **Validation on AssetHub:**
13243
+ * Keys are decoded as `T::RelayChainSessionKeys` to ensure they match RC's expected
13244
+ * format. This prevents malicious validators from bloating the XCM queue with garbage
13245
+ * data.
13246
+ *
13247
+ * This, combined with the enforcement of a high minimum validator bond, makes it
13248
+ * reasonable not to require a deposit.
13249
+ *
13250
+ * Note: Ownership proof validation requires PR #1739 which is not backported to
13251
+ * stable2512. The proof parameter will be added when that PR is backported.
13252
+ *
13253
+ * **Fees:**
13254
+ * The actual cost of this call is higher than what the weight-based fee estimate shows.
13255
+ * In addition to the local transaction weight fee, the stash account is charged an XCM
13256
+ * fee (delivery + RC execution cost) via `XcmExecutor::charge_fees`. The relay chain
13257
+ * uses `UnpaidExecution`, so the full remote cost is charged upfront on AssetHub.
13258
+ *
13259
+ * When called via a staking proxy, the proxy pays the transaction weight fee,
13260
+ * while the stash (delegating account) pays the XCM fee.
13261
+ *
13262
+ * **Max Fee Limit:**
13263
+ * Users can optionally specify `max_delivery_and_remote_execution_fee` to limit the
13264
+ * delivery + RC execution fee. This does not include the local transaction weight fee. If
13265
+ * the fee exceeds this limit, the operation fails with `FeesExceededMax`. Pass `None` for
13266
+ * unlimited (no cap).
13267
+ *
13268
+ * NOTE: unlike the current flow for new validators on RC (bond -> set_keys -> validate),
13269
+ * users on Asset Hub MUST call bond and validate BEFORE calling set_keys. Attempting to
13270
+ * set keys before declaring intent to validate will fail with NotValidator.
13271
+ **/
13272
+ | { name: 'SetKeys'; params: { keys: Bytes; maxDeliveryAndRemoteExecutionFee?: bigint | undefined } }
13273
+ /**
13274
+ * Remove session keys for a validator.
13275
+ *
13276
+ * This purges the keys from the Relay Chain.
13277
+ *
13278
+ * Unlike `set_keys`, this does not require the caller to be a registered validator.
13279
+ * This is intentional: a validator who has chilled (stopped validating) should still
13280
+ * be able to purge their session keys. This matches the behavior of the original
13281
+ * `pallet-session::purge_keys` which allows anyone to call it.
13282
+ *
13283
+ * The Relay Chain will reject the call with `NoKeys` error if the account has no
13284
+ * keys set.
13285
+ *
13286
+ * **Fees:**
13287
+ * The actual cost of this call is higher than what the weight-based fee estimate shows.
13288
+ * In addition to the local transaction weight fee, the caller is charged an XCM fee
13289
+ * (delivery + RC execution cost) via `XcmExecutor::charge_fees`. The relay chain uses
13290
+ * `UnpaidExecution`, so the full remote cost is charged upfront on AssetHub.
13291
+ *
13292
+ * When called via a staking proxy, the proxy pays the transaction weight fee,
13293
+ * while the delegating account pays the XCM fee.
13294
+ *
13295
+ * **Max Fee Limit:**
13296
+ * Users can optionally specify `max_delivery_and_remote_execution_fee` to limit the
13297
+ * delivery + RC execution fee. This does not include the local transaction weight fee. If
13298
+ * the fee exceeds this limit, the operation fails with `FeesExceededMax`. Pass `None` for
13299
+ * unlimited (no cap).
13300
+ **/
13301
+ | { name: 'PurgeKeys'; params: { maxDeliveryAndRemoteExecutionFee?: bigint | undefined } };
13238
13302
 
13239
13303
  export type PalletStakingAsyncRcClientCallLike =
13240
13304
  /**
13241
13305
  * Called to indicate the start of a new session on the relay chain.
13242
13306
  **/
13243
13307
  | { name: 'RelaySessionReport'; params: { report: PalletStakingAsyncRcClientSessionReport } }
13244
- | { name: 'RelayNewOffencePaged'; params: { offences: Array<[number, PalletStakingAsyncRcClientOffence]> } };
13308
+ | { name: 'RelayNewOffencePaged'; params: { offences: Array<[number, PalletStakingAsyncRcClientOffence]> } }
13309
+ /**
13310
+ * Set session keys for a validator. Keys are validated on AssetHub and forwarded to RC.
13311
+ *
13312
+ * **Validation on AssetHub:**
13313
+ * Keys are decoded as `T::RelayChainSessionKeys` to ensure they match RC's expected
13314
+ * format. This prevents malicious validators from bloating the XCM queue with garbage
13315
+ * data.
13316
+ *
13317
+ * This, combined with the enforcement of a high minimum validator bond, makes it
13318
+ * reasonable not to require a deposit.
13319
+ *
13320
+ * Note: Ownership proof validation requires PR #1739 which is not backported to
13321
+ * stable2512. The proof parameter will be added when that PR is backported.
13322
+ *
13323
+ * **Fees:**
13324
+ * The actual cost of this call is higher than what the weight-based fee estimate shows.
13325
+ * In addition to the local transaction weight fee, the stash account is charged an XCM
13326
+ * fee (delivery + RC execution cost) via `XcmExecutor::charge_fees`. The relay chain
13327
+ * uses `UnpaidExecution`, so the full remote cost is charged upfront on AssetHub.
13328
+ *
13329
+ * When called via a staking proxy, the proxy pays the transaction weight fee,
13330
+ * while the stash (delegating account) pays the XCM fee.
13331
+ *
13332
+ * **Max Fee Limit:**
13333
+ * Users can optionally specify `max_delivery_and_remote_execution_fee` to limit the
13334
+ * delivery + RC execution fee. This does not include the local transaction weight fee. If
13335
+ * the fee exceeds this limit, the operation fails with `FeesExceededMax`. Pass `None` for
13336
+ * unlimited (no cap).
13337
+ *
13338
+ * NOTE: unlike the current flow for new validators on RC (bond -> set_keys -> validate),
13339
+ * users on Asset Hub MUST call bond and validate BEFORE calling set_keys. Attempting to
13340
+ * set keys before declaring intent to validate will fail with NotValidator.
13341
+ **/
13342
+ | { name: 'SetKeys'; params: { keys: BytesLike; maxDeliveryAndRemoteExecutionFee?: bigint | undefined } }
13343
+ /**
13344
+ * Remove session keys for a validator.
13345
+ *
13346
+ * This purges the keys from the Relay Chain.
13347
+ *
13348
+ * Unlike `set_keys`, this does not require the caller to be a registered validator.
13349
+ * This is intentional: a validator who has chilled (stopped validating) should still
13350
+ * be able to purge their session keys. This matches the behavior of the original
13351
+ * `pallet-session::purge_keys` which allows anyone to call it.
13352
+ *
13353
+ * The Relay Chain will reject the call with `NoKeys` error if the account has no
13354
+ * keys set.
13355
+ *
13356
+ * **Fees:**
13357
+ * The actual cost of this call is higher than what the weight-based fee estimate shows.
13358
+ * In addition to the local transaction weight fee, the caller is charged an XCM fee
13359
+ * (delivery + RC execution cost) via `XcmExecutor::charge_fees`. The relay chain uses
13360
+ * `UnpaidExecution`, so the full remote cost is charged upfront on AssetHub.
13361
+ *
13362
+ * When called via a staking proxy, the proxy pays the transaction weight fee,
13363
+ * while the delegating account pays the XCM fee.
13364
+ *
13365
+ * **Max Fee Limit:**
13366
+ * Users can optionally specify `max_delivery_and_remote_execution_fee` to limit the
13367
+ * delivery + RC execution fee. This does not include the local transaction weight fee. If
13368
+ * the fee exceeds this limit, the operation fails with `FeesExceededMax`. Pass `None` for
13369
+ * unlimited (no cap).
13370
+ **/
13371
+ | { name: 'PurgeKeys'; params: { maxDeliveryAndRemoteExecutionFee?: bigint | undefined } };
13245
13372
 
13246
13373
  export type PalletStakingAsyncRcClientSessionReport = {
13247
13374
  endIndex: number;
@@ -17809,6 +17936,12 @@ export type PalletStakingAsyncRcClientEvent =
17809
17936
  * A new offence was reported.
17810
17937
  **/
17811
17938
  | { name: 'OffenceReceived'; data: { slashSession: number; offencesCount: number } }
17939
+ /**
17940
+ * Fees were charged for a user operation (set_keys or purge_keys).
17941
+ *
17942
+ * The fee includes both XCM delivery fee and relay chain execution cost.
17943
+ **/
17944
+ | { name: 'FeesPaid'; data: { who: AccountId32; fees: bigint } }
17812
17945
  /**
17813
17946
  * Something occurred that should never happen under normal operation.
17814
17947
  * Logged as an event for fail-safe observability.
@@ -21256,6 +21389,31 @@ export type PalletStakingAsyncRcClientValidatorSetReport = {
21256
21389
  leftover: boolean;
21257
21390
  };
21258
21391
 
21392
+ /**
21393
+ * The `Error` enum of this pallet.
21394
+ **/
21395
+ export type PalletStakingAsyncRcClientError =
21396
+ /**
21397
+ * Failed to send XCM message to the Relay Chain.
21398
+ **/
21399
+ | 'XcmSendFailed'
21400
+ /**
21401
+ * The origin account is not a registered validator.
21402
+ *
21403
+ * Only accounts that have called `validate()` can set or purge session keys. When called
21404
+ * via a staking proxy, the origin is the delegating account (stash), which must be a
21405
+ * registered validator.
21406
+ **/
21407
+ | 'NotValidator'
21408
+ /**
21409
+ * The session keys could not be decoded as the expected RelayChainSessionKeys type.
21410
+ **/
21411
+ | 'InvalidKeys'
21412
+ /**
21413
+ * Delivery fees exceeded the specified maximum.
21414
+ **/
21415
+ | 'FeesExceededMax';
21416
+
21259
21417
  /**
21260
21418
  * Error of the pallet that can be returned in response to dispatches.
21261
21419
  **/
@@ -22128,6 +22286,7 @@ export type AssetHubWestendRuntimeRuntimeError =
22128
22286
  | { pallet: 'NominationPools'; palletError: PalletNominationPoolsError }
22129
22287
  | { pallet: 'VoterList'; palletError: PalletBagsListError }
22130
22288
  | { pallet: 'DelegatedStaking'; palletError: PalletDelegatedStakingError }
22289
+ | { pallet: 'StakingRcClient'; palletError: PalletStakingAsyncRcClientError }
22131
22290
  | { pallet: 'MultiBlockElection'; palletError: PalletElectionProviderMultiBlockError }
22132
22291
  | { pallet: 'MultiBlockElectionSigned'; palletError: PalletElectionProviderMultiBlockSignedPalletError }
22133
22292
  | { pallet: 'ConvictionVoting'; palletError: PalletConvictionVotingError }