@dedot/chaintypes 0.268.0 → 0.270.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.
@@ -1926,11 +1926,6 @@ export interface ChainConsts extends GenericChainConsts {
1926
1926
  * Pallet `EmaOracle`'s constants
1927
1927
  **/
1928
1928
  emaOracle: {
1929
- /**
1930
- * Maximum allowed percentage difference for bifrost oracle price update
1931
- **/
1932
- maxAllowedPriceDifference: Permill;
1933
-
1934
1929
  /**
1935
1930
  * Maximum number of unique oracle entries expected in one block.
1936
1931
  **/
@@ -4209,9 +4209,24 @@ export interface ChainErrors extends GenericChainErrors {
4209
4209
  AssetNotFound: GenericPalletError;
4210
4210
 
4211
4211
  /**
4212
- * The new price is outside the max allowed range
4212
+ * The external source is already registered.
4213
4213
  **/
4214
- PriceOutsideAllowedRange: GenericPalletError;
4214
+ SourceAlreadyRegistered: GenericPalletError;
4215
+
4216
+ /**
4217
+ * The external source was not found.
4218
+ **/
4219
+ SourceNotFound: GenericPalletError;
4220
+
4221
+ /**
4222
+ * The caller is not authorized for the given (source, pair).
4223
+ **/
4224
+ NotAuthorized: GenericPalletError;
4225
+
4226
+ /**
4227
+ * Price must not be zero.
4228
+ **/
4229
+ PriceIsZero: GenericPalletError;
4215
4230
 
4216
4231
  /**
4217
4232
  * Generic pallet error
@@ -30,6 +30,7 @@ import type {
30
30
  PalletConvictionVotingTally,
31
31
  FrameSupportDispatchPostDispatchInfo,
32
32
  SpRuntimeDispatchErrorWithPostInfo,
33
+ PalletDispatcherHyperbridgeCleanupStage,
33
34
  PalletAssetRegistryAssetType,
34
35
  HydradxRuntimeXcmAssetLocation,
35
36
  PalletClaimsEthereumAddress,
@@ -1611,6 +1612,38 @@ export interface ChainEvents extends GenericChainEvents {
1611
1612
  { callHash: H256; result: Result<FrameSupportDispatchPostDispatchInfo, SpRuntimeDispatchErrorWithPostInfo> }
1612
1613
  >;
1613
1614
 
1615
+ /**
1616
+ * Emitted each block when cleanup deletes a batch of keys.
1617
+ **/
1618
+ HyperbridgeCleanupProgress: GenericPalletEvent<
1619
+ 'Dispatcher',
1620
+ 'HyperbridgeCleanupProgress',
1621
+ { stage: PalletDispatcherHyperbridgeCleanupStage; keysDeleted: number }
1622
+ >;
1623
+
1624
+ /**
1625
+ * Emitted when all keys in a stage are removed and cleanup advances.
1626
+ **/
1627
+ HyperbridgeCleanupStageCompleted: GenericPalletEvent<
1628
+ 'Dispatcher',
1629
+ 'HyperbridgeCleanupStageCompleted',
1630
+ { stage: PalletDispatcherHyperbridgeCleanupStage }
1631
+ >;
1632
+
1633
+ /**
1634
+ * Emitted when all three stages are done and cleanup disables itself.
1635
+ **/
1636
+ HyperbridgeCleanupCompleted: GenericPalletEvent<'Dispatcher', 'HyperbridgeCleanupCompleted', null>;
1637
+
1638
+ /**
1639
+ * Emitted when cleanup is paused or resumed via extrinsic.
1640
+ **/
1641
+ HyperbridgeCleanupStatusChanged: GenericPalletEvent<
1642
+ 'Dispatcher',
1643
+ 'HyperbridgeCleanupStatusChanged',
1644
+ { paused: boolean }
1645
+ >;
1646
+
1614
1647
  /**
1615
1648
  * Generic pallet event
1616
1649
  **/
@@ -4566,6 +4599,34 @@ export interface ChainEvents extends GenericChainEvents {
4566
4599
  }
4567
4600
  >;
4568
4601
 
4602
+ /**
4603
+ * An external oracle source was registered.
4604
+ **/
4605
+ ExternalSourceRegistered: GenericPalletEvent<'EmaOracle', 'ExternalSourceRegistered', { source: FixedBytes<8> }>;
4606
+
4607
+ /**
4608
+ * An external oracle source was removed.
4609
+ **/
4610
+ ExternalSourceRemoved: GenericPalletEvent<'EmaOracle', 'ExternalSourceRemoved', { source: FixedBytes<8> }>;
4611
+
4612
+ /**
4613
+ * An account was authorized to update the given (source, pair).
4614
+ **/
4615
+ AuthorizedAccountAdded: GenericPalletEvent<
4616
+ 'EmaOracle',
4617
+ 'AuthorizedAccountAdded',
4618
+ { source: FixedBytes<8>; pair: [number, number]; account: AccountId32 }
4619
+ >;
4620
+
4621
+ /**
4622
+ * An authorization was removed for the given (source, pair, account).
4623
+ **/
4624
+ AuthorizedAccountRemoved: GenericPalletEvent<
4625
+ 'EmaOracle',
4626
+ 'AuthorizedAccountRemoved',
4627
+ { source: FixedBytes<8>; pair: [number, number]; account: AccountId32 }
4628
+ >;
4629
+
4569
4630
  /**
4570
4631
  * Generic pallet event
4571
4632
  **/
@@ -51,7 +51,7 @@ interface ChainKnownTypes extends GenericChainKnownTypes {
51
51
 
52
52
  /**
53
53
  * @name: HydrationApi
54
- * @specVersion: 405
54
+ * @specVersion: 411
55
55
  **/
56
56
  export interface HydrationApi extends GenericSubstrateApi {
57
57
  rpc: ChainJsonRpcApis;
@@ -56,6 +56,7 @@ import type {
56
56
  PalletStateTrieMigrationMigrationLimits,
57
57
  PalletConvictionVotingVoteVoting,
58
58
  PalletReferendaReferendumInfo,
59
+ PalletDispatcherHyperbridgeCleanupStage,
59
60
  EvmCoreErrorExitReason,
60
61
  PalletAssetRegistryAssetDetails,
61
62
  HydradxRuntimeXcmAssetLocation,
@@ -1187,6 +1188,20 @@ export interface ChainStorage extends GenericChainStorage {
1187
1188
  **/
1188
1189
  extraGas: GenericStorageQuery<() => bigint>;
1189
1190
 
1191
+ /**
1192
+ * Whether the background ISMP storage cleanup is active.
1193
+ *
1194
+ * @param {Callback<boolean> =} callback
1195
+ **/
1196
+ cleanupEnabled: GenericStorageQuery<() => boolean>;
1197
+
1198
+ /**
1199
+ * Current stage of the background ISMP storage cleanup.
1200
+ *
1201
+ * @param {Callback<PalletDispatcherHyperbridgeCleanupStage | undefined> =} callback
1202
+ **/
1203
+ cleanupStage: GenericStorageQuery<() => PalletDispatcherHyperbridgeCleanupStage | undefined>;
1204
+
1190
1205
  /**
1191
1206
  *
1192
1207
  * @param {Callback<EvmCoreErrorExitReason | undefined> =} callback
@@ -3386,6 +3401,29 @@ export interface ChainStorage extends GenericChainStorage {
3386
3401
  **/
3387
3402
  whitelistedAssets: GenericStorageQuery<() => Array<[FixedBytes<8>, [number, number]]>>;
3388
3403
 
3404
+ /**
3405
+ * Registered external oracle sources.
3406
+ *
3407
+ * @param {FixedBytes<8>} arg
3408
+ * @param {Callback<[] | undefined> =} callback
3409
+ **/
3410
+ externalSources: GenericStorageQuery<(arg: FixedBytes<8>) => [] | undefined, FixedBytes<8>>;
3411
+
3412
+ /**
3413
+ * Authorized accounts per (external oracle source, asset pair).
3414
+ *
3415
+ * Authorization is scoped per-pair so that a compromised external oracle account can
3416
+ * only update the specific pairs it was authorized for, limiting DDoS blast radius.
3417
+ * The asset pair is stored in `ordered_pair` form.
3418
+ *
3419
+ * @param {[FixedBytes<8>, [number, number], AccountId32Like]} arg
3420
+ * @param {Callback<[] | undefined> =} callback
3421
+ **/
3422
+ authorizedAccounts: GenericStorageQuery<
3423
+ (arg: [FixedBytes<8>, [number, number], AccountId32Like]) => [] | undefined,
3424
+ [FixedBytes<8>, [number, number], AccountId32]
3425
+ >;
3426
+
3389
3427
  /**
3390
3428
  * Generic pallet storage query
3391
3429
  **/
package/hydration/tx.d.ts CHANGED
@@ -5451,6 +5451,42 @@ export interface ChainTx<
5451
5451
  >
5452
5452
  >;
5453
5453
 
5454
+ /**
5455
+ * Enable/pause the background ISMP storage cleanup. If enabled for the first time,
5456
+ * starting from the first stage.
5457
+ *
5458
+ * @param {boolean} doPause
5459
+ **/
5460
+ pauseHyperbridgeCleanup: GenericTxCall<
5461
+ (doPause: boolean) => ChainSubmittableExtrinsic<
5462
+ {
5463
+ pallet: 'Dispatcher';
5464
+ palletCall: {
5465
+ name: 'PauseHyperbridgeCleanup';
5466
+ params: { doPause: boolean };
5467
+ };
5468
+ },
5469
+ ChainKnownTypes
5470
+ >
5471
+ >;
5472
+
5473
+ /**
5474
+ *
5475
+ * @param {HydradxRuntimeRuntimeCallLike} call
5476
+ **/
5477
+ dispatchWithFeePayer: GenericTxCall<
5478
+ (call: HydradxRuntimeRuntimeCallLike) => ChainSubmittableExtrinsic<
5479
+ {
5480
+ pallet: 'Dispatcher';
5481
+ palletCall: {
5482
+ name: 'DispatchWithFeePayer';
5483
+ params: { call: HydradxRuntimeRuntimeCallLike };
5484
+ };
5485
+ },
5486
+ ChainKnownTypes
5487
+ >
5488
+ >;
5489
+
5454
5490
  /**
5455
5491
  * Generic pallet tx call
5456
5492
  **/
@@ -13454,6 +13490,14 @@ export interface ChainTx<
13454
13490
  **/
13455
13491
  emaOracle: {
13456
13492
  /**
13493
+ * Add an oracle to the whitelist so it is tracked by the pallet.
13494
+ *
13495
+ * Parameters:
13496
+ * - `origin`: `AuthorityOrigin`
13497
+ * - `source`: data source identifier
13498
+ * - `assets`: the asset pair to track
13499
+ *
13500
+ * Emits `AddedToWhitelist` event when successful.
13457
13501
  *
13458
13502
  * @param {FixedBytes<8>} source
13459
13503
  * @param {[number, number]} assets
@@ -13475,6 +13519,14 @@ export interface ChainTx<
13475
13519
  >;
13476
13520
 
13477
13521
  /**
13522
+ * Remove an oracle from the whitelist and delete all its stored entries.
13523
+ *
13524
+ * Parameters:
13525
+ * - `origin`: `AuthorityOrigin`
13526
+ * - `source`: data source identifier
13527
+ * - `assets`: the asset pair to stop tracking
13528
+ *
13529
+ * Emits `RemovedFromWhitelist` event when successful.
13478
13530
  *
13479
13531
  * @param {FixedBytes<8>} source
13480
13532
  * @param {[number, number]} assets
@@ -13496,10 +13548,21 @@ export interface ChainTx<
13496
13548
  >;
13497
13549
 
13498
13550
  /**
13551
+ * Update an oracle entry for BIFROST_SOURCE. Thin wrapper around `set_external_oracle`.
13552
+ *
13553
+ * Parameters:
13554
+ * - `origin`: signed origin — must be authorized for the specific `(BIFROST_SOURCE, pair)`
13555
+ * - `asset_a`: XCM location of the first asset
13556
+ * - `asset_b`: XCM location of the second asset
13557
+ * - `price`: price as `(numerator, denominator)`
13558
+ *
13559
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13499
13560
  *
13500
13561
  * @param {XcmVersionedLocation} assetA
13501
13562
  * @param {XcmVersionedLocation} assetB
13502
13563
  * @param {[bigint, bigint]} price
13564
+ *
13565
+ * @deprecated Use `set_external_oracle` instead. Kept only for backward compatibility with bifrost and will be removed in the future
13503
13566
  **/
13504
13567
  updateBifrostOracle: GenericTxCall<
13505
13568
  (
@@ -13518,6 +13581,208 @@ export interface ChainTx<
13518
13581
  >
13519
13582
  >;
13520
13583
 
13584
+ /**
13585
+ * Submit an oracle price update for an external source.
13586
+ *
13587
+ * The call is feeless on success (`Pays::No`).
13588
+ *
13589
+ * Parameters:
13590
+ * - `origin`: signed origin — must be authorized for the specific `(source, pair)` via
13591
+ * `add_authorized_account`
13592
+ * - `source`: external source identifier (must be registered via `register_external_source`)
13593
+ * - `asset_a`: XCM location of the first asset
13594
+ * - `asset_b`: XCM location of the second asset
13595
+ * - `price`: price as `(numerator, denominator)` — both must be non-zero
13596
+ *
13597
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13598
+ *
13599
+ * @param {FixedBytes<8>} source
13600
+ * @param {XcmVersionedLocation} assetA
13601
+ * @param {XcmVersionedLocation} assetB
13602
+ * @param {[bigint, bigint]} price
13603
+ **/
13604
+ setExternalOracle: GenericTxCall<
13605
+ (
13606
+ source: FixedBytes<8>,
13607
+ assetA: XcmVersionedLocation,
13608
+ assetB: XcmVersionedLocation,
13609
+ price: [bigint, bigint],
13610
+ ) => ChainSubmittableExtrinsic<
13611
+ {
13612
+ pallet: 'EmaOracle';
13613
+ palletCall: {
13614
+ name: 'SetExternalOracle';
13615
+ params: {
13616
+ source: FixedBytes<8>;
13617
+ assetA: XcmVersionedLocation;
13618
+ assetB: XcmVersionedLocation;
13619
+ price: [bigint, bigint];
13620
+ };
13621
+ };
13622
+ },
13623
+ ChainKnownTypes
13624
+ >
13625
+ >;
13626
+
13627
+ /**
13628
+ * Update an external oracle entry using local `AssetId`s directly.
13629
+ *
13630
+ * Cheaper variant of `set_external_oracle` for callers that already know the local
13631
+ * AssetIds — skips the `VersionedLocation` → `AssetId` conversion and the
13632
+ * `AssetRegistry::LocationAssets` storage read. Authorization shares the same
13633
+ * `AuthorizedAccounts` storage as the location variant.
13634
+ *
13635
+ * Parameters:
13636
+ * - `origin`: signed origin — must be authorized for the specific `(source, pair)` via
13637
+ * `add_authorized_account`
13638
+ * - `source`: external source identifier (must be registered via `register_external_source`)
13639
+ * - `asset_a`: local AssetId of the first asset
13640
+ * - `asset_b`: local AssetId of the second asset
13641
+ * - `price`: price as `(numerator, denominator)` — both must be non-zero
13642
+ *
13643
+ * The call is feeless on success (`Pays::No`).
13644
+ *
13645
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13646
+ *
13647
+ * @param {FixedBytes<8>} source
13648
+ * @param {number} assetA
13649
+ * @param {number} assetB
13650
+ * @param {[bigint, bigint]} price
13651
+ **/
13652
+ setExternalOracleByIds: GenericTxCall<
13653
+ (
13654
+ source: FixedBytes<8>,
13655
+ assetA: number,
13656
+ assetB: number,
13657
+ price: [bigint, bigint],
13658
+ ) => ChainSubmittableExtrinsic<
13659
+ {
13660
+ pallet: 'EmaOracle';
13661
+ palletCall: {
13662
+ name: 'SetExternalOracleByIds';
13663
+ params: { source: FixedBytes<8>; assetA: number; assetB: number; price: [bigint, bigint] };
13664
+ };
13665
+ },
13666
+ ChainKnownTypes
13667
+ >
13668
+ >;
13669
+
13670
+ /**
13671
+ * Register a new external oracle source.
13672
+ *
13673
+ * Parameters:
13674
+ * - `origin`: `AuthorityOrigin`
13675
+ * - `source`: 8-byte source identifier to register
13676
+ *
13677
+ * Emits `ExternalSourceRegistered` event when successful.
13678
+ *
13679
+ * @param {FixedBytes<8>} source
13680
+ **/
13681
+ registerExternalSource: GenericTxCall<
13682
+ (source: FixedBytes<8>) => ChainSubmittableExtrinsic<
13683
+ {
13684
+ pallet: 'EmaOracle';
13685
+ palletCall: {
13686
+ name: 'RegisterExternalSource';
13687
+ params: { source: FixedBytes<8> };
13688
+ };
13689
+ },
13690
+ ChainKnownTypes
13691
+ >
13692
+ >;
13693
+
13694
+ /**
13695
+ * Remove an external oracle source, its per-pair authorizations, and ALL oracle data it
13696
+ * ever wrote (both committed `Oracles` rows and any in-flight `Accumulator` entries).
13697
+ *
13698
+ * Parameters:
13699
+ * - `origin`: `AuthorityOrigin`
13700
+ * - `source`: source identifier to remove
13701
+ *
13702
+ * Emits `ExternalSourceRemoved` event when successful.
13703
+ *
13704
+ * @param {FixedBytes<8>} source
13705
+ **/
13706
+ removeExternalSource: GenericTxCall<
13707
+ (source: FixedBytes<8>) => ChainSubmittableExtrinsic<
13708
+ {
13709
+ pallet: 'EmaOracle';
13710
+ palletCall: {
13711
+ name: 'RemoveExternalSource';
13712
+ params: { source: FixedBytes<8> };
13713
+ };
13714
+ },
13715
+ ChainKnownTypes
13716
+ >
13717
+ >;
13718
+
13719
+ /**
13720
+ * Authorize `account` to submit oracle updates for a specific `(source, pair)`.
13721
+ *
13722
+ * Authorization is scoped per-pair so a compromised account can only update the
13723
+ * pairs it was explicitly granted, limiting DDoS blast radius.
13724
+ *
13725
+ * Parameters:
13726
+ * - `origin`: `AuthorityOrigin`
13727
+ * - `source`: external source identifier (must already be registered)
13728
+ * - `assets`: the asset pair to authorize — stored in ordered form
13729
+ * - `account`: the account to authorize
13730
+ *
13731
+ * Emits `AuthorizedAccountAdded` event when successful.
13732
+ *
13733
+ * @param {FixedBytes<8>} source
13734
+ * @param {[number, number]} assets
13735
+ * @param {AccountId32Like} account
13736
+ **/
13737
+ addAuthorizedAccount: GenericTxCall<
13738
+ (
13739
+ source: FixedBytes<8>,
13740
+ assets: [number, number],
13741
+ account: AccountId32Like,
13742
+ ) => ChainSubmittableExtrinsic<
13743
+ {
13744
+ pallet: 'EmaOracle';
13745
+ palletCall: {
13746
+ name: 'AddAuthorizedAccount';
13747
+ params: { source: FixedBytes<8>; assets: [number, number]; account: AccountId32Like };
13748
+ };
13749
+ },
13750
+ ChainKnownTypes
13751
+ >
13752
+ >;
13753
+
13754
+ /**
13755
+ * Revoke oracle-update authorization for `account` on a specific `(source, pair)`.
13756
+ *
13757
+ * Parameters:
13758
+ * - `origin`: `AuthorityOrigin`
13759
+ * - `source`: external source identifier (must already be registered)
13760
+ * - `assets`: the asset pair to revoke — matched in ordered form
13761
+ * - `account`: the account to revoke
13762
+ *
13763
+ * Emits `AuthorizedAccountRemoved` event when successful.
13764
+ *
13765
+ * @param {FixedBytes<8>} source
13766
+ * @param {[number, number]} assets
13767
+ * @param {AccountId32Like} account
13768
+ **/
13769
+ removeAuthorizedAccount: GenericTxCall<
13770
+ (
13771
+ source: FixedBytes<8>,
13772
+ assets: [number, number],
13773
+ account: AccountId32Like,
13774
+ ) => ChainSubmittableExtrinsic<
13775
+ {
13776
+ pallet: 'EmaOracle';
13777
+ palletCall: {
13778
+ name: 'RemoveAuthorizedAccount';
13779
+ params: { source: FixedBytes<8>; assets: [number, number]; account: AccountId32Like };
13780
+ };
13781
+ },
13782
+ ChainKnownTypes
13783
+ >
13784
+ >;
13785
+
13521
13786
  /**
13522
13787
  * Generic pallet tx call
13523
13788
  **/
@@ -5140,7 +5140,13 @@ export type PalletDispatcherCall =
5140
5140
  *
5141
5141
  * Emits `EmergencyAdminCallDispatched` with the call hash and dispatch result.
5142
5142
  **/
5143
- | { name: 'DispatchAsEmergencyAdmin'; params: { call: HydradxRuntimeRuntimeCall } };
5143
+ | { name: 'DispatchAsEmergencyAdmin'; params: { call: HydradxRuntimeRuntimeCall } }
5144
+ /**
5145
+ * Enable/pause the background ISMP storage cleanup. If enabled for the first time,
5146
+ * starting from the first stage.
5147
+ **/
5148
+ | { name: 'PauseHyperbridgeCleanup'; params: { doPause: boolean } }
5149
+ | { name: 'DispatchWithFeePayer'; params: { call: HydradxRuntimeRuntimeCall } };
5144
5150
 
5145
5151
  export type PalletDispatcherCallLike =
5146
5152
  | { name: 'DispatchAsTreasury'; params: { call: HydradxRuntimeRuntimeCallLike } }
@@ -5187,7 +5193,13 @@ export type PalletDispatcherCallLike =
5187
5193
  *
5188
5194
  * Emits `EmergencyAdminCallDispatched` with the call hash and dispatch result.
5189
5195
  **/
5190
- | { name: 'DispatchAsEmergencyAdmin'; params: { call: HydradxRuntimeRuntimeCallLike } };
5196
+ | { name: 'DispatchAsEmergencyAdmin'; params: { call: HydradxRuntimeRuntimeCallLike } }
5197
+ /**
5198
+ * Enable/pause the background ISMP storage cleanup. If enabled for the first time,
5199
+ * starting from the first stage.
5200
+ **/
5201
+ | { name: 'PauseHyperbridgeCleanup'; params: { doPause: boolean } }
5202
+ | { name: 'DispatchWithFeePayer'; params: { call: HydradxRuntimeRuntimeCallLike } };
5191
5203
 
5192
5204
  /**
5193
5205
  * Contains a variant per dispatchable extrinsic that this pallet has.
@@ -13443,19 +13455,282 @@ export type SpConsensusAuraSr25519AppSr25519Public = FixedBytes<32>;
13443
13455
  * Contains a variant per dispatchable extrinsic that this pallet has.
13444
13456
  **/
13445
13457
  export type PalletEmaOracleCall =
13458
+ /**
13459
+ * Add an oracle to the whitelist so it is tracked by the pallet.
13460
+ *
13461
+ * Parameters:
13462
+ * - `origin`: `AuthorityOrigin`
13463
+ * - `source`: data source identifier
13464
+ * - `assets`: the asset pair to track
13465
+ *
13466
+ * Emits `AddedToWhitelist` event when successful.
13467
+ **/
13446
13468
  | { name: 'AddOracle'; params: { source: FixedBytes<8>; assets: [number, number] } }
13469
+ /**
13470
+ * Remove an oracle from the whitelist and delete all its stored entries.
13471
+ *
13472
+ * Parameters:
13473
+ * - `origin`: `AuthorityOrigin`
13474
+ * - `source`: data source identifier
13475
+ * - `assets`: the asset pair to stop tracking
13476
+ *
13477
+ * Emits `RemovedFromWhitelist` event when successful.
13478
+ **/
13447
13479
  | { name: 'RemoveOracle'; params: { source: FixedBytes<8>; assets: [number, number] } }
13480
+ /**
13481
+ * Update an oracle entry for BIFROST_SOURCE. Thin wrapper around `set_external_oracle`.
13482
+ *
13483
+ * Parameters:
13484
+ * - `origin`: signed origin — must be authorized for the specific `(BIFROST_SOURCE, pair)`
13485
+ * - `asset_a`: XCM location of the first asset
13486
+ * - `asset_b`: XCM location of the second asset
13487
+ * - `price`: price as `(numerator, denominator)`
13488
+ *
13489
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13490
+ **/
13448
13491
  | {
13449
13492
  name: 'UpdateBifrostOracle';
13450
13493
  params: { assetA: XcmVersionedLocation; assetB: XcmVersionedLocation; price: [bigint, bigint] };
13494
+ }
13495
+ /**
13496
+ * Submit an oracle price update for an external source.
13497
+ *
13498
+ * The call is feeless on success (`Pays::No`).
13499
+ *
13500
+ * Parameters:
13501
+ * - `origin`: signed origin — must be authorized for the specific `(source, pair)` via
13502
+ * `add_authorized_account`
13503
+ * - `source`: external source identifier (must be registered via `register_external_source`)
13504
+ * - `asset_a`: XCM location of the first asset
13505
+ * - `asset_b`: XCM location of the second asset
13506
+ * - `price`: price as `(numerator, denominator)` — both must be non-zero
13507
+ *
13508
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13509
+ **/
13510
+ | {
13511
+ name: 'SetExternalOracle';
13512
+ params: {
13513
+ source: FixedBytes<8>;
13514
+ assetA: XcmVersionedLocation;
13515
+ assetB: XcmVersionedLocation;
13516
+ price: [bigint, bigint];
13517
+ };
13518
+ }
13519
+ /**
13520
+ * Update an external oracle entry using local `AssetId`s directly.
13521
+ *
13522
+ * Cheaper variant of `set_external_oracle` for callers that already know the local
13523
+ * AssetIds — skips the `VersionedLocation` → `AssetId` conversion and the
13524
+ * `AssetRegistry::LocationAssets` storage read. Authorization shares the same
13525
+ * `AuthorizedAccounts` storage as the location variant.
13526
+ *
13527
+ * Parameters:
13528
+ * - `origin`: signed origin — must be authorized for the specific `(source, pair)` via
13529
+ * `add_authorized_account`
13530
+ * - `source`: external source identifier (must be registered via `register_external_source`)
13531
+ * - `asset_a`: local AssetId of the first asset
13532
+ * - `asset_b`: local AssetId of the second asset
13533
+ * - `price`: price as `(numerator, denominator)` — both must be non-zero
13534
+ *
13535
+ * The call is feeless on success (`Pays::No`).
13536
+ *
13537
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13538
+ **/
13539
+ | {
13540
+ name: 'SetExternalOracleByIds';
13541
+ params: { source: FixedBytes<8>; assetA: number; assetB: number; price: [bigint, bigint] };
13542
+ }
13543
+ /**
13544
+ * Register a new external oracle source.
13545
+ *
13546
+ * Parameters:
13547
+ * - `origin`: `AuthorityOrigin`
13548
+ * - `source`: 8-byte source identifier to register
13549
+ *
13550
+ * Emits `ExternalSourceRegistered` event when successful.
13551
+ **/
13552
+ | { name: 'RegisterExternalSource'; params: { source: FixedBytes<8> } }
13553
+ /**
13554
+ * Remove an external oracle source, its per-pair authorizations, and ALL oracle data it
13555
+ * ever wrote (both committed `Oracles` rows and any in-flight `Accumulator` entries).
13556
+ *
13557
+ * Parameters:
13558
+ * - `origin`: `AuthorityOrigin`
13559
+ * - `source`: source identifier to remove
13560
+ *
13561
+ * Emits `ExternalSourceRemoved` event when successful.
13562
+ **/
13563
+ | { name: 'RemoveExternalSource'; params: { source: FixedBytes<8> } }
13564
+ /**
13565
+ * Authorize `account` to submit oracle updates for a specific `(source, pair)`.
13566
+ *
13567
+ * Authorization is scoped per-pair so a compromised account can only update the
13568
+ * pairs it was explicitly granted, limiting DDoS blast radius.
13569
+ *
13570
+ * Parameters:
13571
+ * - `origin`: `AuthorityOrigin`
13572
+ * - `source`: external source identifier (must already be registered)
13573
+ * - `assets`: the asset pair to authorize — stored in ordered form
13574
+ * - `account`: the account to authorize
13575
+ *
13576
+ * Emits `AuthorizedAccountAdded` event when successful.
13577
+ **/
13578
+ | { name: 'AddAuthorizedAccount'; params: { source: FixedBytes<8>; assets: [number, number]; account: AccountId32 } }
13579
+ /**
13580
+ * Revoke oracle-update authorization for `account` on a specific `(source, pair)`.
13581
+ *
13582
+ * Parameters:
13583
+ * - `origin`: `AuthorityOrigin`
13584
+ * - `source`: external source identifier (must already be registered)
13585
+ * - `assets`: the asset pair to revoke — matched in ordered form
13586
+ * - `account`: the account to revoke
13587
+ *
13588
+ * Emits `AuthorizedAccountRemoved` event when successful.
13589
+ **/
13590
+ | {
13591
+ name: 'RemoveAuthorizedAccount';
13592
+ params: { source: FixedBytes<8>; assets: [number, number]; account: AccountId32 };
13451
13593
  };
13452
13594
 
13453
13595
  export type PalletEmaOracleCallLike =
13596
+ /**
13597
+ * Add an oracle to the whitelist so it is tracked by the pallet.
13598
+ *
13599
+ * Parameters:
13600
+ * - `origin`: `AuthorityOrigin`
13601
+ * - `source`: data source identifier
13602
+ * - `assets`: the asset pair to track
13603
+ *
13604
+ * Emits `AddedToWhitelist` event when successful.
13605
+ **/
13454
13606
  | { name: 'AddOracle'; params: { source: FixedBytes<8>; assets: [number, number] } }
13607
+ /**
13608
+ * Remove an oracle from the whitelist and delete all its stored entries.
13609
+ *
13610
+ * Parameters:
13611
+ * - `origin`: `AuthorityOrigin`
13612
+ * - `source`: data source identifier
13613
+ * - `assets`: the asset pair to stop tracking
13614
+ *
13615
+ * Emits `RemovedFromWhitelist` event when successful.
13616
+ **/
13455
13617
  | { name: 'RemoveOracle'; params: { source: FixedBytes<8>; assets: [number, number] } }
13618
+ /**
13619
+ * Update an oracle entry for BIFROST_SOURCE. Thin wrapper around `set_external_oracle`.
13620
+ *
13621
+ * Parameters:
13622
+ * - `origin`: signed origin — must be authorized for the specific `(BIFROST_SOURCE, pair)`
13623
+ * - `asset_a`: XCM location of the first asset
13624
+ * - `asset_b`: XCM location of the second asset
13625
+ * - `price`: price as `(numerator, denominator)`
13626
+ *
13627
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13628
+ **/
13456
13629
  | {
13457
13630
  name: 'UpdateBifrostOracle';
13458
13631
  params: { assetA: XcmVersionedLocation; assetB: XcmVersionedLocation; price: [bigint, bigint] };
13632
+ }
13633
+ /**
13634
+ * Submit an oracle price update for an external source.
13635
+ *
13636
+ * The call is feeless on success (`Pays::No`).
13637
+ *
13638
+ * Parameters:
13639
+ * - `origin`: signed origin — must be authorized for the specific `(source, pair)` via
13640
+ * `add_authorized_account`
13641
+ * - `source`: external source identifier (must be registered via `register_external_source`)
13642
+ * - `asset_a`: XCM location of the first asset
13643
+ * - `asset_b`: XCM location of the second asset
13644
+ * - `price`: price as `(numerator, denominator)` — both must be non-zero
13645
+ *
13646
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13647
+ **/
13648
+ | {
13649
+ name: 'SetExternalOracle';
13650
+ params: {
13651
+ source: FixedBytes<8>;
13652
+ assetA: XcmVersionedLocation;
13653
+ assetB: XcmVersionedLocation;
13654
+ price: [bigint, bigint];
13655
+ };
13656
+ }
13657
+ /**
13658
+ * Update an external oracle entry using local `AssetId`s directly.
13659
+ *
13660
+ * Cheaper variant of `set_external_oracle` for callers that already know the local
13661
+ * AssetIds — skips the `VersionedLocation` → `AssetId` conversion and the
13662
+ * `AssetRegistry::LocationAssets` storage read. Authorization shares the same
13663
+ * `AuthorizedAccounts` storage as the location variant.
13664
+ *
13665
+ * Parameters:
13666
+ * - `origin`: signed origin — must be authorized for the specific `(source, pair)` via
13667
+ * `add_authorized_account`
13668
+ * - `source`: external source identifier (must be registered via `register_external_source`)
13669
+ * - `asset_a`: local AssetId of the first asset
13670
+ * - `asset_b`: local AssetId of the second asset
13671
+ * - `price`: price as `(numerator, denominator)` — both must be non-zero
13672
+ *
13673
+ * The call is feeless on success (`Pays::No`).
13674
+ *
13675
+ * Emits `OracleUpdated` event on the next `on_finalize`.
13676
+ **/
13677
+ | {
13678
+ name: 'SetExternalOracleByIds';
13679
+ params: { source: FixedBytes<8>; assetA: number; assetB: number; price: [bigint, bigint] };
13680
+ }
13681
+ /**
13682
+ * Register a new external oracle source.
13683
+ *
13684
+ * Parameters:
13685
+ * - `origin`: `AuthorityOrigin`
13686
+ * - `source`: 8-byte source identifier to register
13687
+ *
13688
+ * Emits `ExternalSourceRegistered` event when successful.
13689
+ **/
13690
+ | { name: 'RegisterExternalSource'; params: { source: FixedBytes<8> } }
13691
+ /**
13692
+ * Remove an external oracle source, its per-pair authorizations, and ALL oracle data it
13693
+ * ever wrote (both committed `Oracles` rows and any in-flight `Accumulator` entries).
13694
+ *
13695
+ * Parameters:
13696
+ * - `origin`: `AuthorityOrigin`
13697
+ * - `source`: source identifier to remove
13698
+ *
13699
+ * Emits `ExternalSourceRemoved` event when successful.
13700
+ **/
13701
+ | { name: 'RemoveExternalSource'; params: { source: FixedBytes<8> } }
13702
+ /**
13703
+ * Authorize `account` to submit oracle updates for a specific `(source, pair)`.
13704
+ *
13705
+ * Authorization is scoped per-pair so a compromised account can only update the
13706
+ * pairs it was explicitly granted, limiting DDoS blast radius.
13707
+ *
13708
+ * Parameters:
13709
+ * - `origin`: `AuthorityOrigin`
13710
+ * - `source`: external source identifier (must already be registered)
13711
+ * - `assets`: the asset pair to authorize — stored in ordered form
13712
+ * - `account`: the account to authorize
13713
+ *
13714
+ * Emits `AuthorizedAccountAdded` event when successful.
13715
+ **/
13716
+ | {
13717
+ name: 'AddAuthorizedAccount';
13718
+ params: { source: FixedBytes<8>; assets: [number, number]; account: AccountId32Like };
13719
+ }
13720
+ /**
13721
+ * Revoke oracle-update authorization for `account` on a specific `(source, pair)`.
13722
+ *
13723
+ * Parameters:
13724
+ * - `origin`: `AuthorityOrigin`
13725
+ * - `source`: external source identifier (must already be registered)
13726
+ * - `assets`: the asset pair to revoke — matched in ordered form
13727
+ * - `account`: the account to revoke
13728
+ *
13729
+ * Emits `AuthorizedAccountRemoved` event when successful.
13730
+ **/
13731
+ | {
13732
+ name: 'RemoveAuthorizedAccount';
13733
+ params: { source: FixedBytes<8>; assets: [number, number]; account: AccountId32Like };
13459
13734
  };
13460
13735
 
13461
13736
  /**
@@ -14826,7 +15101,31 @@ export type PalletDispatcherEvent =
14826
15101
  callHash: H256;
14827
15102
  result: Result<FrameSupportDispatchPostDispatchInfo, SpRuntimeDispatchErrorWithPostInfo>;
14828
15103
  };
14829
- };
15104
+ }
15105
+ /**
15106
+ * Emitted each block when cleanup deletes a batch of keys.
15107
+ **/
15108
+ | {
15109
+ name: 'HyperbridgeCleanupProgress';
15110
+ data: { stage: PalletDispatcherHyperbridgeCleanupStage; keysDeleted: number };
15111
+ }
15112
+ /**
15113
+ * Emitted when all keys in a stage are removed and cleanup advances.
15114
+ **/
15115
+ | { name: 'HyperbridgeCleanupStageCompleted'; data: { stage: PalletDispatcherHyperbridgeCleanupStage } }
15116
+ /**
15117
+ * Emitted when all three stages are done and cleanup disables itself.
15118
+ **/
15119
+ | { name: 'HyperbridgeCleanupCompleted' }
15120
+ /**
15121
+ * Emitted when cleanup is paused or resumed via extrinsic.
15122
+ **/
15123
+ | { name: 'HyperbridgeCleanupStatusChanged'; data: { paused: boolean } };
15124
+
15125
+ export type PalletDispatcherHyperbridgeCleanupStage =
15126
+ | 'StateCommitments'
15127
+ | 'StateMachineUpdateTime'
15128
+ | 'RelayChainStateCommitments';
14830
15129
 
14831
15130
  /**
14832
15131
  * The `Event` enum of this pallet
@@ -17000,7 +17299,23 @@ export type PalletEmaOracleEvent =
17000
17299
  assets: [number, number];
17001
17300
  updates: Array<[HydradxTraitsOracleOraclePeriod, HydraDxMathRatio]>;
17002
17301
  };
17003
- };
17302
+ }
17303
+ /**
17304
+ * An external oracle source was registered.
17305
+ **/
17306
+ | { name: 'ExternalSourceRegistered'; data: { source: FixedBytes<8> } }
17307
+ /**
17308
+ * An external oracle source was removed.
17309
+ **/
17310
+ | { name: 'ExternalSourceRemoved'; data: { source: FixedBytes<8> } }
17311
+ /**
17312
+ * An account was authorized to update the given (source, pair).
17313
+ **/
17314
+ | { name: 'AuthorizedAccountAdded'; data: { source: FixedBytes<8>; pair: [number, number]; account: AccountId32 } }
17315
+ /**
17316
+ * An authorization was removed for the given (source, pair, account).
17317
+ **/
17318
+ | { name: 'AuthorizedAccountRemoved'; data: { source: FixedBytes<8>; pair: [number, number]; account: AccountId32 } };
17004
17319
 
17005
17320
  export type HydraDxMathRatio = { n: bigint; d: bigint };
17006
17321
 
@@ -20905,9 +21220,21 @@ export type PalletEmaOracleError =
20905
21220
  **/
20906
21221
  | 'AssetNotFound'
20907
21222
  /**
20908
- * The new price is outside the max allowed range
21223
+ * The external source is already registered.
21224
+ **/
21225
+ | 'SourceAlreadyRegistered'
21226
+ /**
21227
+ * The external source was not found.
21228
+ **/
21229
+ | 'SourceNotFound'
21230
+ /**
21231
+ * The caller is not authorized for the given (source, pair).
21232
+ **/
21233
+ | 'NotAuthorized'
21234
+ /**
21235
+ * Price must not be zero.
20909
21236
  **/
20910
- | 'PriceOutsideAllowedRange';
21237
+ | 'PriceIsZero';
20911
21238
 
20912
21239
  /**
20913
21240
  * The `Error` enum of this pallet.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dedot/chaintypes",
3
- "version": "0.268.0",
3
+ "version": "0.270.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": "d780ca4b8a154c24013ef92b0c911faf488209fc",
28
+ "gitHead": "2d8cb1fc8ef3fbe7a86461f6fc69dc4448d14b13",
29
29
  "module": "./index.js",
30
30
  "types": "./index.d.ts",
31
31
  "exports": {
@@ -20,7 +20,6 @@ export type ChainJsonRpcApis = Pick<
20
20
  | 'author_pendingExtrinsics'
21
21
  | 'author_removeExtrinsic'
22
22
  | 'author_rotateKeys'
23
- | 'author_rotateKeysWithOwner'
24
23
  | 'author_submitAndWatchExtrinsic'
25
24
  | 'author_submitExtrinsic'
26
25
  | 'chainHead_v1_body'