git.delta.rocks / unique-network / refs/commits / 35da4ee40eea

difftreelog

code refactor & comments

PraetorP2022-09-08parent: #f980616.patch.diff
in: master

12 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -12147,7 +12147,7 @@
 
 [[package]]
 name = "uc-rpc"
-version = "0.1.3"
+version = "0.1.4"
 dependencies = [
  "anyhow",
  "app-promotion-rpc",
modifiedclient/rpc/CHANGELOG.mddiffbeforeafterboth
--- a/client/rpc/CHANGELOG.md
+++ b/client/rpc/CHANGELOG.md
@@ -3,15 +3,21 @@
 All notable changes to this project will be documented in this file.
 
 <!-- bureaucrate goes here -->
+
+## [v0.1.4] 2022-09-08
+
+### Added
+-  Support RPC for `AppPromotion` pallet. 
+
 ## [v0.1.3] 2022-08-16
 
 ### Other changes
 
-- build: Upgrade polkadot to v0.9.27 2c498572636f2b34d53b1c51b7283a761a7dc90a
+-   build: Upgrade polkadot to v0.9.27 2c498572636f2b34d53b1c51b7283a761a7dc90a
 
-- build: Upgrade polkadot to v0.9.26 85515e54c4ca1b82a2630034e55dcc804c643bf8
+-   build: Upgrade polkadot to v0.9.26 85515e54c4ca1b82a2630034e55dcc804c643bf8
 
-- build: Upgrade polkadot to v0.9.25 cdfb9bdc7b205ff1b5134f034ef9973d769e5e6b
+-   build: Upgrade polkadot to v0.9.25 cdfb9bdc7b205ff1b5134f034ef9973d769e5e6b
 
 ## [0.1.2] - 2022-08-12
 
modifiedclient/rpc/Cargo.tomldiffbeforeafterboth
--- a/client/rpc/Cargo.toml
+++ b/client/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "uc-rpc"
-version = "0.1.3"
+version = "0.1.4"
 license = "GPLv3"
 edition = "2021"
 
modifiedpallets/app-promotion/src/lib.rsdiffbeforeafterboth
--- a/pallets/app-promotion/src/lib.rs
+++ b/pallets/app-promotion/src/lib.rs
@@ -22,9 +22,6 @@
 //!
 //! ### Dispatchable Functions
 //!
-//! * `start_inflation` - This method sets the inflation start date. Can be only called once.
-//! Inflation start block can be backdated and will catch up. The method will create Treasury
-//!	account if it does not exist and perform the first inflation deposit.
 
 // #![recursion_limit = "1024"]
 #![cfg_attr(not(feature = "std"), no_std)]
@@ -48,7 +45,6 @@
 use pallet_balances::BalanceLock;
 pub use types::*;
 
-// use up_common::constants::{DAYS, UNIQUE};
 use up_data_structs::CollectionId;
 
 use frame_support::{
@@ -87,16 +83,20 @@
 
 	#[pallet::config]
 	pub trait Config: frame_system::Config + pallet_evm::account::Config {
+		/// Type to interact with the native token
 		type Currency: ExtendedLockableCurrency<Self::AccountId>
 			+ ReservableCurrency<Self::AccountId>;
 
+		/// Type for interacting with collections
 		type CollectionHandler: CollectionHandler<
 			AccountId = Self::AccountId,
 			CollectionId = CollectionId,
 		>;
 
+		/// Type for interacting with conrtacts
 		type ContractHandler: ContractHandler<AccountId = Self::CrossAccountId, ContractId = H160>;
 
+		/// ID for treasury
 		type TreasuryAccountId: Get<Self::AccountId>;
 
 		/// The app's pallet id, used for deriving its sovereign account ID.
@@ -106,15 +106,18 @@
 		/// In relay blocks.
 		#[pallet::constant]
 		type RecalculationInterval: Get<Self::BlockNumber>;
-		/// In relay blocks.
+
+		/// In parachain blocks.
 		#[pallet::constant]
 		type PendingInterval: Get<Self::BlockNumber>;
 
+		/// Rate of return for interval in blocks defined in `RecalculationInterval`.
 		#[pallet::constant]
-		type Nominal: Get<BalanceOf<Self>>;
+		type IntervalIncome: Get<Perbill>;
 
+		/// Decimals for the `Currency`.
 		#[pallet::constant]
-		type IntervalIncome: Get<Perbill>;
+		type Nominal: Get<BalanceOf<Self>>;
 
 		/// Weight information for extrinsics in this pallet.
 		type WeightInfo: WeightInfo;
@@ -133,6 +136,12 @@
 	#[pallet::event]
 	#[pallet::generate_deposit(fn deposit_event)]
 	pub enum Event<T: Config> {
+		/// Staking recalculation was performed
+		///
+		/// # Arguments
+		/// * AccountId: ID of the staker.
+		/// * Balance : recalculation base
+		/// * Balance : total income
 		StakingRecalculation(
 			/// An recalculated staker
 			T::AccountId,
@@ -141,22 +150,42 @@
 			/// Amount of accrued interest
 			BalanceOf<T>,
 		),
+		
+		/// Staking was performed
+		///
+		/// # Arguments
+		/// * AccountId: ID of the staker
+		/// * Balance : staking amount
 		Stake(T::AccountId, BalanceOf<T>),
+		
+		/// Unstaking was performed
+		///
+		/// # Arguments
+		/// * AccountId: ID of the staker
+		/// * Balance : unstaking amount
 		Unstake(T::AccountId, BalanceOf<T>),
+		
+		/// The admin was set
+		///
+		/// # Arguments
+		/// * AccountId: ID of the admin
 		SetAdmin(T::AccountId),
 	}
 
 	#[pallet::error]
 	pub enum Error<T> {
-		/// Error due to action requiring admin to be set
+		/// Error due to action requiring admin to be set.
 		AdminNotSet,
-		/// No permission to perform an action
+		/// No permission to perform an action.
 		NoPermission,
-		/// Insufficient funds to perform an action
+		/// Insufficient funds to perform an action.
 		NotSufficientFunds,
+		/// Occurs when a pending unstake cannot be added in this block. PENDING_LIMIT_PER_BLOCK` limits exceeded.
 		PendingForBlockOverflow,
-		/// An error related to the fact that an invalid argument was passed to perform an action
+		/// The error is due to the fact that the collection/contract must already be sponsored in order to perform the action.
 		SponsorNotSet,
+		/// Errors caused by incorrect actions with a locked balance.
+		IncorrectLockedBalanceOperation,
 	}
 
 	#[pallet::storage]
@@ -189,7 +218,7 @@
 		ValueQuery,
 	>;
 
-	/// Stores hash a record for which the last revenue recalculation was performed.
+	/// Stores a key for record for which the next revenue recalculation would be performed.
 	/// If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.
 	#[pallet::storage]
 	#[pallet::getter(fn get_next_calculated_record)]
@@ -198,6 +227,9 @@
 
 	#[pallet::hooks]
 	impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
+		/// Block overflow is impossible due to the fact that the unstake algorithm in on_initialize
+		/// implies the execution of a strictly limited number of relatively lightweight operations.
+		/// A separate benchmark has been implemented to scale the weight depending on the number of pendings.
 		fn on_initialize(current_block_number: T::BlockNumber) -> Weight
 		where
 			<T as frame_system::Config>::BlockNumber: From<u32>,
@@ -242,15 +274,13 @@
 			);
 
 			ensure!(
-				amount >= Into::<BalanceOf<T>>::into(100u128) * T::Nominal::get(),
+				amount >= <BalanceOf<T>>::from(100u128) * T::Nominal::get(),
 				ArithmeticError::Underflow
 			);
 
 			let balance =
 				<<T as Config>::Currency as Currency<T::AccountId>>::free_balance(&staker_id);
 
-			// ensure!(balance >= amount, ArithmeticError::Underflow);
-
 			<<T as Config>::Currency as Currency<T::AccountId>>::ensure_can_withdraw(
 				&staker_id,
 				amount,
@@ -325,7 +355,7 @@
 
 			<PendingUnstake<T>>::insert(block, pendings);
 
-			Self::unlock_balance_unchecked(&staker_id, total_staked);
+			Self::unlock_balance(&staker_id, total_staked)?;
 
 			<T::Currency as ReservableCurrency<T::AccountId>>::reserve(&staker_id, total_staked)?;
 
@@ -400,8 +430,9 @@
 			);
 
 			ensure!(
-				T::ContractHandler::sponsor(contract_id)?.ok_or(<Error<T>>::SponsorNotSet)?
-					== T::CrossAccountId::from_sub(Self::account_id()),
+				T::ContractHandler::sponsor(contract_id)?
+					.ok_or(<Error<T>>::SponsorNotSet)?
+					.as_sub() == &Self::account_id(),
 				<Error<T>>::NoPermission
 			);
 			T::ContractHandler::remove_contract_sponsor(contract_id)
@@ -469,77 +500,9 @@
 			// 					/ T::RecalculationInterval::get())
 			// 				.into() + 1,
 			// 				&mut income_acc,
-			// 			);
-			// 		}
-			// 	}
-			// }
-
-			// {
-			// 	let mut stakers_number = stakers_number.unwrap_or(20);
-			// 	let last_id = RefCell::new(None);
-			// 	let income_acc = RefCell::new(BalanceOf::<T>::default());
-			// 	let amount_acc = RefCell::new(BalanceOf::<T>::default());
-
-			// 	let flush_stake = || -> DispatchResult {
-			// 		if let Some(last_id) = &*last_id.borrow() {
-			// 			if !income_acc.borrow().is_zero() {
-			// 				<T::Currency as Currency<T::AccountId>>::transfer(
-			// 					&T::TreasuryAccountId::get(),
-			// 					last_id,
-			// 					*income_acc.borrow(),
-			// 					ExistenceRequirement::KeepAlive,
-			// 				)
-			// 				.and_then(|_| {
-			// 					Self::add_lock_balance(last_id, *income_acc.borrow());
-			// 					<TotalStaked<T>>::try_mutate(|staked| {
-			// 						staked
-			// 							.checked_add(&*income_acc.borrow())
-			// 							.ok_or(ArithmeticError::Overflow.into())
-			// 					})
-			// 				})?;
-
-			// 				Self::deposit_event(Event::StakingRecalculation(
-			// 					last_id.clone(),
-			// 					*amount_acc.borrow(),
-			// 					*income_acc.borrow(),
-			// 				));
-			// 			}
-
-			// 			*income_acc.borrow_mut() = BalanceOf::<T>::default();
-			// 			*amount_acc.borrow_mut() = BalanceOf::<T>::default();
-			// 		}
-			// 		Ok(())
-			// 	};
-
-			// 	while let Some((
-			// 		(current_id, staked_block),
-			// 		(amount, next_recalc_block_for_stake),
-			// 	)) = storage_iterator.next()
-			// 	{
-			// 		if stakers_number == 0 {
-			// 			NextCalculatedRecord::<T>::set(Some((current_id, staked_block)));
-			// 			break;
-			// 		}
-			// 		stakers_number -= 1;
-			// 		if last_id.borrow().as_ref() != Some(&current_id) {
-			// 			flush_stake()?;
-			// 		};
-			// 		*last_id.borrow_mut() = Some(current_id.clone());
-			// 		if current_recalc_block >= next_recalc_block_for_stake {
-			// 			*amount_acc.borrow_mut() += amount;
-			// 			Self::recalculate_and_insert_stake(
-			// 				&current_id,
-			// 				staked_block,
-			// 				next_recalc_block,
-			// 				amount,
-			// 				((current_recalc_block - next_recalc_block_for_stake)
-			// 					/ T::RecalculationInterval::get())
-			// 				.into() + 1,
-			// 				&mut *income_acc.borrow_mut(),
 			// 			);
 			// 		}
 			// 	}
-			// 	flush_stake()?;
 			// }
 
 			{
@@ -620,10 +583,20 @@
 		T::PalletId::get().into_account_truncating()
 	}
 
-	fn unlock_balance_unchecked(staker: &T::AccountId, amount: BalanceOf<T>) {
-		let mut locked_balance = Self::get_locked_balance(staker).map(|l| l.amount).unwrap();
-		locked_balance -= amount;
-		Self::set_lock_unchecked(staker, locked_balance);
+	fn unlock_balance(staker: &T::AccountId, amount: BalanceOf<T>) -> DispatchResult {
+		let locked_balance = Self::get_locked_balance(staker)
+			.map(|l| l.amount)
+			.ok_or(<Error<T>>::IncorrectLockedBalanceOperation)?;
+
+		// It is understood that we cannot unlock more funds than were locked by staking.
+		// Therefore, if implemented correctly, this error should not occur.
+		Self::set_lock_unchecked(
+			staker,
+			locked_balance
+				.checked_sub(&amount)
+				.ok_or(ArithmeticError::Underflow)?,
+		);
+		Ok(())
 	}
 
 	fn add_lock_balance(staker: &T::AccountId, amount: BalanceOf<T>) -> DispatchResult {
@@ -745,6 +718,9 @@
 where
 	<<T as Config>::Currency as Currency<T::AccountId>>::Balance: Sum,
 {
+	/// Since user funds are not transferred anywhere by staking, overflow protection is provided
+	/// at the level of the associated type `Balance` of `Currency` trait. In order to overflow,
+	/// the staker must have more funds on his account than the maximum set for `Balance` type.
 	pub fn cross_id_pending_unstake(staker: Option<T::CrossAccountId>) -> BalanceOf<T> {
 		staker.map_or(
 			PendingUnstake::<T>::iter_values()
modifiedpallets/unique/CHANGELOG.mddiffbeforeafterboth
--- a/pallets/unique/CHANGELOG.md
+++ b/pallets/unique/CHANGELOG.md
@@ -8,6 +8,8 @@
 
 ### Added
 
+-   Methods `force_set_sponsor` , `force_remove_collection_sponsor` to be able to administer sponsorships with other pallets. Added to implement `AppPromotion` pallet logic.
+
 ## [v0.1.3] 2022-08-16
 
 ### Other changes
modifiedtests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -16,14 +16,20 @@
 declare module '@polkadot/api-base/types/consts' {
   interface AugmentedConsts<ApiType extends ApiTypes> {
     appPromotion: {
+      /**
+       * Rate of return for interval in blocks defined in `RecalculationInterval`.
+       **/
       intervalIncome: Perbill & AugmentedConst<ApiType>;
+      /**
+       * Decimals for the `Currency`.
+       **/
       nominal: u128 & AugmentedConst<ApiType>;
       /**
        * The app's pallet id, used for deriving its sovereign account ID.
        **/
       palletId: FrameSupportPalletId & AugmentedConst<ApiType>;
       /**
-       * In relay blocks.
+       * In parachain blocks.
        **/
       pendingInterval: u32 & AugmentedConst<ApiType>;
       /**
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -13,23 +13,30 @@
   interface AugmentedErrors<ApiType extends ApiTypes> {
     appPromotion: {
       /**
-       * Error due to action requiring admin to be set
+       * Error due to action requiring admin to be set.
        **/
       AdminNotSet: AugmentedError<ApiType>;
       /**
-       * An error related to the fact that an invalid argument was passed to perform an action
+       * Errors caused by incorrect actions with a locked balance.
        **/
-      InvalidArgument: AugmentedError<ApiType>;
+      IncorrectLockedBalanceOperation: AugmentedError<ApiType>;
       /**
-       * No permission to perform an action
+       * No permission to perform an action.
        **/
       NoPermission: AugmentedError<ApiType>;
       /**
-       * Insufficient funds to perform an action
+       * Insufficient funds to perform an action.
        **/
       NotSufficientFunds: AugmentedError<ApiType>;
+      /**
+       * Occurs when a pending unstake cannot be added in this block. PENDING_LIMIT_PER_BLOCK` limits exceeded.
+       **/
       PendingForBlockOverflow: AugmentedError<ApiType>;
       /**
+       * The error is due to the fact that the collection/contract must already be sponsored in order to perform the action.
+       **/
+      SponsorNotSet: AugmentedError<ApiType>;
+      /**
        * Generic error
        **/
       [key: string]: AugmentedError<ApiType>;
modifiedtests/src/interfaces/augment-api-events.tsdiffbeforeafterboth
before · tests/src/interfaces/augment-api-events.ts
1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34// import type lookup before we augment - in some environments5// this is required to allow for ambient/previous definitions6import '@polkadot/api-base/types/events';78import type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types';9import type { Bytes, Null, Option, Result, U256, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';10import type { ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';12import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';1314export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;1516declare module '@polkadot/api-base/types/events' {17  interface AugmentedEvents<ApiType extends ApiTypes> {18    appPromotion: {19      SetAdmin: AugmentedEvent<ApiType, [AccountId32]>;20      Stake: AugmentedEvent<ApiType, [AccountId32, u128]>;21      StakingRecalculation: AugmentedEvent<ApiType, [AccountId32, u128, u128]>;22      Unstake: AugmentedEvent<ApiType, [AccountId32, u128]>;23      /**24       * Generic event25       **/26      [key: string]: AugmentedEvent<ApiType>;27    };28    balances: {29      /**30       * A balance was set by root.31       **/32      BalanceSet: AugmentedEvent<ApiType, [who: AccountId32, free: u128, reserved: u128], { who: AccountId32, free: u128, reserved: u128 }>;33      /**34       * Some amount was deposited (e.g. for transaction fees).35       **/36      Deposit: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;37      /**38       * An account was removed whose balance was non-zero but below ExistentialDeposit,39       * resulting in an outright loss.40       **/41      DustLost: AugmentedEvent<ApiType, [account: AccountId32, amount: u128], { account: AccountId32, amount: u128 }>;42      /**43       * An account was created with some free balance.44       **/45      Endowed: AugmentedEvent<ApiType, [account: AccountId32, freeBalance: u128], { account: AccountId32, freeBalance: u128 }>;46      /**47       * Some balance was reserved (moved from free to reserved).48       **/49      Reserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;50      /**51       * Some balance was moved from the reserve of the first account to the second account.52       * Final argument indicates the destination balance type.53       **/54      ReserveRepatriated: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u128, destinationStatus: FrameSupportTokensMiscBalanceStatus], { from: AccountId32, to: AccountId32, amount: u128, destinationStatus: FrameSupportTokensMiscBalanceStatus }>;55      /**56       * Some amount was removed from the account (e.g. for misbehavior).57       **/58      Slashed: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;59      /**60       * Transfer succeeded.61       **/62      Transfer: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u128], { from: AccountId32, to: AccountId32, amount: u128 }>;63      /**64       * Some balance was unreserved (moved from reserved to free).65       **/66      Unreserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;67      /**68       * Some amount was withdrawn from the account (e.g. for transaction fees).69       **/70      Withdraw: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;71      /**72       * Generic event73       **/74      [key: string]: AugmentedEvent<ApiType>;75    };76    common: {77      /**78       * Amount pieces of token owned by `sender` was approved for `spender`.79       **/80      Approved: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;81      /**82       * New collection was created83       **/84      CollectionCreated: AugmentedEvent<ApiType, [u32, u8, AccountId32]>;85      /**86       * New collection was destroyed87       **/88      CollectionDestroyed: AugmentedEvent<ApiType, [u32]>;89      /**90       * The property has been deleted.91       **/92      CollectionPropertyDeleted: AugmentedEvent<ApiType, [u32, Bytes]>;93      /**94       * The colletion property has been added or edited.95       **/96      CollectionPropertySet: AugmentedEvent<ApiType, [u32, Bytes]>;97      /**98       * New item was created.99       **/100      ItemCreated: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;101      /**102       * Collection item was burned.103       **/104      ItemDestroyed: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;105      /**106       * The token property permission of a collection has been set.107       **/108      PropertyPermissionSet: AugmentedEvent<ApiType, [u32, Bytes]>;109      /**110       * The token property has been deleted.111       **/112      TokenPropertyDeleted: AugmentedEvent<ApiType, [u32, u32, Bytes]>;113      /**114       * The token property has been added or edited.115       **/116      TokenPropertySet: AugmentedEvent<ApiType, [u32, u32, Bytes]>;117      /**118       * Item was transferred119       **/120      Transfer: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;121      /**122       * Generic event123       **/124      [key: string]: AugmentedEvent<ApiType>;125    };126    cumulusXcm: {127      /**128       * Downward message executed with the given outcome.129       * \[ id, outcome \]130       **/131      ExecutedDownward: AugmentedEvent<ApiType, [U8aFixed, XcmV2TraitsOutcome]>;132      /**133       * Downward message is invalid XCM.134       * \[ id \]135       **/136      InvalidFormat: AugmentedEvent<ApiType, [U8aFixed]>;137      /**138       * Downward message is unsupported version of XCM.139       * \[ id \]140       **/141      UnsupportedVersion: AugmentedEvent<ApiType, [U8aFixed]>;142      /**143       * Generic event144       **/145      [key: string]: AugmentedEvent<ApiType>;146    };147    dmpQueue: {148      /**149       * Downward message executed with the given outcome.150       **/151      ExecutedDownward: AugmentedEvent<ApiType, [messageId: U8aFixed, outcome: XcmV2TraitsOutcome], { messageId: U8aFixed, outcome: XcmV2TraitsOutcome }>;152      /**153       * Downward message is invalid XCM.154       **/155      InvalidFormat: AugmentedEvent<ApiType, [messageId: U8aFixed], { messageId: U8aFixed }>;156      /**157       * Downward message is overweight and was placed in the overweight queue.158       **/159      OverweightEnqueued: AugmentedEvent<ApiType, [messageId: U8aFixed, overweightIndex: u64, requiredWeight: u64], { messageId: U8aFixed, overweightIndex: u64, requiredWeight: u64 }>;160      /**161       * Downward message from the overweight queue was executed.162       **/163      OverweightServiced: AugmentedEvent<ApiType, [overweightIndex: u64, weightUsed: u64], { overweightIndex: u64, weightUsed: u64 }>;164      /**165       * Downward message is unsupported version of XCM.166       **/167      UnsupportedVersion: AugmentedEvent<ApiType, [messageId: U8aFixed], { messageId: U8aFixed }>;168      /**169       * The weight limit for handling downward messages was reached.170       **/171      WeightExhausted: AugmentedEvent<ApiType, [messageId: U8aFixed, remainingWeight: u64, requiredWeight: u64], { messageId: U8aFixed, remainingWeight: u64, requiredWeight: u64 }>;172      /**173       * Generic event174       **/175      [key: string]: AugmentedEvent<ApiType>;176    };177    ethereum: {178      /**179       * An ethereum transaction was successfully executed. [from, to/contract_address, transaction_hash, exit_reason]180       **/181      Executed: AugmentedEvent<ApiType, [H160, H160, H256, EvmCoreErrorExitReason]>;182      /**183       * Generic event184       **/185      [key: string]: AugmentedEvent<ApiType>;186    };187    evm: {188      /**189       * A deposit has been made at a given address. \[sender, address, value\]190       **/191      BalanceDeposit: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;192      /**193       * A withdrawal has been made from a given address. \[sender, address, value\]194       **/195      BalanceWithdraw: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;196      /**197       * A contract has been created at given \[address\].198       **/199      Created: AugmentedEvent<ApiType, [H160]>;200      /**201       * A \[contract\] was attempted to be created, but the execution failed.202       **/203      CreatedFailed: AugmentedEvent<ApiType, [H160]>;204      /**205       * A \[contract\] has been executed successfully with states applied.206       **/207      Executed: AugmentedEvent<ApiType, [H160]>;208      /**209       * A \[contract\] has been executed with errors. States are reverted with only gas fees applied.210       **/211      ExecutedFailed: AugmentedEvent<ApiType, [H160]>;212      /**213       * Ethereum events from contracts.214       **/215      Log: AugmentedEvent<ApiType, [EthereumLog]>;216      /**217       * Generic event218       **/219      [key: string]: AugmentedEvent<ApiType>;220    };221    evmContractHelpers: {222      /**223       * Collection sponsor was removed.224       **/225      ContractSponsorRemoved: AugmentedEvent<ApiType, [H160]>;226      /**227       * Contract sponsor was set.228       **/229      ContractSponsorSet: AugmentedEvent<ApiType, [H160, AccountId32]>;230      /**231       * New sponsor was confirm.232       **/233      ContractSponsorshipConfirmed: AugmentedEvent<ApiType, [H160, AccountId32]>;234      /**235       * Generic event236       **/237      [key: string]: AugmentedEvent<ApiType>;238    };239    parachainSystem: {240      /**241       * Downward messages were processed using the given weight.242       **/243      DownwardMessagesProcessed: AugmentedEvent<ApiType, [weightUsed: u64, dmqHead: H256], { weightUsed: u64, dmqHead: H256 }>;244      /**245       * Some downward messages have been received and will be processed.246       **/247      DownwardMessagesReceived: AugmentedEvent<ApiType, [count: u32], { count: u32 }>;248      /**249       * An upgrade has been authorized.250       **/251      UpgradeAuthorized: AugmentedEvent<ApiType, [codeHash: H256], { codeHash: H256 }>;252      /**253       * The validation function was applied as of the contained relay chain block number.254       **/255      ValidationFunctionApplied: AugmentedEvent<ApiType, [relayChainBlockNum: u32], { relayChainBlockNum: u32 }>;256      /**257       * The relay-chain aborted the upgrade process.258       **/259      ValidationFunctionDiscarded: AugmentedEvent<ApiType, []>;260      /**261       * The validation function has been scheduled to apply.262       **/263      ValidationFunctionStored: AugmentedEvent<ApiType, []>;264      /**265       * Generic event266       **/267      [key: string]: AugmentedEvent<ApiType>;268    };269    polkadotXcm: {270      /**271       * Some assets have been placed in an asset trap.272       * 273       * \[ hash, origin, assets \]274       **/275      AssetsTrapped: AugmentedEvent<ApiType, [H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;276      /**277       * Execution of an XCM message was attempted.278       * 279       * \[ outcome \]280       **/281      Attempted: AugmentedEvent<ApiType, [XcmV2TraitsOutcome]>;282      /**283       * Expected query response has been received but the origin location of the response does284       * not match that expected. The query remains registered for a later, valid, response to285       * be received and acted upon.286       * 287       * \[ origin location, id, expected location \]288       **/289      InvalidResponder: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;290      /**291       * Expected query response has been received but the expected origin location placed in292       * storage by this runtime previously cannot be decoded. The query remains registered.293       * 294       * This is unexpected (since a location placed in storage in a previously executing295       * runtime should be readable prior to query timeout) and dangerous since the possibly296       * valid response will be dropped. Manual governance intervention is probably going to be297       * needed.298       * 299       * \[ origin location, id \]300       **/301      InvalidResponderVersion: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64]>;302      /**303       * Query response has been received and query is removed. The registered notification has304       * been dispatched and executed successfully.305       * 306       * \[ id, pallet index, call index \]307       **/308      Notified: AugmentedEvent<ApiType, [u64, u8, u8]>;309      /**310       * Query response has been received and query is removed. The dispatch was unable to be311       * decoded into a `Call`; this might be due to dispatch function having a signature which312       * is not `(origin, QueryId, Response)`.313       * 314       * \[ id, pallet index, call index \]315       **/316      NotifyDecodeFailed: AugmentedEvent<ApiType, [u64, u8, u8]>;317      /**318       * Query response has been received and query is removed. There was a general error with319       * dispatching the notification call.320       * 321       * \[ id, pallet index, call index \]322       **/323      NotifyDispatchError: AugmentedEvent<ApiType, [u64, u8, u8]>;324      /**325       * Query response has been received and query is removed. The registered notification could326       * not be dispatched because the dispatch weight is greater than the maximum weight327       * originally budgeted by this runtime for the query result.328       * 329       * \[ id, pallet index, call index, actual weight, max budgeted weight \]330       **/331      NotifyOverweight: AugmentedEvent<ApiType, [u64, u8, u8, u64, u64]>;332      /**333       * A given location which had a version change subscription was dropped owing to an error334       * migrating the location to our new XCM format.335       * 336       * \[ location, query ID \]337       **/338      NotifyTargetMigrationFail: AugmentedEvent<ApiType, [XcmVersionedMultiLocation, u64]>;339      /**340       * A given location which had a version change subscription was dropped owing to an error341       * sending the notification to it.342       * 343       * \[ location, query ID, error \]344       **/345      NotifyTargetSendFail: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64, XcmV2TraitsError]>;346      /**347       * Query response has been received and is ready for taking with `take_response`. There is348       * no registered notification call.349       * 350       * \[ id, response \]351       **/352      ResponseReady: AugmentedEvent<ApiType, [u64, XcmV2Response]>;353      /**354       * Received query response has been read and removed.355       * 356       * \[ id \]357       **/358      ResponseTaken: AugmentedEvent<ApiType, [u64]>;359      /**360       * A XCM message was sent.361       * 362       * \[ origin, destination, message \]363       **/364      Sent: AugmentedEvent<ApiType, [XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;365      /**366       * The supported version of a location has been changed. This might be through an367       * automatic notification or a manual intervention.368       * 369       * \[ location, XCM version \]370       **/371      SupportedVersionChanged: AugmentedEvent<ApiType, [XcmV1MultiLocation, u32]>;372      /**373       * Query response received which does not match a registered query. This may be because a374       * matching query was never registered, it may be because it is a duplicate response, or375       * because the query timed out.376       * 377       * \[ origin location, id \]378       **/379      UnexpectedResponse: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64]>;380      /**381       * An XCM version change notification message has been attempted to be sent.382       * 383       * \[ destination, result \]384       **/385      VersionChangeNotified: AugmentedEvent<ApiType, [XcmV1MultiLocation, u32]>;386      /**387       * Generic event388       **/389      [key: string]: AugmentedEvent<ApiType>;390    };391    rmrkCore: {392      CollectionCreated: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;393      CollectionDestroyed: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;394      CollectionLocked: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;395      IssuerChanged: AugmentedEvent<ApiType, [oldIssuer: AccountId32, newIssuer: AccountId32, collectionId: u32], { oldIssuer: AccountId32, newIssuer: AccountId32, collectionId: u32 }>;396      NFTAccepted: AugmentedEvent<ApiType, [sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32], { sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32 }>;397      NFTBurned: AugmentedEvent<ApiType, [owner: AccountId32, nftId: u32], { owner: AccountId32, nftId: u32 }>;398      NftMinted: AugmentedEvent<ApiType, [owner: AccountId32, collectionId: u32, nftId: u32], { owner: AccountId32, collectionId: u32, nftId: u32 }>;399      NFTRejected: AugmentedEvent<ApiType, [sender: AccountId32, collectionId: u32, nftId: u32], { sender: AccountId32, collectionId: u32, nftId: u32 }>;400      NFTSent: AugmentedEvent<ApiType, [sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32, approvalRequired: bool], { sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32, approvalRequired: bool }>;401      PrioritySet: AugmentedEvent<ApiType, [collectionId: u32, nftId: u32], { collectionId: u32, nftId: u32 }>;402      PropertySet: AugmentedEvent<ApiType, [collectionId: u32, maybeNftId: Option<u32>, key: Bytes, value: Bytes], { collectionId: u32, maybeNftId: Option<u32>, key: Bytes, value: Bytes }>;403      ResourceAccepted: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;404      ResourceAdded: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;405      ResourceRemoval: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;406      ResourceRemovalAccepted: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;407      /**408       * Generic event409       **/410      [key: string]: AugmentedEvent<ApiType>;411    };412    rmrkEquip: {413      BaseCreated: AugmentedEvent<ApiType, [issuer: AccountId32, baseId: u32], { issuer: AccountId32, baseId: u32 }>;414      EquippablesUpdated: AugmentedEvent<ApiType, [baseId: u32, slotId: u32], { baseId: u32, slotId: u32 }>;415      /**416       * Generic event417       **/418      [key: string]: AugmentedEvent<ApiType>;419    };420    scheduler: {421      /**422       * The call for the provided hash was not found so the task has been aborted.423       **/424      CallLookupFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError }>;425      /**426       * Canceled some task.427       **/428      Canceled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;429      /**430       * Dispatched some task.431       **/432      Dispatched: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError> }>;433      /**434       * Scheduled some task.435       **/436      Scheduled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;437      /**438       * Generic event439       **/440      [key: string]: AugmentedEvent<ApiType>;441    };442    structure: {443      /**444       * Executed call on behalf of the token.445       **/446      Executed: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;447      /**448       * Generic event449       **/450      [key: string]: AugmentedEvent<ApiType>;451    };452    sudo: {453      /**454       * The \[sudoer\] just switched identity; the old key is supplied if one existed.455       **/456      KeyChanged: AugmentedEvent<ApiType, [oldSudoer: Option<AccountId32>], { oldSudoer: Option<AccountId32> }>;457      /**458       * A sudo just took place. \[result\]459       **/460      Sudid: AugmentedEvent<ApiType, [sudoResult: Result<Null, SpRuntimeDispatchError>], { sudoResult: Result<Null, SpRuntimeDispatchError> }>;461      /**462       * A sudo just took place. \[result\]463       **/464      SudoAsDone: AugmentedEvent<ApiType, [sudoResult: Result<Null, SpRuntimeDispatchError>], { sudoResult: Result<Null, SpRuntimeDispatchError> }>;465      /**466       * Generic event467       **/468      [key: string]: AugmentedEvent<ApiType>;469    };470    system: {471      /**472       * `:code` was updated.473       **/474      CodeUpdated: AugmentedEvent<ApiType, []>;475      /**476       * An extrinsic failed.477       **/478      ExtrinsicFailed: AugmentedEvent<ApiType, [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportWeightsDispatchInfo], { dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportWeightsDispatchInfo }>;479      /**480       * An extrinsic completed successfully.481       **/482      ExtrinsicSuccess: AugmentedEvent<ApiType, [dispatchInfo: FrameSupportWeightsDispatchInfo], { dispatchInfo: FrameSupportWeightsDispatchInfo }>;483      /**484       * An account was reaped.485       **/486      KilledAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;487      /**488       * A new account was created.489       **/490      NewAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;491      /**492       * On on-chain remark happened.493       **/494      Remarked: AugmentedEvent<ApiType, [sender: AccountId32, hash_: H256], { sender: AccountId32, hash_: H256 }>;495      /**496       * Generic event497       **/498      [key: string]: AugmentedEvent<ApiType>;499    };500    transactionPayment: {501      /**502       * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,503       * has been paid by `who`.504       **/505      TransactionFeePaid: AugmentedEvent<ApiType, [who: AccountId32, actualFee: u128, tip: u128], { who: AccountId32, actualFee: u128, tip: u128 }>;506      /**507       * Generic event508       **/509      [key: string]: AugmentedEvent<ApiType>;510    };511    treasury: {512      /**513       * Some funds have been allocated.514       **/515      Awarded: AugmentedEvent<ApiType, [proposalIndex: u32, award: u128, account: AccountId32], { proposalIndex: u32, award: u128, account: AccountId32 }>;516      /**517       * Some of our funds have been burnt.518       **/519      Burnt: AugmentedEvent<ApiType, [burntFunds: u128], { burntFunds: u128 }>;520      /**521       * Some funds have been deposited.522       **/523      Deposit: AugmentedEvent<ApiType, [value: u128], { value: u128 }>;524      /**525       * New proposal.526       **/527      Proposed: AugmentedEvent<ApiType, [proposalIndex: u32], { proposalIndex: u32 }>;528      /**529       * A proposal was rejected; funds were slashed.530       **/531      Rejected: AugmentedEvent<ApiType, [proposalIndex: u32, slashed: u128], { proposalIndex: u32, slashed: u128 }>;532      /**533       * Spending has finished; this is the amount that rolls over until next spend.534       **/535      Rollover: AugmentedEvent<ApiType, [rolloverBalance: u128], { rolloverBalance: u128 }>;536      /**537       * A new spend proposal has been approved.538       **/539      SpendApproved: AugmentedEvent<ApiType, [proposalIndex: u32, amount: u128, beneficiary: AccountId32], { proposalIndex: u32, amount: u128, beneficiary: AccountId32 }>;540      /**541       * We have ended a spend period and will now allocate funds.542       **/543      Spending: AugmentedEvent<ApiType, [budgetRemaining: u128], { budgetRemaining: u128 }>;544      /**545       * Generic event546       **/547      [key: string]: AugmentedEvent<ApiType>;548    };549    unique: {550      /**551       * Address was added to the allow list552       * 553       * # Arguments554       * * collection_id: ID of the affected collection.555       * * user: Address of the added account.556       **/557      AllowListAddressAdded: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;558      /**559       * Address was removed from the allow list560       * 561       * # Arguments562       * * collection_id: ID of the affected collection.563       * * user: Address of the removed account.564       **/565      AllowListAddressRemoved: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;566      /**567       * Collection admin was added568       * 569       * # Arguments570       * * collection_id: ID of the affected collection.571       * * admin: Admin address.572       **/573      CollectionAdminAdded: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;574      /**575       * Collection admin was removed576       * 577       * # Arguments578       * * collection_id: ID of the affected collection.579       * * admin: Removed admin address.580       **/581      CollectionAdminRemoved: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;582      /**583       * Collection limits were set584       * 585       * # Arguments586       * * collection_id: ID of the affected collection.587       **/588      CollectionLimitSet: AugmentedEvent<ApiType, [u32]>;589      /**590       * Collection owned was changed591       * 592       * # Arguments593       * * collection_id: ID of the affected collection.594       * * owner: New owner address.595       **/596      CollectionOwnedChanged: AugmentedEvent<ApiType, [u32, AccountId32]>;597      /**598       * Collection permissions were set599       * 600       * # Arguments601       * * collection_id: ID of the affected collection.602       **/603      CollectionPermissionSet: AugmentedEvent<ApiType, [u32]>;604      /**605       * Collection sponsor was removed606       * 607       * # Arguments608       * * collection_id: ID of the affected collection.609       **/610      CollectionSponsorRemoved: AugmentedEvent<ApiType, [u32]>;611      /**612       * Collection sponsor was set613       * 614       * # Arguments615       * * collection_id: ID of the affected collection.616       * * owner: New sponsor address.617       **/618      CollectionSponsorSet: AugmentedEvent<ApiType, [u32, AccountId32]>;619      /**620       * New sponsor was confirm621       * 622       * # Arguments623       * * collection_id: ID of the affected collection.624       * * sponsor: New sponsor address.625       **/626      SponsorshipConfirmed: AugmentedEvent<ApiType, [u32, AccountId32]>;627      /**628       * Generic event629       **/630      [key: string]: AugmentedEvent<ApiType>;631    };632    vesting: {633      /**634       * Claimed vesting.635       **/636      Claimed: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;637      /**638       * Added new vesting schedule.639       **/640      VestingScheduleAdded: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, vestingSchedule: OrmlVestingVestingSchedule], { from: AccountId32, to: AccountId32, vestingSchedule: OrmlVestingVestingSchedule }>;641      /**642       * Updated vesting schedules.643       **/644      VestingSchedulesUpdated: AugmentedEvent<ApiType, [who: AccountId32], { who: AccountId32 }>;645      /**646       * Generic event647       **/648      [key: string]: AugmentedEvent<ApiType>;649    };650    xcmpQueue: {651      /**652       * Bad XCM format used.653       **/654      BadFormat: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;655      /**656       * Bad XCM version used.657       **/658      BadVersion: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;659      /**660       * Some XCM failed.661       **/662      Fail: AugmentedEvent<ApiType, [messageHash: Option<H256>, error: XcmV2TraitsError, weight: u64], { messageHash: Option<H256>, error: XcmV2TraitsError, weight: u64 }>;663      /**664       * An XCM exceeded the individual message weight budget.665       **/666      OverweightEnqueued: AugmentedEvent<ApiType, [sender: u32, sentAt: u32, index: u64, required: u64], { sender: u32, sentAt: u32, index: u64, required: u64 }>;667      /**668       * An XCM from the overweight queue was executed with the given actual weight used.669       **/670      OverweightServiced: AugmentedEvent<ApiType, [index: u64, used: u64], { index: u64, used: u64 }>;671      /**672       * Some XCM was executed ok.673       **/674      Success: AugmentedEvent<ApiType, [messageHash: Option<H256>, weight: u64], { messageHash: Option<H256>, weight: u64 }>;675      /**676       * An upward message was sent to the relay chain.677       **/678      UpwardMessageSent: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;679      /**680       * An HRMP message was sent to a sibling parachain.681       **/682      XcmpMessageSent: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;683      /**684       * Generic event685       **/686      [key: string]: AugmentedEvent<ApiType>;687    };688  } // AugmentedEvents689} // declare module
after · tests/src/interfaces/augment-api-events.ts
1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34// import type lookup before we augment - in some environments5// this is required to allow for ambient/previous definitions6import '@polkadot/api-base/types/events';78import type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types';9import type { Bytes, Null, Option, Result, U256, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';10import type { ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';12import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';1314export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;1516declare module '@polkadot/api-base/types/events' {17  interface AugmentedEvents<ApiType extends ApiTypes> {18    appPromotion: {19      /**20       * The admin was set21       * 22       * # Arguments23       * * AccountId: ID of the admin24       **/25      SetAdmin: AugmentedEvent<ApiType, [AccountId32]>;26      /**27       * Staking was performed28       * 29       * # Arguments30       * * AccountId: ID of the staker31       * * Balance : staking amount32       **/33      Stake: AugmentedEvent<ApiType, [AccountId32, u128]>;34      /**35       * Staking recalculation was performed36       * 37       * # Arguments38       * * AccountId: ID of the staker.39       * * Balance : recalculation base40       * * Balance : total income41       **/42      StakingRecalculation: AugmentedEvent<ApiType, [AccountId32, u128, u128]>;43      /**44       * Unstaking was performed45       * 46       * # Arguments47       * * AccountId: ID of the staker48       * * Balance : unstaking amount49       **/50      Unstake: AugmentedEvent<ApiType, [AccountId32, u128]>;51      /**52       * Generic event53       **/54      [key: string]: AugmentedEvent<ApiType>;55    };56    balances: {57      /**58       * A balance was set by root.59       **/60      BalanceSet: AugmentedEvent<ApiType, [who: AccountId32, free: u128, reserved: u128], { who: AccountId32, free: u128, reserved: u128 }>;61      /**62       * Some amount was deposited (e.g. for transaction fees).63       **/64      Deposit: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;65      /**66       * An account was removed whose balance was non-zero but below ExistentialDeposit,67       * resulting in an outright loss.68       **/69      DustLost: AugmentedEvent<ApiType, [account: AccountId32, amount: u128], { account: AccountId32, amount: u128 }>;70      /**71       * An account was created with some free balance.72       **/73      Endowed: AugmentedEvent<ApiType, [account: AccountId32, freeBalance: u128], { account: AccountId32, freeBalance: u128 }>;74      /**75       * Some balance was reserved (moved from free to reserved).76       **/77      Reserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;78      /**79       * Some balance was moved from the reserve of the first account to the second account.80       * Final argument indicates the destination balance type.81       **/82      ReserveRepatriated: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u128, destinationStatus: FrameSupportTokensMiscBalanceStatus], { from: AccountId32, to: AccountId32, amount: u128, destinationStatus: FrameSupportTokensMiscBalanceStatus }>;83      /**84       * Some amount was removed from the account (e.g. for misbehavior).85       **/86      Slashed: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;87      /**88       * Transfer succeeded.89       **/90      Transfer: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u128], { from: AccountId32, to: AccountId32, amount: u128 }>;91      /**92       * Some balance was unreserved (moved from reserved to free).93       **/94      Unreserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;95      /**96       * Some amount was withdrawn from the account (e.g. for transaction fees).97       **/98      Withdraw: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;99      /**100       * Generic event101       **/102      [key: string]: AugmentedEvent<ApiType>;103    };104    common: {105      /**106       * Amount pieces of token owned by `sender` was approved for `spender`.107       **/108      Approved: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;109      /**110       * New collection was created111       **/112      CollectionCreated: AugmentedEvent<ApiType, [u32, u8, AccountId32]>;113      /**114       * New collection was destroyed115       **/116      CollectionDestroyed: AugmentedEvent<ApiType, [u32]>;117      /**118       * The property has been deleted.119       **/120      CollectionPropertyDeleted: AugmentedEvent<ApiType, [u32, Bytes]>;121      /**122       * The colletion property has been added or edited.123       **/124      CollectionPropertySet: AugmentedEvent<ApiType, [u32, Bytes]>;125      /**126       * New item was created.127       **/128      ItemCreated: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;129      /**130       * Collection item was burned.131       **/132      ItemDestroyed: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;133      /**134       * The token property permission of a collection has been set.135       **/136      PropertyPermissionSet: AugmentedEvent<ApiType, [u32, Bytes]>;137      /**138       * The token property has been deleted.139       **/140      TokenPropertyDeleted: AugmentedEvent<ApiType, [u32, u32, Bytes]>;141      /**142       * The token property has been added or edited.143       **/144      TokenPropertySet: AugmentedEvent<ApiType, [u32, u32, Bytes]>;145      /**146       * Item was transferred147       **/148      Transfer: AugmentedEvent<ApiType, [u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;149      /**150       * Generic event151       **/152      [key: string]: AugmentedEvent<ApiType>;153    };154    cumulusXcm: {155      /**156       * Downward message executed with the given outcome.157       * \[ id, outcome \]158       **/159      ExecutedDownward: AugmentedEvent<ApiType, [U8aFixed, XcmV2TraitsOutcome]>;160      /**161       * Downward message is invalid XCM.162       * \[ id \]163       **/164      InvalidFormat: AugmentedEvent<ApiType, [U8aFixed]>;165      /**166       * Downward message is unsupported version of XCM.167       * \[ id \]168       **/169      UnsupportedVersion: AugmentedEvent<ApiType, [U8aFixed]>;170      /**171       * Generic event172       **/173      [key: string]: AugmentedEvent<ApiType>;174    };175    dmpQueue: {176      /**177       * Downward message executed with the given outcome.178       **/179      ExecutedDownward: AugmentedEvent<ApiType, [messageId: U8aFixed, outcome: XcmV2TraitsOutcome], { messageId: U8aFixed, outcome: XcmV2TraitsOutcome }>;180      /**181       * Downward message is invalid XCM.182       **/183      InvalidFormat: AugmentedEvent<ApiType, [messageId: U8aFixed], { messageId: U8aFixed }>;184      /**185       * Downward message is overweight and was placed in the overweight queue.186       **/187      OverweightEnqueued: AugmentedEvent<ApiType, [messageId: U8aFixed, overweightIndex: u64, requiredWeight: u64], { messageId: U8aFixed, overweightIndex: u64, requiredWeight: u64 }>;188      /**189       * Downward message from the overweight queue was executed.190       **/191      OverweightServiced: AugmentedEvent<ApiType, [overweightIndex: u64, weightUsed: u64], { overweightIndex: u64, weightUsed: u64 }>;192      /**193       * Downward message is unsupported version of XCM.194       **/195      UnsupportedVersion: AugmentedEvent<ApiType, [messageId: U8aFixed], { messageId: U8aFixed }>;196      /**197       * The weight limit for handling downward messages was reached.198       **/199      WeightExhausted: AugmentedEvent<ApiType, [messageId: U8aFixed, remainingWeight: u64, requiredWeight: u64], { messageId: U8aFixed, remainingWeight: u64, requiredWeight: u64 }>;200      /**201       * Generic event202       **/203      [key: string]: AugmentedEvent<ApiType>;204    };205    ethereum: {206      /**207       * An ethereum transaction was successfully executed. [from, to/contract_address, transaction_hash, exit_reason]208       **/209      Executed: AugmentedEvent<ApiType, [H160, H160, H256, EvmCoreErrorExitReason]>;210      /**211       * Generic event212       **/213      [key: string]: AugmentedEvent<ApiType>;214    };215    evm: {216      /**217       * A deposit has been made at a given address. \[sender, address, value\]218       **/219      BalanceDeposit: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;220      /**221       * A withdrawal has been made from a given address. \[sender, address, value\]222       **/223      BalanceWithdraw: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;224      /**225       * A contract has been created at given \[address\].226       **/227      Created: AugmentedEvent<ApiType, [H160]>;228      /**229       * A \[contract\] was attempted to be created, but the execution failed.230       **/231      CreatedFailed: AugmentedEvent<ApiType, [H160]>;232      /**233       * A \[contract\] has been executed successfully with states applied.234       **/235      Executed: AugmentedEvent<ApiType, [H160]>;236      /**237       * A \[contract\] has been executed with errors. States are reverted with only gas fees applied.238       **/239      ExecutedFailed: AugmentedEvent<ApiType, [H160]>;240      /**241       * Ethereum events from contracts.242       **/243      Log: AugmentedEvent<ApiType, [EthereumLog]>;244      /**245       * Generic event246       **/247      [key: string]: AugmentedEvent<ApiType>;248    };249    evmContractHelpers: {250      /**251       * Collection sponsor was removed.252       **/253      ContractSponsorRemoved: AugmentedEvent<ApiType, [H160]>;254      /**255       * Contract sponsor was set.256       **/257      ContractSponsorSet: AugmentedEvent<ApiType, [H160, AccountId32]>;258      /**259       * New sponsor was confirm.260       **/261      ContractSponsorshipConfirmed: AugmentedEvent<ApiType, [H160, AccountId32]>;262      /**263       * Generic event264       **/265      [key: string]: AugmentedEvent<ApiType>;266    };267    parachainSystem: {268      /**269       * Downward messages were processed using the given weight.270       **/271      DownwardMessagesProcessed: AugmentedEvent<ApiType, [weightUsed: u64, dmqHead: H256], { weightUsed: u64, dmqHead: H256 }>;272      /**273       * Some downward messages have been received and will be processed.274       **/275      DownwardMessagesReceived: AugmentedEvent<ApiType, [count: u32], { count: u32 }>;276      /**277       * An upgrade has been authorized.278       **/279      UpgradeAuthorized: AugmentedEvent<ApiType, [codeHash: H256], { codeHash: H256 }>;280      /**281       * The validation function was applied as of the contained relay chain block number.282       **/283      ValidationFunctionApplied: AugmentedEvent<ApiType, [relayChainBlockNum: u32], { relayChainBlockNum: u32 }>;284      /**285       * The relay-chain aborted the upgrade process.286       **/287      ValidationFunctionDiscarded: AugmentedEvent<ApiType, []>;288      /**289       * The validation function has been scheduled to apply.290       **/291      ValidationFunctionStored: AugmentedEvent<ApiType, []>;292      /**293       * Generic event294       **/295      [key: string]: AugmentedEvent<ApiType>;296    };297    polkadotXcm: {298      /**299       * Some assets have been placed in an asset trap.300       * 301       * \[ hash, origin, assets \]302       **/303      AssetsTrapped: AugmentedEvent<ApiType, [H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;304      /**305       * Execution of an XCM message was attempted.306       * 307       * \[ outcome \]308       **/309      Attempted: AugmentedEvent<ApiType, [XcmV2TraitsOutcome]>;310      /**311       * Expected query response has been received but the origin location of the response does312       * not match that expected. The query remains registered for a later, valid, response to313       * be received and acted upon.314       * 315       * \[ origin location, id, expected location \]316       **/317      InvalidResponder: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;318      /**319       * Expected query response has been received but the expected origin location placed in320       * storage by this runtime previously cannot be decoded. The query remains registered.321       * 322       * This is unexpected (since a location placed in storage in a previously executing323       * runtime should be readable prior to query timeout) and dangerous since the possibly324       * valid response will be dropped. Manual governance intervention is probably going to be325       * needed.326       * 327       * \[ origin location, id \]328       **/329      InvalidResponderVersion: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64]>;330      /**331       * Query response has been received and query is removed. The registered notification has332       * been dispatched and executed successfully.333       * 334       * \[ id, pallet index, call index \]335       **/336      Notified: AugmentedEvent<ApiType, [u64, u8, u8]>;337      /**338       * Query response has been received and query is removed. The dispatch was unable to be339       * decoded into a `Call`; this might be due to dispatch function having a signature which340       * is not `(origin, QueryId, Response)`.341       * 342       * \[ id, pallet index, call index \]343       **/344      NotifyDecodeFailed: AugmentedEvent<ApiType, [u64, u8, u8]>;345      /**346       * Query response has been received and query is removed. There was a general error with347       * dispatching the notification call.348       * 349       * \[ id, pallet index, call index \]350       **/351      NotifyDispatchError: AugmentedEvent<ApiType, [u64, u8, u8]>;352      /**353       * Query response has been received and query is removed. The registered notification could354       * not be dispatched because the dispatch weight is greater than the maximum weight355       * originally budgeted by this runtime for the query result.356       * 357       * \[ id, pallet index, call index, actual weight, max budgeted weight \]358       **/359      NotifyOverweight: AugmentedEvent<ApiType, [u64, u8, u8, u64, u64]>;360      /**361       * A given location which had a version change subscription was dropped owing to an error362       * migrating the location to our new XCM format.363       * 364       * \[ location, query ID \]365       **/366      NotifyTargetMigrationFail: AugmentedEvent<ApiType, [XcmVersionedMultiLocation, u64]>;367      /**368       * A given location which had a version change subscription was dropped owing to an error369       * sending the notification to it.370       * 371       * \[ location, query ID, error \]372       **/373      NotifyTargetSendFail: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64, XcmV2TraitsError]>;374      /**375       * Query response has been received and is ready for taking with `take_response`. There is376       * no registered notification call.377       * 378       * \[ id, response \]379       **/380      ResponseReady: AugmentedEvent<ApiType, [u64, XcmV2Response]>;381      /**382       * Received query response has been read and removed.383       * 384       * \[ id \]385       **/386      ResponseTaken: AugmentedEvent<ApiType, [u64]>;387      /**388       * A XCM message was sent.389       * 390       * \[ origin, destination, message \]391       **/392      Sent: AugmentedEvent<ApiType, [XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;393      /**394       * The supported version of a location has been changed. This might be through an395       * automatic notification or a manual intervention.396       * 397       * \[ location, XCM version \]398       **/399      SupportedVersionChanged: AugmentedEvent<ApiType, [XcmV1MultiLocation, u32]>;400      /**401       * Query response received which does not match a registered query. This may be because a402       * matching query was never registered, it may be because it is a duplicate response, or403       * because the query timed out.404       * 405       * \[ origin location, id \]406       **/407      UnexpectedResponse: AugmentedEvent<ApiType, [XcmV1MultiLocation, u64]>;408      /**409       * An XCM version change notification message has been attempted to be sent.410       * 411       * \[ destination, result \]412       **/413      VersionChangeNotified: AugmentedEvent<ApiType, [XcmV1MultiLocation, u32]>;414      /**415       * Generic event416       **/417      [key: string]: AugmentedEvent<ApiType>;418    };419    rmrkCore: {420      CollectionCreated: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;421      CollectionDestroyed: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;422      CollectionLocked: AugmentedEvent<ApiType, [issuer: AccountId32, collectionId: u32], { issuer: AccountId32, collectionId: u32 }>;423      IssuerChanged: AugmentedEvent<ApiType, [oldIssuer: AccountId32, newIssuer: AccountId32, collectionId: u32], { oldIssuer: AccountId32, newIssuer: AccountId32, collectionId: u32 }>;424      NFTAccepted: AugmentedEvent<ApiType, [sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32], { sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32 }>;425      NFTBurned: AugmentedEvent<ApiType, [owner: AccountId32, nftId: u32], { owner: AccountId32, nftId: u32 }>;426      NftMinted: AugmentedEvent<ApiType, [owner: AccountId32, collectionId: u32, nftId: u32], { owner: AccountId32, collectionId: u32, nftId: u32 }>;427      NFTRejected: AugmentedEvent<ApiType, [sender: AccountId32, collectionId: u32, nftId: u32], { sender: AccountId32, collectionId: u32, nftId: u32 }>;428      NFTSent: AugmentedEvent<ApiType, [sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32, approvalRequired: bool], { sender: AccountId32, recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple, collectionId: u32, nftId: u32, approvalRequired: bool }>;429      PrioritySet: AugmentedEvent<ApiType, [collectionId: u32, nftId: u32], { collectionId: u32, nftId: u32 }>;430      PropertySet: AugmentedEvent<ApiType, [collectionId: u32, maybeNftId: Option<u32>, key: Bytes, value: Bytes], { collectionId: u32, maybeNftId: Option<u32>, key: Bytes, value: Bytes }>;431      ResourceAccepted: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;432      ResourceAdded: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;433      ResourceRemoval: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;434      ResourceRemovalAccepted: AugmentedEvent<ApiType, [nftId: u32, resourceId: u32], { nftId: u32, resourceId: u32 }>;435      /**436       * Generic event437       **/438      [key: string]: AugmentedEvent<ApiType>;439    };440    rmrkEquip: {441      BaseCreated: AugmentedEvent<ApiType, [issuer: AccountId32, baseId: u32], { issuer: AccountId32, baseId: u32 }>;442      EquippablesUpdated: AugmentedEvent<ApiType, [baseId: u32, slotId: u32], { baseId: u32, slotId: u32 }>;443      /**444       * Generic event445       **/446      [key: string]: AugmentedEvent<ApiType>;447    };448    scheduler: {449      /**450       * The call for the provided hash was not found so the task has been aborted.451       **/452      CallLookupFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError }>;453      /**454       * Canceled some task.455       **/456      Canceled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;457      /**458       * Dispatched some task.459       **/460      Dispatched: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError> }>;461      /**462       * Scheduled some task.463       **/464      Scheduled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;465      /**466       * Generic event467       **/468      [key: string]: AugmentedEvent<ApiType>;469    };470    structure: {471      /**472       * Executed call on behalf of the token.473       **/474      Executed: AugmentedEvent<ApiType, [Result<Null, SpRuntimeDispatchError>]>;475      /**476       * Generic event477       **/478      [key: string]: AugmentedEvent<ApiType>;479    };480    sudo: {481      /**482       * The \[sudoer\] just switched identity; the old key is supplied if one existed.483       **/484      KeyChanged: AugmentedEvent<ApiType, [oldSudoer: Option<AccountId32>], { oldSudoer: Option<AccountId32> }>;485      /**486       * A sudo just took place. \[result\]487       **/488      Sudid: AugmentedEvent<ApiType, [sudoResult: Result<Null, SpRuntimeDispatchError>], { sudoResult: Result<Null, SpRuntimeDispatchError> }>;489      /**490       * A sudo just took place. \[result\]491       **/492      SudoAsDone: AugmentedEvent<ApiType, [sudoResult: Result<Null, SpRuntimeDispatchError>], { sudoResult: Result<Null, SpRuntimeDispatchError> }>;493      /**494       * Generic event495       **/496      [key: string]: AugmentedEvent<ApiType>;497    };498    system: {499      /**500       * `:code` was updated.501       **/502      CodeUpdated: AugmentedEvent<ApiType, []>;503      /**504       * An extrinsic failed.505       **/506      ExtrinsicFailed: AugmentedEvent<ApiType, [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportWeightsDispatchInfo], { dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportWeightsDispatchInfo }>;507      /**508       * An extrinsic completed successfully.509       **/510      ExtrinsicSuccess: AugmentedEvent<ApiType, [dispatchInfo: FrameSupportWeightsDispatchInfo], { dispatchInfo: FrameSupportWeightsDispatchInfo }>;511      /**512       * An account was reaped.513       **/514      KilledAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;515      /**516       * A new account was created.517       **/518      NewAccount: AugmentedEvent<ApiType, [account: AccountId32], { account: AccountId32 }>;519      /**520       * On on-chain remark happened.521       **/522      Remarked: AugmentedEvent<ApiType, [sender: AccountId32, hash_: H256], { sender: AccountId32, hash_: H256 }>;523      /**524       * Generic event525       **/526      [key: string]: AugmentedEvent<ApiType>;527    };528    transactionPayment: {529      /**530       * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,531       * has been paid by `who`.532       **/533      TransactionFeePaid: AugmentedEvent<ApiType, [who: AccountId32, actualFee: u128, tip: u128], { who: AccountId32, actualFee: u128, tip: u128 }>;534      /**535       * Generic event536       **/537      [key: string]: AugmentedEvent<ApiType>;538    };539    treasury: {540      /**541       * Some funds have been allocated.542       **/543      Awarded: AugmentedEvent<ApiType, [proposalIndex: u32, award: u128, account: AccountId32], { proposalIndex: u32, award: u128, account: AccountId32 }>;544      /**545       * Some of our funds have been burnt.546       **/547      Burnt: AugmentedEvent<ApiType, [burntFunds: u128], { burntFunds: u128 }>;548      /**549       * Some funds have been deposited.550       **/551      Deposit: AugmentedEvent<ApiType, [value: u128], { value: u128 }>;552      /**553       * New proposal.554       **/555      Proposed: AugmentedEvent<ApiType, [proposalIndex: u32], { proposalIndex: u32 }>;556      /**557       * A proposal was rejected; funds were slashed.558       **/559      Rejected: AugmentedEvent<ApiType, [proposalIndex: u32, slashed: u128], { proposalIndex: u32, slashed: u128 }>;560      /**561       * Spending has finished; this is the amount that rolls over until next spend.562       **/563      Rollover: AugmentedEvent<ApiType, [rolloverBalance: u128], { rolloverBalance: u128 }>;564      /**565       * A new spend proposal has been approved.566       **/567      SpendApproved: AugmentedEvent<ApiType, [proposalIndex: u32, amount: u128, beneficiary: AccountId32], { proposalIndex: u32, amount: u128, beneficiary: AccountId32 }>;568      /**569       * We have ended a spend period and will now allocate funds.570       **/571      Spending: AugmentedEvent<ApiType, [budgetRemaining: u128], { budgetRemaining: u128 }>;572      /**573       * Generic event574       **/575      [key: string]: AugmentedEvent<ApiType>;576    };577    unique: {578      /**579       * Address was added to the allow list580       * 581       * # Arguments582       * * collection_id: ID of the affected collection.583       * * user: Address of the added account.584       **/585      AllowListAddressAdded: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;586      /**587       * Address was removed from the allow list588       * 589       * # Arguments590       * * collection_id: ID of the affected collection.591       * * user: Address of the removed account.592       **/593      AllowListAddressRemoved: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;594      /**595       * Collection admin was added596       * 597       * # Arguments598       * * collection_id: ID of the affected collection.599       * * admin: Admin address.600       **/601      CollectionAdminAdded: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;602      /**603       * Collection admin was removed604       * 605       * # Arguments606       * * collection_id: ID of the affected collection.607       * * admin: Removed admin address.608       **/609      CollectionAdminRemoved: AugmentedEvent<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;610      /**611       * Collection limits were set612       * 613       * # Arguments614       * * collection_id: ID of the affected collection.615       **/616      CollectionLimitSet: AugmentedEvent<ApiType, [u32]>;617      /**618       * Collection owned was changed619       * 620       * # Arguments621       * * collection_id: ID of the affected collection.622       * * owner: New owner address.623       **/624      CollectionOwnedChanged: AugmentedEvent<ApiType, [u32, AccountId32]>;625      /**626       * Collection permissions were set627       * 628       * # Arguments629       * * collection_id: ID of the affected collection.630       **/631      CollectionPermissionSet: AugmentedEvent<ApiType, [u32]>;632      /**633       * Collection sponsor was removed634       * 635       * # Arguments636       * * collection_id: ID of the affected collection.637       **/638      CollectionSponsorRemoved: AugmentedEvent<ApiType, [u32]>;639      /**640       * Collection sponsor was set641       * 642       * # Arguments643       * * collection_id: ID of the affected collection.644       * * owner: New sponsor address.645       **/646      CollectionSponsorSet: AugmentedEvent<ApiType, [u32, AccountId32]>;647      /**648       * New sponsor was confirm649       * 650       * # Arguments651       * * collection_id: ID of the affected collection.652       * * sponsor: New sponsor address.653       **/654      SponsorshipConfirmed: AugmentedEvent<ApiType, [u32, AccountId32]>;655      /**656       * Generic event657       **/658      [key: string]: AugmentedEvent<ApiType>;659    };660    vesting: {661      /**662       * Claimed vesting.663       **/664      Claimed: AugmentedEvent<ApiType, [who: AccountId32, amount: u128], { who: AccountId32, amount: u128 }>;665      /**666       * Added new vesting schedule.667       **/668      VestingScheduleAdded: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, vestingSchedule: OrmlVestingVestingSchedule], { from: AccountId32, to: AccountId32, vestingSchedule: OrmlVestingVestingSchedule }>;669      /**670       * Updated vesting schedules.671       **/672      VestingSchedulesUpdated: AugmentedEvent<ApiType, [who: AccountId32], { who: AccountId32 }>;673      /**674       * Generic event675       **/676      [key: string]: AugmentedEvent<ApiType>;677    };678    xcmpQueue: {679      /**680       * Bad XCM format used.681       **/682      BadFormat: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;683      /**684       * Bad XCM version used.685       **/686      BadVersion: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;687      /**688       * Some XCM failed.689       **/690      Fail: AugmentedEvent<ApiType, [messageHash: Option<H256>, error: XcmV2TraitsError, weight: u64], { messageHash: Option<H256>, error: XcmV2TraitsError, weight: u64 }>;691      /**692       * An XCM exceeded the individual message weight budget.693       **/694      OverweightEnqueued: AugmentedEvent<ApiType, [sender: u32, sentAt: u32, index: u64, required: u64], { sender: u32, sentAt: u32, index: u64, required: u64 }>;695      /**696       * An XCM from the overweight queue was executed with the given actual weight used.697       **/698      OverweightServiced: AugmentedEvent<ApiType, [index: u64, used: u64], { index: u64, used: u64 }>;699      /**700       * Some XCM was executed ok.701       **/702      Success: AugmentedEvent<ApiType, [messageHash: Option<H256>, weight: u64], { messageHash: Option<H256>, weight: u64 }>;703      /**704       * An upward message was sent to the relay chain.705       **/706      UpwardMessageSent: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;707      /**708       * An HRMP message was sent to a sibling parachain.709       **/710      XcmpMessageSent: AugmentedEvent<ApiType, [messageHash: Option<H256>], { messageHash: Option<H256> }>;711      /**712       * Generic event713       **/714      [key: string]: AugmentedEvent<ApiType>;715    };716  } // AugmentedEvents717} // declare module
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -20,13 +20,10 @@
     appPromotion: {
       admin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;
       /**
-       * Stores hash a record for which the last revenue recalculation was performed.
+       * Stores a key for record for which the next revenue recalculation would be performed.
        * If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.
        **/
       nextCalculatedRecord: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[AccountId32, u32]>>>, []> & QueryableStorageEntry<ApiType, []>;
-      /**
-       * Amount of tokens pending unstake per user per block.
-       **/
       pendingUnstake: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[AccountId32, u128]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
       /**
        * Amount of tokens staked by account in the blocknumber.
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -846,8 +846,9 @@
   readonly isNoPermission: boolean;
   readonly isNotSufficientFunds: boolean;
   readonly isPendingForBlockOverflow: boolean;
-  readonly isInvalidArgument: boolean;
-  readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'InvalidArgument';
+  readonly isSponsorNotSet: boolean;
+  readonly isIncorrectLockedBalanceOperation: boolean;
+  readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';
 }
 
 /** @name PalletAppPromotionEvent */
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -3115,7 +3115,7 @@
    * Lookup416: pallet_app_promotion::pallet::Error<T>
    **/
   PalletAppPromotionError: {
-    _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'InvalidArgument']
+    _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']
   },
   /**
    * Lookup419: pallet_evm::pallet::Error<T>
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -3309,8 +3309,9 @@
     readonly isNoPermission: boolean;
     readonly isNotSufficientFunds: boolean;
     readonly isPendingForBlockOverflow: boolean;
-    readonly isInvalidArgument: boolean;
-    readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'InvalidArgument';
+    readonly isSponsorNotSet: boolean;
+    readonly isIncorrectLockedBalanceOperation: boolean;
+    readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';
   }
 
   /** @name PalletEvmError (419) */