git.delta.rocks / unique-network / refs/commits / 8c0746583b47

difftreelog

refactor(up-nft) optional serde support

Yaroslav Bolyukin2021-08-09parent: #b5bd6c7.patch.diff
in: master

2 files changed

modifiedprimitives/nft/Cargo.tomldiffbeforeafterboth
--- a/primitives/nft/Cargo.toml
+++ b/primitives/nft/Cargo.toml
@@ -10,7 +10,7 @@
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ['derive'] }
-serde = { version = "1.0.119", features = ['derive'], default-features = false }
+serde = { version = "1.0.119", features = ['derive'], default-features = false, optional = true }
 max-encoded-len = { default-features = false, features = ['derive'], version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }
 frame-support = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }
 frame-system = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }
@@ -22,6 +22,7 @@
 [features]
 default = ["std"]
 std = [
+  "serde1",
   "serde/std",
   "codec/std",
   "max-encoded-len/std",
@@ -30,4 +31,5 @@
   "sp-runtime/std",
   "sp-core/std",
   "sp-std/std",
-]
\ No newline at end of file
+]
+serde1 = ["serde"]
\ No newline at end of file
modifiedprimitives/nft/src/lib.rsdiffbeforeafterboth
1#![cfg_attr(not(feature = "std"), no_std)]1#![cfg_attr(not(feature = "std"), no_std)]
22
3#[cfg(feature = "serde")]
3pub use serde::{Serialize, Deserialize};4pub use serde::{Serialize, Deserialize};
45
5use sp_runtime::sp_std::prelude::Vec;6use sp_runtime::sp_std::prelude::Vec;
39pub type TokenId = u32;40pub type TokenId = u32;
40pub type DecimalPoints = u8;41pub type DecimalPoints = u8;
4142
42#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)]43#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
44#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
43pub enum CollectionMode {45pub enum CollectionMode {
44 Invalid,46 Invalid,
45 NFT,47 NFT,
69 fn resolve(who: &AccountId, call: &Call) -> Option<AccountId>;71 fn resolve(who: &AccountId, call: &Call) -> Option<AccountId>;
70}72}
7173
72#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)]74#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
75#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
73pub enum AccessMode {76pub enum AccessMode {
74 Normal,77 Normal,
75 WhiteList,78 WhiteList,
80 }83 }
81}84}
8285
83#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)]86#[derive(Encode, Decode, Eq, Debug, Clone, PartialEq)]
87#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
84pub enum SchemaVersion {88pub enum SchemaVersion {
85 ImageURL,89 ImageURL,
86 Unique,90 Unique,
91 }95 }
92}96}
9397
94#[derive(Encode, Decode, Default, Debug, Clone, PartialEq, Serialize, Deserialize)]98#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
99#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
95pub struct Ownership<AccountId> {100pub struct Ownership<AccountId> {
96 pub owner: AccountId,101 pub owner: AccountId,
97 pub fraction: u128,102 pub fraction: u128,
98}103}
99104
100#[derive(Encode, Decode, Debug, Clone, PartialEq, Serialize, Deserialize)]105#[derive(Encode, Decode, Debug, Clone, PartialEq)]
106#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
101pub enum SponsorshipState<AccountId> {107pub enum SponsorshipState<AccountId> {
102 /// The fees are applied to the transaction sender108 /// The fees are applied to the transaction sender
103 Disabled,109 Disabled,
133}139}
134140
135#[derive(Encode, Decode, Clone, PartialEq)]141#[derive(Encode, Decode, Clone, PartialEq)]
136#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]142#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
137pub struct Collection<T: frame_system::Config> {143pub struct Collection<T: frame_system::Config> {
138 pub owner: T::AccountId,144 pub owner: T::AccountId,
139 pub mode: CollectionMode,145 pub mode: CollectionMode,
152 pub transfers_enabled: bool,158 pub transfers_enabled: bool,
153}159}
154160
155#[derive(Encode, Decode, Debug, Clone, PartialEq, Serialize, Deserialize)]161#[derive(Encode, Decode, Debug, Clone, PartialEq)]
162#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
156pub struct NftItemType<AccountId> {163pub struct NftItemType<AccountId> {
157 pub owner: AccountId,164 pub owner: AccountId,
158 pub const_data: Vec<u8>,165 pub const_data: Vec<u8>,
159 pub variable_data: Vec<u8>,166 pub variable_data: Vec<u8>,
160}167}
161168
162#[derive(Encode, Decode, Default, Debug, Clone, PartialEq, Serialize, Deserialize)]169#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
170#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
163pub struct FungibleItemType {171pub struct FungibleItemType {
164 pub value: u128,172 pub value: u128,
165}173}
166174
167#[derive(Encode, Decode, Debug, Clone, PartialEq, Serialize, Deserialize)]175#[derive(Encode, Decode, Debug, Clone, PartialEq)]
176#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
168pub struct ReFungibleItemType<AccountId> {177pub struct ReFungibleItemType<AccountId> {
169 pub owner: Vec<Ownership<AccountId>>,178 pub owner: Vec<Ownership<AccountId>>,
170 pub const_data: Vec<u8>,179 pub const_data: Vec<u8>,
171 pub variable_data: Vec<u8>,180 pub variable_data: Vec<u8>,
172}181}
173182
174#[derive(Encode, Decode, Debug, Clone, PartialEq, Serialize, Deserialize)]183#[derive(Encode, Decode, Debug, Clone, PartialEq)]
184#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
175pub struct CollectionLimits<BlockNumber: Encode + Decode> {185pub struct CollectionLimits<BlockNumber: Encode + Decode> {
176 pub account_token_ownership_limit: u32,186 pub account_token_ownership_limit: u32,
177 pub sponsored_data_size: u32,187 pub sponsored_data_size: u32,
201 }211 }
202}212}
203213
204#[derive(Encode, Decode, Default, Debug, Clone, PartialEq, Serialize, Deserialize)]214#[derive(Encode, Decode, Default, Debug, Clone, PartialEq)]
215#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
205pub struct ChainLimits {216pub struct ChainLimits {
206 pub collection_numbers_limit: u32,217 pub collection_numbers_limit: u32,
207 pub account_token_ownership_limit: u32,218 pub account_token_ownership_limit: u32,
220}231}
221232
222/// BoundedVec doesn't supports serde233/// BoundedVec doesn't supports serde
234#[cfg(feature = "serde1")]
223mod bounded_serde {235mod bounded_serde {
224 use core::convert::TryFrom;236 use core::convert::TryFrom;
225 use frame_support::{BoundedVec, traits::Get};237 use frame_support::{BoundedVec, traits::Get};
252}264}
253265
254#[derive(266#[derive(Encode, Decode, MaxEncodedLen, Default, Derivative, Clone, PartialEq)]
255 Encode, Decode, MaxEncodedLen, Default, Derivative, Clone, PartialEq, Serialize, Deserialize,267#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
256)]
257#[derivative(Debug)]268#[derivative(Debug)]
258pub struct CreateNftData {269pub struct CreateNftData {
259 #[serde(with = "bounded_serde")]270 #[cfg_attr(feature = "serde1", serde(with = "bounded_serde"))]
260 #[derivative(Debug = "ignore")]271 #[derivative(Debug = "ignore")]
261 pub const_data: BoundedVec<u8, MaxDataSize>,272 pub const_data: BoundedVec<u8, MaxDataSize>,
262 #[serde(with = "bounded_serde")]273 #[cfg_attr(feature = "serde1", serde(with = "bounded_serde"))]
263 #[derivative(Debug = "ignore")]274 #[derivative(Debug = "ignore")]
264 pub variable_data: BoundedVec<u8, MaxDataSize>,275 pub variable_data: BoundedVec<u8, MaxDataSize>,
265}276}
266277
267#[derive(278#[derive(Encode, Decode, MaxEncodedLen, Default, Debug, Clone, PartialEq)]
268 Encode, Decode, MaxEncodedLen, Default, Debug, Clone, PartialEq, Serialize, Deserialize,279#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
269)]
270pub struct CreateFungibleData {280pub struct CreateFungibleData {
271 pub value: u128,281 pub value: u128,
272}282}
273283
274#[derive(284#[derive(Encode, Decode, MaxEncodedLen, Default, Derivative, Clone, PartialEq)]
275 Encode, Decode, MaxEncodedLen, Default, Derivative, Clone, PartialEq, Serialize, Deserialize,285#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
276)]
277#[derivative(Debug)]286#[derivative(Debug)]
278pub struct CreateReFungibleData {287pub struct CreateReFungibleData {
279 #[serde(with = "bounded_serde")]288 #[cfg_attr(feature = "serde1", serde(with = "bounded_serde"))]
280 #[derivative(Debug = "ignore")]289 #[derivative(Debug = "ignore")]
281 pub const_data: BoundedVec<u8, MaxDataSize>,290 pub const_data: BoundedVec<u8, MaxDataSize>,
282 #[serde(with = "bounded_serde")]291 #[cfg_attr(feature = "serde1", serde(with = "bounded_serde"))]
283 #[derivative(Debug = "ignore")]292 #[derivative(Debug = "ignore")]
284 pub variable_data: BoundedVec<u8, MaxDataSize>,293 pub variable_data: BoundedVec<u8, MaxDataSize>,
285 pub pieces: u128,294 pub pieces: u128,
286}295}
287296
288#[derive(Encode, Decode, MaxEncodedLen, Debug, Clone, PartialEq, Serialize, Deserialize)]297#[derive(Encode, Decode, MaxEncodedLen, Debug, Clone, PartialEq)]
298#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
289pub enum CreateItemData {299pub enum CreateItemData {
290 NFT(CreateNftData),300 NFT(CreateNftData),
291 Fungible(CreateFungibleData),301 Fungible(CreateFungibleData),