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

difftreelog

Merge pull request #144 from usetech-llc/feature/NFTPAR-413_inflation

Yaroslav Bolyukin2021-04-07parents: #b0e2d1f #e725f85.patch.diff
in: master
Feature/nftpar 413 inflation

11 files changed

modifiedCargo.lockdiffbeforeafterboth
1# This file is automatically @generated by Cargo.1# This file is automatically @generated by Cargo.
2# It is not intended for manual editing.2# It is not intended for manual editing.
3version = 3
4
3[[package]]5[[package]]
4name = "Inflector"6name = "Inflector"
3606 "pallet-contracts-primitives",3608 "pallet-contracts-primitives",
3607 "pallet-contracts-rpc-runtime-api",3609 "pallet-contracts-rpc-runtime-api",
3608 "pallet-grandpa",3610 "pallet-grandpa",
3611 "pallet-inflation",
3609 "pallet-nft",3612 "pallet-nft",
3610 "pallet-randomness-collective-flip",3613 "pallet-randomness-collective-flip",
3611 "pallet-sudo",3614 "pallet-sudo",
3919 "sp-std",3922 "sp-std",
3920]3923]
3924
3925[[package]]
3926name = "pallet-inflation"
3927version = "3.0.0"
3928dependencies = [
3929 "frame-benchmarking",
3930 "frame-support",
3931 "frame-system",
3932 "pallet-balances",
3933 "pallet-randomness-collective-flip",
3934 "pallet-timestamp",
3935 "parity-scale-codec",
3936 "serde",
3937 "sp-core",
3938 "sp-io",
3939 "sp-runtime",
3940 "sp-std",
3941]
39213942
3922[[package]]3943[[package]]
3923name = "pallet-nft"3944name = "pallet-nft"
addedpallets/inflation/Cargo.tomldiffbeforeafterboth

no changes

addedpallets/inflation/src/benchmarking.rsdiffbeforeafterboth

no changes

addedpallets/inflation/src/lib.rsdiffbeforeafterboth

no changes

addedpallets/inflation/src/tests.rsdiffbeforeafterboth

no changes

