git.delta.rocks / unique-network / refs/commits / 424362fb52a4

difftreelog

Merge pull request #683 from UniqueNetwork/fix/collection-rpc-runtime-versioning

Yaroslav Bolyukin2022-10-26parents: #778aa39 #6fd4079.patch.diff
in: master

3 files changed

modifiedclient/rpc/src/lib.rsdiffbeforeafterboth
558 pass_method!(allowed(collection: CollectionId, user: CrossAccountId) -> bool, unique_api);558 pass_method!(allowed(collection: CollectionId, user: CrossAccountId) -> bool, unique_api);
559 pass_method!(last_token_id(collection: CollectionId) -> TokenId, unique_api);559 pass_method!(last_token_id(collection: CollectionId) -> TokenId, unique_api);
560 pass_method!(collection_by_id(collection: CollectionId) -> Option<RpcCollection<AccountId>>, unique_api);560 pass_method!(
561 collection_by_id(collection: CollectionId) -> Option<RpcCollection<AccountId>>, unique_api;
562 changed_in 3, collection_by_id_before_version_3(collection) => |value| value.map(|coll| coll.into())
563 );
561 pass_method!(collection_stats() -> CollectionStats, unique_api);564 pass_method!(collection_stats() -> CollectionStats, unique_api);
562 pass_method!(next_sponsored(collection: CollectionId, account: CrossAccountId, token: TokenId) -> Option<u64>, unique_api);565 pass_method!(next_sponsored(collection: CollectionId, account: CrossAccountId, token: TokenId) -> Option<u64>, unique_api);
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
447}447}
448448
449/// Collection parameters, used in RPC calls (see [`Collection`] for the storage version).449/// Collection parameters, used in RPC calls (see [`Collection`] for the storage version).
450#[struct_versioning::versioned(version = 2, upper)]
450#[derive(Encode, Decode, Clone, PartialEq, TypeInfo)]451#[derive(Encode, Decode, Clone, PartialEq, TypeInfo)]
451#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]452#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
452pub struct RpcCollection<AccountId> {453pub struct RpcCollection<AccountId> {
484 pub read_only: bool,485 pub read_only: bool,
485486
486 /// Extra collection flags487 /// Extra collection flags
488 #[version(2.., upper(RpcCollectionFlags {foreign: false, erc721metadata: false}))]
487 pub flags: RpcCollectionFlags,489 pub flags: RpcCollectionFlags,
488}490}
489491
modifiedprimitives/rpc/src/lib.rsdiffbeforeafterboth
1616
17#![cfg_attr(not(feature = "std"), no_std)]17#![cfg_attr(not(feature = "std"), no_std)]
18
19extern crate alloc;
1820
19use up_data_structs::{21use up_data_structs::{
20 CollectionId, TokenId, RpcCollection, CollectionStats, CollectionLimits, Property,22 CollectionId, TokenId, RpcCollection, CollectionStats, CollectionLimits, Property,
21 PropertyKeyPermission, TokenData, TokenChild,23 PropertyKeyPermission, TokenData, TokenChild, RpcCollectionVersion1,
22};24};
2325
24use sp_std::vec::Vec;26use sp_std::vec::Vec;
28type Result<T> = core::result::Result<T, DispatchError>;30type Result<T> = core::result::Result<T, DispatchError>;
2931
30sp_api::decl_runtime_apis! {32sp_api::decl_runtime_apis! {
31 #[api_version(2)]33 #[api_version(3)]
32 /// Trait for generate rpc.34 /// Trait for generate rpc.
33 pub trait UniqueApi<CrossAccountId, AccountId> where35 pub trait UniqueApi<CrossAccountId, AccountId> where
34 AccountId: Decode,36 AccountId: Decode,
35 CrossAccountId: pallet_evm::account::CrossAccountId<AccountId>,37 CrossAccountId: pallet_evm::account::CrossAccountId<AccountId>,
36 {38 {
37 #[changed_in(2)]
38 fn token_owner(collection: CollectionId, token: TokenId) -> Result<CrossAccountId>;
39
40 /// Get number of tokens in collection owned by account.39 /// Get number of tokens in collection owned by account.
41 fn account_tokens(collection: CollectionId, account: CrossAccountId) -> Result<Vec<TokenId>>;40 fn account_tokens(collection: CollectionId, account: CrossAccountId) -> Result<Vec<TokenId>>;
110 /// Get collection by id.109 /// Get collection by id.
111 fn collection_by_id(collection: CollectionId) -> Result<Option<RpcCollection<AccountId>>>;110 fn collection_by_id(collection: CollectionId) -> Result<Option<RpcCollection<AccountId>>>;
111
112 #[changed_in(3)]
113 fn collection_by_id(collection: CollectionId) -> Result<Option<RpcCollectionVersion1<AccountId>>>;
112114
113 /// Get collection stats.115 /// Get collection stats.
114 fn collection_stats() -> Result<CollectionStats>;116 fn collection_stats() -> Result<CollectionStats>;