difftreelog
Merge pull request #724 from UniqueNetwork/feature/allowListedCross
in: master
feature/allowListedCross
30 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5912,7 +5912,7 @@
[[package]]
name = "pallet-common"
-version = "0.1.11"
+version = "0.1.12"
dependencies = [
"ethereum",
"evm-coder",
pallets/common/CHANGELOG.mddiffbeforeafterboth--- a/pallets/common/CHANGELOG.md
+++ b/pallets/common/CHANGELOG.md
@@ -4,7 +4,7 @@
<!-- bureaucrate goes here -->
-## [0.1.11] - 2022-11-16
+## [0.1.12] - 2022-11-16
### Changed
@@ -12,6 +12,14 @@
Removed method overload: single signature `(string, uint256)`
is used for both cases.
+## [0.1.11] - 2022-11-12
+
+### Changed
+
+- In the `Collection` solidity interface,
+ the `allowed` function has been renamed to `allow_listed_cross`.
+ Also `EthCrossAccount` type is now used as `user` arg.
+
## [0.1.10] - 2022-11-02
### Changed
pallets/common/Cargo.tomldiffbeforeafterboth--- a/pallets/common/Cargo.toml
+++ b/pallets/common/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "pallet-common"
-version = "0.1.11"
+version = "0.1.12"
license = "GPLv3"
edition = "2021"
pallets/common/src/erc.rsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617//! This module contains the implementation of pallet methods for evm.1819use evm_coder::{20 abi::AbiType,21 solidity_interface, solidity, ToLog,22 types::*,23 types::Property as PropertyStruct,24 execution::{Result, Error},25 weight,26};27pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId};28use pallet_evm_coder_substrate::dispatch_to_evm;29use sp_std::vec::Vec;30use up_data_structs::{31 AccessMode, CollectionMode, CollectionPermissions, OwnerRestrictedSet, Property,32 SponsoringRateLimit, SponsorshipState,33};34use alloc::format;3536use crate::{37 Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf,38 eth::convert_cross_account_to_uint256, weights::WeightInfo,39};4041/// Events for ethereum collection helper.42#[derive(ToLog)]43pub enum CollectionHelpersEvents {44 /// The collection has been created.45 CollectionCreated {46 /// Collection owner.47 #[indexed]48 owner: address,4950 /// Collection ID.51 #[indexed]52 collection_id: address,53 },54 /// The collection has been destroyed.55 CollectionDestroyed {56 /// Collection ID.57 #[indexed]58 collection_id: address,59 },60}6162/// Does not always represent a full collection, for RFT it is either63/// collection (Implementing ERC721), or specific collection token (Implementing ERC20).64pub trait CommonEvmHandler {65 /// Raw compiled binary code of the contract stub66 const CODE: &'static [u8];6768 /// Call precompiled handle.69 fn call(self, handle: &mut impl PrecompileHandle) -> Option<PrecompileResult>;70}7172/// @title A contract that allows you to work with collections.73#[solidity_interface(name = Collection)]74impl<T: Config> CollectionHandle<T>75where76 T::AccountId: From<[u8; 32]> + AsRef<[u8; 32]>,77{78 /// Set collection property.79 ///80 /// @param key Property key.81 /// @param value Propery value.82 #[solidity(hide)]83 #[weight(<SelfWeightOf<T>>::set_collection_properties(1))]84 fn set_collection_property(85 &mut self,86 caller: caller,87 key: string,88 value: bytes,89 ) -> Result<void> {90 let caller = T::CrossAccountId::from_eth(caller);91 let key = <Vec<u8>>::from(key)92 .try_into()93 .map_err(|_| "key too large")?;94 let value = value.0.try_into().map_err(|_| "value too large")?;9596 <Pallet<T>>::set_collection_property(self, &caller, Property { key, value })97 .map_err(dispatch_to_evm::<T>)98 }99100 /// Set collection properties.101 ///102 /// @param properties Vector of properties key/value pair.103 #[weight(<SelfWeightOf<T>>::set_collection_properties(properties.len() as u32))]104 fn set_collection_properties(105 &mut self,106 caller: caller,107 properties: Vec<PropertyStruct>,108 ) -> Result<void> {109 let caller = T::CrossAccountId::from_eth(caller);110111 let properties = properties112 .into_iter()113 .map(|PropertyStruct { key, value }| {114 let key = <Vec<u8>>::from(key)115 .try_into()116 .map_err(|_| "key too large")?;117118 let value = value.0.try_into().map_err(|_| "value too large")?;119120 Ok(Property { key, value })121 })122 .collect::<Result<Vec<_>>>()?;123124 <Pallet<T>>::set_collection_properties(self, &caller, properties)125 .map_err(dispatch_to_evm::<T>)126 }127128 /// Delete collection property.129 ///130 /// @param key Property key.131 #[solidity(hide)]132 #[weight(<SelfWeightOf<T>>::delete_collection_properties(1))]133 fn delete_collection_property(&mut self, caller: caller, key: string) -> Result<()> {134 let caller = T::CrossAccountId::from_eth(caller);135 let key = <Vec<u8>>::from(key)136 .try_into()137 .map_err(|_| "key too large")?;138139 <Pallet<T>>::delete_collection_property(self, &caller, key).map_err(dispatch_to_evm::<T>)140 }141142 /// Delete collection properties.143 ///144 /// @param keys Properties keys.145 #[weight(<SelfWeightOf<T>>::delete_collection_properties(keys.len() as u32))]146 fn delete_collection_properties(&mut self, caller: caller, keys: Vec<string>) -> Result<()> {147 let caller = T::CrossAccountId::from_eth(caller);148 let keys = keys149 .into_iter()150 .map(|key| {151 <Vec<u8>>::from(key)152 .try_into()153 .map_err(|_| Error::Revert("key too large".into()))154 })155 .collect::<Result<Vec<_>>>()?;156157 <Pallet<T>>::delete_collection_properties(self, &caller, keys).map_err(dispatch_to_evm::<T>)158 }159160 /// Get collection property.161 ///162 /// @dev Throws error if key not found.163 ///164 /// @param key Property key.165 /// @return bytes The property corresponding to the key.166 fn collection_property(&self, key: string) -> Result<bytes> {167 let key = <Vec<u8>>::from(key)168 .try_into()169 .map_err(|_| "key too large")?;170171 let props = CollectionProperties::<T>::get(self.id);172 let prop = props.get(&key).ok_or("key not found")?;173174 Ok(bytes(prop.to_vec()))175 }176177 /// Get collection properties.178 ///179 /// @param keys Properties keys. Empty keys for all propertyes.180 /// @return Vector of properties key/value pairs.181 fn collection_properties(&self, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {182 let keys = keys183 .into_iter()184 .map(|key| {185 <Vec<u8>>::from(key)186 .try_into()187 .map_err(|_| Error::Revert("key too large".into()))188 })189 .collect::<Result<Vec<_>>>()?;190191 let properties = Pallet::<T>::filter_collection_properties(192 self.id,193 if keys.is_empty() { None } else { Some(keys) },194 )195 .map_err(dispatch_to_evm::<T>)?;196197 let properties = properties198 .into_iter()199 .map(|p| {200 let key =201 string::from_utf8(p.key.into()).map_err(|e| Error::Revert(format!("{}", e)))?;202 let value = bytes(p.value.to_vec());203 Ok(PropertyStruct { key, value })204 })205 .collect::<Result<Vec<_>>>()?;206 Ok(properties)207 }208209 /// Set the sponsor of the collection.210 ///211 /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.212 ///213 /// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.214 #[solidity(hide)]215 fn set_collection_sponsor(&mut self, caller: caller, sponsor: address) -> Result<void> {216 self.consume_store_reads_and_writes(1, 1)?;217218 check_is_owner_or_admin(caller, self)?;219220 let sponsor = T::CrossAccountId::from_eth(sponsor);221 self.set_sponsor(sponsor.as_sub().clone())222 .map_err(dispatch_to_evm::<T>)?;223 save(self)224 }225226 /// Set the sponsor of the collection.227 ///228 /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.229 ///230 /// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.231 fn set_collection_sponsor_cross(232 &mut self,233 caller: caller,234 sponsor: EthCrossAccount,235 ) -> Result<void> {236 self.consume_store_reads_and_writes(1, 1)?;237238 check_is_owner_or_admin(caller, self)?;239240 let sponsor = sponsor.into_sub_cross_account::<T>()?;241 self.set_sponsor(sponsor.as_sub().clone())242 .map_err(dispatch_to_evm::<T>)?;243 save(self)244 }245246 /// Whether there is a pending sponsor.247 fn has_collection_pending_sponsor(&self) -> Result<bool> {248 Ok(matches!(249 self.collection.sponsorship,250 SponsorshipState::Unconfirmed(_)251 ))252 }253254 /// Collection sponsorship confirmation.255 ///256 /// @dev After setting the sponsor for the collection, it must be confirmed with this function.257 fn confirm_collection_sponsorship(&mut self, caller: caller) -> Result<void> {258 self.consume_store_writes(1)?;259260 let caller = T::CrossAccountId::from_eth(caller);261 if !self262 .confirm_sponsorship(caller.as_sub())263 .map_err(dispatch_to_evm::<T>)?264 {265 return Err("caller is not set as sponsor".into());266 }267 save(self)268 }269270 /// Remove collection sponsor.271 fn remove_collection_sponsor(&mut self, caller: caller) -> Result<void> {272 self.consume_store_reads_and_writes(1, 1)?;273 check_is_owner_or_admin(caller, self)?;274 self.remove_sponsor().map_err(dispatch_to_evm::<T>)?;275 save(self)276 }277278 /// Get current sponsor.279 ///280 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.281 fn collection_sponsor(&self) -> Result<(address, uint256)> {282 let sponsor = match self.collection.sponsorship.sponsor() {283 Some(sponsor) => sponsor,284 None => return Ok(Default::default()),285 };286 let sponsor = T::CrossAccountId::from_sub(sponsor.clone());287 let result: (address, uint256) = if sponsor.is_canonical_substrate() {288 let sponsor = convert_cross_account_to_uint256::<T>(&sponsor);289 (Default::default(), sponsor)290 } else {291 let sponsor = *sponsor.as_eth();292 (sponsor, Default::default())293 };294 Ok(result)295 }296297 /// Set limits for the collection.298 /// @dev Throws error if limit not found.299 /// @param limit Name of the limit. Valid names:300 /// "accountTokenOwnershipLimit",301 /// "sponsoredDataSize",302 /// "sponsoredDataRateLimit",303 /// "tokenLimit",304 /// "sponsorTransferTimeout",305 /// "sponsorApproveTimeout"306 /// "ownerCanTransfer",307 /// "ownerCanDestroy",308 /// "transfersEnabled"309 /// @param value Value of the limit.310 #[solidity(rename_selector = "setCollectionLimit")]311 fn set_int_limit(&mut self, caller: caller, limit: string, value: uint256) -> Result<void> {312 self.consume_store_reads_and_writes(1, 1)?;313314 let value = value315 .try_into()316 .map_err(|_| Error::Revert(format!("can't convert value to u32 \"{}\"", value)))?;317318 let convert_value_to_bool = || match value {319 0 => Ok(false),320 1 => Ok(true),321 _ => {322 return Err(Error::Revert(format!(323 "can't convert value to boolean \"{}\"",324 value325 )))326 }327 };328329 check_is_owner_or_admin(caller, self)?;330 let mut limits = self.limits.clone();331332 match limit.as_str() {333 "accountTokenOwnershipLimit" => {334 limits.account_token_ownership_limit = Some(value);335 }336 "sponsoredDataSize" => {337 limits.sponsored_data_size = Some(value);338 }339 "sponsoredDataRateLimit" => {340 limits.sponsored_data_rate_limit = Some(SponsoringRateLimit::Blocks(value));341 }342 "tokenLimit" => {343 limits.token_limit = Some(value);344 }345 "sponsorTransferTimeout" => {346 limits.sponsor_transfer_timeout = Some(value);347 }348 "sponsorApproveTimeout" => {349 limits.sponsor_approve_timeout = Some(value);350 }351 "ownerCanTransfer" => {352 limits.owner_can_transfer = Some(convert_value_to_bool()?);353 }354 "ownerCanDestroy" => {355 limits.owner_can_destroy = Some(convert_value_to_bool()?);356 }357 "transfersEnabled" => {358 limits.transfers_enabled = Some(convert_value_to_bool()?);359 }360 _ => return Err(Error::Revert(format!("unknown limit \"{}\"", limit))),361 }362 self.limits = <Pallet<T>>::clamp_limits(self.mode.clone(), &self.limits, limits)363 .map_err(dispatch_to_evm::<T>)?;364 save(self)365 }366367 /// Get contract address.368 fn contract_address(&self) -> Result<address> {369 Ok(crate::eth::collection_id_to_address(self.id))370 }371372 /// Add collection admin.373 /// @param newAdmin Cross account administrator address.374 fn add_collection_admin_cross(375 &mut self,376 caller: caller,377 new_admin: EthCrossAccount,378 ) -> Result<void> {379 self.consume_store_writes(2)?;380381 let caller = T::CrossAccountId::from_eth(caller);382 let new_admin = new_admin.into_sub_cross_account::<T>()?;383 <Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;384 Ok(())385 }386387 /// Remove collection admin.388 /// @param admin Cross account administrator address.389 fn remove_collection_admin_cross(390 &mut self,391 caller: caller,392 admin: EthCrossAccount,393 ) -> Result<void> {394 self.consume_store_writes(2)?;395396 let caller = T::CrossAccountId::from_eth(caller);397 let admin = admin.into_sub_cross_account::<T>()?;398 <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;399 Ok(())400 }401402 /// Add collection admin.403 /// @param newAdmin Address of the added administrator.404 #[solidity(hide)]405 fn add_collection_admin(&mut self, caller: caller, new_admin: address) -> Result<void> {406 self.consume_store_writes(2)?;407408 let caller = T::CrossAccountId::from_eth(caller);409 let new_admin = T::CrossAccountId::from_eth(new_admin);410 <Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;411 Ok(())412 }413414 /// Remove collection admin.415 ///416 /// @param admin Address of the removed administrator.417 #[solidity(hide)]418 fn remove_collection_admin(&mut self, caller: caller, admin: address) -> Result<void> {419 self.consume_store_writes(2)?;420421 let caller = T::CrossAccountId::from_eth(caller);422 let admin = T::CrossAccountId::from_eth(admin);423 <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;424 Ok(())425 }426427 /// Toggle accessibility of collection nesting.428 ///429 /// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'430 #[solidity(rename_selector = "setCollectionNesting")]431 fn set_nesting_bool(&mut self, caller: caller, enable: bool) -> Result<void> {432 self.consume_store_reads_and_writes(1, 1)?;433434 check_is_owner_or_admin(caller, self)?;435436 let mut permissions = self.collection.permissions.clone();437 let mut nesting = permissions.nesting().clone();438 nesting.token_owner = enable;439 nesting.restricted = None;440 permissions.nesting = Some(nesting);441442 self.collection.permissions = <Pallet<T>>::clamp_permissions(443 self.collection.mode.clone(),444 &self.collection.permissions,445 permissions,446 )447 .map_err(dispatch_to_evm::<T>)?;448449 save(self)450 }451452 /// Toggle accessibility of collection nesting.453 ///454 /// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'455 /// @param collections Addresses of collections that will be available for nesting.456 #[solidity(rename_selector = "setCollectionNesting")]457 fn set_nesting(458 &mut self,459 caller: caller,460 enable: bool,461 collections: Vec<address>,462 ) -> Result<void> {463 self.consume_store_reads_and_writes(1, 1)?;464465 if collections.is_empty() {466 return Err("no addresses provided".into());467 }468 check_is_owner_or_admin(caller, self)?;469470 let mut permissions = self.collection.permissions.clone();471 match enable {472 false => {473 let mut nesting = permissions.nesting().clone();474 nesting.token_owner = false;475 nesting.restricted = None;476 permissions.nesting = Some(nesting);477 }478 true => {479 let mut bv = OwnerRestrictedSet::new();480 for i in collections {481 bv.try_insert(crate::eth::map_eth_to_id(&i).ok_or_else(|| {482 Error::Revert("Can't convert address into collection id".into())483 })?)484 .map_err(|_| "too many collections")?;485 }486 let mut nesting = permissions.nesting().clone();487 nesting.token_owner = true;488 nesting.restricted = Some(bv);489 permissions.nesting = Some(nesting);490 }491 };492493 self.collection.permissions = <Pallet<T>>::clamp_permissions(494 self.collection.mode.clone(),495 &self.collection.permissions,496 permissions,497 )498 .map_err(dispatch_to_evm::<T>)?;499500 save(self)501 }502503 /// Set the collection access method.504 /// @param mode Access mode505 /// 0 for Normal506 /// 1 for AllowList507 fn set_collection_access(&mut self, caller: caller, mode: uint8) -> Result<void> {508 self.consume_store_reads_and_writes(1, 1)?;509510 check_is_owner_or_admin(caller, self)?;511 let permissions = CollectionPermissions {512 access: Some(match mode {513 0 => AccessMode::Normal,514 1 => AccessMode::AllowList,515 _ => return Err("not supported access mode".into()),516 }),517 ..Default::default()518 };519 self.collection.permissions = <Pallet<T>>::clamp_permissions(520 self.collection.mode.clone(),521 &self.collection.permissions,522 permissions,523 )524 .map_err(dispatch_to_evm::<T>)?;525526 save(self)527 }528529 /// Checks that user allowed to operate with collection.530 ///531 /// @param user User address to check.532 fn allowed(&self, user: address) -> Result<bool> {533 Ok(Pallet::<T>::allowed(534 self.id,535 T::CrossAccountId::from_eth(user),536 ))537 }538539 /// Add the user to the allowed list.540 ///541 /// @param user Address of a trusted user.542 #[solidity(hide)]543 fn add_to_collection_allow_list(&mut self, caller: caller, user: address) -> Result<void> {544 self.consume_store_writes(1)?;545546 let caller = T::CrossAccountId::from_eth(caller);547 let user = T::CrossAccountId::from_eth(user);548 <Pallet<T>>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;549 Ok(())550 }551552 /// Add user to allowed list.553 ///554 /// @param user User cross account address.555 fn add_to_collection_allow_list_cross(556 &mut self,557 caller: caller,558 user: EthCrossAccount,559 ) -> Result<void> {560 self.consume_store_writes(1)?;561562 let caller = T::CrossAccountId::from_eth(caller);563 let user = user.into_sub_cross_account::<T>()?;564 Pallet::<T>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;565 Ok(())566 }567568 /// Remove the user from the allowed list.569 ///570 /// @param user Address of a removed user.571 #[solidity(hide)]572 fn remove_from_collection_allow_list(&mut self, caller: caller, user: address) -> Result<void> {573 self.consume_store_writes(1)?;574575 let caller = T::CrossAccountId::from_eth(caller);576 let user = T::CrossAccountId::from_eth(user);577 <Pallet<T>>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;578 Ok(())579 }580581 /// Remove user from allowed list.582 ///583 /// @param user User cross account address.584 fn remove_from_collection_allow_list_cross(585 &mut self,586 caller: caller,587 user: EthCrossAccount,588 ) -> Result<void> {589 self.consume_store_writes(1)?;590591 let caller = T::CrossAccountId::from_eth(caller);592 let user = user.into_sub_cross_account::<T>()?;593 Pallet::<T>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;594 Ok(())595 }596597 /// Switch permission for minting.598 ///599 /// @param mode Enable if "true".600 fn set_collection_mint_mode(&mut self, caller: caller, mode: bool) -> Result<void> {601 self.consume_store_reads_and_writes(1, 1)?;602603 check_is_owner_or_admin(caller, self)?;604 let permissions = CollectionPermissions {605 mint_mode: Some(mode),606 ..Default::default()607 };608 self.collection.permissions = <Pallet<T>>::clamp_permissions(609 self.collection.mode.clone(),610 &self.collection.permissions,611 permissions,612 )613 .map_err(dispatch_to_evm::<T>)?;614615 save(self)616 }617618 /// Check that account is the owner or admin of the collection619 ///620 /// @param user account to verify621 /// @return "true" if account is the owner or admin622 #[solidity(hide, rename_selector = "isOwnerOrAdmin")]623 fn is_owner_or_admin_eth(&self, user: address) -> Result<bool> {624 let user = T::CrossAccountId::from_eth(user);625 Ok(self.is_owner_or_admin(&user))626 }627628 /// Check that account is the owner or admin of the collection629 ///630 /// @param user User cross account to verify631 /// @return "true" if account is the owner or admin632 fn is_owner_or_admin_cross(&self, user: EthCrossAccount) -> Result<bool> {633 let user = user.into_sub_cross_account::<T>()?;634 Ok(self.is_owner_or_admin(&user))635 }636637 /// Returns collection type638 ///639 /// @return `Fungible` or `NFT` or `ReFungible`640 fn unique_collection_type(&self) -> Result<string> {641 let mode = match self.collection.mode {642 CollectionMode::Fungible(_) => "Fungible",643 CollectionMode::NFT => "NFT",644 CollectionMode::ReFungible => "ReFungible",645 };646 Ok(mode.into())647 }648649 /// Get collection owner.650 ///651 /// @return Tuble with sponsor address and his substrate mirror.652 /// If address is canonical then substrate mirror is zero and vice versa.653 fn collection_owner(&self) -> Result<EthCrossAccount> {654 Ok(EthCrossAccount::from_sub_cross_account::<T>(655 &T::CrossAccountId::from_sub(self.owner.clone()),656 ))657 }658659 /// Changes collection owner to another account660 ///661 /// @dev Owner can be changed only by current owner662 /// @param newOwner new owner account663 #[solidity(hide, rename_selector = "changeCollectionOwner")]664 fn set_owner(&mut self, caller: caller, new_owner: address) -> Result<void> {665 self.consume_store_writes(1)?;666667 let caller = T::CrossAccountId::from_eth(caller);668 let new_owner = T::CrossAccountId::from_eth(new_owner);669 self.set_owner_internal(caller, new_owner)670 .map_err(dispatch_to_evm::<T>)671 }672673 /// Get collection administrators674 ///675 /// @return Vector of tuples with admins address and his substrate mirror.676 /// If address is canonical then substrate mirror is zero and vice versa.677 fn collection_admins(&self) -> Result<Vec<EthCrossAccount>> {678 let result = crate::IsAdmin::<T>::iter_prefix((self.id,))679 .map(|(admin, _)| EthCrossAccount::from_sub_cross_account::<T>(&admin))680 .collect();681 Ok(result)682 }683684 /// Changes collection owner to another account685 ///686 /// @dev Owner can be changed only by current owner687 /// @param newOwner new owner cross account688 fn change_collection_owner_cross(689 &mut self,690 caller: caller,691 new_owner: EthCrossAccount,692 ) -> Result<void> {693 self.consume_store_writes(1)?;694695 let caller = T::CrossAccountId::from_eth(caller);696 let new_owner = new_owner.into_sub_cross_account::<T>()?;697 self.set_owner_internal(caller, new_owner)698 .map_err(dispatch_to_evm::<T>)699 }700}701702/// ### Note703/// Do not forget to add: `self.consume_store_reads(1)?;`704fn check_is_owner_or_admin<T: Config>(705 caller: caller,706 collection: &CollectionHandle<T>,707) -> Result<T::CrossAccountId> {708 let caller = T::CrossAccountId::from_eth(caller);709 collection710 .check_is_owner_or_admin(&caller)711 .map_err(dispatch_to_evm::<T>)?;712 Ok(caller)713}714715/// ### Note716/// Do not forget to add: `self.consume_store_writes(1)?;`717fn save<T: Config>(collection: &CollectionHandle<T>) -> Result<void> {718 collection719 .check_is_internal()720 .map_err(dispatch_to_evm::<T>)?;721 collection.save().map_err(dispatch_to_evm::<T>)?;722 Ok(())723}724725/// Contains static property keys and values.726pub mod static_property {727 use evm_coder::{728 execution::{Result, Error},729 };730 use alloc::format;731732 const EXPECT_CONVERT_ERROR: &str = "length < limit";733734 /// Keys.735 pub mod key {736 use super::*;737738 /// Key "baseURI".739 pub fn base_uri() -> up_data_structs::PropertyKey {740 property_key_from_bytes(b"baseURI").expect(EXPECT_CONVERT_ERROR)741 }742743 /// Key "url".744 pub fn url() -> up_data_structs::PropertyKey {745 property_key_from_bytes(b"URI").expect(EXPECT_CONVERT_ERROR)746 }747748 /// Key "suffix".749 pub fn suffix() -> up_data_structs::PropertyKey {750 property_key_from_bytes(b"URISuffix").expect(EXPECT_CONVERT_ERROR)751 }752753 /// Key "parentNft".754 pub fn parent_nft() -> up_data_structs::PropertyKey {755 property_key_from_bytes(b"parentNft").expect(EXPECT_CONVERT_ERROR)756 }757 }758759 /// Convert `byte` to [`PropertyKey`].760 pub fn property_key_from_bytes(bytes: &[u8]) -> Result<up_data_structs::PropertyKey> {761 bytes.to_vec().try_into().map_err(|_| {762 Error::Revert(format!(763 "Property key is too long. Max length is {}.",764 up_data_structs::PropertyKey::bound()765 ))766 })767 }768769 /// Convert `bytes` to [`PropertyValue`].770 pub fn property_value_from_bytes(bytes: &[u8]) -> Result<up_data_structs::PropertyValue> {771 bytes.to_vec().try_into().map_err(|_| {772 Error::Revert(format!(773 "Property key is too long. Max length is {}.",774 up_data_structs::PropertyKey::bound()775 ))776 })777 }778}1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617//! This module contains the implementation of pallet methods for evm.1819use evm_coder::{20 abi::AbiType,21 solidity_interface, solidity, ToLog,22 types::*,23 types::Property as PropertyStruct,24 execution::{Result, Error},25 weight,26};27pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId};28use pallet_evm_coder_substrate::dispatch_to_evm;29use sp_std::vec::Vec;30use up_data_structs::{31 AccessMode, CollectionMode, CollectionPermissions, OwnerRestrictedSet, Property,32 SponsoringRateLimit, SponsorshipState,33};34use alloc::format;3536use crate::{37 Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf,38 eth::convert_cross_account_to_uint256, weights::WeightInfo,39};4041/// Events for ethereum collection helper.42#[derive(ToLog)]43pub enum CollectionHelpersEvents {44 /// The collection has been created.45 CollectionCreated {46 /// Collection owner.47 #[indexed]48 owner: address,4950 /// Collection ID.51 #[indexed]52 collection_id: address,53 },54 /// The collection has been destroyed.55 CollectionDestroyed {56 /// Collection ID.57 #[indexed]58 collection_id: address,59 },60}6162/// Does not always represent a full collection, for RFT it is either63/// collection (Implementing ERC721), or specific collection token (Implementing ERC20).64pub trait CommonEvmHandler {65 /// Raw compiled binary code of the contract stub66 const CODE: &'static [u8];6768 /// Call precompiled handle.69 fn call(self, handle: &mut impl PrecompileHandle) -> Option<PrecompileResult>;70}7172/// @title A contract that allows you to work with collections.73#[solidity_interface(name = Collection)]74impl<T: Config> CollectionHandle<T>75where76 T::AccountId: From<[u8; 32]> + AsRef<[u8; 32]>,77{78 /// Set collection property.79 ///80 /// @param key Property key.81 /// @param value Propery value.82 #[solidity(hide)]83 #[weight(<SelfWeightOf<T>>::set_collection_properties(1))]84 fn set_collection_property(85 &mut self,86 caller: caller,87 key: string,88 value: bytes,89 ) -> Result<void> {90 let caller = T::CrossAccountId::from_eth(caller);91 let key = <Vec<u8>>::from(key)92 .try_into()93 .map_err(|_| "key too large")?;94 let value = value.0.try_into().map_err(|_| "value too large")?;9596 <Pallet<T>>::set_collection_property(self, &caller, Property { key, value })97 .map_err(dispatch_to_evm::<T>)98 }99100 /// Set collection properties.101 ///102 /// @param properties Vector of properties key/value pair.103 #[weight(<SelfWeightOf<T>>::set_collection_properties(properties.len() as u32))]104 fn set_collection_properties(105 &mut self,106 caller: caller,107 properties: Vec<PropertyStruct>,108 ) -> Result<void> {109 let caller = T::CrossAccountId::from_eth(caller);110111 let properties = properties112 .into_iter()113 .map(|PropertyStruct { key, value }| {114 let key = <Vec<u8>>::from(key)115 .try_into()116 .map_err(|_| "key too large")?;117118 let value = value.0.try_into().map_err(|_| "value too large")?;119120 Ok(Property { key, value })121 })122 .collect::<Result<Vec<_>>>()?;123124 <Pallet<T>>::set_collection_properties(self, &caller, properties)125 .map_err(dispatch_to_evm::<T>)126 }127128 /// Delete collection property.129 ///130 /// @param key Property key.131 #[solidity(hide)]132 #[weight(<SelfWeightOf<T>>::delete_collection_properties(1))]133 fn delete_collection_property(&mut self, caller: caller, key: string) -> Result<()> {134 let caller = T::CrossAccountId::from_eth(caller);135 let key = <Vec<u8>>::from(key)136 .try_into()137 .map_err(|_| "key too large")?;138139 <Pallet<T>>::delete_collection_property(self, &caller, key).map_err(dispatch_to_evm::<T>)140 }141142 /// Delete collection properties.143 ///144 /// @param keys Properties keys.145 #[weight(<SelfWeightOf<T>>::delete_collection_properties(keys.len() as u32))]146 fn delete_collection_properties(&mut self, caller: caller, keys: Vec<string>) -> Result<()> {147 let caller = T::CrossAccountId::from_eth(caller);148 let keys = keys149 .into_iter()150 .map(|key| {151 <Vec<u8>>::from(key)152 .try_into()153 .map_err(|_| Error::Revert("key too large".into()))154 })155 .collect::<Result<Vec<_>>>()?;156157 <Pallet<T>>::delete_collection_properties(self, &caller, keys).map_err(dispatch_to_evm::<T>)158 }159160 /// Get collection property.161 ///162 /// @dev Throws error if key not found.163 ///164 /// @param key Property key.165 /// @return bytes The property corresponding to the key.166 fn collection_property(&self, key: string) -> Result<bytes> {167 let key = <Vec<u8>>::from(key)168 .try_into()169 .map_err(|_| "key too large")?;170171 let props = CollectionProperties::<T>::get(self.id);172 let prop = props.get(&key).ok_or("key not found")?;173174 Ok(bytes(prop.to_vec()))175 }176177 /// Get collection properties.178 ///179 /// @param keys Properties keys. Empty keys for all propertyes.180 /// @return Vector of properties key/value pairs.181 fn collection_properties(&self, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {182 let keys = keys183 .into_iter()184 .map(|key| {185 <Vec<u8>>::from(key)186 .try_into()187 .map_err(|_| Error::Revert("key too large".into()))188 })189 .collect::<Result<Vec<_>>>()?;190191 let properties = Pallet::<T>::filter_collection_properties(192 self.id,193 if keys.is_empty() { None } else { Some(keys) },194 )195 .map_err(dispatch_to_evm::<T>)?;196197 let properties = properties198 .into_iter()199 .map(|p| {200 let key =201 string::from_utf8(p.key.into()).map_err(|e| Error::Revert(format!("{}", e)))?;202 let value = bytes(p.value.to_vec());203 Ok(PropertyStruct { key, value })204 })205 .collect::<Result<Vec<_>>>()?;206 Ok(properties)207 }208209 /// Set the sponsor of the collection.210 ///211 /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.212 ///213 /// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.214 #[solidity(hide)]215 fn set_collection_sponsor(&mut self, caller: caller, sponsor: address) -> Result<void> {216 self.consume_store_reads_and_writes(1, 1)?;217218 check_is_owner_or_admin(caller, self)?;219220 let sponsor = T::CrossAccountId::from_eth(sponsor);221 self.set_sponsor(sponsor.as_sub().clone())222 .map_err(dispatch_to_evm::<T>)?;223 save(self)224 }225226 /// Set the sponsor of the collection.227 ///228 /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.229 ///230 /// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.231 fn set_collection_sponsor_cross(232 &mut self,233 caller: caller,234 sponsor: EthCrossAccount,235 ) -> Result<void> {236 self.consume_store_reads_and_writes(1, 1)?;237238 check_is_owner_or_admin(caller, self)?;239240 let sponsor = sponsor.into_sub_cross_account::<T>()?;241 self.set_sponsor(sponsor.as_sub().clone())242 .map_err(dispatch_to_evm::<T>)?;243 save(self)244 }245246 /// Whether there is a pending sponsor.247 fn has_collection_pending_sponsor(&self) -> Result<bool> {248 Ok(matches!(249 self.collection.sponsorship,250 SponsorshipState::Unconfirmed(_)251 ))252 }253254 /// Collection sponsorship confirmation.255 ///256 /// @dev After setting the sponsor for the collection, it must be confirmed with this function.257 fn confirm_collection_sponsorship(&mut self, caller: caller) -> Result<void> {258 self.consume_store_writes(1)?;259260 let caller = T::CrossAccountId::from_eth(caller);261 if !self262 .confirm_sponsorship(caller.as_sub())263 .map_err(dispatch_to_evm::<T>)?264 {265 return Err("caller is not set as sponsor".into());266 }267 save(self)268 }269270 /// Remove collection sponsor.271 fn remove_collection_sponsor(&mut self, caller: caller) -> Result<void> {272 self.consume_store_reads_and_writes(1, 1)?;273 check_is_owner_or_admin(caller, self)?;274 self.remove_sponsor().map_err(dispatch_to_evm::<T>)?;275 save(self)276 }277278 /// Get current sponsor.279 ///280 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.281 fn collection_sponsor(&self) -> Result<(address, uint256)> {282 let sponsor = match self.collection.sponsorship.sponsor() {283 Some(sponsor) => sponsor,284 None => return Ok(Default::default()),285 };286 let sponsor = T::CrossAccountId::from_sub(sponsor.clone());287 let result: (address, uint256) = if sponsor.is_canonical_substrate() {288 let sponsor = convert_cross_account_to_uint256::<T>(&sponsor);289 (Default::default(), sponsor)290 } else {291 let sponsor = *sponsor.as_eth();292 (sponsor, Default::default())293 };294 Ok(result)295 }296297 /// Set limits for the collection.298 /// @dev Throws error if limit not found.299 /// @param limit Name of the limit. Valid names:300 /// "accountTokenOwnershipLimit",301 /// "sponsoredDataSize",302 /// "sponsoredDataRateLimit",303 /// "tokenLimit",304 /// "sponsorTransferTimeout",305 /// "sponsorApproveTimeout"306 /// "ownerCanTransfer",307 /// "ownerCanDestroy",308 /// "transfersEnabled"309 /// @param value Value of the limit.310 #[solidity(rename_selector = "setCollectionLimit")]311 fn set_int_limit(&mut self, caller: caller, limit: string, value: uint256) -> Result<void> {312 self.consume_store_reads_and_writes(1, 1)?;313314 let value = value315 .try_into()316 .map_err(|_| Error::Revert(format!("can't convert value to u32 \"{}\"", value)))?;317318 let convert_value_to_bool = || match value {319 0 => Ok(false),320 1 => Ok(true),321 _ => {322 return Err(Error::Revert(format!(323 "can't convert value to boolean \"{}\"",324 value325 )))326 }327 };328329 check_is_owner_or_admin(caller, self)?;330 let mut limits = self.limits.clone();331332 match limit.as_str() {333 "accountTokenOwnershipLimit" => {334 limits.account_token_ownership_limit = Some(value);335 }336 "sponsoredDataSize" => {337 limits.sponsored_data_size = Some(value);338 }339 "sponsoredDataRateLimit" => {340 limits.sponsored_data_rate_limit = Some(SponsoringRateLimit::Blocks(value));341 }342 "tokenLimit" => {343 limits.token_limit = Some(value);344 }345 "sponsorTransferTimeout" => {346 limits.sponsor_transfer_timeout = Some(value);347 }348 "sponsorApproveTimeout" => {349 limits.sponsor_approve_timeout = Some(value);350 }351 "ownerCanTransfer" => {352 limits.owner_can_transfer = Some(convert_value_to_bool()?);353 }354 "ownerCanDestroy" => {355 limits.owner_can_destroy = Some(convert_value_to_bool()?);356 }357 "transfersEnabled" => {358 limits.transfers_enabled = Some(convert_value_to_bool()?);359 }360 _ => return Err(Error::Revert(format!("unknown limit \"{}\"", limit))),361 }362 self.limits = <Pallet<T>>::clamp_limits(self.mode.clone(), &self.limits, limits)363 .map_err(dispatch_to_evm::<T>)?;364 save(self)365 }366367 /// Get contract address.368 fn contract_address(&self) -> Result<address> {369 Ok(crate::eth::collection_id_to_address(self.id))370 }371372 /// Add collection admin.373 /// @param newAdmin Cross account administrator address.374 fn add_collection_admin_cross(375 &mut self,376 caller: caller,377 new_admin: EthCrossAccount,378 ) -> Result<void> {379 self.consume_store_writes(2)?;380381 let caller = T::CrossAccountId::from_eth(caller);382 let new_admin = new_admin.into_sub_cross_account::<T>()?;383 <Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;384 Ok(())385 }386387 /// Remove collection admin.388 /// @param admin Cross account administrator address.389 fn remove_collection_admin_cross(390 &mut self,391 caller: caller,392 admin: EthCrossAccount,393 ) -> Result<void> {394 self.consume_store_writes(2)?;395396 let caller = T::CrossAccountId::from_eth(caller);397 let admin = admin.into_sub_cross_account::<T>()?;398 <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;399 Ok(())400 }401402 /// Add collection admin.403 /// @param newAdmin Address of the added administrator.404 #[solidity(hide)]405 fn add_collection_admin(&mut self, caller: caller, new_admin: address) -> Result<void> {406 self.consume_store_writes(2)?;407408 let caller = T::CrossAccountId::from_eth(caller);409 let new_admin = T::CrossAccountId::from_eth(new_admin);410 <Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;411 Ok(())412 }413414 /// Remove collection admin.415 ///416 /// @param admin Address of the removed administrator.417 #[solidity(hide)]418 fn remove_collection_admin(&mut self, caller: caller, admin: address) -> Result<void> {419 self.consume_store_writes(2)?;420421 let caller = T::CrossAccountId::from_eth(caller);422 let admin = T::CrossAccountId::from_eth(admin);423 <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;424 Ok(())425 }426427 /// Toggle accessibility of collection nesting.428 ///429 /// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'430 #[solidity(rename_selector = "setCollectionNesting")]431 fn set_nesting_bool(&mut self, caller: caller, enable: bool) -> Result<void> {432 self.consume_store_reads_and_writes(1, 1)?;433434 check_is_owner_or_admin(caller, self)?;435436 let mut permissions = self.collection.permissions.clone();437 let mut nesting = permissions.nesting().clone();438 nesting.token_owner = enable;439 nesting.restricted = None;440 permissions.nesting = Some(nesting);441442 self.collection.permissions = <Pallet<T>>::clamp_permissions(443 self.collection.mode.clone(),444 &self.collection.permissions,445 permissions,446 )447 .map_err(dispatch_to_evm::<T>)?;448449 save(self)450 }451452 /// Toggle accessibility of collection nesting.453 ///454 /// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'455 /// @param collections Addresses of collections that will be available for nesting.456 #[solidity(rename_selector = "setCollectionNesting")]457 fn set_nesting(458 &mut self,459 caller: caller,460 enable: bool,461 collections: Vec<address>,462 ) -> Result<void> {463 self.consume_store_reads_and_writes(1, 1)?;464465 if collections.is_empty() {466 return Err("no addresses provided".into());467 }468 check_is_owner_or_admin(caller, self)?;469470 let mut permissions = self.collection.permissions.clone();471 match enable {472 false => {473 let mut nesting = permissions.nesting().clone();474 nesting.token_owner = false;475 nesting.restricted = None;476 permissions.nesting = Some(nesting);477 }478 true => {479 let mut bv = OwnerRestrictedSet::new();480 for i in collections {481 bv.try_insert(crate::eth::map_eth_to_id(&i).ok_or_else(|| {482 Error::Revert("Can't convert address into collection id".into())483 })?)484 .map_err(|_| "too many collections")?;485 }486 let mut nesting = permissions.nesting().clone();487 nesting.token_owner = true;488 nesting.restricted = Some(bv);489 permissions.nesting = Some(nesting);490 }491 };492493 self.collection.permissions = <Pallet<T>>::clamp_permissions(494 self.collection.mode.clone(),495 &self.collection.permissions,496 permissions,497 )498 .map_err(dispatch_to_evm::<T>)?;499500 save(self)501 }502503 /// Set the collection access method.504 /// @param mode Access mode505 /// 0 for Normal506 /// 1 for AllowList507 fn set_collection_access(&mut self, caller: caller, mode: uint8) -> Result<void> {508 self.consume_store_reads_and_writes(1, 1)?;509510 check_is_owner_or_admin(caller, self)?;511 let permissions = CollectionPermissions {512 access: Some(match mode {513 0 => AccessMode::Normal,514 1 => AccessMode::AllowList,515 _ => return Err("not supported access mode".into()),516 }),517 ..Default::default()518 };519 self.collection.permissions = <Pallet<T>>::clamp_permissions(520 self.collection.mode.clone(),521 &self.collection.permissions,522 permissions,523 )524 .map_err(dispatch_to_evm::<T>)?;525526 save(self)527 }528529 /// Checks that user allowed to operate with collection.530 ///531 /// @param user User address to check.532 fn allowlisted_cross(&self, user: EthCrossAccount) -> Result<bool> {533 let user = user.into_sub_cross_account::<T>()?;534 Ok(Pallet::<T>::allowed(self.id, user))535 }536537 /// Add the user to the allowed list.538 ///539 /// @param user Address of a trusted user.540 #[solidity(hide)]541 fn add_to_collection_allow_list(&mut self, caller: caller, user: address) -> Result<void> {542 self.consume_store_writes(1)?;543544 let caller = T::CrossAccountId::from_eth(caller);545 let user = T::CrossAccountId::from_eth(user);546 <Pallet<T>>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;547 Ok(())548 }549550 /// Add user to allowed list.551 ///552 /// @param user User cross account address.553 fn add_to_collection_allow_list_cross(554 &mut self,555 caller: caller,556 user: EthCrossAccount,557 ) -> Result<void> {558 self.consume_store_writes(1)?;559560 let caller = T::CrossAccountId::from_eth(caller);561 let user = user.into_sub_cross_account::<T>()?;562 Pallet::<T>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;563 Ok(())564 }565566 /// Remove the user from the allowed list.567 ///568 /// @param user Address of a removed user.569 #[solidity(hide)]570 fn remove_from_collection_allow_list(&mut self, caller: caller, user: address) -> Result<void> {571 self.consume_store_writes(1)?;572573 let caller = T::CrossAccountId::from_eth(caller);574 let user = T::CrossAccountId::from_eth(user);575 <Pallet<T>>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;576 Ok(())577 }578579 /// Remove user from allowed list.580 ///581 /// @param user User cross account address.582 fn remove_from_collection_allow_list_cross(583 &mut self,584 caller: caller,585 user: EthCrossAccount,586 ) -> Result<void> {587 self.consume_store_writes(1)?;588589 let caller = T::CrossAccountId::from_eth(caller);590 let user = user.into_sub_cross_account::<T>()?;591 Pallet::<T>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;592 Ok(())593 }594595 /// Switch permission for minting.596 ///597 /// @param mode Enable if "true".598 fn set_collection_mint_mode(&mut self, caller: caller, mode: bool) -> Result<void> {599 self.consume_store_reads_and_writes(1, 1)?;600601 check_is_owner_or_admin(caller, self)?;602 let permissions = CollectionPermissions {603 mint_mode: Some(mode),604 ..Default::default()605 };606 self.collection.permissions = <Pallet<T>>::clamp_permissions(607 self.collection.mode.clone(),608 &self.collection.permissions,609 permissions,610 )611 .map_err(dispatch_to_evm::<T>)?;612613 save(self)614 }615616 /// Check that account is the owner or admin of the collection617 ///618 /// @param user account to verify619 /// @return "true" if account is the owner or admin620 #[solidity(hide, rename_selector = "isOwnerOrAdmin")]621 fn is_owner_or_admin_eth(&self, user: address) -> Result<bool> {622 let user = T::CrossAccountId::from_eth(user);623 Ok(self.is_owner_or_admin(&user))624 }625626 /// Check that account is the owner or admin of the collection627 ///628 /// @param user User cross account to verify629 /// @return "true" if account is the owner or admin630 fn is_owner_or_admin_cross(&self, user: EthCrossAccount) -> Result<bool> {631 let user = user.into_sub_cross_account::<T>()?;632 Ok(self.is_owner_or_admin(&user))633 }634635 /// Returns collection type636 ///637 /// @return `Fungible` or `NFT` or `ReFungible`638 fn unique_collection_type(&self) -> Result<string> {639 let mode = match self.collection.mode {640 CollectionMode::Fungible(_) => "Fungible",641 CollectionMode::NFT => "NFT",642 CollectionMode::ReFungible => "ReFungible",643 };644 Ok(mode.into())645 }646647 /// Get collection owner.648 ///649 /// @return Tuble with sponsor address and his substrate mirror.650 /// If address is canonical then substrate mirror is zero and vice versa.651 fn collection_owner(&self) -> Result<EthCrossAccount> {652 Ok(EthCrossAccount::from_sub_cross_account::<T>(653 &T::CrossAccountId::from_sub(self.owner.clone()),654 ))655 }656657 /// Changes collection owner to another account658 ///659 /// @dev Owner can be changed only by current owner660 /// @param newOwner new owner account661 #[solidity(hide, rename_selector = "changeCollectionOwner")]662 fn set_owner(&mut self, caller: caller, new_owner: address) -> Result<void> {663 self.consume_store_writes(1)?;664665 let caller = T::CrossAccountId::from_eth(caller);666 let new_owner = T::CrossAccountId::from_eth(new_owner);667 self.set_owner_internal(caller, new_owner)668 .map_err(dispatch_to_evm::<T>)669 }670671 /// Get collection administrators672 ///673 /// @return Vector of tuples with admins address and his substrate mirror.674 /// If address is canonical then substrate mirror is zero and vice versa.675 fn collection_admins(&self) -> Result<Vec<EthCrossAccount>> {676 let result = crate::IsAdmin::<T>::iter_prefix((self.id,))677 .map(|(admin, _)| EthCrossAccount::from_sub_cross_account::<T>(&admin))678 .collect();679 Ok(result)680 }681682 /// Changes collection owner to another account683 ///684 /// @dev Owner can be changed only by current owner685 /// @param newOwner new owner cross account686 fn change_collection_owner_cross(687 &mut self,688 caller: caller,689 new_owner: EthCrossAccount,690 ) -> Result<void> {691 self.consume_store_writes(1)?;692693 let caller = T::CrossAccountId::from_eth(caller);694 let new_owner = new_owner.into_sub_cross_account::<T>()?;695 self.set_owner_internal(caller, new_owner)696 .map_err(dispatch_to_evm::<T>)697 }698}699700/// ### Note701/// Do not forget to add: `self.consume_store_reads(1)?;`702fn check_is_owner_or_admin<T: Config>(703 caller: caller,704 collection: &CollectionHandle<T>,705) -> Result<T::CrossAccountId> {706 let caller = T::CrossAccountId::from_eth(caller);707 collection708 .check_is_owner_or_admin(&caller)709 .map_err(dispatch_to_evm::<T>)?;710 Ok(caller)711}712713/// ### Note714/// Do not forget to add: `self.consume_store_writes(1)?;`715fn save<T: Config>(collection: &CollectionHandle<T>) -> Result<void> {716 collection717 .check_is_internal()718 .map_err(dispatch_to_evm::<T>)?;719 collection.save().map_err(dispatch_to_evm::<T>)?;720 Ok(())721}722723/// Contains static property keys and values.724pub mod static_property {725 use evm_coder::{726 execution::{Result, Error},727 };728 use alloc::format;729730 const EXPECT_CONVERT_ERROR: &str = "length < limit";731732 /// Keys.733 pub mod key {734 use super::*;735736 /// Key "baseURI".737 pub fn base_uri() -> up_data_structs::PropertyKey {738 property_key_from_bytes(b"baseURI").expect(EXPECT_CONVERT_ERROR)739 }740741 /// Key "url".742 pub fn url() -> up_data_structs::PropertyKey {743 property_key_from_bytes(b"URI").expect(EXPECT_CONVERT_ERROR)744 }745746 /// Key "suffix".747 pub fn suffix() -> up_data_structs::PropertyKey {748 property_key_from_bytes(b"URISuffix").expect(EXPECT_CONVERT_ERROR)749 }750751 /// Key "parentNft".752 pub fn parent_nft() -> up_data_structs::PropertyKey {753 property_key_from_bytes(b"parentNft").expect(EXPECT_CONVERT_ERROR)754 }755 }756757 /// Convert `byte` to [`PropertyKey`].758 pub fn property_key_from_bytes(bytes: &[u8]) -> Result<up_data_structs::PropertyKey> {759 bytes.to_vec().try_into().map_err(|_| {760 Error::Revert(format!(761 "Property key is too long. Max length is {}.",762 up_data_structs::PropertyKey::bound()763 ))764 })765 }766767 /// Convert `bytes` to [`PropertyValue`].768 pub fn property_value_from_bytes(bytes: &[u8]) -> Result<up_data_structs::PropertyValue> {769 bytes.to_vec().try_into().map_err(|_| {770 Error::Revert(format!(771 "Property key is too long. Max length is {}.",772 up_data_structs::PropertyKey::bound()773 ))774 })775 }776}pallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth--- a/pallets/fungible/src/stubs/UniqueFungible.sol
+++ b/pallets/fungible/src/stubs/UniqueFungible.sol
@@ -18,7 +18,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x8b91d192
+/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca
contract Collection is Dummy, ERC165 {
// /// Set collection property.
// ///
@@ -269,9 +269,9 @@
/// Checks that user allowed to operate with collection.
///
/// @param user User address to check.
- /// @dev EVM selector for this function is: 0xd63a8e11,
- /// or in textual repr: allowed(address)
- function allowed(address user) public view returns (bool) {
+ /// @dev EVM selector for this function is: 0x91b6df49,
+ /// or in textual repr: allowlistedCross((address,uint256))
+ function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -119,7 +119,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x8b91d192
+/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca
contract Collection is Dummy, ERC165 {
// /// Set collection property.
// ///
@@ -370,9 +370,9 @@
/// Checks that user allowed to operate with collection.
///
/// @param user User address to check.
- /// @dev EVM selector for this function is: 0xd63a8e11,
- /// or in textual repr: allowed(address)
- function allowed(address user) public view returns (bool) {
+ /// @dev EVM selector for this function is: 0x91b6df49,
+ /// or in textual repr: allowlistedCross((address,uint256))
+ function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -119,7 +119,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x8b91d192
+/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca
contract Collection is Dummy, ERC165 {
// /// Set collection property.
// ///
@@ -370,9 +370,9 @@
/// Checks that user allowed to operate with collection.
///
/// @param user User address to check.
- /// @dev EVM selector for this function is: 0xd63a8e11,
- /// or in textual repr: allowed(address)
- function allowed(address user) public view returns (bool) {
+ /// @dev EVM selector for this function is: 0x91b6df49,
+ /// or in textual repr: allowlistedCross((address,uint256))
+ function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
pallets/refungible/src/stubs/UniqueRefungibleToken.rawdiffbeforeafterbothbinary blob — no preview
pallets/unique/src/eth/stubs/CollectionHelpers.rawdiffbeforeafterbothbinary blob — no preview
tests/src/eth/abi/fungible.jsondiffbeforeafterboth--- a/tests/src/eth/abi/fungible.json
+++ b/tests/src/eth/abi/fungible.json
@@ -95,9 +95,17 @@
},
{
"inputs": [
- { "internalType": "address", "name": "user", "type": "address" }
+ {
+ "components": [
+ { "internalType": "address", "name": "eth", "type": "address" },
+ { "internalType": "uint256", "name": "sub", "type": "uint256" }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
],
- "name": "allowed",
+ "name": "allowlistedCross",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
tests/src/eth/abi/nonFungible.jsondiffbeforeafterboth--- a/tests/src/eth/abi/nonFungible.json
+++ b/tests/src/eth/abi/nonFungible.json
@@ -116,9 +116,17 @@
},
{
"inputs": [
- { "internalType": "address", "name": "user", "type": "address" }
+ {
+ "components": [
+ { "internalType": "address", "name": "eth", "type": "address" },
+ { "internalType": "uint256", "name": "sub", "type": "uint256" }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
],
- "name": "allowed",
+ "name": "allowlistedCross",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
tests/src/eth/abi/reFungible.jsondiffbeforeafterboth--- a/tests/src/eth/abi/reFungible.json
+++ b/tests/src/eth/abi/reFungible.json
@@ -116,9 +116,17 @@
},
{
"inputs": [
- { "internalType": "address", "name": "user", "type": "address" }
+ {
+ "components": [
+ { "internalType": "address", "name": "eth", "type": "address" },
+ { "internalType": "uint256", "name": "sub", "type": "uint256" }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
],
- "name": "allowed",
+ "name": "allowlistedCross",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
tests/src/eth/allowlist.test.tsdiffbeforeafterboth--- a/tests/src/eth/allowlist.test.ts
+++ b/tests/src/eth/allowlist.test.ts
@@ -78,16 +78,17 @@
itEth('Collection allowlist can be added and removed by [eth] address', async ({helper}) => {
const owner = await helper.eth.createAccountWithBalance(donor);
const user = helper.eth.createAccount();
-
+ const crossUser = helper.ethCrossAccount.fromAddress(user);
+
const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');
const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);
- expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;
+ expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;
await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});
- expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;
+ expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.true;
await collectionEvm.methods.removeFromCollectionAllowList(user).send({from: owner});
- expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;
+ expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;
});
itEth('Collection allowlist can be added and removed by [cross] address', async ({helper}) => {
@@ -101,9 +102,11 @@
expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});
expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
+ expect(await collectionEvm.methods.allowlistedCross(userCross).call({from: owner})).to.be.true;
await collectionEvm.methods.removeFromCollectionAllowListCross(userCross).send({from: owner});
expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+ expect(await collectionEvm.methods.allowlistedCross(userCross).call({from: owner})).to.be.false;
});
// Soft-deprecated
@@ -111,17 +114,18 @@
const owner = await helper.eth.createAccountWithBalance(donor);
const notOwner = await helper.eth.createAccountWithBalance(donor);
const user = helper.eth.createAccount();
+ const crossUser = helper.ethCrossAccount.fromAddress(user);
const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');
const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);
- expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;
+ expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;
await expect(collectionEvm.methods.addToCollectionAllowList(user).call({from: notOwner})).to.be.rejectedWith('NoPermission');
- expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;
+ expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;
await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});
- expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;
+ expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.true;
await expect(collectionEvm.methods.removeFromCollectionAllowList(user).call({from: notOwner})).to.be.rejectedWith('NoPermission');
- expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;
+ expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.true;
});
itEth('Collection allowlist can not be add and remove [cross] address by not owner', async ({helper}) => {
tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -13,7 +13,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x8b91d192
+/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca
interface Collection is Dummy, ERC165 {
// /// Set collection property.
// ///
@@ -177,9 +177,9 @@
/// Checks that user allowed to operate with collection.
///
/// @param user User address to check.
- /// @dev EVM selector for this function is: 0xd63a8e11,
- /// or in textual repr: allowed(address)
- function allowed(address user) external view returns (bool);
+ /// @dev EVM selector for this function is: 0x91b6df49,
+ /// or in textual repr: allowlistedCross((address,uint256))
+ function allowlistedCross(EthCrossAccount memory user) external view returns (bool);
// /// Add the user to the allowed list.
// ///
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -80,7 +80,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x8b91d192
+/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca
interface Collection is Dummy, ERC165 {
// /// Set collection property.
// ///
@@ -244,9 +244,9 @@
/// Checks that user allowed to operate with collection.
///
/// @param user User address to check.
- /// @dev EVM selector for this function is: 0xd63a8e11,
- /// or in textual repr: allowed(address)
- function allowed(address user) external view returns (bool);
+ /// @dev EVM selector for this function is: 0x91b6df49,
+ /// or in textual repr: allowlistedCross((address,uint256))
+ function allowlistedCross(EthCrossAccount memory user) external view returns (bool);
// /// Add the user to the allowed list.
// ///
tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -80,7 +80,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x8b91d192
+/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca
interface Collection is Dummy, ERC165 {
// /// Set collection property.
// ///
@@ -244,9 +244,9 @@
/// Checks that user allowed to operate with collection.
///
/// @param user User address to check.
- /// @dev EVM selector for this function is: 0xd63a8e11,
- /// or in textual repr: allowed(address)
- function allowed(address user) external view returns (bool);
+ /// @dev EVM selector for this function is: 0x91b6df49,
+ /// or in textual repr: allowlistedCross((address,uint256))
+ function allowlistedCross(EthCrossAccount memory user) external view returns (bool);
// /// Add the user to the allowed list.
// ///
tests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -94,13 +94,11 @@
};
scheduler: {
/**
- * The maximum weight that may be scheduled per block for any dispatchables of less
- * priority than `schedule::HARD_DEADLINE`.
+ * The maximum weight that may be scheduled per block for any dispatchables.
**/
maximumWeight: Weight & AugmentedConst<ApiType>;
/**
* The maximum number of scheduled calls in the queue for a single block.
- * Not strictly enforced, but used for weight estimation.
**/
maxScheduledPerBlock: u32 & AugmentedConst<ApiType>;
/**
tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -337,6 +337,10 @@
**/
AccountNotEmpty: AugmentedError<ApiType>;
/**
+ * Failed to decode event bytes
+ **/
+ BadEvent: AugmentedError<ApiType>;
+ /**
* Generic error
**/
[key: string]: AugmentedError<ApiType>;
@@ -660,22 +664,38 @@
};
scheduler: {
/**
+ * There is no place for a new task in the agenda
+ **/
+ AgendaIsExhausted: AugmentedError<ApiType>;
+ /**
* Failed to schedule a call
**/
FailedToSchedule: AugmentedError<ApiType>;
/**
+ * Attempt to use a non-named function on a named task.
+ **/
+ Named: AugmentedError<ApiType>;
+ /**
* Cannot find the scheduled call.
**/
NotFound: AugmentedError<ApiType>;
/**
- * Reschedule failed because it does not change scheduled time.
+ * Scheduled call preimage is not found
+ **/
+ PreimageNotFound: AugmentedError<ApiType>;
+ /**
+ * Scheduled call is corrupted
**/
- RescheduleNoChange: AugmentedError<ApiType>;
+ ScheduledCallCorrupted: AugmentedError<ApiType>;
/**
* Given target block number is in the past.
**/
TargetBlockNumberInPast: AugmentedError<ApiType>;
/**
+ * Scheduled call is too big
+ **/
+ TooBigScheduledCall: AugmentedError<ApiType>;
+ /**
* Generic error
**/
[key: string]: AugmentedError<ApiType>;
tests/src/interfaces/augment-api-events.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -9,7 +9,7 @@
import type { Bytes, Null, Option, Result, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';
import type { ITuple } from '@polkadot/types-codec/types';
import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';
-import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportDispatchDispatchInfo, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
+import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportDispatchDispatchInfo, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;
@@ -256,6 +256,16 @@
**/
[key: string]: AugmentedEvent<ApiType>;
};
+ evmMigration: {
+ /**
+ * This event is used in benchmarking and can be used for tests
+ **/
+ TestEvent: AugmentedEvent<ApiType, []>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
foreignAssets: {
/**
* The asset registered.
@@ -471,7 +481,7 @@
/**
* The call for the provided hash was not found so the task has been aborted.
**/
- CallLookupFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError }>;
+ CallUnavailable: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed> }>;
/**
* Canceled some task.
**/
@@ -481,9 +491,13 @@
**/
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> }>;
/**
+ * The given task can never be executed since it is overweight.
+ **/
+ PermanentlyOverweight: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed> }>;
+ /**
* Scheduled task's priority has changed
**/
- PriorityChanged: AugmentedEvent<ApiType, [when: u32, index: u32, priority: u8], { when: u32, index: u32, priority: u8 }>;
+ PriorityChanged: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, priority: u8], { task: ITuple<[u32, u32]>, priority: u8 }>;
/**
* Scheduled some task.
**/
@@ -552,6 +566,7 @@
[key: string]: AugmentedEvent<ApiType>;
};
testUtils: {
+ BatchCompleted: AugmentedEvent<ApiType, []>;
ShouldRollback: AugmentedEvent<ApiType, []>;
ValueIsSet: AugmentedEvent<ApiType, []>;
/**
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -9,7 +9,7 @@
import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerV2BlockAgenda, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';
import type { Observable } from '@polkadot/types/types';
export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;
@@ -681,9 +681,14 @@
/**
* Items to be executed, indexed by the block number that they should be executed on.
**/
- agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUniqueSchedulerScheduledV3>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<PalletUniqueSchedulerV2BlockAgenda>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
/**
- * Lookup from identity to the block number and index of the task.
+ * It contains the block number from which we should service tasks.
+ * It's used for delaying the servicing of future blocks' agendas if we had overweight tasks.
+ **/
+ incompleteSince: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Lookup from a name to the block number and index of the task.
**/
lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>;
/**
tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -9,7 +9,7 @@
import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';
import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumLog, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;
export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;
@@ -295,6 +295,14 @@
**/
finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;
/**
+ * Create ethereum events attached to the fake transaction
+ **/
+ insertEthLogs: AugmentedSubmittable<(logs: Vec<EthereumLog> | (EthereumLog | { address?: any; topics?: any; data?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<EthereumLog>]>;
+ /**
+ * Create substrate events
+ **/
+ insertEvents: AugmentedSubmittable<(events: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;
+ /**
* Insert items into contract storage, this method can be called
* multiple times
**/
@@ -831,22 +839,56 @@
};
scheduler: {
/**
+ * Cancel an anonymously scheduled task.
+ *
+ * The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.
+ **/
+ cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+ /**
* Cancel a named scheduled task.
+ *
+ * The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.
**/
cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;
+ /**
+ * Change a named task's priority.
+ *
+ * Only the `T::PrioritySetOrigin` is allowed to change the task's priority.
+ **/
changeNamedPriority: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u8]>;
/**
+ * Anonymously schedule a task.
+ *
+ * Only `T::ScheduleOrigin` is allowed to schedule a task.
+ * Only `T::PrioritySetOrigin` is allowed to set the task's priority.
+ **/
+ schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;
+ /**
+ * Anonymously schedule a task after a delay.
+ *
+ * # <weight>
+ * Same as [`schedule`].
+ * # </weight>
+ **/
+ scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;
+ /**
* Schedule a named task.
+ *
+ * Only `T::ScheduleOrigin` is allowed to schedule a task.
+ * Only `T::PrioritySetOrigin` is allowed to set the task's priority.
**/
- scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, FrameSupportScheduleMaybeHashed]>;
+ scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;
/**
* Schedule a named task after a delay.
*
+ * Only `T::ScheduleOrigin` is allowed to schedule a task.
+ * Only `T::PrioritySetOrigin` is allowed to set the task's priority.
+ *
* # <weight>
* Same as [`schedule_named`](Self::schedule_named).
* # </weight>
**/
- scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, FrameSupportScheduleMaybeHashed]>;
+ scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;
/**
* Generic tx
**/
@@ -986,6 +1028,7 @@
[key: string]: SubmittableExtrinsicFunction<ApiType>;
};
testUtils: {
+ batchAll: AugmentedSubmittable<(calls: Vec<Call> | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Call>]>;
enable: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
incTestValue: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
justTakeFee: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
tests/src/interfaces/augment-types.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -5,7 +5,7 @@
// this is required to allow for ambient/previous definitions
import '@polkadot/types/types/registry';
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerV2BlockAgenda, PalletUniqueSchedulerV2Call, PalletUniqueSchedulerV2Error, PalletUniqueSchedulerV2Event, PalletUniqueSchedulerV2Scheduled, PalletUniqueSchedulerV2ScheduledCall, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
import type { Data, StorageKey } from '@polkadot/types';
import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -526,8 +526,6 @@
FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;
FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;
FrameSupportPalletId: FrameSupportPalletId;
- FrameSupportScheduleLookupError: FrameSupportScheduleLookupError;
- FrameSupportScheduleMaybeHashed: FrameSupportScheduleMaybeHashed;
FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;
FrameSystemAccountInfo: FrameSystemAccountInfo;
FrameSystemCall: FrameSystemCall;
@@ -854,6 +852,7 @@
PalletEvmEvent: PalletEvmEvent;
PalletEvmMigrationCall: PalletEvmMigrationCall;
PalletEvmMigrationError: PalletEvmMigrationError;
+ PalletEvmMigrationEvent: PalletEvmMigrationEvent;
PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;
PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;
PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;
@@ -902,10 +901,12 @@
PalletUniqueCall: PalletUniqueCall;
PalletUniqueError: PalletUniqueError;
PalletUniqueRawEvent: PalletUniqueRawEvent;
- PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;
- PalletUniqueSchedulerError: PalletUniqueSchedulerError;
- PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;
- PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;
+ PalletUniqueSchedulerV2BlockAgenda: PalletUniqueSchedulerV2BlockAgenda;
+ PalletUniqueSchedulerV2Call: PalletUniqueSchedulerV2Call;
+ PalletUniqueSchedulerV2Error: PalletUniqueSchedulerV2Error;
+ PalletUniqueSchedulerV2Event: PalletUniqueSchedulerV2Event;
+ PalletUniqueSchedulerV2Scheduled: PalletUniqueSchedulerV2Scheduled;
+ PalletUniqueSchedulerV2ScheduledCall: PalletUniqueSchedulerV2ScheduledCall;
PalletVersion: PalletVersion;
PalletXcmCall: PalletXcmCall;
PalletXcmError: PalletXcmError;
tests/src/interfaces/default/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -556,22 +556,6 @@
/** @name FrameSupportPalletId */
export interface FrameSupportPalletId extends U8aFixed {}
-/** @name FrameSupportScheduleLookupError */
-export interface FrameSupportScheduleLookupError extends Enum {
- readonly isUnknown: boolean;
- readonly isBadFormat: boolean;
- readonly type: 'Unknown' | 'BadFormat';
-}
-
-/** @name FrameSupportScheduleMaybeHashed */
-export interface FrameSupportScheduleMaybeHashed extends Enum {
- readonly isValue: boolean;
- readonly asValue: Call;
- readonly isHash: boolean;
- readonly asHash: H256;
- readonly type: 'Value' | 'Hash';
-}
-
/** @name FrameSupportTokensMiscBalanceStatus */
export interface FrameSupportTokensMiscBalanceStatus extends Enum {
readonly isFree: boolean;
@@ -1510,16 +1494,31 @@
readonly address: H160;
readonly code: Bytes;
} & Struct;
- readonly type: 'Begin' | 'SetData' | 'Finish';
+ readonly isInsertEthLogs: boolean;
+ readonly asInsertEthLogs: {
+ readonly logs: Vec<EthereumLog>;
+ } & Struct;
+ readonly isInsertEvents: boolean;
+ readonly asInsertEvents: {
+ readonly events: Vec<Bytes>;
+ } & Struct;
+ readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents';
}
/** @name PalletEvmMigrationError */
export interface PalletEvmMigrationError extends Enum {
readonly isAccountNotEmpty: boolean;
readonly isAccountIsNotMigrating: boolean;
- readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
+ readonly isBadEvent: boolean;
+ readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating' | 'BadEvent';
}
+/** @name PalletEvmMigrationEvent */
+export interface PalletEvmMigrationEvent extends Enum {
+ readonly isTestEvent: boolean;
+ readonly type: 'TestEvent';
+}
+
/** @name PalletForeignAssetsAssetIds */
export interface PalletForeignAssetsAssetIds extends Enum {
readonly isForeignAssetId: boolean;
@@ -2019,7 +2018,11 @@
readonly maxTestValue: u32;
} & Struct;
readonly isJustTakeFee: boolean;
- readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee';
+ readonly isBatchAll: boolean;
+ readonly asBatchAll: {
+ readonly calls: Vec<Call>;
+ } & Struct;
+ readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee' | 'BatchAll';
}
/** @name PalletTestUtilsError */
@@ -2033,7 +2036,8 @@
export interface PalletTestUtilsEvent extends Enum {
readonly isValueIsSet: boolean;
readonly isShouldRollback: boolean;
- readonly type: 'ValueIsSet' | 'ShouldRollback';
+ readonly isBatchCompleted: boolean;
+ readonly type: 'ValueIsSet' | 'ShouldRollback' | 'BatchCompleted';
}
/** @name PalletTimestampCall */
@@ -2342,47 +2346,76 @@
readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';
}
-/** @name PalletUniqueSchedulerCall */
-export interface PalletUniqueSchedulerCall extends Enum {
+/** @name PalletUniqueSchedulerV2BlockAgenda */
+export interface PalletUniqueSchedulerV2BlockAgenda extends Struct {
+ readonly agenda: Vec<Option<PalletUniqueSchedulerV2Scheduled>>;
+ readonly freePlaces: u32;
+}
+
+/** @name PalletUniqueSchedulerV2Call */
+export interface PalletUniqueSchedulerV2Call extends Enum {
+ readonly isSchedule: boolean;
+ readonly asSchedule: {
+ readonly when: u32;
+ readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+ readonly priority: Option<u8>;
+ readonly call: Call;
+ } & Struct;
+ readonly isCancel: boolean;
+ readonly asCancel: {
+ readonly when: u32;
+ readonly index: u32;
+ } & Struct;
readonly isScheduleNamed: boolean;
readonly asScheduleNamed: {
readonly id: U8aFixed;
readonly when: u32;
readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
readonly priority: Option<u8>;
- readonly call: FrameSupportScheduleMaybeHashed;
+ readonly call: Call;
} & Struct;
readonly isCancelNamed: boolean;
readonly asCancelNamed: {
readonly id: U8aFixed;
} & Struct;
+ readonly isScheduleAfter: boolean;
+ readonly asScheduleAfter: {
+ readonly after: u32;
+ readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+ readonly priority: Option<u8>;
+ readonly call: Call;
+ } & Struct;
readonly isScheduleNamedAfter: boolean;
readonly asScheduleNamedAfter: {
readonly id: U8aFixed;
readonly after: u32;
readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
readonly priority: Option<u8>;
- readonly call: FrameSupportScheduleMaybeHashed;
+ readonly call: Call;
} & Struct;
readonly isChangeNamedPriority: boolean;
readonly asChangeNamedPriority: {
readonly id: U8aFixed;
readonly priority: u8;
} & Struct;
- readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';
+ readonly type: 'Schedule' | 'Cancel' | 'ScheduleNamed' | 'CancelNamed' | 'ScheduleAfter' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';
}
-/** @name PalletUniqueSchedulerError */
-export interface PalletUniqueSchedulerError extends Enum {
+/** @name PalletUniqueSchedulerV2Error */
+export interface PalletUniqueSchedulerV2Error extends Enum {
readonly isFailedToSchedule: boolean;
+ readonly isAgendaIsExhausted: boolean;
+ readonly isScheduledCallCorrupted: boolean;
+ readonly isPreimageNotFound: boolean;
+ readonly isTooBigScheduledCall: boolean;
readonly isNotFound: boolean;
readonly isTargetBlockNumberInPast: boolean;
- readonly isRescheduleNoChange: boolean;
- readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
+ readonly isNamed: boolean;
+ readonly type: 'FailedToSchedule' | 'AgendaIsExhausted' | 'ScheduledCallCorrupted' | 'PreimageNotFound' | 'TooBigScheduledCall' | 'NotFound' | 'TargetBlockNumberInPast' | 'Named';
}
-/** @name PalletUniqueSchedulerEvent */
-export interface PalletUniqueSchedulerEvent extends Enum {
+/** @name PalletUniqueSchedulerV2Event */
+export interface PalletUniqueSchedulerV2Event extends Enum {
readonly isScheduled: boolean;
readonly asScheduled: {
readonly when: u32;
@@ -2393,36 +2426,51 @@
readonly when: u32;
readonly index: u32;
} & Struct;
+ readonly isDispatched: boolean;
+ readonly asDispatched: {
+ readonly task: ITuple<[u32, u32]>;
+ readonly id: Option<U8aFixed>;
+ readonly result: Result<Null, SpRuntimeDispatchError>;
+ } & Struct;
readonly isPriorityChanged: boolean;
readonly asPriorityChanged: {
- readonly when: u32;
- readonly index: u32;
+ readonly task: ITuple<[u32, u32]>;
readonly priority: u8;
} & Struct;
- readonly isDispatched: boolean;
- readonly asDispatched: {
+ readonly isCallUnavailable: boolean;
+ readonly asCallUnavailable: {
readonly task: ITuple<[u32, u32]>;
readonly id: Option<U8aFixed>;
- readonly result: Result<Null, SpRuntimeDispatchError>;
} & Struct;
- readonly isCallLookupFailed: boolean;
- readonly asCallLookupFailed: {
+ readonly isPermanentlyOverweight: boolean;
+ readonly asPermanentlyOverweight: {
readonly task: ITuple<[u32, u32]>;
readonly id: Option<U8aFixed>;
- readonly error: FrameSupportScheduleLookupError;
} & Struct;
- readonly type: 'Scheduled' | 'Canceled' | 'PriorityChanged' | 'Dispatched' | 'CallLookupFailed';
+ readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'PriorityChanged' | 'CallUnavailable' | 'PermanentlyOverweight';
}
-/** @name PalletUniqueSchedulerScheduledV3 */
-export interface PalletUniqueSchedulerScheduledV3 extends Struct {
+/** @name PalletUniqueSchedulerV2Scheduled */
+export interface PalletUniqueSchedulerV2Scheduled extends Struct {
readonly maybeId: Option<U8aFixed>;
readonly priority: u8;
- readonly call: FrameSupportScheduleMaybeHashed;
+ readonly call: PalletUniqueSchedulerV2ScheduledCall;
readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
readonly origin: OpalRuntimeOriginCaller;
}
+/** @name PalletUniqueSchedulerV2ScheduledCall */
+export interface PalletUniqueSchedulerV2ScheduledCall extends Enum {
+ readonly isInline: boolean;
+ readonly asInline: Bytes;
+ readonly isPreimageLookup: boolean;
+ readonly asPreimageLookup: {
+ readonly hash_: H256;
+ readonly unboundedLen: u32;
+ } & Struct;
+ readonly type: 'Inline' | 'PreimageLookup';
+}
+
/** @name PalletXcmCall */
export interface PalletXcmCall extends Enum {
readonly isSend: boolean;
tests/src/interfaces/lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1004,9 +1004,9 @@
}
},
/**
- * Lookup93: pallet_unique_scheduler::pallet::Event<T>
+ * Lookup93: pallet_unique_scheduler_v2::pallet::Event<T>
**/
- PalletUniqueSchedulerEvent: {
+ PalletUniqueSchedulerV2Event: {
_enum: {
Scheduled: {
when: 'u32',
@@ -1016,31 +1016,27 @@
when: 'u32',
index: 'u32',
},
+ Dispatched: {
+ task: '(u32,u32)',
+ id: 'Option<[u8;32]>',
+ result: 'Result<Null, SpRuntimeDispatchError>',
+ },
PriorityChanged: {
- when: 'u32',
- index: 'u32',
+ task: '(u32,u32)',
priority: 'u8',
},
- Dispatched: {
+ CallUnavailable: {
task: '(u32,u32)',
- id: 'Option<[u8;16]>',
- result: 'Result<Null, SpRuntimeDispatchError>',
+ id: 'Option<[u8;32]>',
},
- CallLookupFailed: {
+ PermanentlyOverweight: {
task: '(u32,u32)',
- id: 'Option<[u8;16]>',
- error: 'FrameSupportScheduleLookupError'
+ id: 'Option<[u8;32]>'
}
}
},
/**
- * Lookup96: frame_support::traits::schedule::LookupError
- **/
- FrameSupportScheduleLookupError: {
- _enum: ['Unknown', 'BadFormat']
- },
- /**
- * Lookup97: pallet_common::pallet::Event<T>
+ * Lookup96: pallet_common::pallet::Event<T>
**/
PalletCommonEvent: {
_enum: {
@@ -1058,7 +1054,7 @@
}
},
/**
- * Lookup100: pallet_structure::pallet::Event<T>
+ * Lookup99: pallet_structure::pallet::Event<T>
**/
PalletStructureEvent: {
_enum: {
@@ -1066,7 +1062,7 @@
}
},
/**
- * Lookup101: pallet_rmrk_core::pallet::Event<T>
+ * Lookup100: pallet_rmrk_core::pallet::Event<T>
**/
PalletRmrkCoreEvent: {
_enum: {
@@ -1143,7 +1139,7 @@
}
},
/**
- * Lookup102: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
+ * Lookup101: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
**/
RmrkTraitsNftAccountIdOrCollectionNftTuple: {
_enum: {
@@ -1152,7 +1148,7 @@
}
},
/**
- * Lookup107: pallet_rmrk_equip::pallet::Event<T>
+ * Lookup106: pallet_rmrk_equip::pallet::Event<T>
**/
PalletRmrkEquipEvent: {
_enum: {
@@ -1167,7 +1163,7 @@
}
},
/**
- * Lookup108: pallet_app_promotion::pallet::Event<T>
+ * Lookup107: pallet_app_promotion::pallet::Event<T>
**/
PalletAppPromotionEvent: {
_enum: {
@@ -1178,7 +1174,7 @@
}
},
/**
- * Lookup109: pallet_foreign_assets::module::Event<T>
+ * Lookup108: pallet_foreign_assets::module::Event<T>
**/
PalletForeignAssetsModuleEvent: {
_enum: {
@@ -1203,7 +1199,7 @@
}
},
/**
- * Lookup110: pallet_foreign_assets::module::AssetMetadata<Balance>
+ * Lookup109: pallet_foreign_assets::module::AssetMetadata<Balance>
**/
PalletForeignAssetsModuleAssetMetadata: {
name: 'Bytes',
@@ -1212,7 +1208,7 @@
minimalBalance: 'u128'
},
/**
- * Lookup111: pallet_evm::pallet::Event<T>
+ * Lookup110: pallet_evm::pallet::Event<T>
**/
PalletEvmEvent: {
_enum: {
@@ -1234,7 +1230,7 @@
}
},
/**
- * Lookup112: ethereum::log::Log
+ * Lookup111: ethereum::log::Log
**/
EthereumLog: {
address: 'H160',
@@ -1242,7 +1238,7 @@
data: 'Bytes'
},
/**
- * Lookup114: pallet_ethereum::pallet::Event
+ * Lookup113: pallet_ethereum::pallet::Event
**/
PalletEthereumEvent: {
_enum: {
@@ -1255,7 +1251,7 @@
}
},
/**
- * Lookup115: evm_core::error::ExitReason
+ * Lookup114: evm_core::error::ExitReason
**/
EvmCoreErrorExitReason: {
_enum: {
@@ -1266,13 +1262,13 @@
}
},
/**
- * Lookup116: evm_core::error::ExitSucceed
+ * Lookup115: evm_core::error::ExitSucceed
**/
EvmCoreErrorExitSucceed: {
_enum: ['Stopped', 'Returned', 'Suicided']
},
/**
- * Lookup117: evm_core::error::ExitError
+ * Lookup116: evm_core::error::ExitError
**/
EvmCoreErrorExitError: {
_enum: {
@@ -1294,13 +1290,13 @@
}
},
/**
- * Lookup120: evm_core::error::ExitRevert
+ * Lookup119: evm_core::error::ExitRevert
**/
EvmCoreErrorExitRevert: {
_enum: ['Reverted']
},
/**
- * Lookup121: evm_core::error::ExitFatal
+ * Lookup120: evm_core::error::ExitFatal
**/
EvmCoreErrorExitFatal: {
_enum: {
@@ -1311,7 +1307,7 @@
}
},
/**
- * Lookup122: pallet_evm_contract_helpers::pallet::Event<T>
+ * Lookup121: pallet_evm_contract_helpers::pallet::Event<T>
**/
PalletEvmContractHelpersEvent: {
_enum: {
@@ -1321,6 +1317,12 @@
}
},
/**
+ * Lookup122: pallet_evm_migration::pallet::Event<T>
+ **/
+ PalletEvmMigrationEvent: {
+ _enum: ['TestEvent']
+ },
+ /**
* Lookup123: pallet_maintenance::pallet::Event<T>
**/
PalletMaintenanceEvent: {
@@ -1330,7 +1332,7 @@
* Lookup124: pallet_test_utils::pallet::Event<T>
**/
PalletTestUtilsEvent: {
- _enum: ['ValueIsSet', 'ShouldRollback']
+ _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted']
},
/**
* Lookup125: frame_system::Phase
@@ -2463,44 +2465,51 @@
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * Lookup284: pallet_unique_scheduler::pallet::Call<T>
+ * Lookup284: pallet_unique_scheduler_v2::pallet::Call<T>
**/
- PalletUniqueSchedulerCall: {
+ PalletUniqueSchedulerV2Call: {
_enum: {
+ schedule: {
+ when: 'u32',
+ maybePeriodic: 'Option<(u32,u32)>',
+ priority: 'Option<u8>',
+ call: 'Call',
+ },
+ cancel: {
+ when: 'u32',
+ index: 'u32',
+ },
schedule_named: {
- id: '[u8;16]',
+ id: '[u8;32]',
when: 'u32',
maybePeriodic: 'Option<(u32,u32)>',
priority: 'Option<u8>',
- call: 'FrameSupportScheduleMaybeHashed',
+ call: 'Call',
},
cancel_named: {
- id: '[u8;16]',
+ id: '[u8;32]',
+ },
+ schedule_after: {
+ after: 'u32',
+ maybePeriodic: 'Option<(u32,u32)>',
+ priority: 'Option<u8>',
+ call: 'Call',
},
schedule_named_after: {
- id: '[u8;16]',
+ id: '[u8;32]',
after: 'u32',
maybePeriodic: 'Option<(u32,u32)>',
priority: 'Option<u8>',
- call: 'FrameSupportScheduleMaybeHashed',
+ call: 'Call',
},
change_named_priority: {
- id: '[u8;16]',
+ id: '[u8;32]',
priority: 'u8'
}
}
},
/**
- * Lookup287: frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>
- **/
- FrameSupportScheduleMaybeHashed: {
- _enum: {
- Value: 'Call',
- Hash: 'H256'
- }
- },
- /**
- * Lookup288: pallet_configuration::pallet::Call<T>
+ * Lookup287: pallet_configuration::pallet::Call<T>
**/
PalletConfigurationCall: {
_enum: {
@@ -2513,15 +2522,15 @@
}
},
/**
- * Lookup290: pallet_template_transaction_payment::Call<T>
+ * Lookup289: pallet_template_transaction_payment::Call<T>
**/
PalletTemplateTransactionPaymentCall: 'Null',
/**
- * Lookup291: pallet_structure::pallet::Call<T>
+ * Lookup290: pallet_structure::pallet::Call<T>
**/
PalletStructureCall: 'Null',
/**
- * Lookup292: pallet_rmrk_core::pallet::Call<T>
+ * Lookup291: pallet_rmrk_core::pallet::Call<T>
**/
PalletRmrkCoreCall: {
_enum: {
@@ -2612,7 +2621,7 @@
}
},
/**
- * Lookup298: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup297: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceResourceTypes: {
_enum: {
@@ -2622,7 +2631,7 @@
}
},
/**
- * Lookup300: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup299: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceBasicResource: {
src: 'Option<Bytes>',
@@ -2631,7 +2640,7 @@
thumb: 'Option<Bytes>'
},
/**
- * Lookup302: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup301: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceComposableResource: {
parts: 'Vec<u32>',
@@ -2642,7 +2651,7 @@
thumb: 'Option<Bytes>'
},
/**
- * Lookup303: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup302: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceSlotResource: {
base: 'u32',
@@ -2653,7 +2662,7 @@
thumb: 'Option<Bytes>'
},
/**
- * Lookup306: pallet_rmrk_equip::pallet::Call<T>
+ * Lookup305: pallet_rmrk_equip::pallet::Call<T>
**/
PalletRmrkEquipCall: {
_enum: {
@@ -2674,7 +2683,7 @@
}
},
/**
- * Lookup309: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup308: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartPartType: {
_enum: {
@@ -2683,7 +2692,7 @@
}
},
/**
- * Lookup311: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup310: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartFixedPart: {
id: 'u32',
@@ -2691,7 +2700,7 @@
src: 'Bytes'
},
/**
- * Lookup312: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup311: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartSlotPart: {
id: 'u32',
@@ -2700,7 +2709,7 @@
z: 'u32'
},
/**
- * Lookup313: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup312: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartEquippableList: {
_enum: {
@@ -2710,7 +2719,7 @@
}
},
/**
- * Lookup315: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>
+ * Lookup314: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>
**/
RmrkTraitsTheme: {
name: 'Bytes',
@@ -2718,14 +2727,14 @@
inherit: 'bool'
},
/**
- * Lookup317: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup316: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsThemeThemeProperty: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup319: pallet_app_promotion::pallet::Call<T>
+ * Lookup318: pallet_app_promotion::pallet::Call<T>
**/
PalletAppPromotionCall: {
_enum: {
@@ -2754,7 +2763,7 @@
}
},
/**
- * Lookup320: pallet_foreign_assets::module::Call<T>
+ * Lookup319: pallet_foreign_assets::module::Call<T>
**/
PalletForeignAssetsModuleCall: {
_enum: {
@@ -2771,7 +2780,7 @@
}
},
/**
- * Lookup321: pallet_evm::pallet::Call<T>
+ * Lookup320: pallet_evm::pallet::Call<T>
**/
PalletEvmCall: {
_enum: {
@@ -2814,7 +2823,7 @@
}
},
/**
- * Lookup327: pallet_ethereum::pallet::Call<T>
+ * Lookup326: pallet_ethereum::pallet::Call<T>
**/
PalletEthereumCall: {
_enum: {
@@ -2824,7 +2833,7 @@
}
},
/**
- * Lookup328: ethereum::transaction::TransactionV2
+ * Lookup327: ethereum::transaction::TransactionV2
**/
EthereumTransactionTransactionV2: {
_enum: {
@@ -2834,7 +2843,7 @@
}
},
/**
- * Lookup329: ethereum::transaction::LegacyTransaction
+ * Lookup328: ethereum::transaction::LegacyTransaction
**/
EthereumTransactionLegacyTransaction: {
nonce: 'U256',
@@ -2846,7 +2855,7 @@
signature: 'EthereumTransactionTransactionSignature'
},
/**
- * Lookup330: ethereum::transaction::TransactionAction
+ * Lookup329: ethereum::transaction::TransactionAction
**/
EthereumTransactionTransactionAction: {
_enum: {
@@ -2855,7 +2864,7 @@
}
},
/**
- * Lookup331: ethereum::transaction::TransactionSignature
+ * Lookup330: ethereum::transaction::TransactionSignature
**/
EthereumTransactionTransactionSignature: {
v: 'u64',
@@ -2863,7 +2872,7 @@
s: 'H256'
},
/**
- * Lookup333: ethereum::transaction::EIP2930Transaction
+ * Lookup332: ethereum::transaction::EIP2930Transaction
**/
EthereumTransactionEip2930Transaction: {
chainId: 'u64',
@@ -2879,14 +2888,14 @@
s: 'H256'
},
/**
- * Lookup335: ethereum::transaction::AccessListItem
+ * Lookup334: ethereum::transaction::AccessListItem
**/
EthereumTransactionAccessListItem: {
address: 'H160',
storageKeys: 'Vec<H256>'
},
/**
- * Lookup336: ethereum::transaction::EIP1559Transaction
+ * Lookup335: ethereum::transaction::EIP1559Transaction
**/
EthereumTransactionEip1559Transaction: {
chainId: 'u64',
@@ -2903,7 +2912,7 @@
s: 'H256'
},
/**
- * Lookup337: pallet_evm_migration::pallet::Call<T>
+ * Lookup336: pallet_evm_migration::pallet::Call<T>
**/
PalletEvmMigrationCall: {
_enum: {
@@ -2916,7 +2925,13 @@
},
finish: {
address: 'H160',
- code: 'Bytes'
+ code: 'Bytes',
+ },
+ insert_eth_logs: {
+ logs: 'Vec<EthereumLog>',
+ },
+ insert_events: {
+ events: 'Vec<Bytes>'
}
}
},
@@ -2940,39 +2955,42 @@
},
inc_test_value: 'Null',
self_canceling_inc: {
- id: '[u8;16]',
+ id: '[u8;32]',
maxTestValue: 'u32',
},
- just_take_fee: 'Null'
+ just_take_fee: 'Null',
+ batch_all: {
+ calls: 'Vec<Call>'
+ }
}
},
/**
- * Lookup342: pallet_sudo::pallet::Error<T>
+ * Lookup343: pallet_sudo::pallet::Error<T>
**/
PalletSudoError: {
_enum: ['RequireSudo']
},
/**
- * Lookup344: orml_vesting::module::Error<T>
+ * Lookup345: orml_vesting::module::Error<T>
**/
OrmlVestingModuleError: {
_enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
},
/**
- * Lookup345: orml_xtokens::module::Error<T>
+ * Lookup346: orml_xtokens::module::Error<T>
**/
OrmlXtokensModuleError: {
_enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']
},
/**
- * Lookup348: orml_tokens::BalanceLock<Balance>
+ * Lookup349: orml_tokens::BalanceLock<Balance>
**/
OrmlTokensBalanceLock: {
id: '[u8;8]',
amount: 'u128'
},
/**
- * Lookup350: orml_tokens::AccountData<Balance>
+ * Lookup351: orml_tokens::AccountData<Balance>
**/
OrmlTokensAccountData: {
free: 'u128',
@@ -2980,20 +2998,20 @@
frozen: 'u128'
},
/**
- * Lookup352: orml_tokens::ReserveData<ReserveIdentifier, Balance>
+ * Lookup353: orml_tokens::ReserveData<ReserveIdentifier, Balance>
**/
OrmlTokensReserveData: {
id: 'Null',
amount: 'u128'
},
/**
- * Lookup354: orml_tokens::module::Error<T>
+ * Lookup355: orml_tokens::module::Error<T>
**/
OrmlTokensModuleError: {
_enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']
},
/**
- * Lookup356: cumulus_pallet_xcmp_queue::InboundChannelDetails
+ * Lookup357: cumulus_pallet_xcmp_queue::InboundChannelDetails
**/
CumulusPalletXcmpQueueInboundChannelDetails: {
sender: 'u32',
@@ -3001,19 +3019,19 @@
messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
},
/**
- * Lookup357: cumulus_pallet_xcmp_queue::InboundState
+ * Lookup358: cumulus_pallet_xcmp_queue::InboundState
**/
CumulusPalletXcmpQueueInboundState: {
_enum: ['Ok', 'Suspended']
},
/**
- * Lookup360: polkadot_parachain::primitives::XcmpMessageFormat
+ * Lookup361: polkadot_parachain::primitives::XcmpMessageFormat
**/
PolkadotParachainPrimitivesXcmpMessageFormat: {
_enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
},
/**
- * Lookup363: cumulus_pallet_xcmp_queue::OutboundChannelDetails
+ * Lookup364: cumulus_pallet_xcmp_queue::OutboundChannelDetails
**/
CumulusPalletXcmpQueueOutboundChannelDetails: {
recipient: 'u32',
@@ -3023,13 +3041,13 @@
lastIndex: 'u16'
},
/**
- * Lookup364: cumulus_pallet_xcmp_queue::OutboundState
+ * Lookup365: cumulus_pallet_xcmp_queue::OutboundState
**/
CumulusPalletXcmpQueueOutboundState: {
_enum: ['Ok', 'Suspended']
},
/**
- * Lookup366: cumulus_pallet_xcmp_queue::QueueConfigData
+ * Lookup367: cumulus_pallet_xcmp_queue::QueueConfigData
**/
CumulusPalletXcmpQueueQueueConfigData: {
suspendThreshold: 'u32',
@@ -3040,29 +3058,29 @@
xcmpMaxIndividualWeight: 'Weight'
},
/**
- * Lookup368: cumulus_pallet_xcmp_queue::pallet::Error<T>
+ * Lookup369: cumulus_pallet_xcmp_queue::pallet::Error<T>
**/
CumulusPalletXcmpQueueError: {
_enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
},
/**
- * Lookup369: pallet_xcm::pallet::Error<T>
+ * Lookup370: pallet_xcm::pallet::Error<T>
**/
PalletXcmError: {
_enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
},
/**
- * Lookup370: cumulus_pallet_xcm::pallet::Error<T>
+ * Lookup371: cumulus_pallet_xcm::pallet::Error<T>
**/
CumulusPalletXcmError: 'Null',
/**
- * Lookup371: cumulus_pallet_dmp_queue::ConfigData
+ * Lookup372: cumulus_pallet_dmp_queue::ConfigData
**/
CumulusPalletDmpQueueConfigData: {
maxIndividual: 'Weight'
},
/**
- * Lookup372: cumulus_pallet_dmp_queue::PageIndexData
+ * Lookup373: cumulus_pallet_dmp_queue::PageIndexData
**/
CumulusPalletDmpQueuePageIndexData: {
beginUsed: 'u32',
@@ -3070,30 +3088,52 @@
overweightCount: 'u64'
},
/**
- * Lookup375: cumulus_pallet_dmp_queue::pallet::Error<T>
+ * Lookup376: cumulus_pallet_dmp_queue::pallet::Error<T>
**/
CumulusPalletDmpQueueError: {
_enum: ['Unknown', 'OverLimit']
},
/**
- * Lookup379: pallet_unique::Error<T>
+ * Lookup380: pallet_unique::Error<T>
**/
PalletUniqueError: {
_enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']
},
/**
- * Lookup382: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
+ * Lookup381: pallet_unique_scheduler_v2::BlockAgenda<T>
+ **/
+ PalletUniqueSchedulerV2BlockAgenda: {
+ agenda: 'Vec<Option<PalletUniqueSchedulerV2Scheduled>>',
+ freePlaces: 'u32'
+ },
+ /**
+ * Lookup384: pallet_unique_scheduler_v2::Scheduled<Name, pallet_unique_scheduler_v2::ScheduledCall<T>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
**/
- PalletUniqueSchedulerScheduledV3: {
- maybeId: 'Option<[u8;16]>',
+ PalletUniqueSchedulerV2Scheduled: {
+ maybeId: 'Option<[u8;32]>',
priority: 'u8',
- call: 'FrameSupportScheduleMaybeHashed',
+ call: 'PalletUniqueSchedulerV2ScheduledCall',
maybePeriodic: 'Option<(u32,u32)>',
origin: 'OpalRuntimeOriginCaller'
},
/**
- * Lookup383: opal_runtime::OriginCaller
+ * Lookup385: pallet_unique_scheduler_v2::ScheduledCall<T>
**/
+ PalletUniqueSchedulerV2ScheduledCall: {
+ _enum: {
+ Inline: 'Bytes',
+ PreimageLookup: {
+ _alias: {
+ hash_: 'hash',
+ },
+ hash_: 'H256',
+ unboundedLen: 'u32'
+ }
+ }
+ },
+ /**
+ * Lookup387: opal_runtime::OriginCaller
+ **/
OpalRuntimeOriginCaller: {
_enum: {
system: 'FrameSupportDispatchRawOrigin',
@@ -3201,7 +3241,7 @@
}
},
/**
- * Lookup384: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
+ * Lookup388: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
**/
FrameSupportDispatchRawOrigin: {
_enum: {
@@ -3211,7 +3251,7 @@
}
},
/**
- * Lookup385: pallet_xcm::pallet::Origin
+ * Lookup389: pallet_xcm::pallet::Origin
**/
PalletXcmOrigin: {
_enum: {
@@ -3220,7 +3260,7 @@
}
},
/**
- * Lookup386: cumulus_pallet_xcm::pallet::Origin
+ * Lookup390: cumulus_pallet_xcm::pallet::Origin
**/
CumulusPalletXcmOrigin: {
_enum: {
@@ -3229,7 +3269,7 @@
}
},
/**
- * Lookup387: pallet_ethereum::RawOrigin
+ * Lookup391: pallet_ethereum::RawOrigin
**/
PalletEthereumRawOrigin: {
_enum: {
@@ -3237,17 +3277,17 @@
}
},
/**
- * Lookup388: sp_core::Void
+ * Lookup392: sp_core::Void
**/
SpCoreVoid: 'Null',
/**
- * Lookup389: pallet_unique_scheduler::pallet::Error<T>
+ * Lookup394: pallet_unique_scheduler_v2::pallet::Error<T>
**/
- PalletUniqueSchedulerError: {
- _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
+ PalletUniqueSchedulerV2Error: {
+ _enum: ['FailedToSchedule', 'AgendaIsExhausted', 'ScheduledCallCorrupted', 'PreimageNotFound', 'TooBigScheduledCall', 'NotFound', 'TargetBlockNumberInPast', 'Named']
},
/**
- * Lookup390: up_data_structs::Collection<sp_core::crypto::AccountId32>
+ * Lookup395: up_data_structs::Collection<sp_core::crypto::AccountId32>
**/
UpDataStructsCollection: {
owner: 'AccountId32',
@@ -3261,7 +3301,7 @@
flags: '[u8;1]'
},
/**
- * Lookup391: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
+ * Lookup396: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
**/
UpDataStructsSponsorshipStateAccountId32: {
_enum: {
@@ -3271,7 +3311,7 @@
}
},
/**
- * Lookup393: up_data_structs::Properties
+ * Lookup398: up_data_structs::Properties
**/
UpDataStructsProperties: {
map: 'UpDataStructsPropertiesMapBoundedVec',
@@ -3279,15 +3319,15 @@
spaceLimit: 'u32'
},
/**
- * Lookup394: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup399: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
/**
- * Lookup399: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
+ * Lookup404: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
**/
UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
/**
- * Lookup406: up_data_structs::CollectionStats
+ * Lookup411: up_data_structs::CollectionStats
**/
UpDataStructsCollectionStats: {
created: 'u32',
@@ -3295,18 +3335,18 @@
alive: 'u32'
},
/**
- * Lookup407: up_data_structs::TokenChild
+ * Lookup412: up_data_structs::TokenChild
**/
UpDataStructsTokenChild: {
token: 'u32',
collection: 'u32'
},
/**
- * Lookup408: PhantomType::up_data_structs<T>
+ * Lookup413: PhantomType::up_data_structs<T>
**/
PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
/**
- * Lookup410: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup415: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsTokenData: {
properties: 'Vec<UpDataStructsProperty>',
@@ -3314,7 +3354,7 @@
pieces: 'u128'
},
/**
- * Lookup412: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
+ * Lookup417: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
**/
UpDataStructsRpcCollection: {
owner: 'AccountId32',
@@ -3331,14 +3371,14 @@
flags: 'UpDataStructsRpcCollectionFlags'
},
/**
- * Lookup413: up_data_structs::RpcCollectionFlags
+ * Lookup418: up_data_structs::RpcCollectionFlags
**/
UpDataStructsRpcCollectionFlags: {
foreign: 'bool',
erc721metadata: 'bool'
},
/**
- * Lookup414: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
+ * Lookup419: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
**/
RmrkTraitsCollectionCollectionInfo: {
issuer: 'AccountId32',
@@ -3348,7 +3388,7 @@
nftsCount: 'u32'
},
/**
- * Lookup415: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup420: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsNftNftInfo: {
owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
@@ -3358,14 +3398,14 @@
pending: 'bool'
},
/**
- * Lookup417: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+ * Lookup422: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
**/
RmrkTraitsNftRoyaltyInfo: {
recipient: 'AccountId32',
amount: 'Permill'
},
/**
- * Lookup418: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup423: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceResourceInfo: {
id: 'u32',
@@ -3374,14 +3414,14 @@
pendingRemoval: 'bool'
},
/**
- * Lookup419: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup424: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPropertyPropertyInfo: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup420: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup425: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsBaseBaseInfo: {
issuer: 'AccountId32',
@@ -3389,92 +3429,92 @@
symbol: 'Bytes'
},
/**
- * Lookup421: rmrk_traits::nft::NftChild
+ * Lookup426: rmrk_traits::nft::NftChild
**/
RmrkTraitsNftNftChild: {
collectionId: 'u32',
nftId: 'u32'
},
/**
- * Lookup423: pallet_common::pallet::Error<T>
+ * Lookup428: pallet_common::pallet::Error<T>
**/
PalletCommonError: {
_enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']
},
/**
- * Lookup425: pallet_fungible::pallet::Error<T>
+ * Lookup430: pallet_fungible::pallet::Error<T>
**/
PalletFungibleError: {
_enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
},
/**
- * Lookup426: pallet_refungible::ItemData
+ * Lookup431: pallet_refungible::ItemData
**/
PalletRefungibleItemData: {
constData: 'Bytes'
},
/**
- * Lookup431: pallet_refungible::pallet::Error<T>
+ * Lookup436: pallet_refungible::pallet::Error<T>
**/
PalletRefungibleError: {
_enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
},
/**
- * Lookup432: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup437: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
PalletNonfungibleItemData: {
owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
},
/**
- * Lookup434: up_data_structs::PropertyScope
+ * Lookup439: up_data_structs::PropertyScope
**/
UpDataStructsPropertyScope: {
_enum: ['None', 'Rmrk']
},
/**
- * Lookup436: pallet_nonfungible::pallet::Error<T>
+ * Lookup441: pallet_nonfungible::pallet::Error<T>
**/
PalletNonfungibleError: {
_enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
},
/**
- * Lookup437: pallet_structure::pallet::Error<T>
+ * Lookup442: pallet_structure::pallet::Error<T>
**/
PalletStructureError: {
_enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
},
/**
- * Lookup438: pallet_rmrk_core::pallet::Error<T>
+ * Lookup443: pallet_rmrk_core::pallet::Error<T>
**/
PalletRmrkCoreError: {
_enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']
},
/**
- * Lookup440: pallet_rmrk_equip::pallet::Error<T>
+ * Lookup445: pallet_rmrk_equip::pallet::Error<T>
**/
PalletRmrkEquipError: {
_enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']
},
/**
- * Lookup446: pallet_app_promotion::pallet::Error<T>
+ * Lookup451: pallet_app_promotion::pallet::Error<T>
**/
PalletAppPromotionError: {
_enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']
},
/**
- * Lookup447: pallet_foreign_assets::module::Error<T>
+ * Lookup452: pallet_foreign_assets::module::Error<T>
**/
PalletForeignAssetsModuleError: {
_enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']
},
/**
- * Lookup450: pallet_evm::pallet::Error<T>
+ * Lookup454: pallet_evm::pallet::Error<T>
**/
PalletEvmError: {
_enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy']
},
/**
- * Lookup453: fp_rpc::TransactionStatus
+ * Lookup457: fp_rpc::TransactionStatus
**/
FpRpcTransactionStatus: {
transactionHash: 'H256',
@@ -3486,11 +3526,11 @@
logsBloom: 'EthbloomBloom'
},
/**
- * Lookup455: ethbloom::Bloom
+ * Lookup459: ethbloom::Bloom
**/
EthbloomBloom: '[u8;256]',
/**
- * Lookup457: ethereum::receipt::ReceiptV3
+ * Lookup461: ethereum::receipt::ReceiptV3
**/
EthereumReceiptReceiptV3: {
_enum: {
@@ -3500,7 +3540,7 @@
}
},
/**
- * Lookup458: ethereum::receipt::EIP658ReceiptData
+ * Lookup462: ethereum::receipt::EIP658ReceiptData
**/
EthereumReceiptEip658ReceiptData: {
statusCode: 'u8',
@@ -3509,7 +3549,7 @@
logs: 'Vec<EthereumLog>'
},
/**
- * Lookup459: ethereum::block::Block<ethereum::transaction::TransactionV2>
+ * Lookup463: ethereum::block::Block<ethereum::transaction::TransactionV2>
**/
EthereumBlock: {
header: 'EthereumHeader',
@@ -3517,7 +3557,7 @@
ommers: 'Vec<EthereumHeader>'
},
/**
- * Lookup460: ethereum::header::Header
+ * Lookup464: ethereum::header::Header
**/
EthereumHeader: {
parentHash: 'H256',
@@ -3537,23 +3577,23 @@
nonce: 'EthereumTypesHashH64'
},
/**
- * Lookup461: ethereum_types::hash::H64
+ * Lookup465: ethereum_types::hash::H64
**/
EthereumTypesHashH64: '[u8;8]',
/**
- * Lookup466: pallet_ethereum::pallet::Error<T>
+ * Lookup470: pallet_ethereum::pallet::Error<T>
**/
PalletEthereumError: {
_enum: ['InvalidSignature', 'PreLogExists']
},
/**
- * Lookup467: pallet_evm_coder_substrate::pallet::Error<T>
+ * Lookup471: pallet_evm_coder_substrate::pallet::Error<T>
**/
PalletEvmCoderSubstrateError: {
_enum: ['OutOfGas', 'OutOfFund']
},
/**
- * Lookup468: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup472: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {
_enum: {
@@ -3563,35 +3603,35 @@
}
},
/**
- * Lookup469: pallet_evm_contract_helpers::SponsoringModeT
+ * Lookup473: pallet_evm_contract_helpers::SponsoringModeT
**/
PalletEvmContractHelpersSponsoringModeT: {
_enum: ['Disabled', 'Allowlisted', 'Generous']
},
/**
- * Lookup475: pallet_evm_contract_helpers::pallet::Error<T>
+ * Lookup479: pallet_evm_contract_helpers::pallet::Error<T>
**/
PalletEvmContractHelpersError: {
_enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']
},
/**
- * Lookup476: pallet_evm_migration::pallet::Error<T>
+ * Lookup480: pallet_evm_migration::pallet::Error<T>
**/
PalletEvmMigrationError: {
- _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
+ _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent']
},
/**
- * Lookup477: pallet_maintenance::pallet::Error<T>
+ * Lookup481: pallet_maintenance::pallet::Error<T>
**/
PalletMaintenanceError: 'Null',
/**
- * Lookup478: pallet_test_utils::pallet::Error<T>
+ * Lookup482: pallet_test_utils::pallet::Error<T>
**/
PalletTestUtilsError: {
_enum: ['TestPalletDisabled', 'TriggerRollback']
},
/**
- * Lookup480: sp_runtime::MultiSignature
+ * Lookup484: sp_runtime::MultiSignature
**/
SpRuntimeMultiSignature: {
_enum: {
@@ -3601,51 +3641,51 @@
}
},
/**
- * Lookup481: sp_core::ed25519::Signature
+ * Lookup485: sp_core::ed25519::Signature
**/
SpCoreEd25519Signature: '[u8;64]',
/**
- * Lookup483: sp_core::sr25519::Signature
+ * Lookup487: sp_core::sr25519::Signature
**/
SpCoreSr25519Signature: '[u8;64]',
/**
- * Lookup484: sp_core::ecdsa::Signature
+ * Lookup488: sp_core::ecdsa::Signature
**/
SpCoreEcdsaSignature: '[u8;65]',
/**
- * Lookup487: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+ * Lookup491: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
**/
FrameSystemExtensionsCheckSpecVersion: 'Null',
/**
- * Lookup488: frame_system::extensions::check_tx_version::CheckTxVersion<T>
+ * Lookup492: frame_system::extensions::check_tx_version::CheckTxVersion<T>
**/
FrameSystemExtensionsCheckTxVersion: 'Null',
/**
- * Lookup489: frame_system::extensions::check_genesis::CheckGenesis<T>
+ * Lookup493: frame_system::extensions::check_genesis::CheckGenesis<T>
**/
FrameSystemExtensionsCheckGenesis: 'Null',
/**
- * Lookup492: frame_system::extensions::check_nonce::CheckNonce<T>
+ * Lookup496: frame_system::extensions::check_nonce::CheckNonce<T>
**/
FrameSystemExtensionsCheckNonce: 'Compact<u32>',
/**
- * Lookup493: frame_system::extensions::check_weight::CheckWeight<T>
+ * Lookup497: frame_system::extensions::check_weight::CheckWeight<T>
**/
FrameSystemExtensionsCheckWeight: 'Null',
/**
- * Lookup494: opal_runtime::runtime_common::maintenance::CheckMaintenance
+ * Lookup498: opal_runtime::runtime_common::maintenance::CheckMaintenance
**/
OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',
/**
- * Lookup495: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+ * Lookup499: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
**/
PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
/**
- * Lookup496: opal_runtime::Runtime
+ * Lookup500: opal_runtime::Runtime
**/
OpalRuntimeRuntime: 'Null',
/**
- * Lookup497: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+ * Lookup501: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
**/
PalletEthereumFakeTransactionFinalizer: 'Null'
};
tests/src/interfaces/registry.tsdiffbeforeafterboth--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -5,7 +5,7 @@
// this is required to allow for ambient/previous definitions
import '@polkadot/types/types/registry';
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerV2BlockAgenda, PalletUniqueSchedulerV2Call, PalletUniqueSchedulerV2Error, PalletUniqueSchedulerV2Event, PalletUniqueSchedulerV2Scheduled, PalletUniqueSchedulerV2ScheduledCall, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
declare module '@polkadot/types/types/registry' {
interface InterfaceTypes {
@@ -59,8 +59,6 @@
FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;
FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;
FrameSupportPalletId: FrameSupportPalletId;
- FrameSupportScheduleLookupError: FrameSupportScheduleLookupError;
- FrameSupportScheduleMaybeHashed: FrameSupportScheduleMaybeHashed;
FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;
FrameSystemAccountInfo: FrameSystemAccountInfo;
FrameSystemCall: FrameSystemCall;
@@ -122,6 +120,7 @@
PalletEvmEvent: PalletEvmEvent;
PalletEvmMigrationCall: PalletEvmMigrationCall;
PalletEvmMigrationError: PalletEvmMigrationError;
+ PalletEvmMigrationEvent: PalletEvmMigrationEvent;
PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;
PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;
PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;
@@ -164,10 +163,12 @@
PalletUniqueCall: PalletUniqueCall;
PalletUniqueError: PalletUniqueError;
PalletUniqueRawEvent: PalletUniqueRawEvent;
- PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;
- PalletUniqueSchedulerError: PalletUniqueSchedulerError;
- PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;
- PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;
+ PalletUniqueSchedulerV2BlockAgenda: PalletUniqueSchedulerV2BlockAgenda;
+ PalletUniqueSchedulerV2Call: PalletUniqueSchedulerV2Call;
+ PalletUniqueSchedulerV2Error: PalletUniqueSchedulerV2Error;
+ PalletUniqueSchedulerV2Event: PalletUniqueSchedulerV2Event;
+ PalletUniqueSchedulerV2Scheduled: PalletUniqueSchedulerV2Scheduled;
+ PalletUniqueSchedulerV2ScheduledCall: PalletUniqueSchedulerV2ScheduledCall;
PalletXcmCall: PalletXcmCall;
PalletXcmError: PalletXcmError;
PalletXcmEvent: PalletXcmEvent;
tests/src/interfaces/types-lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1132,8 +1132,8 @@
readonly type: 'Substrate' | 'Ethereum';
}
- /** @name PalletUniqueSchedulerEvent (93) */
- interface PalletUniqueSchedulerEvent extends Enum {
+ /** @name PalletUniqueSchedulerV2Event (93) */
+ interface PalletUniqueSchedulerV2Event extends Enum {
readonly isScheduled: boolean;
readonly asScheduled: {
readonly when: u32;
@@ -1144,35 +1144,31 @@
readonly when: u32;
readonly index: u32;
} & Struct;
+ readonly isDispatched: boolean;
+ readonly asDispatched: {
+ readonly task: ITuple<[u32, u32]>;
+ readonly id: Option<U8aFixed>;
+ readonly result: Result<Null, SpRuntimeDispatchError>;
+ } & Struct;
readonly isPriorityChanged: boolean;
readonly asPriorityChanged: {
- readonly when: u32;
- readonly index: u32;
+ readonly task: ITuple<[u32, u32]>;
readonly priority: u8;
} & Struct;
- readonly isDispatched: boolean;
- readonly asDispatched: {
+ readonly isCallUnavailable: boolean;
+ readonly asCallUnavailable: {
readonly task: ITuple<[u32, u32]>;
readonly id: Option<U8aFixed>;
- readonly result: Result<Null, SpRuntimeDispatchError>;
} & Struct;
- readonly isCallLookupFailed: boolean;
- readonly asCallLookupFailed: {
+ readonly isPermanentlyOverweight: boolean;
+ readonly asPermanentlyOverweight: {
readonly task: ITuple<[u32, u32]>;
readonly id: Option<U8aFixed>;
- readonly error: FrameSupportScheduleLookupError;
} & Struct;
- readonly type: 'Scheduled' | 'Canceled' | 'PriorityChanged' | 'Dispatched' | 'CallLookupFailed';
- }
-
- /** @name FrameSupportScheduleLookupError (96) */
- interface FrameSupportScheduleLookupError extends Enum {
- readonly isUnknown: boolean;
- readonly isBadFormat: boolean;
- readonly type: 'Unknown' | 'BadFormat';
+ readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'PriorityChanged' | 'CallUnavailable' | 'PermanentlyOverweight';
}
- /** @name PalletCommonEvent (97) */
+ /** @name PalletCommonEvent (96) */
interface PalletCommonEvent extends Enum {
readonly isCollectionCreated: boolean;
readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
@@ -1199,14 +1195,14 @@
readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
}
- /** @name PalletStructureEvent (100) */
+ /** @name PalletStructureEvent (99) */
interface PalletStructureEvent extends Enum {
readonly isExecuted: boolean;
readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
readonly type: 'Executed';
}
- /** @name PalletRmrkCoreEvent (101) */
+ /** @name PalletRmrkCoreEvent (100) */
interface PalletRmrkCoreEvent extends Enum {
readonly isCollectionCreated: boolean;
readonly asCollectionCreated: {
@@ -1296,7 +1292,7 @@
readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';
}
- /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (102) */
+ /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (101) */
interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
readonly isAccountId: boolean;
readonly asAccountId: AccountId32;
@@ -1305,7 +1301,7 @@
readonly type: 'AccountId' | 'CollectionAndNftTuple';
}
- /** @name PalletRmrkEquipEvent (107) */
+ /** @name PalletRmrkEquipEvent (106) */
interface PalletRmrkEquipEvent extends Enum {
readonly isBaseCreated: boolean;
readonly asBaseCreated: {
@@ -1320,7 +1316,7 @@
readonly type: 'BaseCreated' | 'EquippablesUpdated';
}
- /** @name PalletAppPromotionEvent (108) */
+ /** @name PalletAppPromotionEvent (107) */
interface PalletAppPromotionEvent extends Enum {
readonly isStakingRecalculation: boolean;
readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;
@@ -1333,7 +1329,7 @@
readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';
}
- /** @name PalletForeignAssetsModuleEvent (109) */
+ /** @name PalletForeignAssetsModuleEvent (108) */
interface PalletForeignAssetsModuleEvent extends Enum {
readonly isForeignAssetRegistered: boolean;
readonly asForeignAssetRegistered: {
@@ -1360,7 +1356,7 @@
readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';
}
- /** @name PalletForeignAssetsModuleAssetMetadata (110) */
+ /** @name PalletForeignAssetsModuleAssetMetadata (109) */
interface PalletForeignAssetsModuleAssetMetadata extends Struct {
readonly name: Bytes;
readonly symbol: Bytes;
@@ -1368,7 +1364,7 @@
readonly minimalBalance: u128;
}
- /** @name PalletEvmEvent (111) */
+ /** @name PalletEvmEvent (110) */
interface PalletEvmEvent extends Enum {
readonly isLog: boolean;
readonly asLog: {
@@ -1393,14 +1389,14 @@
readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed';
}
- /** @name EthereumLog (112) */
+ /** @name EthereumLog (111) */
interface EthereumLog extends Struct {
readonly address: H160;
readonly topics: Vec<H256>;
readonly data: Bytes;
}
- /** @name PalletEthereumEvent (114) */
+ /** @name PalletEthereumEvent (113) */
interface PalletEthereumEvent extends Enum {
readonly isExecuted: boolean;
readonly asExecuted: {
@@ -1412,7 +1408,7 @@
readonly type: 'Executed';
}
- /** @name EvmCoreErrorExitReason (115) */
+ /** @name EvmCoreErrorExitReason (114) */
interface EvmCoreErrorExitReason extends Enum {
readonly isSucceed: boolean;
readonly asSucceed: EvmCoreErrorExitSucceed;
@@ -1425,7 +1421,7 @@
readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
}
- /** @name EvmCoreErrorExitSucceed (116) */
+ /** @name EvmCoreErrorExitSucceed (115) */
interface EvmCoreErrorExitSucceed extends Enum {
readonly isStopped: boolean;
readonly isReturned: boolean;
@@ -1433,7 +1429,7 @@
readonly type: 'Stopped' | 'Returned' | 'Suicided';
}
- /** @name EvmCoreErrorExitError (117) */
+ /** @name EvmCoreErrorExitError (116) */
interface EvmCoreErrorExitError extends Enum {
readonly isStackUnderflow: boolean;
readonly isStackOverflow: boolean;
@@ -1454,13 +1450,13 @@
readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
}
- /** @name EvmCoreErrorExitRevert (120) */
+ /** @name EvmCoreErrorExitRevert (119) */
interface EvmCoreErrorExitRevert extends Enum {
readonly isReverted: boolean;
readonly type: 'Reverted';
}
- /** @name EvmCoreErrorExitFatal (121) */
+ /** @name EvmCoreErrorExitFatal (120) */
interface EvmCoreErrorExitFatal extends Enum {
readonly isNotSupported: boolean;
readonly isUnhandledInterrupt: boolean;
@@ -1471,7 +1467,7 @@
readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
}
- /** @name PalletEvmContractHelpersEvent (122) */
+ /** @name PalletEvmContractHelpersEvent (121) */
interface PalletEvmContractHelpersEvent extends Enum {
readonly isContractSponsorSet: boolean;
readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;
@@ -1482,6 +1478,12 @@
readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';
}
+ /** @name PalletEvmMigrationEvent (122) */
+ interface PalletEvmMigrationEvent extends Enum {
+ readonly isTestEvent: boolean;
+ readonly type: 'TestEvent';
+ }
+
/** @name PalletMaintenanceEvent (123) */
interface PalletMaintenanceEvent extends Enum {
readonly isMaintenanceEnabled: boolean;
@@ -1493,7 +1495,8 @@
interface PalletTestUtilsEvent extends Enum {
readonly isValueIsSet: boolean;
readonly isShouldRollback: boolean;
- readonly type: 'ValueIsSet' | 'ShouldRollback';
+ readonly isBatchCompleted: boolean;
+ readonly type: 'ValueIsSet' | 'ShouldRollback' | 'BatchCompleted';
}
/** @name FrameSystemPhase (125) */
@@ -2685,46 +2688,56 @@
readonly properties: Vec<UpDataStructsProperty>;
}
- /** @name PalletUniqueSchedulerCall (284) */
- interface PalletUniqueSchedulerCall extends Enum {
+ /** @name PalletUniqueSchedulerV2Call (284) */
+ interface PalletUniqueSchedulerV2Call extends Enum {
+ readonly isSchedule: boolean;
+ readonly asSchedule: {
+ readonly when: u32;
+ readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+ readonly priority: Option<u8>;
+ readonly call: Call;
+ } & Struct;
+ readonly isCancel: boolean;
+ readonly asCancel: {
+ readonly when: u32;
+ readonly index: u32;
+ } & Struct;
readonly isScheduleNamed: boolean;
readonly asScheduleNamed: {
readonly id: U8aFixed;
readonly when: u32;
readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
readonly priority: Option<u8>;
- readonly call: FrameSupportScheduleMaybeHashed;
+ readonly call: Call;
} & Struct;
readonly isCancelNamed: boolean;
readonly asCancelNamed: {
readonly id: U8aFixed;
} & Struct;
+ readonly isScheduleAfter: boolean;
+ readonly asScheduleAfter: {
+ readonly after: u32;
+ readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+ readonly priority: Option<u8>;
+ readonly call: Call;
+ } & Struct;
readonly isScheduleNamedAfter: boolean;
readonly asScheduleNamedAfter: {
readonly id: U8aFixed;
readonly after: u32;
readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
readonly priority: Option<u8>;
- readonly call: FrameSupportScheduleMaybeHashed;
+ readonly call: Call;
} & Struct;
readonly isChangeNamedPriority: boolean;
readonly asChangeNamedPriority: {
readonly id: U8aFixed;
readonly priority: u8;
} & Struct;
- readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';
- }
-
- /** @name FrameSupportScheduleMaybeHashed (287) */
- interface FrameSupportScheduleMaybeHashed extends Enum {
- readonly isValue: boolean;
- readonly asValue: Call;
- readonly isHash: boolean;
- readonly asHash: H256;
- readonly type: 'Value' | 'Hash';
+ readonly type: 'Schedule' | 'Cancel' | 'ScheduleNamed' | 'CancelNamed' | 'ScheduleAfter' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';
}
- /** @name PalletConfigurationCall (288) */
+ /** @name PalletConfigurationCall (287) */
interface PalletConfigurationCall extends Enum {
readonly isSetWeightToFeeCoefficientOverride: boolean;
readonly asSetWeightToFeeCoefficientOverride: {
@@ -2737,13 +2750,13 @@
readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';
}
- /** @name PalletTemplateTransactionPaymentCall (290) */
+ /** @name PalletTemplateTransactionPaymentCall (289) */
type PalletTemplateTransactionPaymentCall = Null;
- /** @name PalletStructureCall (291) */
+ /** @name PalletStructureCall (290) */
type PalletStructureCall = Null;
- /** @name PalletRmrkCoreCall (292) */
+ /** @name PalletRmrkCoreCall (291) */
interface PalletRmrkCoreCall extends Enum {
readonly isCreateCollection: boolean;
readonly asCreateCollection: {
@@ -2849,7 +2862,7 @@
readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';
}
- /** @name RmrkTraitsResourceResourceTypes (298) */
+ /** @name RmrkTraitsResourceResourceTypes (297) */
interface RmrkTraitsResourceResourceTypes extends Enum {
readonly isBasic: boolean;
readonly asBasic: RmrkTraitsResourceBasicResource;
@@ -2860,7 +2873,7 @@
readonly type: 'Basic' | 'Composable' | 'Slot';
}
- /** @name RmrkTraitsResourceBasicResource (300) */
+ /** @name RmrkTraitsResourceBasicResource (299) */
interface RmrkTraitsResourceBasicResource extends Struct {
readonly src: Option<Bytes>;
readonly metadata: Option<Bytes>;
@@ -2868,7 +2881,7 @@
readonly thumb: Option<Bytes>;
}
- /** @name RmrkTraitsResourceComposableResource (302) */
+ /** @name RmrkTraitsResourceComposableResource (301) */
interface RmrkTraitsResourceComposableResource extends Struct {
readonly parts: Vec<u32>;
readonly base: u32;
@@ -2878,7 +2891,7 @@
readonly thumb: Option<Bytes>;
}
- /** @name RmrkTraitsResourceSlotResource (303) */
+ /** @name RmrkTraitsResourceSlotResource (302) */
interface RmrkTraitsResourceSlotResource extends Struct {
readonly base: u32;
readonly src: Option<Bytes>;
@@ -2888,7 +2901,7 @@
readonly thumb: Option<Bytes>;
}
- /** @name PalletRmrkEquipCall (306) */
+ /** @name PalletRmrkEquipCall (305) */
interface PalletRmrkEquipCall extends Enum {
readonly isCreateBase: boolean;
readonly asCreateBase: {
@@ -2910,7 +2923,7 @@
readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';
}
- /** @name RmrkTraitsPartPartType (309) */
+ /** @name RmrkTraitsPartPartType (308) */
interface RmrkTraitsPartPartType extends Enum {
readonly isFixedPart: boolean;
readonly asFixedPart: RmrkTraitsPartFixedPart;
@@ -2919,14 +2932,14 @@
readonly type: 'FixedPart' | 'SlotPart';
}
- /** @name RmrkTraitsPartFixedPart (311) */
+ /** @name RmrkTraitsPartFixedPart (310) */
interface RmrkTraitsPartFixedPart extends Struct {
readonly id: u32;
readonly z: u32;
readonly src: Bytes;
}
- /** @name RmrkTraitsPartSlotPart (312) */
+ /** @name RmrkTraitsPartSlotPart (311) */
interface RmrkTraitsPartSlotPart extends Struct {
readonly id: u32;
readonly equippable: RmrkTraitsPartEquippableList;
@@ -2934,7 +2947,7 @@
readonly z: u32;
}
- /** @name RmrkTraitsPartEquippableList (313) */
+ /** @name RmrkTraitsPartEquippableList (312) */
interface RmrkTraitsPartEquippableList extends Enum {
readonly isAll: boolean;
readonly isEmpty: boolean;
@@ -2943,20 +2956,20 @@
readonly type: 'All' | 'Empty' | 'Custom';
}
- /** @name RmrkTraitsTheme (315) */
+ /** @name RmrkTraitsTheme (314) */
interface RmrkTraitsTheme extends Struct {
readonly name: Bytes;
readonly properties: Vec<RmrkTraitsThemeThemeProperty>;
readonly inherit: bool;
}
- /** @name RmrkTraitsThemeThemeProperty (317) */
+ /** @name RmrkTraitsThemeThemeProperty (316) */
interface RmrkTraitsThemeThemeProperty extends Struct {
readonly key: Bytes;
readonly value: Bytes;
}
- /** @name PalletAppPromotionCall (319) */
+ /** @name PalletAppPromotionCall (318) */
interface PalletAppPromotionCall extends Enum {
readonly isSetAdminAddress: boolean;
readonly asSetAdminAddress: {
@@ -2990,7 +3003,7 @@
readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';
}
- /** @name PalletForeignAssetsModuleCall (320) */
+ /** @name PalletForeignAssetsModuleCall (319) */
interface PalletForeignAssetsModuleCall extends Enum {
readonly isRegisterForeignAsset: boolean;
readonly asRegisterForeignAsset: {
@@ -3007,7 +3020,7 @@
readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';
}
- /** @name PalletEvmCall (321) */
+ /** @name PalletEvmCall (320) */
interface PalletEvmCall extends Enum {
readonly isWithdraw: boolean;
readonly asWithdraw: {
@@ -3052,7 +3065,7 @@
readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
}
- /** @name PalletEthereumCall (327) */
+ /** @name PalletEthereumCall (326) */
interface PalletEthereumCall extends Enum {
readonly isTransact: boolean;
readonly asTransact: {
@@ -3061,7 +3074,7 @@
readonly type: 'Transact';
}
- /** @name EthereumTransactionTransactionV2 (328) */
+ /** @name EthereumTransactionTransactionV2 (327) */
interface EthereumTransactionTransactionV2 extends Enum {
readonly isLegacy: boolean;
readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -3072,7 +3085,7 @@
readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
}
- /** @name EthereumTransactionLegacyTransaction (329) */
+ /** @name EthereumTransactionLegacyTransaction (328) */
interface EthereumTransactionLegacyTransaction extends Struct {
readonly nonce: U256;
readonly gasPrice: U256;
@@ -3083,7 +3096,7 @@
readonly signature: EthereumTransactionTransactionSignature;
}
- /** @name EthereumTransactionTransactionAction (330) */
+ /** @name EthereumTransactionTransactionAction (329) */
interface EthereumTransactionTransactionAction extends Enum {
readonly isCall: boolean;
readonly asCall: H160;
@@ -3091,14 +3104,14 @@
readonly type: 'Call' | 'Create';
}
- /** @name EthereumTransactionTransactionSignature (331) */
+ /** @name EthereumTransactionTransactionSignature (330) */
interface EthereumTransactionTransactionSignature extends Struct {
readonly v: u64;
readonly r: H256;
readonly s: H256;
}
- /** @name EthereumTransactionEip2930Transaction (333) */
+ /** @name EthereumTransactionEip2930Transaction (332) */
interface EthereumTransactionEip2930Transaction extends Struct {
readonly chainId: u64;
readonly nonce: U256;
@@ -3113,13 +3126,13 @@
readonly s: H256;
}
- /** @name EthereumTransactionAccessListItem (335) */
+ /** @name EthereumTransactionAccessListItem (334) */
interface EthereumTransactionAccessListItem extends Struct {
readonly address: H160;
readonly storageKeys: Vec<H256>;
}
- /** @name EthereumTransactionEip1559Transaction (336) */
+ /** @name EthereumTransactionEip1559Transaction (335) */
interface EthereumTransactionEip1559Transaction extends Struct {
readonly chainId: u64;
readonly nonce: U256;
@@ -3135,7 +3148,7 @@
readonly s: H256;
}
- /** @name PalletEvmMigrationCall (337) */
+ /** @name PalletEvmMigrationCall (336) */
interface PalletEvmMigrationCall extends Enum {
readonly isBegin: boolean;
readonly asBegin: {
@@ -3151,7 +3164,15 @@
readonly address: H160;
readonly code: Bytes;
} & Struct;
- readonly type: 'Begin' | 'SetData' | 'Finish';
+ readonly isInsertEthLogs: boolean;
+ readonly asInsertEthLogs: {
+ readonly logs: Vec<EthereumLog>;
+ } & Struct;
+ readonly isInsertEvents: boolean;
+ readonly asInsertEvents: {
+ readonly events: Vec<Bytes>;
+ } & Struct;
+ readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents';
}
/** @name PalletMaintenanceCall (340) */
@@ -3179,16 +3200,20 @@
readonly maxTestValue: u32;
} & Struct;
readonly isJustTakeFee: boolean;
- readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee';
+ readonly isBatchAll: boolean;
+ readonly asBatchAll: {
+ readonly calls: Vec<Call>;
+ } & Struct;
+ readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee' | 'BatchAll';
}
- /** @name PalletSudoError (342) */
+ /** @name PalletSudoError (343) */
interface PalletSudoError extends Enum {
readonly isRequireSudo: boolean;
readonly type: 'RequireSudo';
}
- /** @name OrmlVestingModuleError (344) */
+ /** @name OrmlVestingModuleError (345) */
interface OrmlVestingModuleError extends Enum {
readonly isZeroVestingPeriod: boolean;
readonly isZeroVestingPeriodCount: boolean;
@@ -3199,7 +3224,7 @@
readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
}
- /** @name OrmlXtokensModuleError (345) */
+ /** @name OrmlXtokensModuleError (346) */
interface OrmlXtokensModuleError extends Enum {
readonly isAssetHasNoReserve: boolean;
readonly isNotCrossChainTransfer: boolean;
@@ -3223,26 +3248,26 @@
readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';
}
- /** @name OrmlTokensBalanceLock (348) */
+ /** @name OrmlTokensBalanceLock (349) */
interface OrmlTokensBalanceLock extends Struct {
readonly id: U8aFixed;
readonly amount: u128;
}
- /** @name OrmlTokensAccountData (350) */
+ /** @name OrmlTokensAccountData (351) */
interface OrmlTokensAccountData extends Struct {
readonly free: u128;
readonly reserved: u128;
readonly frozen: u128;
}
- /** @name OrmlTokensReserveData (352) */
+ /** @name OrmlTokensReserveData (353) */
interface OrmlTokensReserveData extends Struct {
readonly id: Null;
readonly amount: u128;
}
- /** @name OrmlTokensModuleError (354) */
+ /** @name OrmlTokensModuleError (355) */
interface OrmlTokensModuleError extends Enum {
readonly isBalanceTooLow: boolean;
readonly isAmountIntoBalanceFailed: boolean;
@@ -3255,21 +3280,21 @@
readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';
}
- /** @name CumulusPalletXcmpQueueInboundChannelDetails (356) */
+ /** @name CumulusPalletXcmpQueueInboundChannelDetails (357) */
interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
readonly sender: u32;
readonly state: CumulusPalletXcmpQueueInboundState;
readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
}
- /** @name CumulusPalletXcmpQueueInboundState (357) */
+ /** @name CumulusPalletXcmpQueueInboundState (358) */
interface CumulusPalletXcmpQueueInboundState extends Enum {
readonly isOk: boolean;
readonly isSuspended: boolean;
readonly type: 'Ok' | 'Suspended';
}
- /** @name PolkadotParachainPrimitivesXcmpMessageFormat (360) */
+ /** @name PolkadotParachainPrimitivesXcmpMessageFormat (361) */
interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
readonly isConcatenatedVersionedXcm: boolean;
readonly isConcatenatedEncodedBlob: boolean;
@@ -3277,7 +3302,7 @@
readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
}
- /** @name CumulusPalletXcmpQueueOutboundChannelDetails (363) */
+ /** @name CumulusPalletXcmpQueueOutboundChannelDetails (364) */
interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
readonly recipient: u32;
readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -3286,14 +3311,14 @@
readonly lastIndex: u16;
}
- /** @name CumulusPalletXcmpQueueOutboundState (364) */
+ /** @name CumulusPalletXcmpQueueOutboundState (365) */
interface CumulusPalletXcmpQueueOutboundState extends Enum {
readonly isOk: boolean;
readonly isSuspended: boolean;
readonly type: 'Ok' | 'Suspended';
}
- /** @name CumulusPalletXcmpQueueQueueConfigData (366) */
+ /** @name CumulusPalletXcmpQueueQueueConfigData (367) */
interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
readonly suspendThreshold: u32;
readonly dropThreshold: u32;
@@ -3303,7 +3328,7 @@
readonly xcmpMaxIndividualWeight: Weight;
}
- /** @name CumulusPalletXcmpQueueError (368) */
+ /** @name CumulusPalletXcmpQueueError (369) */
interface CumulusPalletXcmpQueueError extends Enum {
readonly isFailedToSend: boolean;
readonly isBadXcmOrigin: boolean;
@@ -3313,7 +3338,7 @@
readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
}
- /** @name PalletXcmError (369) */
+ /** @name PalletXcmError (370) */
interface PalletXcmError extends Enum {
readonly isUnreachable: boolean;
readonly isSendFailure: boolean;
@@ -3331,29 +3356,29 @@
readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
}
- /** @name CumulusPalletXcmError (370) */
+ /** @name CumulusPalletXcmError (371) */
type CumulusPalletXcmError = Null;
- /** @name CumulusPalletDmpQueueConfigData (371) */
+ /** @name CumulusPalletDmpQueueConfigData (372) */
interface CumulusPalletDmpQueueConfigData extends Struct {
readonly maxIndividual: Weight;
}
- /** @name CumulusPalletDmpQueuePageIndexData (372) */
+ /** @name CumulusPalletDmpQueuePageIndexData (373) */
interface CumulusPalletDmpQueuePageIndexData extends Struct {
readonly beginUsed: u32;
readonly endUsed: u32;
readonly overweightCount: u64;
}
- /** @name CumulusPalletDmpQueueError (375) */
+ /** @name CumulusPalletDmpQueueError (376) */
interface CumulusPalletDmpQueueError extends Enum {
readonly isUnknown: boolean;
readonly isOverLimit: boolean;
readonly type: 'Unknown' | 'OverLimit';
}
- /** @name PalletUniqueError (379) */
+ /** @name PalletUniqueError (380) */
interface PalletUniqueError extends Enum {
readonly isCollectionDecimalPointLimitExceeded: boolean;
readonly isConfirmUnsetSponsorFail: boolean;
@@ -3362,16 +3387,34 @@
readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';
}
- /** @name PalletUniqueSchedulerScheduledV3 (382) */
- interface PalletUniqueSchedulerScheduledV3 extends Struct {
+ /** @name PalletUniqueSchedulerV2BlockAgenda (381) */
+ interface PalletUniqueSchedulerV2BlockAgenda extends Struct {
+ readonly agenda: Vec<Option<PalletUniqueSchedulerV2Scheduled>>;
+ readonly freePlaces: u32;
+ }
+
+ /** @name PalletUniqueSchedulerV2Scheduled (384) */
+ interface PalletUniqueSchedulerV2Scheduled extends Struct {
readonly maybeId: Option<U8aFixed>;
readonly priority: u8;
- readonly call: FrameSupportScheduleMaybeHashed;
+ readonly call: PalletUniqueSchedulerV2ScheduledCall;
readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
readonly origin: OpalRuntimeOriginCaller;
}
- /** @name OpalRuntimeOriginCaller (383) */
+ /** @name PalletUniqueSchedulerV2ScheduledCall (385) */
+ interface PalletUniqueSchedulerV2ScheduledCall extends Enum {
+ readonly isInline: boolean;
+ readonly asInline: Bytes;
+ readonly isPreimageLookup: boolean;
+ readonly asPreimageLookup: {
+ readonly hash_: H256;
+ readonly unboundedLen: u32;
+ } & Struct;
+ readonly type: 'Inline' | 'PreimageLookup';
+ }
+
+ /** @name OpalRuntimeOriginCaller (387) */
interface OpalRuntimeOriginCaller extends Enum {
readonly isSystem: boolean;
readonly asSystem: FrameSupportDispatchRawOrigin;
@@ -3385,7 +3428,7 @@
readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';
}
- /** @name FrameSupportDispatchRawOrigin (384) */
+ /** @name FrameSupportDispatchRawOrigin (388) */
interface FrameSupportDispatchRawOrigin extends Enum {
readonly isRoot: boolean;
readonly isSigned: boolean;
@@ -3394,7 +3437,7 @@
readonly type: 'Root' | 'Signed' | 'None';
}
- /** @name PalletXcmOrigin (385) */
+ /** @name PalletXcmOrigin (389) */
interface PalletXcmOrigin extends Enum {
readonly isXcm: boolean;
readonly asXcm: XcmV1MultiLocation;
@@ -3403,7 +3446,7 @@
readonly type: 'Xcm' | 'Response';
}
- /** @name CumulusPalletXcmOrigin (386) */
+ /** @name CumulusPalletXcmOrigin (390) */
interface CumulusPalletXcmOrigin extends Enum {
readonly isRelay: boolean;
readonly isSiblingParachain: boolean;
@@ -3411,26 +3454,30 @@
readonly type: 'Relay' | 'SiblingParachain';
}
- /** @name PalletEthereumRawOrigin (387) */
+ /** @name PalletEthereumRawOrigin (391) */
interface PalletEthereumRawOrigin extends Enum {
readonly isEthereumTransaction: boolean;
readonly asEthereumTransaction: H160;
readonly type: 'EthereumTransaction';
}
- /** @name SpCoreVoid (388) */
+ /** @name SpCoreVoid (392) */
type SpCoreVoid = Null;
- /** @name PalletUniqueSchedulerError (389) */
- interface PalletUniqueSchedulerError extends Enum {
+ /** @name PalletUniqueSchedulerV2Error (394) */
+ interface PalletUniqueSchedulerV2Error extends Enum {
readonly isFailedToSchedule: boolean;
+ readonly isAgendaIsExhausted: boolean;
+ readonly isScheduledCallCorrupted: boolean;
+ readonly isPreimageNotFound: boolean;
+ readonly isTooBigScheduledCall: boolean;
readonly isNotFound: boolean;
readonly isTargetBlockNumberInPast: boolean;
- readonly isRescheduleNoChange: boolean;
- readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
+ readonly isNamed: boolean;
+ readonly type: 'FailedToSchedule' | 'AgendaIsExhausted' | 'ScheduledCallCorrupted' | 'PreimageNotFound' | 'TooBigScheduledCall' | 'NotFound' | 'TargetBlockNumberInPast' | 'Named';
}
- /** @name UpDataStructsCollection (390) */
+ /** @name UpDataStructsCollection (395) */
interface UpDataStructsCollection extends Struct {
readonly owner: AccountId32;
readonly mode: UpDataStructsCollectionMode;
@@ -3443,7 +3490,7 @@
readonly flags: U8aFixed;
}
- /** @name UpDataStructsSponsorshipStateAccountId32 (391) */
+ /** @name UpDataStructsSponsorshipStateAccountId32 (396) */
interface UpDataStructsSponsorshipStateAccountId32 extends Enum {
readonly isDisabled: boolean;
readonly isUnconfirmed: boolean;
@@ -3453,43 +3500,43 @@
readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
}
- /** @name UpDataStructsProperties (393) */
+ /** @name UpDataStructsProperties (398) */
interface UpDataStructsProperties extends Struct {
readonly map: UpDataStructsPropertiesMapBoundedVec;
readonly consumedSpace: u32;
readonly spaceLimit: u32;
}
- /** @name UpDataStructsPropertiesMapBoundedVec (394) */
+ /** @name UpDataStructsPropertiesMapBoundedVec (399) */
interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
- /** @name UpDataStructsPropertiesMapPropertyPermission (399) */
+ /** @name UpDataStructsPropertiesMapPropertyPermission (404) */
interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
- /** @name UpDataStructsCollectionStats (406) */
+ /** @name UpDataStructsCollectionStats (411) */
interface UpDataStructsCollectionStats extends Struct {
readonly created: u32;
readonly destroyed: u32;
readonly alive: u32;
}
- /** @name UpDataStructsTokenChild (407) */
+ /** @name UpDataStructsTokenChild (412) */
interface UpDataStructsTokenChild extends Struct {
readonly token: u32;
readonly collection: u32;
}
- /** @name PhantomTypeUpDataStructs (408) */
+ /** @name PhantomTypeUpDataStructs (413) */
interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
- /** @name UpDataStructsTokenData (410) */
+ /** @name UpDataStructsTokenData (415) */
interface UpDataStructsTokenData extends Struct {
readonly properties: Vec<UpDataStructsProperty>;
readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
readonly pieces: u128;
}
- /** @name UpDataStructsRpcCollection (412) */
+ /** @name UpDataStructsRpcCollection (417) */
interface UpDataStructsRpcCollection extends Struct {
readonly owner: AccountId32;
readonly mode: UpDataStructsCollectionMode;
@@ -3505,13 +3552,13 @@
readonly flags: UpDataStructsRpcCollectionFlags;
}
- /** @name UpDataStructsRpcCollectionFlags (413) */
+ /** @name UpDataStructsRpcCollectionFlags (418) */
interface UpDataStructsRpcCollectionFlags extends Struct {
readonly foreign: bool;
readonly erc721metadata: bool;
}
- /** @name RmrkTraitsCollectionCollectionInfo (414) */
+ /** @name RmrkTraitsCollectionCollectionInfo (419) */
interface RmrkTraitsCollectionCollectionInfo extends Struct {
readonly issuer: AccountId32;
readonly metadata: Bytes;
@@ -3520,7 +3567,7 @@
readonly nftsCount: u32;
}
- /** @name RmrkTraitsNftNftInfo (415) */
+ /** @name RmrkTraitsNftNftInfo (420) */
interface RmrkTraitsNftNftInfo extends Struct {
readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;
readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;
@@ -3529,13 +3576,13 @@
readonly pending: bool;
}
- /** @name RmrkTraitsNftRoyaltyInfo (417) */
+ /** @name RmrkTraitsNftRoyaltyInfo (422) */
interface RmrkTraitsNftRoyaltyInfo extends Struct {
readonly recipient: AccountId32;
readonly amount: Permill;
}
- /** @name RmrkTraitsResourceResourceInfo (418) */
+ /** @name RmrkTraitsResourceResourceInfo (423) */
interface RmrkTraitsResourceResourceInfo extends Struct {
readonly id: u32;
readonly resource: RmrkTraitsResourceResourceTypes;
@@ -3543,26 +3590,26 @@
readonly pendingRemoval: bool;
}
- /** @name RmrkTraitsPropertyPropertyInfo (419) */
+ /** @name RmrkTraitsPropertyPropertyInfo (424) */
interface RmrkTraitsPropertyPropertyInfo extends Struct {
readonly key: Bytes;
readonly value: Bytes;
}
- /** @name RmrkTraitsBaseBaseInfo (420) */
+ /** @name RmrkTraitsBaseBaseInfo (425) */
interface RmrkTraitsBaseBaseInfo extends Struct {
readonly issuer: AccountId32;
readonly baseType: Bytes;
readonly symbol: Bytes;
}
- /** @name RmrkTraitsNftNftChild (421) */
+ /** @name RmrkTraitsNftNftChild (426) */
interface RmrkTraitsNftNftChild extends Struct {
readonly collectionId: u32;
readonly nftId: u32;
}
- /** @name PalletCommonError (423) */
+ /** @name PalletCommonError (428) */
interface PalletCommonError extends Enum {
readonly isCollectionNotFound: boolean;
readonly isMustBeTokenOwner: boolean;
@@ -3601,7 +3648,7 @@
readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';
}
- /** @name PalletFungibleError (425) */
+ /** @name PalletFungibleError (430) */
interface PalletFungibleError extends Enum {
readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
readonly isFungibleItemsHaveNoId: boolean;
@@ -3611,12 +3658,12 @@
readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
}
- /** @name PalletRefungibleItemData (426) */
+ /** @name PalletRefungibleItemData (431) */
interface PalletRefungibleItemData extends Struct {
readonly constData: Bytes;
}
- /** @name PalletRefungibleError (431) */
+ /** @name PalletRefungibleError (436) */
interface PalletRefungibleError extends Enum {
readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
readonly isWrongRefungiblePieces: boolean;
@@ -3626,19 +3673,19 @@
readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
}
- /** @name PalletNonfungibleItemData (432) */
+ /** @name PalletNonfungibleItemData (437) */
interface PalletNonfungibleItemData extends Struct {
readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
}
- /** @name UpDataStructsPropertyScope (434) */
+ /** @name UpDataStructsPropertyScope (439) */
interface UpDataStructsPropertyScope extends Enum {
readonly isNone: boolean;
readonly isRmrk: boolean;
readonly type: 'None' | 'Rmrk';
}
- /** @name PalletNonfungibleError (436) */
+ /** @name PalletNonfungibleError (441) */
interface PalletNonfungibleError extends Enum {
readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
readonly isNonfungibleItemsHaveNoAmount: boolean;
@@ -3646,7 +3693,7 @@
readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';
}
- /** @name PalletStructureError (437) */
+ /** @name PalletStructureError (442) */
interface PalletStructureError extends Enum {
readonly isOuroborosDetected: boolean;
readonly isDepthLimit: boolean;
@@ -3655,7 +3702,7 @@
readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';
}
- /** @name PalletRmrkCoreError (438) */
+ /** @name PalletRmrkCoreError (443) */
interface PalletRmrkCoreError extends Enum {
readonly isCorruptedCollectionType: boolean;
readonly isRmrkPropertyKeyIsTooLong: boolean;
@@ -3679,7 +3726,7 @@
readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
}
- /** @name PalletRmrkEquipError (440) */
+ /** @name PalletRmrkEquipError (445) */
interface PalletRmrkEquipError extends Enum {
readonly isPermissionError: boolean;
readonly isNoAvailableBaseId: boolean;
@@ -3691,7 +3738,7 @@
readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';
}
- /** @name PalletAppPromotionError (446) */
+ /** @name PalletAppPromotionError (451) */
interface PalletAppPromotionError extends Enum {
readonly isAdminNotSet: boolean;
readonly isNoPermission: boolean;
@@ -3702,7 +3749,7 @@
readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';
}
- /** @name PalletForeignAssetsModuleError (447) */
+ /** @name PalletForeignAssetsModuleError (452) */
interface PalletForeignAssetsModuleError extends Enum {
readonly isBadLocation: boolean;
readonly isMultiLocationExisted: boolean;
@@ -3711,7 +3758,7 @@
readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';
}
- /** @name PalletEvmError (450) */
+ /** @name PalletEvmError (454) */
interface PalletEvmError extends Enum {
readonly isBalanceLow: boolean;
readonly isFeeOverflow: boolean;
@@ -3726,7 +3773,7 @@
readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce' | 'GasLimitTooLow' | 'GasLimitTooHigh' | 'Undefined' | 'Reentrancy';
}
- /** @name FpRpcTransactionStatus (453) */
+ /** @name FpRpcTransactionStatus (457) */
interface FpRpcTransactionStatus extends Struct {
readonly transactionHash: H256;
readonly transactionIndex: u32;
@@ -3737,10 +3784,10 @@
readonly logsBloom: EthbloomBloom;
}
- /** @name EthbloomBloom (455) */
+ /** @name EthbloomBloom (459) */
interface EthbloomBloom extends U8aFixed {}
- /** @name EthereumReceiptReceiptV3 (457) */
+ /** @name EthereumReceiptReceiptV3 (461) */
interface EthereumReceiptReceiptV3 extends Enum {
readonly isLegacy: boolean;
readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -3751,7 +3798,7 @@
readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
}
- /** @name EthereumReceiptEip658ReceiptData (458) */
+ /** @name EthereumReceiptEip658ReceiptData (462) */
interface EthereumReceiptEip658ReceiptData extends Struct {
readonly statusCode: u8;
readonly usedGas: U256;
@@ -3759,14 +3806,14 @@
readonly logs: Vec<EthereumLog>;
}
- /** @name EthereumBlock (459) */
+ /** @name EthereumBlock (463) */
interface EthereumBlock extends Struct {
readonly header: EthereumHeader;
readonly transactions: Vec<EthereumTransactionTransactionV2>;
readonly ommers: Vec<EthereumHeader>;
}
- /** @name EthereumHeader (460) */
+ /** @name EthereumHeader (464) */
interface EthereumHeader extends Struct {
readonly parentHash: H256;
readonly ommersHash: H256;
@@ -3785,24 +3832,24 @@
readonly nonce: EthereumTypesHashH64;
}
- /** @name EthereumTypesHashH64 (461) */
+ /** @name EthereumTypesHashH64 (465) */
interface EthereumTypesHashH64 extends U8aFixed {}
- /** @name PalletEthereumError (466) */
+ /** @name PalletEthereumError (470) */
interface PalletEthereumError extends Enum {
readonly isInvalidSignature: boolean;
readonly isPreLogExists: boolean;
readonly type: 'InvalidSignature' | 'PreLogExists';
}
- /** @name PalletEvmCoderSubstrateError (467) */
+ /** @name PalletEvmCoderSubstrateError (471) */
interface PalletEvmCoderSubstrateError extends Enum {
readonly isOutOfGas: boolean;
readonly isOutOfFund: boolean;
readonly type: 'OutOfGas' | 'OutOfFund';
}
- /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (468) */
+ /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (472) */
interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {
readonly isDisabled: boolean;
readonly isUnconfirmed: boolean;
@@ -3812,7 +3859,7 @@
readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
}
- /** @name PalletEvmContractHelpersSponsoringModeT (469) */
+ /** @name PalletEvmContractHelpersSponsoringModeT (473) */
interface PalletEvmContractHelpersSponsoringModeT extends Enum {
readonly isDisabled: boolean;
readonly isAllowlisted: boolean;
@@ -3820,7 +3867,7 @@
readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
}
- /** @name PalletEvmContractHelpersError (475) */
+ /** @name PalletEvmContractHelpersError (479) */
interface PalletEvmContractHelpersError extends Enum {
readonly isNoPermission: boolean;
readonly isNoPendingSponsor: boolean;
@@ -3828,24 +3875,25 @@
readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';
}
- /** @name PalletEvmMigrationError (476) */
+ /** @name PalletEvmMigrationError (480) */
interface PalletEvmMigrationError extends Enum {
readonly isAccountNotEmpty: boolean;
readonly isAccountIsNotMigrating: boolean;
- readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
+ readonly isBadEvent: boolean;
+ readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating' | 'BadEvent';
}
- /** @name PalletMaintenanceError (477) */
+ /** @name PalletMaintenanceError (481) */
type PalletMaintenanceError = Null;
- /** @name PalletTestUtilsError (478) */
+ /** @name PalletTestUtilsError (482) */
interface PalletTestUtilsError extends Enum {
readonly isTestPalletDisabled: boolean;
readonly isTriggerRollback: boolean;
readonly type: 'TestPalletDisabled' | 'TriggerRollback';
}
- /** @name SpRuntimeMultiSignature (480) */
+ /** @name SpRuntimeMultiSignature (484) */
interface SpRuntimeMultiSignature extends Enum {
readonly isEd25519: boolean;
readonly asEd25519: SpCoreEd25519Signature;
@@ -3856,40 +3904,40 @@
readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
}
- /** @name SpCoreEd25519Signature (481) */
+ /** @name SpCoreEd25519Signature (485) */
interface SpCoreEd25519Signature extends U8aFixed {}
- /** @name SpCoreSr25519Signature (483) */
+ /** @name SpCoreSr25519Signature (487) */
interface SpCoreSr25519Signature extends U8aFixed {}
- /** @name SpCoreEcdsaSignature (484) */
+ /** @name SpCoreEcdsaSignature (488) */
interface SpCoreEcdsaSignature extends U8aFixed {}
- /** @name FrameSystemExtensionsCheckSpecVersion (487) */
+ /** @name FrameSystemExtensionsCheckSpecVersion (491) */
type FrameSystemExtensionsCheckSpecVersion = Null;
- /** @name FrameSystemExtensionsCheckTxVersion (488) */
+ /** @name FrameSystemExtensionsCheckTxVersion (492) */
type FrameSystemExtensionsCheckTxVersion = Null;
- /** @name FrameSystemExtensionsCheckGenesis (489) */
+ /** @name FrameSystemExtensionsCheckGenesis (493) */
type FrameSystemExtensionsCheckGenesis = Null;
- /** @name FrameSystemExtensionsCheckNonce (492) */
+ /** @name FrameSystemExtensionsCheckNonce (496) */
interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
- /** @name FrameSystemExtensionsCheckWeight (493) */
+ /** @name FrameSystemExtensionsCheckWeight (497) */
type FrameSystemExtensionsCheckWeight = Null;
- /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (494) */
+ /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (498) */
type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null;
- /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (495) */
+ /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (499) */
interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
- /** @name OpalRuntimeRuntime (496) */
+ /** @name OpalRuntimeRuntime (500) */
type OpalRuntimeRuntime = Null;
- /** @name PalletEthereumFakeTransactionFinalizer (497) */
+ /** @name PalletEthereumFakeTransactionFinalizer (501) */
type PalletEthereumFakeTransactionFinalizer = Null;
} // declare module