modifiedpallets/nft/src/benchmarking.rsdiffbeforeafterboth
1#[cfg(feature = "runtime-benchmarks")]1#![cfg(feature = "runtime-benchmarks")]
2// mod benchmarking {2
3 use super::*;3use super::*;
4use crate::Module as Nft;
5
4 use sp_std::prelude::*;6use sp_std::prelude::*;
5 use frame_system::RawOrigin;7use frame_system::RawOrigin;
6 // use frame_support::{ensure, traits::OnFinalize};
7 use frame_benchmarking::{benchmarks, account, whitelisted_caller}; // , TrackedStorageKey, 8use frame_benchmarking::{benchmarks, account, whitelisted_caller}; // , TrackedStorageKey,
8 use crate::Module as Nft;
99
10 const SEED: u32 = 1;10const SEED: u32 = 1;
1111/*
12 fn default_nft_data() -> CreateItemData {12fn default_nft_data() -> CreateItemData {
13 CreateItemData::NFT(CreateNftData { const_data: vec![1, 2, 3], variable_data: vec![3, 2, 1] })13 CreateItemData::NFT(CreateNftData { const_data: vec![1, 2, 3], variable_data: vec![3, 2, 1] })
14 }14}
15 15
16 fn default_fungible_data () -> CreateItemData {16fn default_fungible_data () -> CreateItemData {
17 CreateItemData::Fungible(CreateFungibleData { })17 CreateItemData::Fungible(CreateFungibleData { })
18 }18}
19 19
20 fn default_re_fungible_data () -> CreateItemData {20fn default_re_fungible_data () -> CreateItemData {
21 CreateItemData::ReFungible(CreateReFungibleData { const_data: vec![1, 2, 3], variable_data: vec![3, 2, 1] })21 CreateItemData::ReFungible(CreateReFungibleData { const_data: vec![1, 2, 3], variable_data: vec![3, 2, 1] })
22 }22}
2323*/
2424
25 benchmarks! {25benchmarks! {
26
27 _ {}
2826
29 create_collection {27 create_collection {
30 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();28 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
31 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();29 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
32 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();30 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
33 let mode: CollectionMode = CollectionMode::NFT;31 let mode: CollectionMode = CollectionMode::NFT;
34 let caller: T::AccountId = account("caller", 0, SEED);32 let caller: T::AccountId = account("caller", 0, SEED);
35 }: create_collection(RawOrigin::Signed(caller.clone()), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode)33 }: _(RawOrigin::Signed(caller.clone()), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode)
36 verify {34/*
37 assert_eq!(Nft::<T>::collection(2).owner, caller);35 verify {
38 }36 assert_eq!(Nft::<T>::collection_id(2).owner, caller);
3937 }
40 destroy_collection {38 destroy_collection {
41 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();39 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
42 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();40 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
43 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();41 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
44 let mode: CollectionMode = CollectionMode::NFT;42 let mode: CollectionMode = CollectionMode::NFT;
45 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());43 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
46 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;44 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
47 }: destroy_collection(RawOrigin::Signed(caller.clone()), 2)45 }: _(RawOrigin::Signed(caller.clone()), 2)
4846
49 add_to_white_list {47 add_to_white_list {
50 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();48 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
51 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();49 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
52 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();50 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
53 let mode: CollectionMode = CollectionMode::NFT;51 let mode: CollectionMode = CollectionMode::NFT;
54 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());52 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
55 let whitelist_account: T::AccountId = account("admin", 0, SEED);53 let whitelist_account: T::AccountId = account("admin", 0, SEED);
56 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;54 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
57 }: add_to_white_list(RawOrigin::Signed(caller.clone()), 2, whitelist_account)55 }: add_to_white_list(RawOrigin::Signed(caller.clone()), 2, whitelist_account)
5856
59 remove_from_white_list {57 remove_from_white_list {
60 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();58 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
61 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();59 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
62 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();60 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
63 let mode: CollectionMode = CollectionMode::NFT;61 let mode: CollectionMode = CollectionMode::NFT;
64 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());62 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
65 let whitelist_account: T::AccountId = account("admin", 0, SEED);63 let whitelist_account: T::AccountId = account("admin", 0, SEED);
66 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;64 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
67 Nft::<T>::add_to_white_list(RawOrigin::Signed(caller.clone()).into(), 2, whitelist_account.clone())?;65 Nft::<T>::add_to_white_list(RawOrigin::Signed(caller.clone()).into(), 2, whitelist_account.clone())?;
68 }: remove_from_white_list(RawOrigin::Signed(caller.clone()), 2, whitelist_account)66 }: remove_from_white_list(RawOrigin::Signed(caller.clone()), 2, whitelist_account)
6967
70 set_public_access_mode {68 set_public_access_mode {
71 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();69 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
72 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();70 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
73 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();71 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
74 let mode: CollectionMode = CollectionMode::NFT;72 let mode: CollectionMode = CollectionMode::NFT;
75 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());73 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
76 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;74 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
77 }: set_public_access_mode(RawOrigin::Signed(caller.clone()), 2, AccessMode::WhiteList)75 }: set_public_access_mode(RawOrigin::Signed(caller.clone()), 2, AccessMode::WhiteList)
7876
79 set_mint_permission {77 set_mint_permission {
80 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();78 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
81 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();79 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
82 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();80 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
83 let mode: CollectionMode = CollectionMode::NFT;81 let mode: CollectionMode = CollectionMode::NFT;
84 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());82 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
85 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;83 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
86 }: set_mint_permission(RawOrigin::Signed(caller.clone()), 2, true)84 }: set_mint_permission(RawOrigin::Signed(caller.clone()), 2, true)
8785
88 change_collection_owner {86 change_collection_owner {
89 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();87 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
90 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();88 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
91 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();89 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
92 let mode: CollectionMode = CollectionMode::NFT;90 let mode: CollectionMode = CollectionMode::NFT;
93 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());91 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
94 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;92 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
95 let new_owner: T::AccountId = account("admin", 0, SEED);93 let new_owner: T::AccountId = account("admin", 0, SEED);
96 }: change_collection_owner(RawOrigin::Signed(caller.clone()), 2, new_owner)94 }: change_collection_owner(RawOrigin::Signed(caller.clone()), 2, new_owner)
9795
98 add_collection_admin {96 add_collection_admin {
99 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();97 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
100 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();98 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
101 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();99 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
102 let mode: CollectionMode = CollectionMode::NFT;100 let mode: CollectionMode = CollectionMode::NFT;
103 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());101 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
104 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;102 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
105 let new_admin: T::AccountId = account("admin", 0, SEED);103 let new_admin: T::AccountId = account("admin", 0, SEED);
106 }: add_collection_admin(RawOrigin::Signed(caller.clone()), 2, new_admin)104 }: add_collection_admin(RawOrigin::Signed(caller.clone()), 2, new_admin)
107105
108 remove_collection_admin {106 remove_collection_admin {
109 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();107 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
110 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();108 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
111 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();109 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
112 let mode: CollectionMode = CollectionMode::NFT;110 let mode: CollectionMode = CollectionMode::NFT;
113 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());111 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
114 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;112 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
115 let new_admin: T::AccountId = account("admin", 0, SEED);113 let new_admin: T::AccountId = account("admin", 0, SEED);
116 Nft::<T>::add_collection_admin(RawOrigin::Signed(caller.clone()).into(), 2, new_admin.clone())?;114 Nft::<T>::add_collection_admin(RawOrigin::Signed(caller.clone()).into(), 2, new_admin.clone())?;
117 }: remove_collection_admin(RawOrigin::Signed(caller.clone()), 2, new_admin)115 }: remove_collection_admin(RawOrigin::Signed(caller.clone()), 2, new_admin)
118116
119 set_collection_sponsor {117 set_collection_sponsor {
120 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();118 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
121 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();119 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
122 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();120 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
123 let mode: CollectionMode = CollectionMode::NFT;121 let mode: CollectionMode = CollectionMode::NFT;
124 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());122 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
125 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;123 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
126 }: set_collection_sponsor(RawOrigin::Signed(caller.clone()), 2, caller.clone())124 }: set_collection_sponsor(RawOrigin::Signed(caller.clone()), 2, caller.clone())
127125
128 confirm_sponsorship {126 confirm_sponsorship {
129 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();127 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
130 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();128 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
131 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();129 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
132 let mode: CollectionMode = CollectionMode::NFT;130 let mode: CollectionMode = CollectionMode::NFT;
133 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());131 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
134 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;132 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
135 Nft::<T>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone())?;133 Nft::<T>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone())?;
136 }: confirm_sponsorship(RawOrigin::Signed(caller.clone()), 2)134 }: confirm_sponsorship(RawOrigin::Signed(caller.clone()), 2)
137135
138 remove_collection_sponsor {136 remove_collection_sponsor {
139 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();137 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
140 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();138 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
141 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();139 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
142 let mode: CollectionMode = CollectionMode::NFT;140 let mode: CollectionMode = CollectionMode::NFT;
143 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());141 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
144 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;142 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
145 Nft::<T>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone())?;143 Nft::<T>::set_collection_sponsor(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone())?;
146 Nft::<T>::confirm_sponsorship(RawOrigin::Signed(caller.clone()).into(), 2)?;144 Nft::<T>::confirm_sponsorship(RawOrigin::Signed(caller.clone()).into(), 2)?;
147 }: remove_collection_sponsor(RawOrigin::Signed(caller.clone()), 2)145 }: remove_collection_sponsor(RawOrigin::Signed(caller.clone()), 2)
148146
149 // nft item147 // nft item
150 create_item_nft {148 create_item_nft {
151 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();149 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
152 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();150 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
153 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();151 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
154 let mode: CollectionMode = CollectionMode::NFT;152 let mode: CollectionMode = CollectionMode::NFT;
155 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());153 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
156 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;154 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
157 let data = default_nft_data();155 let data = default_nft_data();
158 156
159 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)157 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)
160158
161 #[extra]159 #[extra]
162 create_item_nft_large {160 create_item_nft_large {
163 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();161 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
164 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();162 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
165 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();163 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
166 let mode: CollectionMode = CollectionMode::NFT;164 let mode: CollectionMode = CollectionMode::NFT;
167 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());165 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
168 let mut nft_data = CreateNftData {166 let mut nft_data = CreateNftData {
169 const_data: vec![],167 const_data: vec![],
170 variable_data: vec![]168 variable_data: vec![]
171 };169 };
172 for i in 0..1998 {170 for i in 0..1998 {
173 nft_data.const_data.push(10);171 nft_data.const_data.push(10);
174 nft_data.variable_data.push(10);172 nft_data.variable_data.push(10);
175 }173 }
176 let data = CreateItemData::NFT(nft_data);174 let data = CreateItemData::NFT(nft_data);
177 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;175 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
178176
179 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)177 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)
180178
181 // fungible item179 // fungible item
182 create_item_fungible {180 create_item_fungible {
183 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();181 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
184 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();182 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
185 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();183 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
186 let mode: CollectionMode = CollectionMode::Fungible(3);184 let mode: CollectionMode = CollectionMode::Fungible(3);
187 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());185 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
188 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;186 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
189 let data = default_fungible_data();187 let data = default_fungible_data();
190188
191 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)189 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)
192190
193 // refungible item191 // refungible item
194 create_item_refungible {192 create_item_refungible {
195 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();193 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
196 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();194 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
197 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();195 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
198 let mode: CollectionMode = CollectionMode::ReFungible(3);196 let mode: CollectionMode = CollectionMode::ReFungible(3);
199 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());197 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
200 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;198 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
201 let data = default_re_fungible_data();199 let data = default_re_fungible_data();
202200
203 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)201 }: create_item(RawOrigin::Signed(caller.clone()), 2, caller.clone(), data)
204202
205 burn_item {203 burn_item {
206 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();204 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
207 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();205 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
208 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();206 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
209 let mode: CollectionMode = CollectionMode::NFT;207 let mode: CollectionMode = CollectionMode::NFT;
210 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());208 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
211 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;209 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
212 let data = default_nft_data();210 let data = default_nft_data();
213 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;211 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
214212
215 }: burn_item(RawOrigin::Signed(caller.clone()), 2, 1)213 }: burn_item(RawOrigin::Signed(caller.clone()), 2, 1)
216214
217 transfer_nft {215 transfer_nft {
218 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();216 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
219 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();217 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
220 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();218 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
221 let mode: CollectionMode = CollectionMode::NFT;219 let mode: CollectionMode = CollectionMode::NFT;
222 let recipient: T::AccountId = account("recipient", 0, SEED);220 let recipient: T::AccountId = account("recipient", 0, SEED);
223 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());221 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
224 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;222 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
225 let data = default_nft_data();223 let data = default_nft_data();
226 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;224 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
227225
228 }: transfer(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1, 1)226 }: transfer(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1, 1)
229 227
230 transfer_fungible {228 transfer_fungible {
231 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();229 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
232 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();230 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
233 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();231 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
234 let mode: CollectionMode = CollectionMode::Fungible(3);232 let mode: CollectionMode = CollectionMode::Fungible(3);
235 let recipient: T::AccountId = account("recipient", 0, SEED);233 let recipient: T::AccountId = account("recipient", 0, SEED);
236 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());234 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
237 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;235 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
238 let data = default_fungible_data();236 let data = default_fungible_data();
239 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;237 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
240238
241 }: transfer(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1, 1)239 }: transfer(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1, 1)
242240
243 transfer_refungible {241 transfer_refungible {
244 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();242 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
245 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();243 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
246 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();244 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
247 let mode: CollectionMode = CollectionMode::ReFungible(3);245 let mode: CollectionMode = CollectionMode::ReFungible(3);
248 let recipient: T::AccountId = account("recipient", 0, SEED);246 let recipient: T::AccountId = account("recipient", 0, SEED);
249 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());247 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
250 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;248 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
251 let data = default_re_fungible_data();249 let data = default_re_fungible_data();
252 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;250 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
253251
254 }: transfer(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1, 1)252 }: transfer(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1, 1)
255253
256 approve {254 approve {
257 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();255 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
258 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();256 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
259 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();257 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
260 let mode: CollectionMode = CollectionMode::ReFungible(3);258 let mode: CollectionMode = CollectionMode::ReFungible(3);
261 let recipient: T::AccountId = account("recipient", 0, SEED);259 let recipient: T::AccountId = account("recipient", 0, SEED);
262 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());260 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
263 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;261 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
264 let data = default_re_fungible_data();262 let data = default_re_fungible_data();
265 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;263 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
266264
267 }: approve(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1)265 }: approve(RawOrigin::Signed(caller.clone()), recipient.clone(), 2, 1)
268266
269 // Nft267 // Nft
270 transfer_from_nft {268 transfer_from_nft {
271 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();269 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
272 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();270 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
273 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();271 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
274 let mode: CollectionMode = CollectionMode::NFT;272 let mode: CollectionMode = CollectionMode::NFT;
275 let recipient: T::AccountId = account("recipient", 0, SEED);273 let recipient: T::AccountId = account("recipient", 0, SEED);
276 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());274 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
277 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;275 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
278 let data = default_nft_data();276 let data = default_nft_data();
279 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;277 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
280 Nft::<T>::approve(RawOrigin::Signed(caller.clone()).into(), recipient.clone(), 2, 1)?;278 Nft::<T>::approve(RawOrigin::Signed(caller.clone()).into(), recipient.clone(), 2, 1)?;
281279
282 }: transfer_from(RawOrigin::Signed(caller.clone()), caller.clone(), recipient.clone(), 2, 1, 1)280 }: transfer_from(RawOrigin::Signed(caller.clone()), caller.clone(), recipient.clone(), 2, 1, 1)
283281
284 // Fungible282 // Fungible
285 transfer_from_fungible {283 transfer_from_fungible {
286 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();284 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
287 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();285 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
288 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();286 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
289 let mode: CollectionMode = CollectionMode::Fungible(3);287 let mode: CollectionMode = CollectionMode::Fungible(3);
290 let recipient: T::AccountId = account("recipient", 0, SEED);288 let recipient: T::AccountId = account("recipient", 0, SEED);
291 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());289 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
292 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;290 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
293 let data = default_fungible_data();291 let data = default_fungible_data();
294 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;292 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
295 Nft::<T>::approve(RawOrigin::Signed(caller.clone()).into(), recipient.clone(), 2, 1)?;293 Nft::<T>::approve(RawOrigin::Signed(caller.clone()).into(), recipient.clone(), 2, 1)?;
296294
297 }: transfer_from(RawOrigin::Signed(caller.clone()), caller.clone(), recipient.clone(), 2, 1, 1)295 }: transfer_from(RawOrigin::Signed(caller.clone()), caller.clone(), recipient.clone(), 2, 1, 1)
298296
299 // ReFungible297 // ReFungible
300 transfer_from_refungible {298 transfer_from_refungible {
301 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();299 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
302 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();300 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
303 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();301 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
304 let mode: CollectionMode = CollectionMode::ReFungible(3);302 let mode: CollectionMode = CollectionMode::ReFungible(3);
305 let recipient: T::AccountId = account("recipient", 0, SEED);303 let recipient: T::AccountId = account("recipient", 0, SEED);
306 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());304 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
307 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;305 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
308 let data = default_re_fungible_data();306 let data = default_re_fungible_data();
309 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;307 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
310 Nft::<T>::approve(RawOrigin::Signed(caller.clone()).into(), recipient.clone(), 2, 1)?;308 Nft::<T>::approve(RawOrigin::Signed(caller.clone()).into(), recipient.clone(), 2, 1)?;
311309
312 }: transfer_from(RawOrigin::Signed(caller.clone()), caller.clone(), recipient.clone(), 2, 1, 1)310 }: transfer_from(RawOrigin::Signed(caller.clone()), caller.clone(), recipient.clone(), 2, 1, 1)
313311
314 enable_contract_sponsoring {312 enable_contract_sponsoring {
315 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());313 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
316314
317 }: enable_contract_sponsoring(RawOrigin::Signed(caller.clone()), caller.clone(), true)315 }: enable_contract_sponsoring(RawOrigin::Signed(caller.clone()), caller.clone(), true)
318316
319 set_offchain_schema {317 set_offchain_schema {
320 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();318 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
321 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();319 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
322 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();320 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
323 let mode: CollectionMode = CollectionMode::ReFungible(3);321 let mode: CollectionMode = CollectionMode::ReFungible(3);
324 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());322 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
325 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;323 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
326324
327 }: set_offchain_schema(RawOrigin::Signed(caller.clone()), 2, [1,2,3].to_vec())325 }: set_offchain_schema(RawOrigin::Signed(caller.clone()), 2, [1,2,3].to_vec())
328326
329 set_const_on_chain_schema {327 set_const_on_chain_schema {
330 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();328 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
331 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();329 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
332 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();330 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
333 let mode: CollectionMode = CollectionMode::ReFungible(3);331 let mode: CollectionMode = CollectionMode::ReFungible(3);
334 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());332 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
335 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;333 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
336 }: set_const_on_chain_schema(RawOrigin::Signed(caller.clone()), 2, [1,2,3].to_vec())334 }: set_const_on_chain_schema(RawOrigin::Signed(caller.clone()), 2, [1,2,3].to_vec())
337 335
338 set_variable_on_chain_schema {336 set_variable_on_chain_schema {
339 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();337 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
340 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();338 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
341 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();339 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
342 let mode: CollectionMode = CollectionMode::ReFungible(3);340 let mode: CollectionMode = CollectionMode::ReFungible(3);
343 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());341 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
344 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;342 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
345 }: set_variable_on_chain_schema(RawOrigin::Signed(caller.clone()), 2, [1,2,3].to_vec())343 }: set_variable_on_chain_schema(RawOrigin::Signed(caller.clone()), 2, [1,2,3].to_vec())
346344
347 set_variable_meta_data {345 set_variable_meta_data {
348 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();346 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
349 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();347 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
350 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();348 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
351 let mode: CollectionMode = CollectionMode::NFT;349 let mode: CollectionMode = CollectionMode::NFT;
352 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());350 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
353 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;351 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
354 let data = default_nft_data();352 let data = default_nft_data();
355 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;353 Nft::<T>::create_item(RawOrigin::Signed(caller.clone()).into(), 2, caller.clone(), data)?;
356354
357 }: set_variable_meta_data(RawOrigin::Signed(caller.clone()), 2, 1, [1, 2, 3].to_vec())355 }: set_variable_meta_data(RawOrigin::Signed(caller.clone()), 2, 1, [1, 2, 3].to_vec())
358356
359 set_schema_version {357 set_schema_version {
360 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();358 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
361 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();359 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
362 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();360 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
363 let mode: CollectionMode = CollectionMode::NFT;361 let mode: CollectionMode = CollectionMode::NFT;
364 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());362 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
365 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;363 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
366 }: set_schema_version(RawOrigin::Signed(caller.clone()), 2, SchemaVersion::Unique)364 }: set_schema_version(RawOrigin::Signed(caller.clone()), 2, SchemaVersion::Unique)
367365
368 set_chain_limits {366 set_chain_limits {
369 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());367 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
370 let limits = ChainLimits { 368 let limits = ChainLimits {
371 collection_numbers_limit: 0,369 collection_numbers_limit: 0,
372 account_token_ownership_limit: 0,370 account_token_ownership_limit: 0,
373 collections_admins_limit: 0,371 collections_admins_limit: 0,
374 custom_data_limit: 0,372 custom_data_limit: 0,
375 nft_sponsor_transfer_timeout: 0,373 nft_sponsor_transfer_timeout: 0,
376 fungible_sponsor_transfer_timeout: 0,374 fungible_sponsor_transfer_timeout: 0,
377 refungible_sponsor_transfer_timeout: 0375 refungible_sponsor_transfer_timeout: 0
378 };376 };
379 }: set_chain_limits(RawOrigin::Signed(caller.clone()), limits)377 }: set_chain_limits(RawOrigin::Signed(caller.clone()), limits)
380378
381 set_contract_sponsoring_rate_limit {379 set_contract_sponsoring_rate_limit {
382 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();380 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
383 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();381 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
384 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();382 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
385 let mode: CollectionMode = CollectionMode::NFT;383 let mode: CollectionMode = CollectionMode::NFT;
386 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());384 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
387 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;385 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
388 let block_number: T::BlockNumber = 0.into(); 386 let block_number: T::BlockNumber = 0.into();
389 }: set_contract_sponsoring_rate_limit(RawOrigin::Signed(caller.clone()), caller.clone(), block_number)387 }: set_contract_sponsoring_rate_limit(RawOrigin::Signed(caller.clone()), caller.clone(), block_number)
390388
391 set_collection_limits{389 set_collection_limits{
392 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();390 let col_name1: Vec<u16> = "Test1".encode_utf16().collect::<Vec<u16>>();
393 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();391 let col_desc1: Vec<u16> = "TestDescription1".encode_utf16().collect::<Vec<u16>>();
394 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();392 let token_prefix1: Vec<u8> = b"token_prefix1".to_vec();
395 let mode: CollectionMode = CollectionMode::NFT;393 let mode: CollectionMode = CollectionMode::NFT;
396 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());394 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
397 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;395 Nft::<T>::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?;
398 396
399 let cl = CollectionLimits {397 let cl = CollectionLimits {
400 account_token_ownership_limit: 0,398 account_token_ownership_limit: 0,
401 sponsored_data_size: 0,399 sponsored_data_size: 0,
402 token_limit: 0,400 token_limit: 0,
403 sponsor_transfer_timeout: 0401 sponsor_transfer_timeout: 0
404 };402 };
405403
406 }: set_collection_limits(RawOrigin::Signed(caller.clone()), 2, cl)404 }: set_collection_limits(RawOrigin::Signed(caller.clone()), 2, cl)
407405
408 add_to_contract_white_list{406 add_to_contract_white_list{
409 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());407 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
410 }: add_to_contract_white_list(RawOrigin::Signed(caller.clone()), caller.clone(), caller.clone())408 }: add_to_contract_white_list(RawOrigin::Signed(caller.clone()), caller.clone(), caller.clone())
411409
412 remove_from_contract_white_list{410 remove_from_contract_white_list{
413 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());411 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
414 Nft::<T>::add_to_contract_white_list(RawOrigin::Signed(caller.clone()).into(), caller.clone(), caller.clone())?;412 Nft::<T>::add_to_contract_white_list(RawOrigin::Signed(caller.clone()).into(), caller.clone(), caller.clone())?;
415 }: remove_from_contract_white_list(RawOrigin::Signed(caller.clone()), caller.clone(), caller.clone())413 }: remove_from_contract_white_list(RawOrigin::Signed(caller.clone()), caller.clone(), caller.clone())
416414
417 toggle_contract_white_list{415 toggle_contract_white_list{
418 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());416 let caller: T::AccountId = T::AccountId::from(whitelisted_caller());
419 }: toggle_contract_white_list(RawOrigin::Signed(caller.clone()), caller.clone(), true)417 }: toggle_contract_white_list(RawOrigin::Signed(caller.clone()), caller.clone(), true)
418*/
420}419}
420
modifiedruntime/Cargo.tomldiffbeforeafterboth
2626
27# local dependencies27# local dependencies
28pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }28pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }
29pallet-inflation = { path = '../pallets/inflation', default-features = false, version = '3.0.0' }
2930
30# Substrate dependencies31# Substrate dependencies
31frame-benchmarking = { default-features = false, optional = true, version = '3.0.0' }32frame-benchmarking = { default-features = false, optional = true, version = '3.0.0' }
72 'pallet-balances/runtime-benchmarks',73 'pallet-balances/runtime-benchmarks',
73 'pallet-timestamp/runtime-benchmarks',74 'pallet-timestamp/runtime-benchmarks',
74 'pallet-nft/runtime-benchmarks',75 'pallet-nft/runtime-benchmarks',
76 'pallet-inflation/runtime-benchmarks',
75 'sp-runtime/runtime-benchmarks',77 'sp-runtime/runtime-benchmarks',
76]78]
77std = [79std = [
95 'pallet-treasury/std',97 'pallet-treasury/std',
96 'pallet-vesting/std',98 'pallet-vesting/std',
9799
100 'pallet-inflation/std',
98 'pallet-nft/std',101 'pallet-nft/std',
99 'sp-api/std',102 'sp-api/std',
100 'sp-block-builder/std',103 'sp-block-builder/std',
modifiedruntime/src/lib.rsdiffbeforeafterboth
525 pub const CollectionCreationPrice: Balance = 100 * UNIQUE;525 pub const CollectionCreationPrice: Balance = 100 * UNIQUE;
526}526}
527527
528/// Used for the module nft in `./nft.rs`528/// Used for the pallet nft in `./nft.rs`
529impl pallet_nft::Config for Runtime {529impl pallet_nft::Config for Runtime {
530 type Event = Event;530 type Event = Event;
531 type WeightInfo = nft_weights::WeightInfo;531 type WeightInfo = nft_weights::WeightInfo;
534 type TreasuryAccountId = TreasuryAccountId;534 type TreasuryAccountId = TreasuryAccountId;
535}535}
536
537/// Reimport pallet inflation
538extern crate pallet_inflation;
539pub use pallet_inflation::*;
540
541parameter_types! {
542 pub const InflationBlockInterval: BlockNumber = 100; // every time per how many blocks inflation is applied
543}
544
545/// Used for the pallet inflation
546impl pallet_inflation::Config for Runtime {
547 type Currency = Balances;
548 type TreasuryAccountId = TreasuryAccountId;
549 type InflationBlockInterval = InflationBlockInterval;
550}
536551
537construct_runtime!(552construct_runtime!(
538 pub enum Runtime where553 pub enum Runtime where
549 Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},564 Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},
550 TransactionPayment: pallet_transaction_payment::{Module, Storage},565 TransactionPayment: pallet_transaction_payment::{Module, Storage},
551 Sudo: pallet_sudo::{Module, Call, Config<T>, Storage, Event<T>},566 Sudo: pallet_sudo::{Module, Call, Config<T>, Storage, Event<T>},
567 Inflation: pallet_inflation::{Module, Call, Storage},
552 Nft: pallet_nft::{Module, Call, Config<T>, Storage, Event<T>},568 Nft: pallet_nft::{Module, Call, Config<T>, Storage, Event<T>},
553 Treasury: pallet_treasury::{Module, Call, Storage, Config, Event<T>},569 Treasury: pallet_treasury::{Module, Call, Storage, Config, Event<T>},
554 Vesting: pallet_vesting::{Module, Call, Config<T>, Storage, Event<T>},570 Vesting: pallet_vesting::{Module, Call, Config<T>, Storage, Event<T>},
759 let params = (&config, &whitelist);775 let params = (&config, &whitelist);
760776
761 add_benchmark!(params, batches, pallet_nft, Nft);777 add_benchmark!(params, batches, pallet_nft, Nft);
778 add_benchmark!(params, batches, pallet_inflation, Inflation);
762779
763 if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }780 if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }
764 Ok(batches)781 Ok(batches)
modifiedtests/package.jsondiffbeforeafterboth
50 "testSetContractSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setContractSponsoringRateLimit.test.ts",50 "testSetContractSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setContractSponsoringRateLimit.test.ts",
51 "testSetOffchainSchema": "mocha --timeout 9999999 -r ts-node/register ./**/setOffchainSchema.test.ts",51 "testSetOffchainSchema": "mocha --timeout 9999999 -r ts-node/register ./**/setOffchainSchema.test.ts",
52 "testOverflow": "mocha --timeout 9999999 -r ts-node/register ./**/overflow.test.ts",52 "testOverflow": "mocha --timeout 9999999 -r ts-node/register ./**/overflow.test.ts",
53 "testSetVariableMetadataSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetadataSponsoringRateLimit.test.ts"53 "testSetVariableMetadataSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetadataSponsoringRateLimit.test.ts",
54 "testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.test.ts"
54 },55 },
55 "author": "",56 "author": "",
56 "license": "SEE LICENSE IN ../LICENSE",57 "license": "SEE LICENSE IN ../LICENSE",
modifiedtests/src/creditFeesToTreasury.test.tsdiffbeforeafterboth
18} from './util/helpers';18} from './util/helpers';
1919
20import { default as waitNewBlocks } from './substrate/wait-new-blocks';20import { default as waitNewBlocks } from './substrate/wait-new-blocks';
21import { ApiPromise } from '@polkadot/api';
2122
22chai.use(chaiAsPromised);23chai.use(chaiAsPromised);
23const expect = chai.expect;24const expect = chai.expect;
30let alice: IKeyringPair;31let alice: IKeyringPair;
31let bob: IKeyringPair;32let bob: IKeyringPair;
33
34// Skip the inflation block pauses if the block is close to inflation block
35// until the inflation happens
36function skipInflationBlock(api: ApiPromise): Promise<void> {
37 const promise = new Promise<void>(async (resolve, reject) => {
38 const blockInterval = parseInt((await api.consts.inflation.inflationBlockInterval).toString());
39 const unsubscribe = await api.rpc.chain.subscribeNewHeads(head => {
40 const currentBlock = parseInt(head.number.toString());
41 if (currentBlock % blockInterval < blockInterval - 10) {
42 unsubscribe();
43 resolve();
44 } else {
45 console.log(`Skipping inflation block, current block: ${currentBlock}`);
46 }
47 });
48 });
49
50 return promise;
51}
3252
33describe('integration test: Fees must be credited to Treasury:', () => {53describe('integration test: Fees must be credited to Treasury:', () => {
34 before(async () => {54 before(async () => {
4060
41 it('Total issuance does not change', async () => {61 it('Total issuance does not change', async () => {
42 await usingApi(async (api) => {62 await usingApi(async (api) => {
63 await skipInflationBlock(api);
43 await waitNewBlocks(api, 1);64 await waitNewBlocks(api, 1);
4465
45 const totalBefore = new BigNumber((await api.query.balances.totalIssuance()).toString());66 const totalBefore = new BigNumber((await api.query.balances.totalIssuance()).toString());
5980
60 it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {81 it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {
61 await usingApi(async (api) => {82 await usingApi(async (api) => {
83 await skipInflationBlock(api);
62 await waitNewBlocks(api, 1);84 await waitNewBlocks(api, 1);
6385
64 const alicePrivateKey = privateKey('//Alice');86 const alicePrivateKey = privateKey('//Alice');
81103
82 it('Treasury balance increased by failed tx fee', async () => {104 it('Treasury balance increased by failed tx fee', async () => {
83 await usingApi(async (api) => {105 await usingApi(async (api) => {
106 await skipInflationBlock(api);
84 await waitNewBlocks(api, 1);107 await waitNewBlocks(api, 1);
85108
86 const bobPrivateKey = privateKey('//Bob');109 const bobPrivateKey = privateKey('//Bob');
101124
102 it('NFT Transactions also send fees to Treasury', async () => {125 it('NFT Transactions also send fees to Treasury', async () => {
103 await usingApi(async (api) => {126 await usingApi(async (api) => {
127 await skipInflationBlock(api);
104 await waitNewBlocks(api, 1);128 await waitNewBlocks(api, 1);
105129
106 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());130 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());
119143
120 it('Fees are sane', async () => {144 it('Fees are sane', async () => {
121 await usingApi(async (api) => {145 await usingApi(async (api) => {
146 await skipInflationBlock(api);
122 await waitNewBlocks(api, 1);147 await waitNewBlocks(api, 1);
123148
124 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());149 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());
135160
136 it('NFT Transfer fee is close to 0.1 Unique', async () => {161 it('NFT Transfer fee is close to 0.1 Unique', async () => {
137 await usingApi(async (api) => {162 await usingApi(async (api) => {
163 await skipInflationBlock(api);
138 await waitNewBlocks(api, 1);164 await waitNewBlocks(api, 1);
139165
140 const collectionId = await createCollectionExpectSuccess();166 const collectionId = await createCollectionExpectSuccess();
147173
148 // console.log(fee.toString());174 // console.log(fee.toString());
149 const expectedTransferFee = 0.1;175 const expectedTransferFee = 0.1;
150 const tolerance = 0.00001;176 const tolerance = 0.001;
151 expect(fee.dividedBy(1e15).minus(expectedTransferFee).abs().toNumber()).to.be.lessThan(tolerance);177 expect(fee.dividedBy(1e15).minus(expectedTransferFee).abs().toNumber()).to.be.lessThan(tolerance);
152 });178 });
153 });179 });
addedtests/src/inflation.test.tsdiffbeforeafterboth

no changes