difftreelog
Code style update
in: master
9 files changed
node/src/cli.rsdiffbeforeafterboth--- a/node/src/cli.rs
+++ b/node/src/cli.rs
@@ -3,9 +3,9 @@
#[derive(Debug, StructOpt)]
pub struct Cli {
- #[structopt(subcommand)]
- pub subcommand: Option<Subcommand>,
+ #[structopt(subcommand)]
+ pub subcommand: Option<Subcommand>,
- #[structopt(flatten)]
- pub run: RunCmd,
+ #[structopt(flatten)]
+ pub run: RunCmd,
}
node/src/command.rsdiffbeforeafterboth--- a/node/src/command.rs
+++ b/node/src/command.rs
@@ -21,61 +21,57 @@
use sc_cli::SubstrateCli;
impl SubstrateCli for Cli {
- fn impl_name() -> &'static str {
- "Substrate Node"
- }
+ fn impl_name() -> &'static str {
+ "Substrate Node"
+ }
- fn impl_version() -> &'static str {
- env!("SUBSTRATE_CLI_IMPL_VERSION")
- }
+ fn impl_version() -> &'static str {
+ env!("SUBSTRATE_CLI_IMPL_VERSION")
+ }
- fn description() -> &'static str {
- env!("CARGO_PKG_DESCRIPTION")
- }
+ fn description() -> &'static str {
+ env!("CARGO_PKG_DESCRIPTION")
+ }
- fn author() -> &'static str {
- env!("CARGO_PKG_AUTHORS")
- }
+ fn author() -> &'static str {
+ env!("CARGO_PKG_AUTHORS")
+ }
- fn support_url() -> &'static str {
- "support.anonymous.an"
- }
+ fn support_url() -> &'static str {
+ "support.anonymous.an"
+ }
- fn copyright_start_year() -> i32 {
- 2017
- }
+ fn copyright_start_year() -> i32 {
+ 2017
+ }
- fn executable_name() -> &'static str {
- env!("CARGO_PKG_NAME")
- }
+ fn executable_name() -> &'static str {
+ env!("CARGO_PKG_NAME")
+ }
- fn load_spec(&self, id: &str) -> Result<Box<dyn sc_service::ChainSpec>, String> {
- Ok(match id {
- "dev" => Box::new(chain_spec::development_config()),
- "" | "local" => Box::new(chain_spec::local_testnet_config()),
- path => Box::new(chain_spec::ChainSpec::from_json_file(
- std::path::PathBuf::from(path),
- )?),
- })
- }
+ fn load_spec(&self, id: &str) -> Result<Box<dyn sc_service::ChainSpec>, String> {
+ Ok(match id {
+ "dev" => Box::new(chain_spec::development_config()),
+ "" | "local" => Box::new(chain_spec::local_testnet_config()),
+ path => Box::new(chain_spec::ChainSpec::from_json_file(
+ std::path::PathBuf::from(path),
+ )?),
+ })
+ }
}
/// Parse and run command line arguments
pub fn run() -> sc_cli::Result<()> {
- let cli = Cli::from_args();
+ let cli = Cli::from_args();
- match &cli.subcommand {
- Some(subcommand) => {
- let runner = cli.create_runner(subcommand)?;
- runner.run_subcommand(subcommand, |config| Ok(new_full_start!(config).0))
- }
- None => {
- let runner = cli.create_runner(&cli.run)?;
- runner.run_node(
- service::new_light,
- service::new_full,
- nft_runtime::VERSION
- )
- }
- }
-}
\ No newline at end of file
+ match &cli.subcommand {
+ Some(subcommand) => {
+ let runner = cli.create_runner(subcommand)?;
+ runner.run_subcommand(subcommand, |config| Ok(new_full_start!(config).0))
+ }
+ None => {
+ let runner = cli.create_runner(&cli.run)?;
+ runner.run_node(service::new_light, service::new_full, nft_runtime::VERSION)
+ }
+ }
+}
node/src/main.rsdiffbeforeafterboth--- a/node/src/main.rs
+++ b/node/src/main.rs
@@ -8,5 +8,5 @@
mod command;
fn main() -> sc_cli::Result<()> {
- command::run()
+ command::run()
}
node/src/service.rsdiffbeforeafterboth--- a/node/src/service.rs
+++ b/node/src/service.rs
@@ -188,7 +188,7 @@
prometheus_registry: service.prometheus_registry(),
shared_voter_state: SharedVoterState::empty(),
};
-
+
// the GRANDPA voter task is considered infallible, i.e.
// if it fails we take down the service with it.
service.spawn_essential_task_handle().spawn_blocking(
pallets/nft/src/lib.rsdiffbeforeafterboth56use codec::{Decode, Encode};5use codec::{Decode, Encode};7pub use frame_support::{6pub use frame_support::{8 decl_event, decl_module, decl_storage,7 construct_runtime, decl_event, decl_module, decl_storage,9 construct_runtime, parameter_types,8 dispatch::DispatchResult,9 ensure, parameter_types,10 traits::{Currency, Get, ExistenceRequirement, KeyOwnerProofSystem, OnUnbalanced, Randomness, WithdrawReason, Imbalance},10 traits::{11 Currency, ExistenceRequirement, Get, Imbalance, KeyOwnerProofSystem, OnUnbalanced,12 Randomness, WithdrawReason,13 },11 weights::{14 weights::{12 DispatchInfo, PostDispatchInfo, constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},15 constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},13 IdentityFee, Weight, WeightToFeePolynomial, GetDispatchInfo, Pays,16 DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,17 WeightToFeePolynomial,14 },18 },15 StorageValue,16 dispatch::DispatchResult, 17 IsSubType,19 IsSubType, StorageValue,18 ensure19};20};202121use frame_system::{self as system, ensure_signed};22use frame_system::{self as system, ensure_signed};22use sp_runtime::sp_std::prelude::Vec;23use sp_runtime::sp_std::prelude::Vec;23use sp_std::prelude::*;24use sp_runtime::{24use sp_runtime::{25 FixedU128, FixedPointOperand, 26 transaction_validity::{25 traits::{27 TransactionPriority, ValidTransaction, InvalidTransaction, TransactionValidityError, TransactionValidity26 DispatchInfoOf, Dispatchable, PostDispatchInfoOf, SaturatedConversion, Saturating,27 SignedExtension, Zero,28 },28 },29 traits::{29 transaction_validity::{30 Saturating, Dispatchable, DispatchInfoOf, PostDispatchInfoOf, SignedExtension, Zero, SaturatedConversion,30 InvalidTransaction, TransactionPriority, TransactionValidity, TransactionValidityError,31 ValidTransaction,31 },32 },33 FixedPointOperand, FixedU128,32};34};35use sp_std::prelude::*;333634#[cfg(test)]37#[cfg(test)]35mod mock;38mod mock;385 let target_collection = <Collection<T>>::get(collection_id);394 let target_collection = <Collection<T>>::get(collection_id);386 Self::check_owner_or_admin_permissions(collection_id, sender.clone())?;395 Self::check_owner_or_admin_permissions(collection_id, sender.clone())?;387396388 // TODO: implement other modes389 match target_collection.mode 397 match target_collection.mode390 {398 {391 CollectionMode::NFT(_) => {399 CollectionMode::NFT(_) => {743 let target_collection = <Collection<T>>::get(collection_id);781 let target_collection = <Collection<T>>::get(collection_id);744782745 match target_collection.mode {783 match target_collection.mode {746 CollectionMode::NFT(_) => <NftItemList<T>>::get(collection_id, item_id).owner == subject,784 CollectionMode::NFT(_) => {785 <NftItemList<T>>::get(collection_id, item_id).owner == subject786 }747 CollectionMode::Fungible(_) => <FungibleItemList<T>>::get(collection_id, item_id).owner == subject,787 CollectionMode::Fungible(_) => {788 <FungibleItemList<T>>::get(collection_id, item_id).owner == subject789 }748 CollectionMode::ReFungible(_, _) => <ReFungibleItemList<T>>::get(collection_id, item_id).owner.iter().any(|i| i.owner == subject),790 CollectionMode::ReFungible(_, _) => {791 <ReFungibleItemList<T>>::get(collection_id, item_id)792 .owner793 .iter()794 .any(|i| i.owner == subject)795 }749 CollectionMode::Invalid => false796 CollectionMode::Invalid => false,750 }797 }751 }798 }752799808 let item = FungibleItemType {861 let item = FungibleItemType {809 collection: collection_id,862 collection: collection_id,810 owner: new_owner.clone(),863 owner: new_owner.clone(),811 value: val64864 value: val64,812 };865 };813866814 Self::add_fungible_item(item)?;867 Self::add_fungible_item(item)?;873 // new owner do not have account951 // new owner do not have account874 new_full_item.owner.push(Ownership { owner: new_owner.clone(), fraction: val64});952 new_full_item.owner.push(Ownership {953 owner: new_owner.clone(),954 fraction: val64,955 });875 Self::add_token_index(collection_id, item_id, new_owner.clone())?;956 Self::add_token_index(collection_id, item_id, new_owner.clone())?;876 }957 }967pub type Multiplier = FixedU128;1058pub type Multiplier = FixedU128;9681059969type BalanceOf<T> =1060type BalanceOf<T> = <<T as transaction_payment::Trait>::Currency as Currency<970 <<T as transaction_payment::Trait>::Currency as Currency<<T as system::Trait>::AccountId>>::Balance;1061 <T as system::Trait>::AccountId,1062>>::Balance;971type NegativeImbalanceOf<T> = <<T as transaction_payment::Trait>::Currency as Currency<1063type NegativeImbalanceOf<T> = <<T as transaction_payment::Trait>::Currency as Currency<972 <T as system::Trait>::AccountId,>>::NegativeImbalance;1064 <T as system::Trait>::AccountId,977/// in the queue.1068/// in the queue.978#[derive(Encode, Decode, Clone, Eq, PartialEq)]1069#[derive(Encode, Decode, Clone, Eq, PartialEq)]979pub struct ChargeTransactionPayment<T: transaction_payment::Trait + Send + Sync>(#[codec(compact)] BalanceOf<T>);1070pub struct ChargeTransactionPayment<T: transaction_payment::Trait + Send + Sync>(1071 #[codec(compact)] BalanceOf<T>,1072);9801073981impl<T:Trait + transaction_payment::Trait + Send + Sync> sp_std::fmt::Debug for ChargeTransactionPayment<T> {1074impl<T: Trait + transaction_payment::Trait + Send + Sync> sp_std::fmt::Debug1021 // All other transactions have traditional fees so far1119 // All other transactions have traditional fees so far1022 let fee = match call.is_sub_type() {1120 let fee = match call.is_sub_type() {1023 Some(Call::create_collection(..)) => <BalanceOf<T>>::from(1_000_000_000),1121 Some(Call::create_collection(..)) => <BalanceOf<T>>::from(1_000_000_000),1024 _ => Self::traditional_fee(len, info, tip)1122 _ => Self::traditional_fee(len, info, tip), // Flat fee model, use only for testing purposes10251026 // Flat fee model, use only for testing purposes1027 // _ => <BalanceOf<T>>::from(100)1123 // _ => <BalanceOf<T>>::from(100)1032 let sponsor: T::AccountId = match call.is_sub_type() {1128 let sponsor: T::AccountId = match call.is_sub_type() {1033 Some(Call::create_item(collection_id, _properties, _owner)) => {1129 Some(Call::create_item(collection_id, _properties, _owner)) => {1034 <Collection<T>>::get(collection_id).sponsor1130 <Collection<T>>::get(collection_id).sponsor1035 },1131 }1036 Some(Call::transfer(_new_owner, collection_id, _item_id, _value)) => {1132 Some(Call::transfer(_new_owner, collection_id, _item_id, _value)) => {1037 <Collection<T>>::get(collection_id).sponsor1133 <Collection<T>>::get(collection_id).sponsor1038 },1134 }103911351040 _ => T::AccountId::default()1136 _ => T::AccountId::default(),1041 };1137 };104211381043 let mut who_pays_fee: T::AccountId = sponsor.clone();1139 let mut who_pays_fee: T::AccountId = sponsor.clone();1177 BalanceOf<T>,1178 Self::AccountId,1179 Option<NegativeImbalanceOf<T>>,1180 BalanceOf<T>,1181 );1078 fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { Ok(()) }1182 fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {1183 Ok(())pallets/nft/src/mock.rsdiffbeforeafterboth--- a/pallets/nft/src/mock.rs
+++ b/pallets/nft/src/mock.rs
@@ -1,19 +1,19 @@
// Creating mock runtime here
use crate::{Module, Trait};
+use frame_support::{
+ impl_outer_origin, parameter_types,
+ weights::{
+ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight},
+ Weight,
+ },
+};
use frame_system as system;
use sp_core::H256;
use sp_runtime::{
testing::Header,
traits::{BlakeTwo256, IdentityLookup, Saturating},
Perbill,
-};
-use frame_support::{
- parameter_types, impl_outer_origin,
- weights::{
- constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight},
- Weight,
- },
};
impl_outer_origin! {
@@ -49,9 +49,9 @@
type MaximumBlockWeight = MaximumBlockWeight;
type MaximumBlockLength = MaximumBlockLength;
type AvailableBlockRatio = AvailableBlockRatio;
- type BaseCallFilter = ();
- type DbWeight = RocksDbWeight;
- type BlockExecutionWeight = BlockExecutionWeight;
+ type BaseCallFilter = ();
+ type DbWeight = RocksDbWeight;
+ type BlockExecutionWeight = BlockExecutionWeight;
type ExtrinsicBaseWeight = ExtrinsicBaseWeight;
type MaximumExtrinsicWeight = MaximumExtrinsicWeight;
type Version = ();
pallets/nft/src/tests.rsdiffbeforeafterboth--- a/pallets/nft/src/tests.rs
+++ b/pallets/nft/src/tests.rs
@@ -1,6 +1,6 @@
// Tests to be written here
use crate::mock::*;
-use crate::{CollectionMode, Ownership, ApprovePermissions};
+use crate::{ApprovePermissions, CollectionMode, Ownership};
use frame_support::{assert_noop, assert_ok};
#[test]
@@ -21,9 +21,13 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
-
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));
- assert_eq!(TemplateModule::nft_item_id(1,1).data, [1,2,3].to_vec());
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [1, 2, 3].to_vec(),
+ 1
+ ));
+ assert_eq!(TemplateModule::nft_item_id(1, 1).data, [1, 2, 3].to_vec());
});
}
@@ -45,10 +49,23 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
-
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));
- assert_eq!(TemplateModule::refungible_item_id(1,1).data, [1,2,3].to_vec());
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 1, fraction: 1000 });
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [1, 2, 3].to_vec(),
+ 1
+ ));
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).data,
+ [1, 2, 3].to_vec()
+ );
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[0],
+ Ownership {
+ owner: 1,
+ fraction: 1000
+ }
+ );
});
}
@@ -70,10 +87,15 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [].to_vec(), 1));
- assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 1);
- assert_eq!(TemplateModule::balance_count(1,1), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [].to_vec(),
+ 1
+ ));
+ assert_eq!(TemplateModule::fungible_item_id(1, 1).owner, 1);
+ assert_eq!(TemplateModule::balance_count(1, 1), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
});
}
@@ -96,37 +118,42 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [].to_vec(), 1));
- assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 1);
- assert_eq!(TemplateModule::balance_count(1,1), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [].to_vec(),
+ 1
+ ));
+ assert_eq!(TemplateModule::fungible_item_id(1, 1).owner, 1);
+ assert_eq!(TemplateModule::balance_count(1, 1), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
// change owner scenario
assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1000));
- assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 2);
- assert_eq!(TemplateModule::fungible_item_id(1,1).value, 1000);
- assert_eq!(TemplateModule::balance_count(1,1), 0);
- assert_eq!(TemplateModule::balance_count(1,2), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), []);
- assert_eq!(TemplateModule::address_tokens(1,2), [1]);
+ assert_eq!(TemplateModule::fungible_item_id(1, 1).owner, 2);
+ assert_eq!(TemplateModule::fungible_item_id(1, 1).value, 1000);
+ assert_eq!(TemplateModule::balance_count(1, 1), 0);
+ assert_eq!(TemplateModule::balance_count(1, 2), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), []);
+ assert_eq!(TemplateModule::address_tokens(1, 2), [1]);
// split item scenario
assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 500));
- assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 2);
- assert_eq!(TemplateModule::fungible_item_id(1,2).owner, 3);
- assert_eq!(TemplateModule::balance_count(1,2), 500);
- assert_eq!(TemplateModule::balance_count(1,3), 500);
- assert_eq!(TemplateModule::address_tokens(1,2), [1]);
- assert_eq!(TemplateModule::address_tokens(1,3), [2]);
+ assert_eq!(TemplateModule::fungible_item_id(1, 1).owner, 2);
+ assert_eq!(TemplateModule::fungible_item_id(1, 2).owner, 3);
+ assert_eq!(TemplateModule::balance_count(1, 2), 500);
+ assert_eq!(TemplateModule::balance_count(1, 3), 500);
+ assert_eq!(TemplateModule::address_tokens(1, 2), [1]);
+ assert_eq!(TemplateModule::address_tokens(1, 3), [2]);
// split item and new owner has account scenario
assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 200));
- assert_eq!(TemplateModule::fungible_item_id(1,1).value, 300);
- assert_eq!(TemplateModule::fungible_item_id(1,2).value, 700);
- assert_eq!(TemplateModule::balance_count(1,2), 300);
- assert_eq!(TemplateModule::balance_count(1,3), 700);
- assert_eq!(TemplateModule::address_tokens(1,2), [1]);
- assert_eq!(TemplateModule::address_tokens(1,3), [2]);
+ assert_eq!(TemplateModule::fungible_item_id(1, 1).value, 300);
+ assert_eq!(TemplateModule::fungible_item_id(1, 2).value, 700);
+ assert_eq!(TemplateModule::balance_count(1, 2), 300);
+ assert_eq!(TemplateModule::balance_count(1, 3), 700);
+ assert_eq!(TemplateModule::address_tokens(1, 2), [1]);
+ assert_eq!(TemplateModule::address_tokens(1, 3), [2]);
});
}
@@ -149,37 +176,81 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));
- assert_eq!(TemplateModule::refungible_item_id(1,1).data, [1,2,3].to_vec());
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 1, fraction: 1000 });
- assert_eq!(TemplateModule::balance_count(1,1), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [1, 2, 3].to_vec(),
+ 1
+ ));
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).data,
+ [1, 2, 3].to_vec()
+ );
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[0],
+ Ownership {
+ owner: 1,
+ fraction: 1000
+ }
+ );
+ assert_eq!(TemplateModule::balance_count(1, 1), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
// change owner scenario
assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1000));
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 2, fraction: 1000 });
- assert_eq!(TemplateModule::balance_count(1,1), 0);
- assert_eq!(TemplateModule::balance_count(1,2), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), []);
- assert_eq!(TemplateModule::address_tokens(1,2), [1]);
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[0],
+ Ownership {
+ owner: 2,
+ fraction: 1000
+ }
+ );
+ assert_eq!(TemplateModule::balance_count(1, 1), 0);
+ assert_eq!(TemplateModule::balance_count(1, 2), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), []);
+ assert_eq!(TemplateModule::address_tokens(1, 2), [1]);
// split item scenario
assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 500));
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 2, fraction: 500 });
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[1], Ownership { owner: 3, fraction: 500 });
- assert_eq!(TemplateModule::balance_count(1,2), 500);
- assert_eq!(TemplateModule::balance_count(1,3), 500);
- assert_eq!(TemplateModule::address_tokens(1,2), [1]);
- assert_eq!(TemplateModule::address_tokens(1,3), [1]);
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[0],
+ Ownership {
+ owner: 2,
+ fraction: 500
+ }
+ );
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[1],
+ Ownership {
+ owner: 3,
+ fraction: 500
+ }
+ );
+ assert_eq!(TemplateModule::balance_count(1, 2), 500);
+ assert_eq!(TemplateModule::balance_count(1, 3), 500);
+ assert_eq!(TemplateModule::address_tokens(1, 2), [1]);
+ assert_eq!(TemplateModule::address_tokens(1, 3), [1]);
// split item and new owner has account scenario
assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 200));
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 2, fraction: 300 });
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[1], Ownership { owner: 3, fraction: 700 });
- assert_eq!(TemplateModule::balance_count(1,2), 300);
- assert_eq!(TemplateModule::balance_count(1,3), 700);
- assert_eq!(TemplateModule::address_tokens(1,2), [1]);
- assert_eq!(TemplateModule::address_tokens(1,3), [1]);
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[0],
+ Ownership {
+ owner: 2,
+ fraction: 300
+ }
+ );
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[1],
+ Ownership {
+ owner: 3,
+ fraction: 700
+ }
+ );
+ assert_eq!(TemplateModule::balance_count(1, 2), 300);
+ assert_eq!(TemplateModule::balance_count(1, 3), 700);
+ assert_eq!(TemplateModule::address_tokens(1, 2), [1]);
+ assert_eq!(TemplateModule::address_tokens(1, 3), [1]);
});
}
@@ -201,19 +272,23 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [1, 2, 3].to_vec(),
+ 1
+ ));
+ assert_eq!(TemplateModule::nft_item_id(1, 1).data, [1, 2, 3].to_vec());
+ assert_eq!(TemplateModule::balance_count(1, 1), 1);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));
- assert_eq!(TemplateModule::nft_item_id(1,1).data, [1,2,3].to_vec());
- assert_eq!(TemplateModule::balance_count(1,1), 1);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
-
// default scenario
assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1000));
- assert_eq!(TemplateModule::nft_item_id(1,1).owner, 2);
- assert_eq!(TemplateModule::balance_count(1,1), 0);
- assert_eq!(TemplateModule::balance_count(1,2), 1);
- assert_eq!(TemplateModule::address_tokens(1,1), []);
- assert_eq!(TemplateModule::address_tokens(1,2), [1]);
+ assert_eq!(TemplateModule::nft_item_id(1, 1).owner, 2);
+ assert_eq!(TemplateModule::balance_count(1, 1), 0);
+ assert_eq!(TemplateModule::balance_count(1, 2), 1);
+ assert_eq!(TemplateModule::address_tokens(1, 1), []);
+ assert_eq!(TemplateModule::address_tokens(1, 2), [1]);
});
}
@@ -235,12 +310,16 @@
mode
));
assert_eq!(TemplateModule::collection(1).owner, 1);
-
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));
- assert_eq!(TemplateModule::nft_item_id(1,1).data, [1,2,3].to_vec());
- assert_eq!(TemplateModule::balance_count(1,1), 1);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [1, 2, 3].to_vec(),
+ 1
+ ));
+ assert_eq!(TemplateModule::nft_item_id(1, 1).data, [1, 2, 3].to_vec());
+ assert_eq!(TemplateModule::balance_count(1, 1), 1);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
assert_noop!(
TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1),
@@ -249,13 +328,26 @@
// do approve
assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 1);
assert_ok!(TemplateModule::approve(origin1.clone(), 10, 1, 1));
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 2);
- assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 2, amount: 100000000});
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 2);
+ assert_eq!(
+ TemplateModule::approved(1, (1, 1))[0],
+ ApprovePermissions {
+ approved: 2,
+ amount: 100000000
+ }
+ );
- assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1));
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 0);
+ assert_ok!(TemplateModule::transfer_from(
+ origin2.clone(),
+ 1,
+ 3,
+ 1,
+ 1,
+ 1
+ ));
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 0);
});
}
@@ -278,11 +370,25 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));
- assert_eq!(TemplateModule::refungible_item_id(1,1).data, [1,2,3].to_vec());
- assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 1, fraction: 1000 });
- assert_eq!(TemplateModule::balance_count(1,1), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [1, 2, 3].to_vec(),
+ 1
+ ));
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).data,
+ [1, 2, 3].to_vec()
+ );
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).owner[0],
+ Ownership {
+ owner: 1,
+ fraction: 1000
+ }
+ );
+ assert_eq!(TemplateModule::balance_count(1, 1), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
assert_noop!(
TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1),
@@ -291,19 +397,38 @@
// do approve
assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 1);
assert_ok!(TemplateModule::approve(origin1.clone(), 10, 1, 1));
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 2);
- assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 2, amount: 100000000});
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 2);
+ assert_eq!(
+ TemplateModule::approved(1, (1, 1))[0],
+ ApprovePermissions {
+ approved: 2,
+ amount: 100000000
+ }
+ );
- assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 100));
- assert_eq!(TemplateModule::balance_count(1,1), 900);
- assert_eq!(TemplateModule::balance_count(1,3), 100);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
- assert_eq!(TemplateModule::address_tokens(1,3), [1]);
+ assert_ok!(TemplateModule::transfer_from(
+ origin2.clone(),
+ 1,
+ 3,
+ 1,
+ 1,
+ 100
+ ));
+ assert_eq!(TemplateModule::balance_count(1, 1), 900);
+ assert_eq!(TemplateModule::balance_count(1, 3), 100);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
+ assert_eq!(TemplateModule::address_tokens(1, 3), [1]);
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);
- assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 10, amount: 100000000});
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 1);
+ assert_eq!(
+ TemplateModule::approved(1, (1, 1))[0],
+ ApprovePermissions {
+ approved: 10,
+ amount: 100000000
+ }
+ );
});
}
@@ -326,10 +451,15 @@
));
assert_eq!(TemplateModule::collection(1).owner, 1);
- assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [].to_vec(), 1));
- assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 1);
- assert_eq!(TemplateModule::balance_count(1,1), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
+ assert_ok!(TemplateModule::create_item(
+ origin1.clone(),
+ 1,
+ [].to_vec(),
+ 1
+ ));
+ assert_eq!(TemplateModule::fungible_item_id(1, 1).owner, 1);
+ assert_eq!(TemplateModule::balance_count(1, 1), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
assert_noop!(
TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1),
@@ -338,28 +468,54 @@
// do approve
assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 1);
assert_ok!(TemplateModule::approve(origin1.clone(), 10, 1, 1));
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 2);
- assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 2, amount: 100000000});
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 2);
+ assert_eq!(
+ TemplateModule::approved(1, (1, 1))[0],
+ ApprovePermissions {
+ approved: 2,
+ amount: 100000000
+ }
+ );
- assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 100));
- assert_eq!(TemplateModule::balance_count(1,1), 900);
- assert_eq!(TemplateModule::balance_count(1,3), 100);
- assert_eq!(TemplateModule::address_tokens(1,1), [1]);
- assert_eq!(TemplateModule::address_tokens(1,3), [2]);
+ assert_ok!(TemplateModule::transfer_from(
+ origin2.clone(),
+ 1,
+ 3,
+ 1,
+ 1,
+ 100
+ ));
+ assert_eq!(TemplateModule::balance_count(1, 1), 900);
+ assert_eq!(TemplateModule::balance_count(1, 3), 100);
+ assert_eq!(TemplateModule::address_tokens(1, 1), [1]);
+ assert_eq!(TemplateModule::address_tokens(1, 3), [2]);
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);
- assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 10, amount: 100000000});
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 1);
+ assert_eq!(
+ TemplateModule::approved(1, (1, 1))[0],
+ ApprovePermissions {
+ approved: 10,
+ amount: 100000000
+ }
+ );
assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));
- assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 900));
- assert_eq!(TemplateModule::balance_count(1,1), 0);
- assert_eq!(TemplateModule::balance_count(1,3), 1000);
- assert_eq!(TemplateModule::address_tokens(1,1), []);
- assert_eq!(TemplateModule::address_tokens(1,3), [2]);
+ assert_ok!(TemplateModule::transfer_from(
+ origin2.clone(),
+ 1,
+ 3,
+ 1,
+ 1,
+ 900
+ ));
+ assert_eq!(TemplateModule::balance_count(1, 1), 0);
+ assert_eq!(TemplateModule::balance_count(1, 3), 1000);
+ assert_eq!(TemplateModule::address_tokens(1, 1), []);
+ assert_eq!(TemplateModule::address_tokens(1, 3), [2]);
- assert_eq!(TemplateModule::approved(1,(1,1)).len(), 0);
+ assert_eq!(TemplateModule::approved(1, (1, 1)).len(), 0);
});
}
@@ -433,7 +589,7 @@
1
));
- assert_eq!(TemplateModule::nft_item_id(1,1).data, [1,2,3].to_vec());
+ assert_eq!(TemplateModule::nft_item_id(1, 1).data, [1, 2, 3].to_vec());
// check balance (collection with id = 1, user id = 1)
assert_eq!(TemplateModule::balance_count(1, 1), 1);
@@ -509,11 +665,14 @@
assert_ok!(TemplateModule::create_item(
origin2.clone(),
1,
- [1,2,3].to_vec(),
+ [1, 2, 3].to_vec(),
1
));
- assert_eq!(TemplateModule::refungible_item_id(1,1).data, [1,2,3].to_vec());
+ assert_eq!(
+ TemplateModule::refungible_item_id(1, 1).data,
+ [1, 2, 3].to_vec()
+ );
// check balance (collection with id = 1, user id = 2)
assert_eq!(TemplateModule::balance_count(1, 1), 1000);
@@ -769,7 +928,14 @@
// approve
assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));
assert_eq!(TemplateModule::approved(1, (1, 1))[0].approved, 2);
- assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 2, 1, 1, 1));
+ assert_ok!(TemplateModule::transfer_from(
+ origin2.clone(),
+ 1,
+ 2,
+ 1,
+ 1,
+ 1
+ ));
// after transfer
assert_eq!(TemplateModule::balance_count(1, 1), 0);
runtime/build.rsdiffbeforeafterboth--- a/runtime/build.rs
+++ b/runtime/build.rs
@@ -1,10 +1,10 @@
use wasm_builder_runner::WasmBuilder;
fn main() {
- WasmBuilder::new()
- .with_current_project()
- .with_wasm_builder_from_crates("1.0.11")
- .export_heap_base()
- .import_memory()
- .build()
+ WasmBuilder::new()
+ .with_current_project()
+ .with_wasm_builder_from_crates("1.0.11")
+ .export_heap_base()
+ .import_memory()
+ .build()
}
runtime/src/lib.rsdiffbeforeafterboth--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -16,11 +16,12 @@
use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
use sp_runtime::{
create_runtime_str, generic, impl_opaque_keys,
+ traits::{
+ BlakeTwo256, Block as BlockT, IdentifyAccount, IdentityLookup, NumberFor, Saturating,
+ Verify,
+ },
transaction_validity::{TransactionSource, TransactionValidity},
ApplyExtrinsicResult, MultiSignature,
- traits::{
- BlakeTwo256, Block as BlockT, IdentifyAccount, IdentityLookup, NumberFor, Saturating, Verify,
- },
};
use sp_std::prelude::*;
#[cfg(feature = "std")]
@@ -31,22 +32,24 @@
pub use balances::Call as BalancesCall;
pub use contracts::Schedule as ContractsSchedule;
pub use frame_support::{
- construct_runtime, parameter_types,
- traits::{Currency, Get, ExistenceRequirement, KeyOwnerProofSystem, OnUnbalanced, Randomness, WithdrawReason},
+ construct_runtime,
+ dispatch::DispatchResult,
+ parameter_types,
+ traits::{
+ Currency, ExistenceRequirement, Get, KeyOwnerProofSystem, OnUnbalanced, Randomness,
+ WithdrawReason,
+ },
weights::{
- DispatchInfo, PostDispatchInfo, constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
- IdentityFee, Weight, WeightToFeePolynomial, GetDispatchInfo, Pays,
+ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
+ DispatchInfo, GetDispatchInfo, IdentityFee, Pays, PostDispatchInfo, Weight,
+ WeightToFeePolynomial,
},
StorageValue,
- dispatch::DispatchResult,
};
-use system::{self as system};
#[cfg(any(feature = "std", test))]
pub use sp_runtime::BuildStorage;
-use sp_runtime::{
- Perbill,
-};
-
+use sp_runtime::Perbill;
+use system::{self as system};
pub use timestamp::Call as TimestampCall;
@@ -492,4 +495,3 @@
}
}
}
-