difftreelog
refactor(up-nft) optional serde support
in: master
2 files changed
primitives/nft/Cargo.tomldiffbeforeafterboth101011[dependencies]11[dependencies]12codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ['derive'] }12codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false, features = ['derive'] }13serde = { version = "1.0.119", features = ['derive'], default-features = false }13serde = { version = "1.0.119", features = ['derive'], default-features = false, optional = true }14max-encoded-len = { default-features = false, features = ['derive'], version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }14max-encoded-len = { default-features = false, features = ['derive'], version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }15frame-support = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }15frame-support = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }16frame-system = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }16frame-system = { default-features = false, version = '3.0.0', git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.8' }22[features]22[features]23default = ["std"]23default = ["std"]24std = [24std = [25 "serde1",25 "serde/std",26 "serde/std",26 "codec/std",27 "codec/std",27 "max-encoded-len/std",28 "max-encoded-len/std",31 "sp-core/std",32 "sp-core/std",32 "sp-std/std",33 "sp-std/std",33]34]35serde1 = ["serde"]primitives/nft/src/lib.rsdiffbeforeafterboth1#![cfg_attr(not(feature = "std"), no_std)]1#![cfg_attr(not(feature = "std"), no_std)]223#[cfg(feature = "serde")]3pub use serde::{Serialize, Deserialize};4pub use serde::{Serialize, Deserialize};455use 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;414242#[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}717372#[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}828583#[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}939794#[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}99104100#[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 sender103 Disabled,109 Disabled,133}139}134140135#[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}154160155#[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}161168162#[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}166174167#[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}173182174#[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}203213204#[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}221232222/// BoundedVec doesn't supports serde233/// BoundedVec doesn't supports serde234#[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}253265254#[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}266277267#[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}273283274#[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}287296288#[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),