difftreelog
refactor drop rmrk compatibility layer
in: master
85 files changed
Cargo.lockdiffbeforeafterboth5543 "pallet-nonfungible",5543 "pallet-nonfungible",5544 "pallet-randomness-collective-flip",5544 "pallet-randomness-collective-flip",5545 "pallet-refungible",5545 "pallet-refungible",5546 "pallet-rmrk-core",5547 "pallet-rmrk-equip",5548 "pallet-session",5546 "pallet-session",5549 "pallet-structure",5547 "pallet-structure",5550 "pallet-sudo",5548 "pallet-sudo",5561 "parity-scale-codec",5559 "parity-scale-codec",5562 "polkadot-parachain",5560 "polkadot-parachain",5563 "precompile-utils-macro",5561 "precompile-utils-macro",5564 "rmrk-rpc",5565 "scale-info",5562 "scale-info",5566 "serde",5563 "serde",5567 "smallvec",5564 "smallvec",6777 "up-data-structs",6774 "up-data-structs",6778]6775]67796780[[package]]6781name = "pallet-rmrk-core"6782version = "0.1.2"6783dependencies = [6784 "frame-benchmarking",6785 "frame-support",6786 "frame-system",6787 "pallet-common",6788 "pallet-evm",6789 "pallet-nonfungible",6790 "pallet-structure",6791 "parity-scale-codec",6792 "rmrk-traits",6793 "scale-info",6794 "sp-runtime",6795 "sp-std",6796 "up-data-structs",6797]67986799[[package]]6800name = "pallet-rmrk-equip"6801version = "0.1.2"6802dependencies = [6803 "frame-benchmarking",6804 "frame-support",6805 "frame-system",6806 "pallet-common",6807 "pallet-evm",6808 "pallet-nonfungible",6809 "pallet-rmrk-core",6810 "parity-scale-codec",6811 "scale-info",6812 "sp-runtime",6813 "sp-std",6814 "up-data-structs",6815]681667766817[[package]]6777[[package]]6818name = "pallet-scheduler"6778name = "pallet-scheduler"9009 "pallet-nonfungible",8969 "pallet-nonfungible",9010 "pallet-randomness-collective-flip",8970 "pallet-randomness-collective-flip",9011 "pallet-refungible",8971 "pallet-refungible",9012 "pallet-rmrk-core",9013 "pallet-rmrk-equip",9014 "pallet-session",8972 "pallet-session",9015 "pallet-structure",8973 "pallet-structure",9016 "pallet-sudo",8974 "pallet-sudo",9026 "parity-scale-codec",8984 "parity-scale-codec",9027 "polkadot-parachain",8985 "polkadot-parachain",9028 "precompile-utils-macro",8986 "precompile-utils-macro",9029 "rmrk-rpc",9030 "scale-info",8987 "scale-info",9031 "serde",8988 "serde",9032 "smallvec",8989 "smallvec",9414 "syn",9371 "syn",9415]9372]94169417[[package]]9418name = "rmrk-rpc"9419version = "0.0.2"9420dependencies = [9421 "parity-scale-codec",9422 "rmrk-traits",9423 "sp-api",9424 "sp-runtime",9425 "sp-std",9426]94279428[[package]]9429name = "rmrk-traits"9430version = "0.1.0"9431dependencies = [9432 "parity-scale-codec",9433 "scale-info",9434 "serde",9435]943693739437[[package]]9374[[package]]9438name = "rocksdb"9375name = "rocksdb"13026 "pallet-evm",12963 "pallet-evm",13027 "parity-scale-codec",12964 "parity-scale-codec",13028 "quartz-runtime",12965 "quartz-runtime",13029 "rmrk-rpc",13030 "sc-client-api",12966 "sc-client-api",13031 "sc-executor",12967 "sc-executor",13032 "sc-rpc-api",12968 "sc-rpc-api",13132 "polkadot-primitives",13068 "polkadot-primitives",13133 "polkadot-service",13069 "polkadot-service",13134 "quartz-runtime",13070 "quartz-runtime",13135 "rmrk-rpc",13136 "sc-basic-authorship",13071 "sc-basic-authorship",13137 "sc-chain-spec",13072 "sc-chain-spec",13138 "sc-cli",13073 "sc-cli",13186 "fp-storage",13121 "fp-storage",13187 "jsonrpsee",13122 "jsonrpsee",13188 "pallet-transaction-payment-rpc",13123 "pallet-transaction-payment-rpc",13189 "rmrk-rpc",13190 "sc-client-api",13124 "sc-client-api",13191 "sc-finality-grandpa",13125 "sc-finality-grandpa",13192 "sc-network",13126 "sc-network",13265 "pallet-nonfungible",13199 "pallet-nonfungible",13266 "pallet-randomness-collective-flip",13200 "pallet-randomness-collective-flip",13267 "pallet-refungible",13201 "pallet-refungible",13268 "pallet-rmrk-core",13269 "pallet-rmrk-equip",13270 "pallet-session",13202 "pallet-session",13271 "pallet-structure",13203 "pallet-structure",13272 "pallet-sudo",13204 "pallet-sudo",13282 "parity-scale-codec",13214 "parity-scale-codec",13283 "polkadot-parachain",13215 "polkadot-parachain",13284 "precompile-utils-macro",13216 "precompile-utils-macro",13285 "rmrk-rpc",13286 "scale-info",13217 "scale-info",13287 "serde",13218 "serde",13288 "smallvec",13219 "smallvec",13361 "frame-support",13292 "frame-support",13362 "pallet-evm",13293 "pallet-evm",13363 "parity-scale-codec",13294 "parity-scale-codec",13364 "rmrk-traits",13365 "scale-info",13295 "scale-info",13366 "serde",13296 "serde",13367 "sp-core",13297 "sp-core",Cargo.tomldiffbeforeafterboth43pallet-inflation = { path = "pallets/inflation", default-features = false }43pallet-inflation = { path = "pallets/inflation", default-features = false }44pallet-maintenance = { default-features = false, path = "pallets/maintenance" }44pallet-maintenance = { default-features = false, path = "pallets/maintenance" }45pallet-nonfungible = { default-features = false, path = "pallets/nonfungible" }45pallet-nonfungible = { default-features = false, path = "pallets/nonfungible" }46pallet-proxy-rmrk-core = { default-features = false, path = "pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }47pallet-proxy-rmrk-equip = { default-features = false, path = "pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }48rmrk-traits = { default-features = false, path = "primitives/rmrk-traits" }49pallet-refungible = { default-features = false, path = "pallets/refungible" }46pallet-refungible = { default-features = false, path = "pallets/refungible" }50pallet-structure = { default-features = false, path = "pallets/structure" }47pallet-structure = { default-features = false, path = "pallets/structure" }51pallet-unique = { path = "pallets/unique", default-features = false }48pallet-unique = { path = "pallets/unique", default-features = false }52pallet-unique-scheduler-v2 = { path = "pallets/scheduler-v2", default-features = false }49pallet-unique-scheduler-v2 = { path = "pallets/scheduler-v2", default-features = false }53pallet-test-utils = { default-features = false, path = "test-pallets/utils" }50pallet-test-utils = { default-features = false, path = "test-pallets/utils" }54pallet-app-promotion = { path = "pallets/app-promotion", default-features = false }51pallet-app-promotion = { path = "pallets/app-promotion", default-features = false }55app-promotion-rpc = { path = "primitives/app_promotion_rpc", default-features = false }52app-promotion-rpc = { path = "primitives/app_promotion_rpc", default-features = false }56rmrk-rpc = { path = "primitives/rmrk-rpc", default-features = false }575358# Unique: Runtimes54# Unique: Runtimes59unique-runtime = { path = "runtime/unique" }55unique-runtime = { path = "runtime/unique" }Makefilediffbeforeafterboth121bench-scheduler:121bench-scheduler:122 make _bench PALLET=unique-scheduler-v2 PALLET_DIR=scheduler-v2122 make _bench PALLET=unique-scheduler-v2 PALLET_DIR=scheduler-v2123124.PHONY: bench-rmrk-core125bench-rmrk-core:126 make _bench PALLET=proxy-rmrk-core127128.PHONY: bench-rmrk-equip129bench-rmrk-equip:130 make _bench PALLET=proxy-rmrk-equip131123132.PHONY: bench-foreign-assets124.PHONY: bench-foreign-assets133bench-foreign-assets:125bench-foreign-assets:146 make _bench PALLET=app-promotion PALLET_DIR=app-promotion138 make _bench PALLET=app-promotion PALLET_DIR=app-promotion147139148.PHONY: bench140.PHONY: bench149# Disabled: bench-scheduler, bench-collator-selection, bench-identity, bench-rmrk-core, bench-rmrk-equip141# Disabled: bench-scheduler, bench-collator-selection, bench-identity150bench: bench-common bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-configuration bench-foreign-assets142bench: bench-common bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-configuration bench-foreign-assets151143152.PHONY: check144.PHONY: checkclient/rpc/Cargo.tomldiffbeforeafterboth14codec = { workspace = true, package = "parity-scale-codec" }14codec = { workspace = true, package = "parity-scale-codec" }151516app-promotion-rpc = { workspace = true }16app-promotion-rpc = { workspace = true }17rmrk-rpc = { workspace = true }18up-common = { workspace = true }17up-common = { workspace = true }19up-data-structs = { workspace = true }18up-data-structs = { workspace = true }20up-pov-estimate-rpc = { workspace = true, optional = true }19up-pov-estimate-rpc = { workspace = true, optional = true }client/rpc/src/lib.rsdiffbeforeafterboth17// Original License17// Original License18use std::sync::Arc;18use std::sync::Arc;191920use codec::{Decode, Encode};20use codec::Decode;21use jsonrpsee::{21use jsonrpsee::{22 core::{RpcResult as Result},22 core::{RpcResult as Result},23 proc_macros::rpc,23 proc_macros::rpc,33use up_rpc::UniqueApi as UniqueRuntimeApi;33use up_rpc::UniqueApi as UniqueRuntimeApi;34use app_promotion_rpc::AppPromotionApi as AppPromotionRuntimeApi;34use app_promotion_rpc::AppPromotionApi as AppPromotionRuntimeApi;3536// RMRK37use rmrk_rpc::RmrkApi as RmrkRuntimeApi;38use up_data_structs::{39 RmrkCollectionId, RmrkNftId, RmrkBaseId, RmrkNftChild, RmrkThemeName, RmrkResourceId,40};413542pub use app_promotion_unique_rpc::AppPromotionApiServer;36pub use app_promotion_unique_rpc::AppPromotionApiServer;43pub use rmrk_unique_rpc::RmrkApiServer;443745#[cfg(feature = "pov-estimate")]38#[cfg(feature = "pov-estimate")]46pub mod pov_estimate;39pub mod pov_estimate;301 }294 }302}295}303304mod rmrk_unique_rpc {305 use super::*;306307 #[rpc(server)]308 #[async_trait]309 pub trait RmrkApi<310 BlockHash,311 AccountId,312 CollectionInfo,313 NftInfo,314 ResourceInfo,315 PropertyInfo,316 BaseInfo,317 PartType,318 Theme,319 >320 {321 /// Get the latest created collection ID.322 #[method(name = "rmrk_lastCollectionIdx")]323 fn last_collection_idx(&self, at: Option<BlockHash>) -> Result<RmrkCollectionId>;324325 /// Get collection info by ID.326 #[method(name = "rmrk_collectionById")]327 fn collection_by_id(328 &self,329 id: RmrkCollectionId,330 at: Option<BlockHash>,331 ) -> Result<Option<CollectionInfo>>;332333 /// Get NFT info by collection and NFT IDs.334 #[method(name = "rmrk_nftById")]335 fn nft_by_id(336 &self,337 collection_id: RmrkCollectionId,338 nft_id: RmrkNftId,339 at: Option<BlockHash>,340 ) -> Result<Option<NftInfo>>;341342 /// Get tokens owned by an account in a collection.343 #[method(name = "rmrk_accountTokens")]344 fn account_tokens(345 &self,346 account_id: AccountId,347 collection_id: RmrkCollectionId,348 at: Option<BlockHash>,349 ) -> Result<Vec<RmrkNftId>>;350351 /// Get tokens nested in an NFT - its direct children (not the children's children).352 #[method(name = "rmrk_nftChildren")]353 fn nft_children(354 &self,355 collection_id: RmrkCollectionId,356 nft_id: RmrkNftId,357 at: Option<BlockHash>,358 ) -> Result<Vec<RmrkNftChild>>;359360 /// Get collection properties, created by the user - not the proxy-specific properties.361 #[method(name = "rmrk_collectionProperties")]362 fn collection_properties(363 &self,364 collection_id: RmrkCollectionId,365 filter_keys: Option<Vec<String>>,366 at: Option<BlockHash>,367 ) -> Result<Vec<PropertyInfo>>;368369 /// Get NFT properties, created by the user - not the proxy-specific properties.370 #[method(name = "rmrk_nftProperties")]371 fn nft_properties(372 &self,373 collection_id: RmrkCollectionId,374 nft_id: RmrkNftId,375 filter_keys: Option<Vec<String>>,376 at: Option<BlockHash>,377 ) -> Result<Vec<PropertyInfo>>;378379 /// Get data of resources of an NFT.380 #[method(name = "rmrk_nftResources")]381 fn nft_resources(382 &self,383 collection_id: RmrkCollectionId,384 nft_id: RmrkNftId,385 at: Option<BlockHash>,386 ) -> Result<Vec<ResourceInfo>>;387388 /// Get the priority of a resource in an NFT.389 #[method(name = "rmrk_nftResourcePriority")]390 fn nft_resource_priority(391 &self,392 collection_id: RmrkCollectionId,393 nft_id: RmrkNftId,394 resource_id: RmrkResourceId,395 at: Option<BlockHash>,396 ) -> Result<Option<u32>>;397398 /// Get base info by its ID.399 #[method(name = "rmrk_base")]400 fn base(&self, base_id: RmrkBaseId, at: Option<BlockHash>) -> Result<Option<BaseInfo>>;401402 /// Get all parts of a base.403 #[method(name = "rmrk_baseParts")]404 fn base_parts(&self, base_id: RmrkBaseId, at: Option<BlockHash>) -> Result<Vec<PartType>>;405406 /// Get the theme names belonging to a base.407 #[method(name = "rmrk_themeNames")]408 fn theme_names(409 &self,410 base_id: RmrkBaseId,411 at: Option<BlockHash>,412 ) -> Result<Vec<RmrkThemeName>>;413414 /// Get theme info, including properties, optionally limited to the provided keys.415 #[method(name = "rmrk_themes")]416 fn theme(417 &self,418 base_id: RmrkBaseId,419 theme_name: String,420 filter_keys: Option<Vec<String>>,421 at: Option<BlockHash>,422 ) -> Result<Option<Theme>>;423 }424}425296426#[macro_export]297#[macro_export]427macro_rules! define_struct_for_server_api {298macro_rules! define_struct_for_server_api {454 }325 }455}326}456457define_struct_for_server_api! {458 Rmrk {459 client: Arc<Client>460 }461}462327463macro_rules! pass_method {328macro_rules! pass_method {464 (329 (511 };376 };512}377}513514macro_rules! rmrk_api {515 () => {516 dyn RmrkRuntimeApi<Block, AccountId, CollectionInfo, NftInfo, ResourceInfo, PropertyInfo, BaseInfo, PartType, Theme>517 };518}519378520#[allow(deprecated)]379#[allow(deprecated)]521impl<C, Block, CrossAccountId, AccountId>380impl<C, Block, CrossAccountId, AccountId>629 .collect::<Vec<_>>(), app_promotion_api);488 .collect::<Vec<_>>(), app_promotion_api);630}489}631632#[allow(deprecated)]633impl<634 C,635 Block,636 AccountId,637 CollectionInfo,638 NftInfo,639 ResourceInfo,640 PropertyInfo,641 BaseInfo,642 PartType,643 Theme,644 >645 rmrk_unique_rpc::RmrkApiServer<646 <Block as BlockT>::Hash,647 AccountId,648 CollectionInfo,649 NftInfo,650 ResourceInfo,651 PropertyInfo,652 BaseInfo,653 PartType,654 Theme,655 > for Rmrk<C, Block>656where657 C: Send + Sync + 'static + ProvideRuntimeApi<Block> + HeaderBackend<Block>,658 C::Api: RmrkRuntimeApi<659 Block,660 AccountId,661 CollectionInfo,662 NftInfo,663 ResourceInfo,664 PropertyInfo,665 BaseInfo,666 PartType,667 Theme,668 >,669 AccountId: Decode + Encode,670 CollectionInfo: Decode,671 NftInfo: Decode,672 ResourceInfo: Decode,673 PropertyInfo: Decode,674 BaseInfo: Decode,675 PartType: Decode,676 Theme: Decode,677 Block: BlockT,678{679 pass_method!(last_collection_idx() -> RmrkCollectionId, rmrk_api);680 pass_method!(collection_by_id(id: RmrkCollectionId) -> Option<CollectionInfo>, rmrk_api);681 pass_method!(nft_by_id(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Option<NftInfo>, rmrk_api);682 pass_method!(account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Vec<RmrkNftId>, rmrk_api);683 pass_method!(nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Vec<RmrkNftChild>, rmrk_api);684 pass_method!(685 collection_properties(686 collection_id: RmrkCollectionId,687688 #[map(|keys| string_keys_to_bytes_keys(keys))]689 filter_keys: Option<Vec<String>>690 ) -> Vec<PropertyInfo>,691 rmrk_api692 );693 pass_method!(694 nft_properties(695 collection_id: RmrkCollectionId,696 nft_id: RmrkNftId,697698 #[map(|keys| string_keys_to_bytes_keys(keys))]699 filter_keys: Option<Vec<String>>700 ) -> Vec<PropertyInfo>,701 rmrk_api702 );703 pass_method!(nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Vec<ResourceInfo>, rmrk_api);704 pass_method!(nft_resource_priority(collection_id: RmrkCollectionId, nft_id: RmrkNftId, resource_id: RmrkResourceId) -> Option<u32>, rmrk_api);705 pass_method!(base(base_id: RmrkBaseId) -> Option<BaseInfo>, rmrk_api);706 pass_method!(base_parts(base_id: RmrkBaseId) -> Vec<PartType>, rmrk_api);707 pass_method!(theme_names(base_id: RmrkBaseId) -> Vec<RmrkThemeName>, rmrk_api);708 pass_method!(709 theme(710 base_id: RmrkBaseId,711712 #[map(|n| n.into_bytes())]713 theme_name: String,714715 #[map(|keys| string_keys_to_bytes_keys(keys))]716 filter_keys: Option<Vec<String>>717 ) -> Option<Theme>, rmrk_api);718}719490720fn string_keys_to_bytes_keys(keys: Option<Vec<String>>) -> Option<Vec<Vec<u8>>> {491fn string_keys_to_bytes_keys(keys: Option<Vec<String>>) -> Option<Vec<Vec<u8>>> {721 keys.map(|keys| keys.into_iter().map(|key| key.into_bytes()).collect())492 keys.map(|keys| keys.into_iter().map(|key| key.into_bytes()).collect())node/cli/Cargo.tomldiffbeforeafterboth89fp-rpc = { workspace = true }89fp-rpc = { workspace = true }909091app-promotion-rpc = { workspace = true }91app-promotion-rpc = { workspace = true }92rmrk-rpc = { workspace = true }93uc-rpc = { workspace = true }92uc-rpc = { workspace = true }94unique-rpc = { workspace = true }93unique-rpc = { workspace = true }95up-pov-estimate-rpc = { workspace = true }94up-pov-estimate-rpc = { workspace = true }node/cli/src/service.rsdiffbeforeafterboth71#[cfg(feature = "pov-estimate")]71#[cfg(feature = "pov-estimate")]72use crate::chain_spec::RuntimeIdentification;72use crate::chain_spec::RuntimeIdentification;7374// RMRK75use up_data_structs::{76 RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,77 RmrkPartType, RmrkTheme,78};797380/// Unique native executor instance.74/// Unique native executor instance.81#[cfg(feature = "unique-runtime")]75#[cfg(feature = "unique-runtime")]403 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>397 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>404 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>398 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>405 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>399 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>406 + rmrk_rpc::RmrkApi<407 Block,408 AccountId,409 RmrkCollectionInfo<AccountId>,410 RmrkInstanceInfo<AccountId>,411 RmrkResourceInfo,412 RmrkPropertyInfo,413 RmrkBaseInfo<AccountId>,414 RmrkPartType,415 RmrkTheme,416 > + up_pov_estimate_rpc::PovEstimateApi<Block>400 + up_pov_estimate_rpc::PovEstimateApi<Block>417 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>401 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>418 + sp_api::Metadata<Block>402 + sp_api::Metadata<Block>419 + sp_offchain::OffchainWorkerApi<Block>403 + sp_offchain::OffchainWorkerApi<Block>732 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>716 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>733 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>717 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>734 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>718 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>735 + rmrk_rpc::RmrkApi<736 Block,737 AccountId,738 RmrkCollectionInfo<AccountId>,739 RmrkInstanceInfo<AccountId>,740 RmrkResourceInfo,741 RmrkPropertyInfo,742 RmrkBaseInfo<AccountId>,743 RmrkPartType,744 RmrkTheme,745 > + up_pov_estimate_rpc::PovEstimateApi<Block>719 + up_pov_estimate_rpc::PovEstimateApi<Block>746 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>720 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>747 + sp_api::Metadata<Block>721 + sp_api::Metadata<Block>748 + sp_offchain::OffchainWorkerApi<Block>722 + sp_offchain::OffchainWorkerApi<Block>882 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>856 + sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>883 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>857 + up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>884 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>858 + app_promotion_rpc::AppPromotionApi<Block, BlockNumber, Runtime::CrossAccountId, AccountId>885 + rmrk_rpc::RmrkApi<886 Block,887 AccountId,888 RmrkCollectionInfo<AccountId>,889 RmrkInstanceInfo<AccountId>,890 RmrkResourceInfo,891 RmrkPropertyInfo,892 RmrkBaseInfo<AccountId>,893 RmrkPartType,894 RmrkTheme,895 > + up_pov_estimate_rpc::PovEstimateApi<Block>859 + up_pov_estimate_rpc::PovEstimateApi<Block>896 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>860 + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>897 + sp_api::Metadata<Block>861 + sp_api::Metadata<Block>898 + sp_offchain::OffchainWorkerApi<Block>862 + sp_offchain::OffchainWorkerApi<Block>node/rpc/Cargo.tomldiffbeforeafterboth33fp-storage = { workspace = true }33fp-storage = { workspace = true }343435app-promotion-rpc = { workspace = true }35app-promotion-rpc = { workspace = true }36rmrk-rpc = { workspace = true }37serde = { workspace = true }36serde = { workspace = true }38uc-rpc = { workspace = true }37uc-rpc = { workspace = true }39up-common = { workspace = true }38up-common = { workspace = true }node/rpc/src/lib.rsdiffbeforeafterboth424243use up_common::types::opaque::*;43use up_common::types::opaque::*;4445// RMRK46use up_data_structs::{47 RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,48 RmrkPartType, RmrkTheme,49};504451#[cfg(feature = "pov-estimate")]45#[cfg(feature = "pov-estimate")]52type FullBackend = sc_service::TFullBackend<Block>;46type FullBackend = sc_service::TFullBackend<Block>;164 <R as RuntimeInstance>::CrossAccountId,158 <R as RuntimeInstance>::CrossAccountId,165 AccountId,159 AccountId,166 >,160 >,167 C::Api: rmrk_rpc::RmrkApi<168 Block,169 AccountId,170 RmrkCollectionInfo<AccountId>,171 RmrkInstanceInfo<AccountId>,172 RmrkResourceInfo,173 RmrkPropertyInfo,174 RmrkBaseInfo<AccountId>,175 RmrkPartType,176 RmrkTheme,177 >,178 C::Api: up_pov_estimate_rpc::PovEstimateApi<Block>,161 C::Api: up_pov_estimate_rpc::PovEstimateApi<Block>,179 B: sc_client_api::Backend<Block> + Send + Sync + 'static,162 B: sc_client_api::Backend<Block> + Send + Sync + 'static,180 B::State: sc_client_api::backend::StateBackend<sp_runtime::traits::HashFor<Block>>,163 B::State: sc_client_api::backend::StateBackend<sp_runtime::traits::HashFor<Block>>,193 #[cfg(not(feature = "unique-runtime"))]176 #[cfg(not(feature = "unique-runtime"))]194 use uc_rpc::{AppPromotionApiServer, AppPromotion};177 use uc_rpc::{AppPromotionApiServer, AppPromotion};195196 #[cfg(not(feature = "unique-runtime"))]197 use uc_rpc::{RmrkApiServer, Rmrk};198178199 #[cfg(feature = "pov-estimate")]179 #[cfg(feature = "pov-estimate")]200 use uc_rpc::pov_estimate::{PovEstimateApiServer, PovEstimate};180 use uc_rpc::pov_estimate::{PovEstimateApiServer, PovEstimate};268 #[cfg(not(feature = "unique-runtime"))]248 #[cfg(not(feature = "unique-runtime"))]269 io.merge(AppPromotion::new(client.clone()).into_rpc())?;249 io.merge(AppPromotion::new(client.clone()).into_rpc())?;270271 #[cfg(not(feature = "unique-runtime"))]272 io.merge(Rmrk::new(client.clone()).into_rpc())?;273250274 #[cfg(feature = "pov-estimate")]251 #[cfg(feature = "pov-estimate")]275 io.merge(252 io.merge(pallets/common/src/erc.rsdiffbeforeafterboth33};33};343435use crate::{35use crate::{36 Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf, eth, weights::WeightInfo,36 Pallet, CollectionHandle, Config, CollectionProperties, eth, SelfWeightOf, weights::WeightInfo,37};37};383839frontier_contract! {39frontier_contract! {pallets/common/src/lib.rsdiffbeforeafterboth109 TokenData,109 TokenData,110 TrySetProperty,110 TrySetProperty,111 PropertyScope,111 PropertyScope,112 // RMRK113 RmrkCollectionInfo,114 RmrkInstanceInfo,115 RmrkResourceInfo,116 RmrkPropertyInfo,117 RmrkBaseInfo,118 RmrkPartType,119 RmrkBoundedTheme,120 RmrkNftChild,121 CollectionPermissions,112 CollectionPermissions,122};113};123use up_pov_estimate_rpc::PovInfo;114use up_pov_estimate_rpc::PovInfo;898 PhantomType<(889 PhantomType<(899 TokenData<T::CrossAccountId>,890 TokenData<T::CrossAccountId>,900 RpcCollection<T::AccountId>,891 RpcCollection<T::AccountId>,901 // RMRK902 RmrkCollectionInfo<T::AccountId>,903 RmrkInstanceInfo<T::AccountId>,904 RmrkResourceInfo,905 RmrkPropertyInfo,906 RmrkBaseInfo<T::AccountId>,907 RmrkPartType,908 RmrkBoundedTheme,909 RmrkNftChild,910 // PoV Estimate Info892 // PoV Estimate Info911 PovInfo,893 PovInfo,912 )>,894 )>,pallets/fungible/src/erc.rsdiffbeforeafterboth38use sp_core::{U256, Get};38use sp_core::{U256, Get};393940use crate::{40use crate::{41 Allowance, Balance, Config, FungibleHandle, Pallet, SelfWeightOf, TotalSupply,41 Allowance, Balance, Config, FungibleHandle, Pallet, TotalSupply,42 weights::WeightInfo,42 SelfWeightOf, weights::WeightInfo, 43};43};444445frontier_contract! {45frontier_contract! {pallets/nonfungible/src/erc.rsdiffbeforeafterboth474748use crate::{48use crate::{49 AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,49 AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,50 SelfWeightOf, weights::WeightInfo, TokenProperties,50 TokenProperties, SelfWeightOf, weights::WeightInfo,51};51};525253frontier_contract! {53frontier_contract! {pallets/nonfungible/src/lib.rsdiffbeforeafterboth214 /// usual [`TokenProperties`] due to an unlimited number214 /// usual [`TokenProperties`] due to an unlimited number215 /// and separately stored and written-to key-value pairs.215 /// and separately stored and written-to key-value pairs.216 ///216 ///217 /// Currently used to store RMRK data.217 /// Currently unused.218 #[pallet::storage]218 #[pallet::storage]219 #[pallet::getter(fn token_aux_property)]219 #[pallet::getter(fn token_aux_property)]220 pub type TokenAuxProperties<T: Config> = StorageNMap<220 pub type TokenAuxProperties<T: Config> = StorageNMap<pallets/proxy-rmrk-core/CHANGELOG.mddiffbeforeafterbothno changes
pallets/proxy-rmrk-core/Cargo.tomldiffbeforeafterbothno changes
pallets/proxy-rmrk-core/src/benchmarking.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-core/src/misc.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-core/src/property.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-core/src/rpc.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-core/src/weights.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-equip/CHANGELOG.mddiffbeforeafterbothno changes
pallets/proxy-rmrk-equip/Cargo.tomldiffbeforeafterbothno changes
pallets/proxy-rmrk-equip/src/benchmarking.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-equip/src/lib.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-equip/src/rpc.rsdiffbeforeafterbothno changes
pallets/proxy-rmrk-equip/src/weights.rsdiffbeforeafterbothno changes
pallets/refungible/src/erc.rsdiffbeforeafterboth48};48};494950use crate::{50use crate::{51 AccountBalance, Balance, Config, CreateItemData, Pallet, RefungibleHandle, SelfWeightOf,51 AccountBalance, Balance, Config, CreateItemData, Pallet, RefungibleHandle, 52 TokenProperties, TokensMinted, TotalSupply, weights::WeightInfo,52 TokenProperties, TokensMinted, TotalSupply, SelfWeightOf, weights::WeightInfo,53};53};545455frontier_contract! {55frontier_contract! {pallets/refungible/src/erc_token.rsdiffbeforeafterboth28use pallet_common::{28use pallet_common::{29 erc::{CommonEvmHandler, PrecompileResult},29 erc::{CommonEvmHandler, PrecompileResult},30 eth::{collection_id_to_address, CrossAddress},30 eth::{collection_id_to_address, CrossAddress},31 CommonWeightInfo,31};32};32use pallet_evm::{account::CrossAccountId, PrecompileHandle};33use pallet_evm::{account::CrossAccountId, PrecompileHandle};33use pallet_evm_coder_substrate::{34use pallet_evm_coder_substrate::{39use sp_core::U256;40use sp_core::U256;40use up_data_structs::TokenId;41use up_data_structs::TokenId;414242use crate::{Allowance, Balance, Config, Pallet, RefungibleHandle, TotalSupply};43use crate::{Allowance, Balance, Config, Pallet, RefungibleHandle, TotalSupply, common::CommonWeights, SelfWeightOf, weights::WeightInfo};434444/// Refungible token handle contains information about token's collection and id45/// Refungible token handle contains information about token's collection and id45///46///primitives/data-structs/Cargo.tomldiffbeforeafterboth15derivative = { workspace = true }15derivative = { workspace = true }16frame-support = { workspace = true }16frame-support = { workspace = true }17pallet-evm = { workspace = true }17pallet-evm = { workspace = true }18rmrk-traits = { workspace = true }19scale-info = { workspace = true }18scale-info = { workspace = true }20serde = { workspace = true, optional = true }19serde = { workspace = true, optional = true }21sp-core = { workspace = true }20sp-core = { workspace = true }33 "codec/std",32 "codec/std",34 "frame-support/std",33 "frame-support/std",35 "pallet-evm/std",34 "pallet-evm/std",36 "rmrk-traits/std",37 "serde/std",35 "serde/std",38 "serde1",36 "serde1",39 "sp-core/std",37 "sp-core/std",primitives/data-structs/src/lib.rsdiffbeforeafterboth27use frame_support::{27use frame_support::{28 storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet},28 storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet},29 traits::Get,29 traits::Get,30 parameter_types,31};30};323133#[cfg(feature = "serde")]32#[cfg(feature = "serde")]34use serde::{Serialize, Deserialize};33use serde::{Serialize, Deserialize};353436use sp_core::U256;35use sp_core::U256;37use sp_runtime::{ArithmeticError, sp_std::prelude::Vec, Permill};36use sp_runtime::{ArithmeticError, sp_std::prelude::Vec};38use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};37use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};39use bondrewd::Bitfields;38use bondrewd::Bitfields;40use frame_support::{BoundedVec, traits::ConstU32};39use frame_support::{BoundedVec, traits::ConstU32};41use derivative::Derivative;40use derivative::Derivative;42use scale_info::TypeInfo;41use scale_info::TypeInfo;4344// RMRK45use rmrk_traits::{46 CollectionInfo, NftInfo, ResourceInfo, PropertyInfo, BaseInfo, PartType, Theme, ThemeProperty,47 ResourceTypes, BasicResource, ComposableResource, SlotResource, EquippableList,48};49pub use rmrk_traits::{50 primitives::{51 CollectionId as RmrkCollectionId, NftId as RmrkNftId, BaseId as RmrkBaseId,52 SlotId as RmrkSlotId, PartId as RmrkPartId, ResourceId as RmrkResourceId,53 },54 NftChild as RmrkNftChild, AccountIdOrCollectionNftTuple as RmrkAccountIdOrCollectionNftTuple,55 FixedPart as RmrkFixedPart, SlotPart as RmrkSlotPart,56};574258mod bondrewd_codec;43mod bondrewd_codec;59mod bounded;44mod bounded;174impl EncodeLike<u32> for CollectionId {}159impl EncodeLike<u32> for CollectionId {}175impl EncodeLike<CollectionId> for u32 {}160impl EncodeLike<CollectionId> for u32 {}161162impl From<u32> for CollectionId {163 fn from(value: u32) -> Self {164 Self(value)165 }166}176167177/// Token id.168/// Token id.178#[derive(169#[derive(1368 }1359 }1369}1360}13701371// RMRK1372// todo document?1373parameter_types! {1374 #[derive(PartialEq, TypeInfo)]1375 pub const RmrkStringLimit: u32 = 128;1376 #[derive(PartialEq)]1377 pub const RmrkCollectionSymbolLimit: u32 = MAX_TOKEN_PREFIX_LENGTH;1378 #[derive(PartialEq)]1379 pub const RmrkResourceSymbolLimit: u32 = 10;1380 #[derive(PartialEq)]1381 pub const RmrkBaseSymbolLimit: u32 = MAX_TOKEN_PREFIX_LENGTH;1382 #[derive(PartialEq)]1383 pub const RmrkKeyLimit: u32 = 32;1384 #[derive(PartialEq)]1385 pub const RmrkValueLimit: u32 = 256;1386 #[derive(PartialEq)]1387 pub const RmrkMaxCollectionsEquippablePerPart: u32 = 100;1388 #[derive(PartialEq)]1389 pub const MaxPropertiesPerTheme: u32 = 5;1390 #[derive(PartialEq)]1391 pub const RmrkPartsLimit: u32 = 25;1392 #[derive(PartialEq)]1393 pub const RmrkMaxPriorities: u32 = 25;1394 #[derive(PartialEq)]1395 pub const MaxResourcesOnMint: u32 = 100;1396}13971398impl From<RmrkCollectionId> for CollectionId {1399 fn from(id: RmrkCollectionId) -> Self {1400 Self(id)1401 }1402}14031404impl From<RmrkNftId> for TokenId {1405 fn from(id: RmrkNftId) -> Self {1406 Self(id)1407 }1408}14091410pub type RmrkCollectionInfo<AccountId> =1411 CollectionInfo<RmrkString, RmrkCollectionSymbol, AccountId>;1412pub type RmrkInstanceInfo<AccountId> = NftInfo<AccountId, Permill, RmrkString>;1413pub type RmrkResourceInfo = ResourceInfo<RmrkString, RmrkBoundedParts>;1414pub type RmrkPropertyInfo = PropertyInfo<RmrkKeyString, RmrkValueString>;1415pub type RmrkBaseInfo<AccountId> = BaseInfo<AccountId, RmrkString>;1416pub type BoundedEquippableCollectionIds =1417 BoundedVec<RmrkCollectionId, RmrkMaxCollectionsEquippablePerPart>;1418pub type RmrkPartType = PartType<RmrkString, BoundedEquippableCollectionIds>;1419pub type RmrkEquippableList = EquippableList<BoundedEquippableCollectionIds>;1420pub type RmrkThemeProperty = ThemeProperty<RmrkString>;1421pub type RmrkTheme = Theme<RmrkString, Vec<RmrkThemeProperty>>;1422pub type RmrkBoundedTheme = Theme<RmrkString, BoundedVec<RmrkThemeProperty, MaxPropertiesPerTheme>>;1423pub type RmrkResourceTypes = ResourceTypes<RmrkString, RmrkBoundedParts>;14241425pub type RmrkBasicResource = BasicResource<RmrkString>;1426pub type RmrkComposableResource = ComposableResource<RmrkString, RmrkBoundedParts>;1427pub type RmrkSlotResource = SlotResource<RmrkString>;14281429pub type RmrkString = BoundedVec<u8, RmrkStringLimit>;1430pub type RmrkCollectionSymbol = BoundedVec<u8, RmrkCollectionSymbolLimit>;1431pub type RmrkBaseSymbol = BoundedVec<u8, RmrkBaseSymbolLimit>;1432pub type RmrkKeyString = BoundedVec<u8, RmrkKeyLimit>;1433pub type RmrkValueString = BoundedVec<u8, RmrkValueLimit>;1434pub type RmrkBoundedResource = BoundedVec<u8, RmrkResourceSymbolLimit>;1435pub type RmrkBoundedParts = BoundedVec<RmrkPartId, RmrkPartsLimit>; // todo make sure it is needed14361437pub type RmrkRpcString = Vec<u8>;1438pub type RmrkThemeName = RmrkRpcString;1439pub type RmrkPropertyKey = RmrkRpcString;14401361primitives/rmrk-rpc/CHANGELOG.mddiffbeforeafterbothno changes
primitives/rmrk-rpc/Cargo.tomldiffbeforeafterbothno changes
primitives/rmrk-rpc/src/lib.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/Cargo.tomldiffbeforeafterbothno changes
primitives/rmrk-traits/src/base.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/collection.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/lib.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/nft.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/part.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/property.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/resource.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/serialize.rsdiffbeforeafterbothno changes
primitives/rmrk-traits/src/theme.rsdiffbeforeafterbothno changes
runtime/common/config/pallets/mod.rsdiffbeforeafterboth35};35};36use sp_arithmetic::Perbill;36use sp_arithmetic::Perbill;3738#[cfg(feature = "rmrk")]39pub mod rmrk;403741#[cfg(feature = "scheduler")]38#[cfg(feature = "scheduler")]42pub mod scheduler;39pub mod scheduler;runtime/common/config/pallets/rmrk.rsdiffbeforeafterbothno changes
runtime/common/construct_runtime.rsdiffbeforeafterboth82 Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,82 Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,83 Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,83 Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,848485 #[cfg(feature = "rmrk")]85 // RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,86 RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,868787 // RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,88 #[cfg(feature = "rmrk")]89 RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,908891 #[cfg(feature = "app-promotion")]89 #[cfg(feature = "app-promotion")]92 AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,90 AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,runtime/common/maintenance.rsdiffbeforeafterboth70 #[cfg(feature = "scheduler")]70 #[cfg(feature = "scheduler")]71 RuntimeCall::Scheduler(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),71 RuntimeCall::Scheduler(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),7273 #[cfg(feature = "rmrk")]74 RuntimeCall::RmrkCore(_) | RuntimeCall::RmrkEquip(_) => {75 Err(TransactionValidityError::Invalid(InvalidTransaction::Call))76 }777278 #[cfg(feature = "app-promotion")]73 #[cfg(feature = "app-promotion")]79 RuntimeCall::AppPromotion(_) => {74 RuntimeCall::AppPromotion(_) => {runtime/common/runtime_apis.rsdiffbeforeafterboth231 }231 }232 }232 }233234 impl rmrk_rpc::RmrkApi<235 Block,236 AccountId,237 RmrkCollectionInfo<AccountId>,238 RmrkInstanceInfo<AccountId>,239 RmrkResourceInfo,240 RmrkPropertyInfo,241 RmrkBaseInfo<AccountId>,242 RmrkPartType,243 RmrkTheme244 > for Runtime {245 fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {246 #[cfg(feature = "rmrk")]247 return pallet_proxy_rmrk_core::rpc::last_collection_idx::<Runtime>();248249 #[cfg(not(feature = "rmrk"))]250 return unsupported!();251 }252253 #[allow(unused_variables)]254 fn collection_by_id(collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {255 #[cfg(feature = "rmrk")]256 return pallet_proxy_rmrk_core::rpc::collection_by_id::<Runtime>(collection_id);257258 #[cfg(not(feature = "rmrk"))]259 return unsupported!();260 }261262 #[allow(unused_variables)]263 fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {264 #[cfg(feature = "rmrk")]265 return pallet_proxy_rmrk_core::rpc::nft_by_id::<Runtime>(collection_id, nft_by_id);266267 #[cfg(not(feature = "rmrk"))]268 return unsupported!();269 }270271 #[allow(unused_variables)]272 fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {273 #[cfg(feature = "rmrk")]274 return pallet_proxy_rmrk_core::rpc::account_tokens::<Runtime>(account_id, collection_id);275276 #[cfg(not(feature = "rmrk"))]277 return unsupported!();278 }279280 #[allow(unused_variables)]281 fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {282 #[cfg(feature = "rmrk")]283 return pallet_proxy_rmrk_core::rpc::nft_children::<Runtime>(collection_id, nft_id);284285 #[cfg(not(feature = "rmrk"))]286 return unsupported!();287 }288289 #[allow(unused_variables)]290 fn collection_properties(291 collection_id: RmrkCollectionId,292 filter_keys: Option<Vec<RmrkPropertyKey>>293 ) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {294 #[cfg(feature = "rmrk")]295 return pallet_proxy_rmrk_core::rpc::collection_properties::<Runtime>(collection_id, filter_keys);296297 #[cfg(not(feature = "rmrk"))]298 return unsupported!();299 }300301 #[allow(unused_variables)]302 fn nft_properties(303 collection_id: RmrkCollectionId,304 nft_id: RmrkNftId,305 filter_keys: Option<Vec<RmrkPropertyKey>>306 ) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {307 #[cfg(feature = "rmrk")]308 return pallet_proxy_rmrk_core::rpc::nft_properties::<Runtime>(collection_id, nft_id, filter_keys);309310 #[cfg(not(feature = "rmrk"))]311 return unsupported!();312 }313314 #[allow(unused_variables)]315 fn nft_resources(collection_id: RmrkCollectionId,nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {316 #[cfg(feature = "rmrk")]317 return pallet_proxy_rmrk_core::rpc::nft_resources::<Runtime>(collection_id, nft_id);318319 #[cfg(not(feature = "rmrk"))]320 return unsupported!();321 }322323 #[allow(unused_variables)]324 fn nft_resource_priority(325 collection_id: RmrkCollectionId,326 nft_id: RmrkNftId,327 resource_id: RmrkResourceId328 ) -> Result<Option<u32>, DispatchError> {329 #[cfg(feature = "rmrk")]330 return pallet_proxy_rmrk_core::rpc::nft_resource_priority::<Runtime>(collection_id, nft_id, resource_id);331332 #[cfg(not(feature = "rmrk"))]333 return unsupported!();334 }335336 #[allow(unused_variables)]337 fn base(base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {338 #[cfg(feature = "rmrk")]339 return pallet_proxy_rmrk_equip::rpc::base::<Runtime>(base_id);340341 #[cfg(not(feature = "rmrk"))]342 return unsupported!();343 }344345 #[allow(unused_variables)]346 fn base_parts(base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {347 #[cfg(feature = "rmrk")]348 return pallet_proxy_rmrk_equip::rpc::base_parts::<Runtime>(base_id);349350 #[cfg(not(feature = "rmrk"))]351 return unsupported!();352 }353354 #[allow(unused_variables)]355 fn theme_names(base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {356 #[cfg(feature = "rmrk")]357 return pallet_proxy_rmrk_equip::rpc::theme_names::<Runtime>(base_id);358359 #[cfg(not(feature = "rmrk"))]360 return unsupported!();361 }362363 #[allow(unused_variables)]364 fn theme(365 base_id: RmrkBaseId,366 theme_name: RmrkThemeName,367 filter_keys: Option<Vec<RmrkPropertyKey>>368 ) -> Result<Option<RmrkTheme>, DispatchError> {369 #[cfg(feature = "rmrk")]370 return pallet_proxy_rmrk_equip::rpc::theme::<Runtime>(base_id, theme_name, filter_keys);371372 #[cfg(not(feature = "rmrk"))]373 return unsupported!();374 }375 }376233377 impl sp_api::Core<Block> for Runtime {234 impl sp_api::Core<Block> for Runtime {378 fn version() -> RuntimeVersion {235 fn version() -> RuntimeVersion {702 #[cfg(feature = "scheduler")]559 #[cfg(feature = "scheduler")]703 list_benchmark!(list, extra, pallet_unique_scheduler_v2, Scheduler);560 list_benchmark!(list, extra, pallet_unique_scheduler_v2, Scheduler);704705 #[cfg(feature = "rmrk")]706 list_benchmark!(list, extra, pallet_proxy_rmrk_core, RmrkCore);707708 #[cfg(feature = "rmrk")]709 list_benchmark!(list, extra, pallet_proxy_rmrk_equip, RmrkEquip);710561711 #[cfg(feature = "collator-selection")]562 #[cfg(feature = "collator-selection")]712 list_benchmark!(list, extra, pallet_collator_selection, CollatorSelection);563 list_benchmark!(list, extra, pallet_collator_selection, CollatorSelection);772 #[cfg(feature = "scheduler")]623 #[cfg(feature = "scheduler")]773 add_benchmark!(params, batches, pallet_unique_scheduler_v2, Scheduler);624 add_benchmark!(params, batches, pallet_unique_scheduler_v2, Scheduler);774775 #[cfg(feature = "rmrk")]776 add_benchmark!(params, batches, pallet_proxy_rmrk_core, RmrkCore);777778 #[cfg(feature = "rmrk")]779 add_benchmark!(params, batches, pallet_proxy_rmrk_equip, RmrkEquip);780625781 #[cfg(feature = "collator-selection")]626 #[cfg(feature = "collator-selection")]782 add_benchmark!(params, batches, pallet_collator_selection, CollatorSelection);627 add_benchmark!(params, batches, pallet_collator_selection, CollatorSelection);runtime/opal/Cargo.tomldiffbeforeafterboth41 'pallet-inflation/runtime-benchmarks',41 'pallet-inflation/runtime-benchmarks',42 'pallet-maintenance/runtime-benchmarks',42 'pallet-maintenance/runtime-benchmarks',43 'pallet-nonfungible/runtime-benchmarks',43 'pallet-nonfungible/runtime-benchmarks',44 'pallet-proxy-rmrk-core/runtime-benchmarks',45 'pallet-proxy-rmrk-equip/runtime-benchmarks',46 'pallet-refungible/runtime-benchmarks',44 'pallet-refungible/runtime-benchmarks',47 'pallet-structure/runtime-benchmarks',45 'pallet-structure/runtime-benchmarks',48 'pallet-timestamp/runtime-benchmarks',46 'pallet-timestamp/runtime-benchmarks',95 'pallet-identity/std',93 'pallet-identity/std',96 'pallet-inflation/std',94 'pallet-inflation/std',97 'pallet-nonfungible/std',95 'pallet-nonfungible/std',98 'pallet-proxy-rmrk-core/std',99 'pallet-proxy-rmrk-equip/std',100 'pallet-randomness-collective-flip/std',96 'pallet-randomness-collective-flip/std',101 'pallet-refungible/std',97 'pallet-refungible/std',102 'pallet-structure/std',98 'pallet-structure/std',108 'pallet-unique-scheduler-v2/std',104 'pallet-unique-scheduler-v2/std',109 'pallet-unique/std',105 'pallet-unique/std',110 'parachain-info/std',106 'parachain-info/std',111 'rmrk-rpc/std',112 'serde',107 'serde',113 'sp-api/std',108 'sp-api/std',114 'sp-block-builder/std',109 'sp-block-builder/std',176 'pallet-inflation/try-runtime',171 'pallet-inflation/try-runtime',177 'pallet-maintenance/try-runtime',172 'pallet-maintenance/try-runtime',178 'pallet-nonfungible/try-runtime',173 'pallet-nonfungible/try-runtime',179 'pallet-proxy-rmrk-core/try-runtime',180 'pallet-proxy-rmrk-equip/try-runtime',181 'pallet-randomness-collective-flip/try-runtime',174 'pallet-randomness-collective-flip/try-runtime',182 'pallet-refungible/try-runtime',175 'pallet-refungible/try-runtime',183 'pallet-structure/try-runtime',176 'pallet-structure/try-runtime',197foreign-assets = []190foreign-assets = []198pallet-test-utils = []191pallet-test-utils = []199refungible = []192refungible = []200rmrk = []201scheduler = []193scheduler = []202194203################################################################################195################################################################################282pallet-inflation = { workspace = true }274pallet-inflation = { workspace = true }283pallet-maintenance = { workspace = true }275pallet-maintenance = { workspace = true }284pallet-nonfungible = { workspace = true }276pallet-nonfungible = { workspace = true }285pallet-proxy-rmrk-core = { workspace = true }286pallet-proxy-rmrk-equip = { workspace = true }287pallet-refungible = { workspace = true }277pallet-refungible = { workspace = true }288pallet-structure = { workspace = true }278pallet-structure = { workspace = true }289pallet-unique = { workspace = true }279pallet-unique = { workspace = true }290pallet-unique-scheduler-v2 = { workspace = true }280pallet-unique-scheduler-v2 = { workspace = true }291precompile-utils-macro = { workspace = true }281precompile-utils-macro = { workspace = true }292rmrk-rpc = { workspace = true }293scale-info = { workspace = true }282scale-info = { workspace = true }294up-common = { workspace = true }283up-common = { workspace = true }295up-data-structs = { workspace = true }284up-data-structs = { workspace = true }runtime/quartz/Cargo.tomldiffbeforeafterboth42 'pallet-inflation/runtime-benchmarks',42 'pallet-inflation/runtime-benchmarks',43 'pallet-maintenance/runtime-benchmarks',43 'pallet-maintenance/runtime-benchmarks',44 'pallet-nonfungible/runtime-benchmarks',44 'pallet-nonfungible/runtime-benchmarks',45 'pallet-proxy-rmrk-core/runtime-benchmarks',46 'pallet-proxy-rmrk-equip/runtime-benchmarks',47 'pallet-refungible/runtime-benchmarks',45 'pallet-refungible/runtime-benchmarks',48 'pallet-structure/runtime-benchmarks',46 'pallet-structure/runtime-benchmarks',49 'pallet-timestamp/runtime-benchmarks',47 'pallet-timestamp/runtime-benchmarks',95 'pallet-fungible/std',93 'pallet-fungible/std',96 'pallet-inflation/std',94 'pallet-inflation/std',97 'pallet-nonfungible/std',95 'pallet-nonfungible/std',98 'pallet-proxy-rmrk-core/std',99 'pallet-proxy-rmrk-equip/std',100 'pallet-randomness-collective-flip/std',96 'pallet-randomness-collective-flip/std',101 'pallet-refungible/std',97 'pallet-refungible/std',102 'pallet-structure/std',98 'pallet-structure/std',107 'pallet-treasury/std',103 'pallet-treasury/std',108 'pallet-unique/std',104 'pallet-unique/std',109 'parachain-info/std',105 'parachain-info/std',110 'rmrk-rpc/std',111 'serde',106 'serde',112 'sp-api/std',107 'sp-api/std',113 'sp-block-builder/std',108 'sp-block-builder/std',171 'pallet-inflation/try-runtime',166 'pallet-inflation/try-runtime',172 'pallet-maintenance/try-runtime',167 'pallet-maintenance/try-runtime',173 'pallet-nonfungible/try-runtime',168 'pallet-nonfungible/try-runtime',174 'pallet-proxy-rmrk-core/try-runtime',175 'pallet-proxy-rmrk-equip/try-runtime',176 'pallet-randomness-collective-flip/try-runtime',169 'pallet-randomness-collective-flip/try-runtime',177 'pallet-refungible/try-runtime',170 'pallet-refungible/try-runtime',178 'pallet-structure/try-runtime',171 'pallet-structure/try-runtime',189collator-selection = []182collator-selection = []190foreign-assets = []183foreign-assets = []191refungible = []184refungible = []192rmrk = []193scheduler = []185scheduler = []194186195################################################################################187################################################################################228pallet-xcm = { workspace = true }220pallet-xcm = { workspace = true }229parachain-info = { workspace = true }221parachain-info = { workspace = true }230polkadot-parachain = { workspace = true }222polkadot-parachain = { workspace = true }231rmrk-rpc = { workspace = true }232smallvec = { workspace = true }223smallvec = { workspace = true }233sp-api = { workspace = true }224sp-api = { workspace = true }234sp-arithmetic = { workspace = true }225sp-arithmetic = { workspace = true }260pallet-identity = { workspace = true }251pallet-identity = { workspace = true }261pallet-inflation = { workspace = true }252pallet-inflation = { workspace = true }262pallet-nonfungible = { workspace = true }253pallet-nonfungible = { workspace = true }263pallet-proxy-rmrk-core = { workspace = true }264pallet-proxy-rmrk-equip = { workspace = true }265pallet-refungible = { workspace = true }254pallet-refungible = { workspace = true }266pallet-structure = { workspace = true }255pallet-structure = { workspace = true }267pallet-unique = { workspace = true }256pallet-unique = { workspace = true }runtime/unique/Cargo.tomldiffbeforeafterboth39 'pallet-inflation/runtime-benchmarks',39 'pallet-inflation/runtime-benchmarks',40 'pallet-maintenance/runtime-benchmarks',40 'pallet-maintenance/runtime-benchmarks',41 'pallet-nonfungible/runtime-benchmarks',41 'pallet-nonfungible/runtime-benchmarks',42 'pallet-proxy-rmrk-core/runtime-benchmarks',43 'pallet-proxy-rmrk-equip/runtime-benchmarks',44 'pallet-refungible/runtime-benchmarks',42 'pallet-refungible/runtime-benchmarks',45 'pallet-structure/runtime-benchmarks',43 'pallet-structure/runtime-benchmarks',46 'pallet-timestamp/runtime-benchmarks',44 'pallet-timestamp/runtime-benchmarks',93 'pallet-fungible/std',91 'pallet-fungible/std',94 'pallet-inflation/std',92 'pallet-inflation/std',95 'pallet-nonfungible/std',93 'pallet-nonfungible/std',96 'pallet-proxy-rmrk-core/std',97 'pallet-proxy-rmrk-equip/std',98 'pallet-randomness-collective-flip/std',94 'pallet-randomness-collective-flip/std',99 'pallet-refungible/std',95 'pallet-refungible/std',100 'pallet-structure/std',96 'pallet-structure/std',105 'pallet-treasury/std',101 'pallet-treasury/std',106 'pallet-unique/std',102 'pallet-unique/std',107 'parachain-info/std',103 'parachain-info/std',108 'rmrk-rpc/std',109 'sp-api/std',104 'sp-api/std',110 'sp-block-builder/std',105 'sp-block-builder/std',111 'sp-core/std',106 'sp-core/std',169 'pallet-inflation/try-runtime',164 'pallet-inflation/try-runtime',170 'pallet-maintenance/try-runtime',165 'pallet-maintenance/try-runtime',171 'pallet-nonfungible/try-runtime',166 'pallet-nonfungible/try-runtime',172 'pallet-proxy-rmrk-core/try-runtime',173 'pallet-proxy-rmrk-equip/try-runtime',174 'pallet-randomness-collective-flip/try-runtime',167 'pallet-randomness-collective-flip/try-runtime',175 'pallet-refungible/try-runtime',168 'pallet-refungible/try-runtime',176 'pallet-structure/try-runtime',169 'pallet-structure/try-runtime',187collator-selection = []180collator-selection = []188foreign-assets = []181foreign-assets = []189refungible = []182refungible = []190rmrk = []191scheduler = []183scheduler = []192184193################################################################################185################################################################################255pallet-identity = { workspace = true }247pallet-identity = { workspace = true }256pallet-inflation = { workspace = true }248pallet-inflation = { workspace = true }257pallet-nonfungible = { workspace = true }249pallet-nonfungible = { workspace = true }258pallet-proxy-rmrk-core = { workspace = true }259pallet-proxy-rmrk-equip = { workspace = true }260pallet-refungible = { workspace = true }250pallet-refungible = { workspace = true }261pallet-structure = { workspace = true }251pallet-structure = { workspace = true }262pallet-unique = { workspace = true }252pallet-unique = { workspace = true }263rmrk-rpc = { workspace = true }264scale-info = { workspace = true }253scale-info = { workspace = true }265up-common = { workspace = true }254up-common = { workspace = true }266up-data-structs = { workspace = true }255up-data-structs = { workspace = true }tests/package.jsondiffbeforeafterboth43 "testEthFractionalizer": "yarn setup && mocha --timeout 9999999 -r ts-node/register './**/eth/fractionalizer/**/*.*test.ts'",43 "testEthFractionalizer": "yarn setup && mocha --timeout 9999999 -r ts-node/register './**/eth/fractionalizer/**/*.*test.ts'",44 "testEthMarketplace": "yarn setup && mocha --timeout 9999999 -r ts-node/register './**/eth/marketplace/**/*.*test.ts'",44 "testEthMarketplace": "yarn setup && mocha --timeout 9999999 -r ts-node/register './**/eth/marketplace/**/*.*test.ts'",45 "testEvent": "yarn setup && mocha --timeout 9999999 -r ts-node/register ./src/check-event/*.*test.ts",45 "testEvent": "yarn setup && mocha --timeout 9999999 -r ts-node/register ./src/check-event/*.*test.ts",46 "testRmrk": "yarn setup && mocha --timeout 9999999 -r ts-node/register ./**/rmrk/*.*test.ts",47 "testEthPayable": "mocha --timeout 9999999 -r ts-node/register './**/eth/payable.test.ts'",46 "testEthPayable": "mocha --timeout 9999999 -r ts-node/register './**/eth/payable.test.ts'",48 "testEvmCoder": "mocha --timeout 9999999 -r ts-node/register './**/eth/evmCoder.test.ts'",47 "testEvmCoder": "mocha --timeout 9999999 -r ts-node/register './**/eth/evmCoder.test.ts'",49 "testNesting": "mocha --timeout 9999999 -r ts-node/register ./**/nest.test.ts",48 "testNesting": "mocha --timeout 9999999 -r ts-node/register ./**/nest.test.ts",tests/src/.outdated/rmrk/acceptNft.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/addResource.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/addTheme.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/burnNft.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/changeCollectionIssuer.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/createBase.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/createCollection.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/deleteCollection.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/equipNft.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/getOwnedNfts.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/lockCollection.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/mintNft.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/rejectNft.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/removeResource.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/rmrkIsolation.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/sendNft.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/setCollectionProperty.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/setEquippableList.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/setNftProperty.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/setResourcePriorities.seqtest.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/util/fetch.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/util/helpers.tsdiffbeforeafterbothno changes
tests/src/.outdated/rmrk/util/tx.tsdiffbeforeafterbothno changes
tests/src/.outdated/substrate/substrate-api.tsdiffbeforeafterboth53 rpc: {53 rpc: {54 unique: defs.unique.rpc,54 unique: defs.unique.rpc,55 appPromotion: defs.appPromotion.rpc,55 appPromotion: defs.appPromotion.rpc,56 rmrk: defs.rmrk.rpc,57 eth: {56 eth: {58 feeHistory: {57 feeHistory: {59 description: 'Dummy',58 description: 'Dummy',tests/src/interfaces/definitions.tsdiffbeforeafterboth161617export {default as unique} from './unique/definitions';17export {default as unique} from './unique/definitions';18export {default as appPromotion} from './appPromotion/definitions';18export {default as appPromotion} from './appPromotion/definitions';19export {default as rmrk} from './rmrk/definitions';20export {default as povinfo} from './povinfo/definitions';19export {default as povinfo} from './povinfo/definitions';21export {default as default} from './default/definitions';20export {default as default} from './default/definitions';2221tests/src/interfaces/rmrk/definitions.tsdiffbeforeafterbothno changes
tests/src/interfaces/rmrk/index.tsdiffbeforeafterbothno changes
tests/src/interfaces/rmrk/types.tsdiffbeforeafterbothno changes
tests/src/pallet-presence.test.tsdiffbeforeafterboth646465 const refungible = 'refungible';65 const refungible = 'refungible';66 const foreignAssets = 'foreignassets';66 const foreignAssets = 'foreignassets';67 const _rmrkPallets = ['rmrkcore', 'rmrkequip'];68 const appPromotion = 'apppromotion';67 const appPromotion = 'apppromotion';69 const collatorSelection = ['authorship', 'session', 'collatorselection', 'identity'];68 const collatorSelection = ['authorship', 'session', 'collatorselection', 'identity'];70 const testUtils = 'testutils';69 const testUtils = 'testutils';tests/src/util/index.tsdiffbeforeafterboth106106107export enum Pallets {107export enum Pallets {108 Inflation = 'inflation',108 Inflation = 'inflation',109 RmrkCore = 'rmrkcore',110 RmrkEquip = 'rmrkequip',111 ReFungible = 'refungible',109 ReFungible = 'refungible',112 Fungible = 'fungible',110 Fungible = 'fungible',113 NFT = 'nonfungible',111 NFT = 'nonfungible',tests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth106 unique: defs.unique.rpc,106 unique: defs.unique.rpc,107 appPromotion: defs.appPromotion.rpc,107 appPromotion: defs.appPromotion.rpc,108 povinfo: defs.povinfo.rpc,108 povinfo: defs.povinfo.rpc,109 rmrk: defs.rmrk.rpc,110 eth: {109 eth: {111 feeHistory: {110 feeHistory: {112 description: 'Dummy',111 description: 'Dummy',