From fafffdb771614ece5c186bb420c950f3a07bcf17 Mon Sep 17 00:00:00 2001 From: Xiliang Chen Date: Fri, 15 Feb 2019 23:21:38 +1300 Subject: [PATCH] Transaction Fee Module (#1648) * wip * Split bytes fee charging and charging by amount into different traits. * Move to edition 2018. * Implemented charge fee traits for fees module. * Implemented 'on_finalise' for fee module. * Updated fees finalize impl. * Renaming and documentation update. * Added overflow & underflow check for fee calculation. * Added mock and unit tests for fee module. * More unit tests for fees module. * Fixed srml-executive unit tests. * Remove transaction base/bytes fee from balances module, fix unit tests. * fix compile error * Fixed unit test. * Minor fixes. * Bump spec version. * Bump spec version. * Updated fees module and runtime wasm. * Fees module code style improvement; updated runtime wasm. * Bump spec and impl version. --- substrate/Cargo.lock | 21 +++ substrate/Cargo.toml | 1 + substrate/core/sr-primitives/src/traits.rs | 56 +++++- .../substrate_test_runtime.compact.wasm | Bin 56839 -> 56888 bytes substrate/node-template/runtime/Cargo.toml | 2 + substrate/node-template/runtime/src/lib.rs | 9 +- .../node-template/runtime/wasm/Cargo.lock | 17 ++ substrate/node-template/src/chain_spec.rs | 8 +- substrate/node/cli/src/chain_spec.rs | 18 +- substrate/node/executor/Cargo.toml | 1 + substrate/node/executor/src/lib.rs | 56 +++--- substrate/node/runtime/Cargo.toml | 2 + substrate/node/runtime/src/lib.rs | 11 +- substrate/node/runtime/wasm/Cargo.lock | 18 ++ .../release/node_runtime.compact.wasm | Bin 814449 -> 822720 bytes substrate/srml/balances/src/lib.rs | 44 ++--- substrate/srml/balances/src/mock.rs | 2 - substrate/srml/contract/Cargo.toml | 2 + substrate/srml/contract/src/lib.rs | 11 +- substrate/srml/contract/src/tests.rs | 10 +- substrate/srml/council/src/lib.rs | 2 - substrate/srml/democracy/src/lib.rs | 2 - substrate/srml/executive/Cargo.toml | 1 + substrate/srml/executive/src/lib.rs | 29 ++- substrate/srml/fees/Cargo.toml | 31 ++++ substrate/srml/fees/src/lib.rs | 116 ++++++++++++ substrate/srml/fees/src/mock.rs | 109 +++++++++++ substrate/srml/fees/src/tests.rs | 174 ++++++++++++++++++ substrate/srml/staking/src/mock.rs | 2 - substrate/srml/system/src/lib.rs | 5 + substrate/srml/treasury/src/lib.rs | 2 - 31 files changed, 672 insertions(+), 90 deletions(-) create mode 100644 substrate/srml/fees/Cargo.toml create mode 100644 substrate/srml/fees/src/lib.rs create mode 100644 substrate/srml/fees/src/mock.rs create mode 100644 substrate/srml/fees/src/tests.rs diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock index 9aa31fa9a3..6f2f0e72cc 100644 --- a/substrate/Cargo.lock +++ b/substrate/Cargo.lock @@ -1927,6 +1927,7 @@ dependencies = [ "srml-balances 0.1.0", "srml-consensus 0.1.0", "srml-contract 0.1.0", + "srml-fees 0.1.0", "srml-grandpa 0.1.0", "srml-indices 0.1.0", "srml-session 0.1.0", @@ -1981,6 +1982,7 @@ dependencies = [ "srml-council 0.1.0", "srml-democracy 0.1.0", "srml-executive 0.1.0", + "srml-fees 0.1.0", "srml-grandpa 0.1.0", "srml-indices 0.1.0", "srml-session 0.1.0", @@ -2045,6 +2047,7 @@ dependencies = [ "srml-balances 0.1.0", "srml-consensus 0.1.0", "srml-executive 0.1.0", + "srml-fees 0.1.0", "srml-indices 0.1.0", "srml-sudo 0.1.0", "srml-support 0.1.0", @@ -3177,6 +3180,7 @@ dependencies = [ "sr-std 0.1.0", "srml-balances 0.1.0", "srml-consensus 0.1.0", + "srml-fees 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "srml-timestamp 0.1.0", @@ -3249,12 +3253,29 @@ dependencies = [ "sr-primitives 0.1.0", "sr-std 0.1.0", "srml-balances 0.1.0", + "srml-fees 0.1.0", "srml-indices 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "substrate-primitives 0.1.0", ] +[[package]] +name = "srml-fees" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-support 0.1.0", + "srml-system 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-grandpa" version = "0.1.0" diff --git a/substrate/Cargo.toml b/substrate/Cargo.toml index 3d27fa72d5..98e3a439d9 100644 --- a/substrate/Cargo.toml +++ b/substrate/Cargo.toml @@ -65,6 +65,7 @@ members = [ "srml/democracy", "srml/example", "srml/executive", + "srml/fees", "srml/grandpa", "srml/indices", "srml/metadata", diff --git a/substrate/core/sr-primitives/src/traits.rs b/substrate/core/sr-primitives/src/traits.rs index 2e956c855b..5e12d571ae 100644 --- a/substrate/core/sr-primitives/src/traits.rs +++ b/substrate/core/sr-primitives/src/traits.rs @@ -126,15 +126,57 @@ pub trait BlockNumberToHash { } } -/// Simple payment making trait, operating on a single generic `AccountId` type. -pub trait MakePayment { - /// Make some sort of payment concerning `who` for an extrinsic (transaction) of encoded length - /// `encoded_len` bytes. Return true iff the payment was successful. - fn make_payment(who: &AccountId, encoded_len: usize) -> Result<(), &'static str>; +/// Charge bytes fee trait +pub trait ChargeBytesFee { + /// Charge fees from `transactor` for an extrinsic (transaction) of encoded length + /// `encoded_len` bytes. Return Ok iff the payment was successful. + fn charge_base_bytes_fee(transactor: &AccountId, encoded_len: usize) -> Result<(), &'static str>; } -impl MakePayment for () { - fn make_payment(_: &T, _: usize) -> Result<(), &'static str> { Ok(()) } +/// Charge fee trait +pub trait ChargeFee: ChargeBytesFee { + /// The type of fee amount. + type Amount; + + /// Charge `amount` of fees from `transactor`. Return Ok iff the payment was successful. + fn charge_fee(transactor: &AccountId, amount: Self::Amount) -> Result<(), &'static str>; + + /// Refund `amount` of previous charged fees from `transactor`. Return Ok iff the refund was successful. + fn refund_fee(transactor: &AccountId, amount: Self::Amount) -> Result<(), &'static str>; +} + +/// Transfer fungible asset trait +pub trait TransferAsset { + /// The type of asset amount. + type Amount; + + /// Transfer asset from `from` account to `to` account with `amount` of asset. + fn transfer(from: &AccountId, to: &AccountId, amount: Self::Amount) -> Result<(), &'static str>; + + /// Remove asset from `who` account by deducing `amount` in the account balances. + fn remove_from(who: &AccountId, amount: Self::Amount) -> Result<(), &'static str>; + + /// Add asset to `who` account by increasing `amount` in the account balances. + fn add_to(who: &AccountId, amount: Self::Amount) -> Result<(), &'static str>; +} + +impl ChargeBytesFee for () { + fn charge_base_bytes_fee(_: &T, _: usize) -> Result<(), &'static str> { Ok(()) } +} + +impl ChargeFee for () { + type Amount = (); + + fn charge_fee(_: &T, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } + fn refund_fee(_: &T, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } +} + +impl TransferAsset for () { + type Amount = (); + + fn transfer(_: &T, _: &T, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } + fn remove_from(_: &T, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } + fn add_to(_: &T, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } } /// Extensible conversion trait. Generic over both source and destination types. diff --git a/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index f7f569548e0db17b0a9236ffde5ecef94753ca2e..9bf282dec877822d89f5b9b94fe199e865feeeaa 100644 GIT binary patch delta 8012 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 A@c;k- delta 7977 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 diff --git a/substrate/node-template/runtime/Cargo.toml b/substrate/node-template/runtime/Cargo.toml index 00ec0eb367..99cb977b44 100644 --- a/substrate/node-template/runtime/Cargo.toml +++ b/substrate/node-template/runtime/Cargo.toml @@ -16,6 +16,7 @@ version = { package = "sr-version", path = "../../core/sr-version", default_feat support = { package = "srml-support", path = "../../srml/support", default_features = false } primitives = { package = "substrate-primitives", path = "../../core/primitives", default_features = false } balances = { package = "srml-balances", path = "../../srml/balances", default_features = false } +fees = { package = "srml-fees", path = "../../srml/fees", default_features = false } consensus = { package = "srml-consensus", path = "../../srml/consensus", default_features = false } aura = { package = "srml-aura", path = "../../srml/aura", default_features = false } executive = { package = "srml-executive", path = "../../srml/executive", default_features = false } @@ -38,6 +39,7 @@ std = [ "runtime-io/std", "support/std", "balances/std", + "fees/std", "executive/std", "aura/std", "indices/std", diff --git a/substrate/node-template/runtime/src/lib.rs b/substrate/node-template/runtime/src/lib.rs index 079f11918f..39a18593f1 100644 --- a/substrate/node-template/runtime/src/lib.rs +++ b/substrate/node-template/runtime/src/lib.rs @@ -164,6 +164,12 @@ impl balances::Trait for Runtime { type Event = Event; } +impl fees::Trait for Runtime { + type Amount = u128; + type TransferAsset = Balances; + type Event = Event; +} + impl sudo::Trait for Runtime { /// The uniquitous event type. type Event = Event; @@ -188,6 +194,7 @@ construct_runtime!( Indices: indices, Balances: balances, Sudo: sudo, + Fees: fees::{Module, Storage, Config, Event}, // Used for the module template in `./template.rs` TemplateModule: template::{Module, Call, Storage, Event}, } @@ -208,7 +215,7 @@ pub type UncheckedExtrinsic = generic::UncheckedMortalCompactExtrinsic; /// Executive: handles dispatch to the various modules. -pub type Executive = executive::Executive; +pub type Executive = executive::Executive; // Implement our runtime API endpoints. This is just a bunch of proxying. impl_runtime_apis! { diff --git a/substrate/node-template/runtime/wasm/Cargo.lock b/substrate/node-template/runtime/wasm/Cargo.lock index e383e5df67..905538fa8f 100644 --- a/substrate/node-template/runtime/wasm/Cargo.lock +++ b/substrate/node-template/runtime/wasm/Cargo.lock @@ -655,6 +655,7 @@ dependencies = [ "srml-balances 0.1.0", "srml-consensus 0.1.0", "srml-executive 0.1.0", + "srml-fees 0.1.0", "srml-indices 0.1.0", "srml-sudo 0.1.0", "srml-support 0.1.0", @@ -1333,6 +1334,22 @@ dependencies = [ "srml-system 0.1.0", ] +[[package]] +name = "srml-fees" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-support 0.1.0", + "srml-system 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-indices" version = "0.1.0" diff --git a/substrate/node-template/src/chain_spec.rs b/substrate/node-template/src/chain_spec.rs index 6b1370b102..b9f61e45f5 100644 --- a/substrate/node-template/src/chain_spec.rs +++ b/substrate/node-template/src/chain_spec.rs @@ -1,7 +1,7 @@ use primitives::{Ed25519AuthorityId, ed25519}; use node_template_runtime::{ AccountId, GenesisConfig, ConsensusConfig, TimestampConfig, BalancesConfig, - SudoConfig, IndicesConfig + SudoConfig, IndicesConfig, FeesConfig, }; use substrate_service; @@ -90,8 +90,6 @@ fn testnet_genesis(initial_authorities: Vec, endowed_account ids: endowed_accounts.clone(), }), balances: Some(BalancesConfig { - transaction_base_fee: 1, - transaction_byte_fee: 0, existential_deposit: 500, transfer_fee: 0, creation_fee: 0, @@ -101,5 +99,9 @@ fn testnet_genesis(initial_authorities: Vec, endowed_account sudo: Some(SudoConfig { key: root_key, }), + fees: Some(FeesConfig { + transaction_base_fee: 1, + transaction_byte_fee: 0, + }) } } diff --git a/substrate/node/cli/src/chain_spec.rs b/substrate/node/cli/src/chain_spec.rs index 878ffb2b10..cb693f2b1d 100644 --- a/substrate/node/cli/src/chain_spec.rs +++ b/substrate/node/cli/src/chain_spec.rs @@ -20,7 +20,7 @@ use primitives::{Ed25519AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, - SudoConfig, ContractConfig, GrandpaConfig, IndicesConfig, Permill, Perbill}; + SudoConfig, ContractConfig, GrandpaConfig, IndicesConfig, FeesConfig, Permill, Perbill}; pub use node_runtime::GenesisConfig; use substrate_service; use hex_literal::{hex, hex_impl}; @@ -64,8 +64,6 @@ fn staging_testnet_config_genesis() -> GenesisConfig { system: None, balances: Some(BalancesConfig { balances: endowed_accounts.iter().map(|&k| (k, 10_000_000 * DOLLARS)).collect(), - transaction_base_fee: 1 * CENTS, - transaction_byte_fee: 10 * MILLICENTS, existential_deposit: 1 * DOLLARS, transfer_fee: 1 * CENTS, creation_fee: 1 * CENTS, @@ -139,7 +137,11 @@ fn staging_testnet_config_genesis() -> GenesisConfig { }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), - }) + }), + fees: Some(FeesConfig { + transaction_base_fee: 1 * CENTS, + transaction_byte_fee: 10 * MILLICENTS, + }), } } @@ -192,8 +194,6 @@ pub fn testnet_genesis( ids: endowed_accounts.iter().map(|x| x.0.into()).collect(), }), balances: Some(BalancesConfig { - transaction_base_fee: 1, - transaction_byte_fee: 0, existential_deposit: 500, transfer_fee: 0, creation_fee: 0, @@ -267,7 +267,11 @@ pub fn testnet_genesis( }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), - }) + }), + fees: Some(FeesConfig { + transaction_base_fee: 1, + transaction_byte_fee: 0, + }), } } diff --git a/substrate/node/executor/Cargo.toml b/substrate/node/executor/Cargo.toml index ac99c3c5f0..501c8a7b54 100644 --- a/substrate/node/executor/Cargo.toml +++ b/substrate/node/executor/Cargo.toml @@ -31,6 +31,7 @@ treasury = { package = "srml-treasury", path = "../../srml/treasury" } contract = { package = "srml-contract", path = "../../srml/contract" } grandpa = { package = "srml-grandpa", path = "../../srml/grandpa" } indices = { package = "srml-indices", path = "../../srml/indices" } +fees = { package = "srml-fees", path = "../../srml/fees" } wabt = "~0.7.4" [features] diff --git a/substrate/node/executor/src/lib.rs b/substrate/node/executor/src/lib.rs index 5810756c17..2edd2b7966 100644 --- a/substrate/node/executor/src/lib.rs +++ b/substrate/node/executor/src/lib.rs @@ -46,7 +46,7 @@ mod tests { use system::{EventRecord, Phase}; use node_runtime::{Header, Block, UncheckedExtrinsic, CheckedExtrinsic, Call, Runtime, Balances, BuildStorage, GenesisConfig, BalancesConfig, SessionConfig, StakingConfig, System, - SystemConfig, GrandpaConfig, IndicesConfig, Event, Log}; + SystemConfig, GrandpaConfig, IndicesConfig, FeesConfig, Event, Log}; use wabt; use hex_literal::{hex, hex_impl}; use primitives::map; @@ -112,13 +112,13 @@ mod tests { let mut t = TestExternalities::::new_with_code(BLOATY_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - twox_128(>::key()).to_vec() => vec![70u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] + twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32], + twox_128(>::key()).to_vec() => vec![70u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16] ]); let r = executor().call::<_, NeverNativeValue, fn() -> _>( @@ -145,13 +145,13 @@ mod tests { let mut t = TestExternalities::::new_with_code(COMPACT_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - twox_128(>::key()).to_vec() => vec![70u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] + twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32], + twox_128(>::key()).to_vec() => vec![70u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16] ]); let r = executor().call::<_, NeverNativeValue, fn() -> _>( @@ -178,13 +178,13 @@ mod tests { let mut t = TestExternalities::::new_with_code(COMPACT_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] + twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32], + twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16] ]); let r = executor().call::<_, NeverNativeValue, fn() -> _>( @@ -215,13 +215,13 @@ mod tests { let mut t = TestExternalities::::new_with_code(BLOATY_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] + twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32], + twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16] ]); let r = executor().call::<_, NeverNativeValue, fn() -> _>( @@ -266,8 +266,6 @@ mod tests { (alice(), 111), (charlie(), 100_000_000), ], - transaction_base_fee: 1, - transaction_byte_fee: 0, existential_deposit: 0, transfer_fee: 0, creation_fee: 0, @@ -305,6 +303,10 @@ mod tests { (Keyring::Charlie.to_raw_public().into(), 1), ], }), + fees: Some(FeesConfig { + transaction_base_fee: 1, + transaction_byte_fee: 0, + }), }.build_storage().unwrap().0) } @@ -512,6 +514,10 @@ mod tests { EventRecord { phase: Phase::Finalization, event: Event::treasury(treasury::RawEvent::Rollover(0)) + }, + EventRecord { + phase: Phase::Finalization, + event: Event::fees(fees::RawEvent::Charged(1, 1)) } ]); }); @@ -589,6 +595,14 @@ mod tests { EventRecord { phase: Phase::Finalization, event: Event::treasury(treasury::RawEvent::Rollover(0)) + }, + EventRecord { + phase: Phase::Finalization, + event: Event::fees(fees::RawEvent::Charged(1, 1)) + }, + EventRecord { + phase: Phase::Finalization, + event: Event::fees(fees::RawEvent::Charged(2, 1)) } ]); }); @@ -800,13 +814,13 @@ mod tests { let mut t = TestExternalities::::new_with_code(foreign_code, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - twox_128(>::key()).to_vec() => vec![70u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] + twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32], + twox_128(>::key()).to_vec() => vec![70u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16] ]); let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64))); @@ -822,13 +836,13 @@ mod tests { let mut t = TestExternalities::::new_with_code(foreign_code, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] + twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32], + twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16] ]); let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64))); diff --git a/substrate/node/runtime/Cargo.toml b/substrate/node/runtime/Cargo.toml index de16dbf485..1c62c32894 100644 --- a/substrate/node/runtime/Cargo.toml +++ b/substrate/node/runtime/Cargo.toml @@ -31,6 +31,7 @@ timestamp = { package = "srml-timestamp", path = "../../srml/timestamp", default treasury = { package = "srml-treasury", path = "../../srml/treasury", default-features = false } sudo = { package = "srml-sudo", path = "../../srml/sudo", default-features = false } srml-upgrade-key = { path = "../../srml/upgrade-key", default-features = false } +fees = { package = "srml-fees", path = "../../srml/fees", default-features = false } node-primitives = { path = "../primitives", default-features = false } consensus_aura = { package = "substrate-consensus-aura-primitives", path = "../../core/consensus/aura/primitives", default-features = false } rustc-hex = { version = "2.0", optional = true } @@ -61,6 +62,7 @@ std = [ "treasury/std", "sudo/std", "srml-upgrade-key/std", + "fees/std", "version/std", "node-primitives/std", "serde/std", diff --git a/substrate/node/runtime/src/lib.rs b/substrate/node/runtime/src/lib.rs index dd1ae3b272..2a3b8d873f 100644 --- a/substrate/node/runtime/src/lib.rs +++ b/substrate/node/runtime/src/lib.rs @@ -60,7 +60,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 28, + spec_version: 29, impl_version: 29, apis: RUNTIME_API_VERSIONS, }; @@ -107,6 +107,12 @@ impl balances::Trait for Runtime { type Event = Event; } +impl fees::Trait for Runtime { + type Event = Event; + type Amount = Balance; + type TransferAsset = Balances; +} + impl consensus::Trait for Runtime { type Log = Log; type SessionKey = SessionKey; @@ -210,6 +216,7 @@ construct_runtime!( Treasury: treasury, Contract: contract::{Module, Call, Storage, Config, Event}, Sudo: sudo, + Fees: fees::{Module, Storage, Config, Event}, } ); @@ -228,7 +235,7 @@ pub type UncheckedExtrinsic = generic::UncheckedMortalCompactExtrinsic; /// Executive: handles dispatch to the various modules. -pub type Executive = executive::Executive, Balances, AllModules>; +pub type Executive = executive::Executive, Fees, AllModules>; impl_runtime_apis! { impl client_api::Core for Runtime { diff --git a/substrate/node/runtime/wasm/Cargo.lock b/substrate/node/runtime/wasm/Cargo.lock index 21c8952384..d740d57ac6 100644 --- a/substrate/node/runtime/wasm/Cargo.lock +++ b/substrate/node/runtime/wasm/Cargo.lock @@ -651,6 +651,7 @@ dependencies = [ "srml-council 0.1.0", "srml-democracy 0.1.0", "srml-executive 0.1.0", + "srml-fees 0.1.0", "srml-grandpa 0.1.0", "srml-indices 0.1.0", "srml-session 0.1.0", @@ -1349,6 +1350,7 @@ dependencies = [ "sr-sandbox 0.1.0", "sr-std 0.1.0", "srml-balances 0.1.0", + "srml-fees 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "srml-timestamp 0.1.0", @@ -1402,6 +1404,22 @@ dependencies = [ "srml-system 0.1.0", ] +[[package]] +name = "srml-fees" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-support 0.1.0", + "srml-system 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-grandpa" version = "0.1.0" diff --git a/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 58d2541f73009b7ca1eda3d89ecf43ec12deaa77..3eb99c7be3ccf9d7701d04221d71cf38e3fe9427 100644 GIT binary patch delta 218993 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 delta 210403 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
X|&R(s@3RsVo@W}w- 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]-lW{S~$aj!=W;J?UxWJnc67PTbB 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 RSNu)}(d6_no*sn<|36CemFxfj diff --git a/substrate/srml/balances/src/lib.rs b/substrate/srml/balances/src/lib.rs index e2edf5e3e4..554f92e868 100644 --- a/substrate/srml/balances/src/lib.rs +++ b/substrate/srml/balances/src/lib.rs @@ -28,11 +28,11 @@ use rstd::prelude::*; use rstd::{cmp, result}; use parity_codec::Codec; use parity_codec_derive::{Encode, Decode}; -use srml_support::{StorageValue, StorageMap, Parameter, decl_event, decl_storage, decl_module}; +use srml_support::{StorageValue, StorageMap, Parameter, decl_event, decl_storage, decl_module, ensure}; use srml_support::traits::{UpdateBalanceOutcome, Currency, EnsureAccountLiquid, OnFreeBalanceZero}; use srml_support::dispatch::Result; -use primitives::traits::{Zero, SimpleArithmetic, MakePayment, - As, StaticLookup, Member, CheckedAdd, CheckedSub, MaybeSerializeDebug}; +use primitives::traits::{Zero, SimpleArithmetic, + As, StaticLookup, Member, CheckedAdd, CheckedSub, MaybeSerializeDebug, TransferAsset}; use system::{IsDeadAccount, OnNewAccount, ensure_signed}; mod mock; @@ -122,7 +122,7 @@ decl_storage! { let per_block = balance / length; let offset = begin * per_block + balance; - + (who.clone(), VestingSchedule { offset, per_block }) }) }).collect::>() @@ -154,14 +154,6 @@ decl_storage! { /// `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets /// collapsed to zero if it ever becomes less than `ExistentialDeposit`. pub ReservedBalance get(reserved_balance): map T::AccountId => T::Balance; - - - // Payment stuff. - - /// The fee to be paid for making a transaction; the base. - pub TransactionBaseFee get(transaction_base_fee) config(): T::Balance; - /// The fee to be paid for making a transaction; the per-byte portion. - pub TransactionByteFee get(transaction_byte_fee) config(): T::Balance; } add_extra_genesis { config(balances): Vec<(T::AccountId, T::Balance)>; @@ -505,15 +497,25 @@ where } } -impl MakePayment for Module { - fn make_payment(transactor: &T::AccountId, encoded_len: usize) -> Result { - let b = Self::free_balance(transactor); - let transaction_fee = Self::transaction_base_fee() + Self::transaction_byte_fee() * >::sa(encoded_len as u64); - if b < transaction_fee + Self::existential_deposit() { - return Err("not enough funds for transaction fee"); - } - Self::set_free_balance(transactor, b - transaction_fee); - Self::decrease_total_stake_by(transaction_fee); +impl TransferAsset for Module { + type Amount = T::Balance; + + fn transfer(from: &T::AccountId, to: &T::AccountId, amount: T::Balance) -> Result { + Self::make_transfer(from, to, amount) + } + + fn remove_from(who: &T::AccountId, value: T::Balance) -> Result { + T::EnsureAccountLiquid::ensure_account_liquid(who)?; + let b = Self::free_balance(who); + ensure!(b >= value, "account has too few funds"); + Self::set_free_balance(who, b - value); + Self::decrease_total_stake_by(value); + Ok(()) + } + + fn add_to(who: &T::AccountId, value: T::Balance) -> Result { + Self::set_free_balance_creating(who, Self::free_balance(who) + value); + Self::increase_total_stake_by(value); Ok(()) } } diff --git a/substrate/srml/balances/src/mock.rs b/substrate/srml/balances/src/mock.rs index 14892313f9..6dcff18c6e 100644 --- a/substrate/srml/balances/src/mock.rs +++ b/substrate/srml/balances/src/mock.rs @@ -106,8 +106,6 @@ impl ExtBuilder { } else { vec![(10, balance_factor), (20, balance_factor)] }, - transaction_base_fee: 0, - transaction_byte_fee: 0, existential_deposit: self.existential_deposit, transfer_fee: self.transfer_fee, creation_fee: self.creation_fee, diff --git a/substrate/srml/contract/Cargo.toml b/substrate/srml/contract/Cargo.toml index 291d65ba35..1a5b5eb069 100644 --- a/substrate/srml/contract/Cargo.toml +++ b/substrate/srml/contract/Cargo.toml @@ -20,6 +20,7 @@ srml-support = { path = "../support", default-features = false } system = { package = "srml-system", path = "../system", default-features = false } balances = { package = "srml-balances", path = "../balances", default-features = false } timestamp = { package = "srml-timestamp", path = "../timestamp", default-features = false } +fees = { package = "srml-fees", path = "../fees", default-features = false } [dev-dependencies] wabt = "~0.7.4" @@ -45,4 +46,5 @@ std = [ "timestamp/std", "parity-wasm/std", "pwasm-utils/std", + "fees/std", ] diff --git a/substrate/srml/contract/src/lib.rs b/substrate/srml/contract/src/lib.rs index b5f5f2c00e..c92c08ef85 100644 --- a/substrate/srml/contract/src/lib.rs +++ b/substrate/srml/contract/src/lib.rs @@ -78,6 +78,7 @@ use srml_support::traits::OnFreeBalanceZero; use system::{ensure_signed, RawOrigin}; use runtime_io::{blake2_256, twox_128}; use timestamp; +use fees; pub type CodeHash = ::Hash; @@ -91,7 +92,7 @@ pub trait ComputeDispatchFee { fn compute_dispatch_fee(call: &Call) -> Balance; } -pub trait Trait: balances::Trait + timestamp::Trait { +pub trait Trait: fees::Trait + balances::Trait + timestamp::Trait { /// The outer call dispatch type. type Call: Parameter + Dispatchable::Origin>; @@ -135,14 +136,14 @@ where } /// The default dispatch fee computor computes the fee in the same way that -/// implementation of `MakePayment` for balances module does. +/// implementation of `ChargeBytesFee` for fees module does. pub struct DefaultDispatchFeeComputor(PhantomData); impl ComputeDispatchFee for DefaultDispatchFeeComputor { fn compute_dispatch_fee(call: &T::Call) -> T::Balance { let encoded_len = parity_codec::Encode::encode(&call).len(); - let base_fee = >::transaction_base_fee(); - let byte_fee = >::transaction_byte_fee(); - base_fee + byte_fee * >::sa(encoded_len as u64) + let base_fee = >::transaction_base_fee(); + let byte_fee = >::transaction_byte_fee(); + >::sa(base_fee.as_() + byte_fee.as_() * encoded_len as u64) } } diff --git a/substrate/srml/contract/src/tests.rs b/substrate/srml/contract/src/tests.rs index 80efd3785d..6febc2dec4 100644 --- a/substrate/srml/contract/src/tests.rs +++ b/substrate/srml/contract/src/tests.rs @@ -27,6 +27,7 @@ use runtime_io; use srml_support::{StorageMap, StorageDoubleMap, assert_ok, impl_outer_event, impl_outer_dispatch, impl_outer_origin}; use substrate_primitives::{Blake2Hasher}; use system::{self, Phase, EventRecord}; +use fees; use {wabt, balances, consensus}; use hex_literal::*; use assert_matches::assert_matches; @@ -44,7 +45,7 @@ mod contract { } impl_outer_event! { pub enum MetaEvent for Test { - balances, contract, + balances, contract, fees, } } impl_outer_origin! { @@ -88,6 +89,11 @@ impl consensus::Trait for Test { type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } +impl fees::Trait for Test { + type Event = MetaEvent; + type Amount = u64; + type TransferAsset = Balances; +} impl Trait for Test { type Call = Call; type Gas = u64; @@ -165,8 +171,6 @@ impl ExtBuilder { t.extend( balances::GenesisConfig:: { balances: vec![], - transaction_base_fee: 0, - transaction_byte_fee: 0, existential_deposit: self.existential_deposit, transfer_fee: self.transfer_fee, creation_fee: self.creation_fee, diff --git a/substrate/srml/council/src/lib.rs b/substrate/srml/council/src/lib.rs index d92b0d7178..20c95b2bd9 100644 --- a/substrate/srml/council/src/lib.rs +++ b/substrate/srml/council/src/lib.rs @@ -100,8 +100,6 @@ mod tests { let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; t.extend(balances::GenesisConfig::{ balances: vec![(1, 10), (2, 20), (3, 30), (4, 40), (5, 50), (6, 60)], - transaction_base_fee: 0, - transaction_byte_fee: 0, existential_deposit: 0, transfer_fee: 0, creation_fee: 0, diff --git a/substrate/srml/democracy/src/lib.rs b/substrate/srml/democracy/src/lib.rs index 6cd9c07979..5045a0ca3d 100644 --- a/substrate/srml/democracy/src/lib.rs +++ b/substrate/srml/democracy/src/lib.rs @@ -486,8 +486,6 @@ mod tests { let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; t.extend(balances::GenesisConfig::{ balances: vec![(1, 10), (2, 20), (3, 30), (4, 40), (5, 50), (6, 60)], - transaction_base_fee: 0, - transaction_byte_fee: 0, existential_deposit: 0, transfer_fee: 0, creation_fee: 0, diff --git a/substrate/srml/executive/Cargo.toml b/substrate/srml/executive/Cargo.toml index bc7e8616fb..836816a14c 100644 --- a/substrate/srml/executive/Cargo.toml +++ b/substrate/srml/executive/Cargo.toml @@ -18,6 +18,7 @@ hex-literal = "0.1.0" substrate-primitives = { path = "../../core/primitives" } srml-indices = { path = "../indices" } balances = { package = "srml-balances", path = "../balances" } +fees = { package = "srml-fees", path = "../fees" } parity-codec-derive = { version = "3.0", default-features = false } [features] diff --git a/substrate/srml/executive/src/lib.rs b/substrate/srml/executive/src/lib.rs index 04c44a53d3..dfc369174f 100644 --- a/substrate/srml/executive/src/lib.rs +++ b/substrate/srml/executive/src/lib.rs @@ -18,11 +18,12 @@ #![cfg_attr(not(feature = "std"), no_std)] + use rstd::prelude::*; use rstd::marker::PhantomData; use rstd::result; use primitives::traits::{self, Header, Zero, One, Checkable, Applyable, CheckEqual, OnFinalise, - OnInitialise, MakePayment, Hash, As, Digest}; + OnInitialise, ChargeBytesFee, Hash, As, Digest}; use srml_support::Dispatchable; use parity_codec::{Codec, Encode}; use system::extrinsics_root; @@ -58,7 +59,7 @@ impl< Context: Default, System: system::Trait, Block: traits::Block, - Payment: MakePayment, + Payment: ChargeBytesFee, AllModules: OnInitialise + OnFinalise, > Executive where Block::Extrinsic: Checkable + Codec, @@ -166,7 +167,7 @@ impl< ) } // pay any fees. - Payment::make_payment(sender, encoded_len).map_err(|_| internal::ApplyError::CantPay)?; + Payment::charge_base_bytes_fee(sender, encoded_len).map_err(|_| internal::ApplyError::CantPay)?; // AUDIT: Under no circumstances may this function panic from here onwards. @@ -238,7 +239,7 @@ impl< if let (Some(sender), Some(index)) = (xt.sender(), xt.index()) { // pay any fees. - if Payment::make_payment(sender, encoded_len).is_err() { + if Payment::charge_base_bytes_fee(sender, encoded_len).is_err() { return TransactionValidity::Invalid(ApplyError::CantPay as i8) } @@ -284,6 +285,7 @@ mod tests { use primitives::testing::{Digest, DigestItem, Header, Block}; use srml_support::{traits::Currency, impl_outer_origin, impl_outer_event}; use system; + use fees; use hex_literal::{hex, hex_impl}; impl_outer_origin! { @@ -293,7 +295,7 @@ mod tests { impl_outer_event!{ pub enum MetaEvent for Runtime { - balances, + balances, fees, } } @@ -320,22 +322,29 @@ mod tests { type EnsureAccountLiquid = (); type Event = MetaEvent; } + impl fees::Trait for Runtime { + type Event = MetaEvent; + type Amount = u64; + type TransferAsset = balances::Module; + } type TestXt = primitives::testing::TestXt>; - type Executive = super::Executive, system::ChainContext, balances::Module, ()>; + type Executive = super::Executive, system::ChainContext, fees::Module, ()>; #[test] fn balance_transfer_dispatch_works() { let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; t.extend(balances::GenesisConfig:: { balances: vec![(1, 111)], - transaction_base_fee: 10, - transaction_byte_fee: 0, existential_deposit: 0, transfer_fee: 0, creation_fee: 0, vesting: vec![], }.build_storage().unwrap().0); + t.extend(fees::GenesisConfig:: { + transaction_base_fee: 10, + transaction_byte_fee: 0, + }.build_storage().unwrap().0); let xt = primitives::testing::TestXt(Some(1), 0, Call::transfer(2, 69)); let mut t = runtime_io::TestExternalities::::new(t); with_externalities(&mut t, || { @@ -360,7 +369,7 @@ mod tests { header: Header { parent_hash: [69u8; 32].into(), number: 1, - state_root: hex!("49cd58a254ccf6abc4a023d9a22dcfc421e385527a250faec69f8ad0d8ed3e48").into(), + state_root: hex!("6651861f40a8f42c033b3e937cb3513e6dbaf4be6bafb1561a19f884be3f58dd").into(), extrinsics_root: hex!("03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314").into(), digest: Digest { logs: vec![], }, }, @@ -394,7 +403,7 @@ mod tests { header: Header { parent_hash: [69u8; 32].into(), number: 1, - state_root: hex!("49cd58a254ccf6abc4a023d9a22dcfc421e385527a250faec69f8ad0d8ed3e48").into(), + state_root: hex!("6651861f40a8f42c033b3e937cb3513e6dbaf4be6bafb1561a19f884be3f58dd").into(), extrinsics_root: [0u8; 32].into(), digest: Digest { logs: vec![], }, }, diff --git a/substrate/srml/fees/Cargo.toml b/substrate/srml/fees/Cargo.toml new file mode 100644 index 0000000000..d3883e09b0 --- /dev/null +++ b/substrate/srml/fees/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "srml-fees" +version = "0.1.0" +authors = ["Parity Technologies "] +edition = "2018" + +[dependencies] +hex-literal = "0.1.0" +serde = { version = "1.0", default-features = false } +parity-codec = { version = "3.0", default-features = false } +parity-codec-derive = { version = "3.0", default-features = false } +primitives = { package = "substrate-primitives", path = "../../core/primitives", default-features = false } +rstd = { package = "sr-std", path = "../../core/sr-std", default-features = false } +runtime_io = { package = "sr-io", path = "../../core/sr-io", default-features = false } +runtime_primitives = { package = "sr-primitives", path = "../../core/sr-primitives", default-features = false } +srml-support = { package = "srml-support", path = "../support", default-features = false } +system = { package = "srml-system", path = "../system", default-features = false } + +[features] +default = ["std"] +std = [ + "serde/std", + "parity-codec/std", + "parity-codec-derive/std", + "primitives/std", + "rstd/std", + "runtime_io/std", + "runtime_primitives/std", + "srml-support/std", + "system/std", +] diff --git a/substrate/srml/fees/src/lib.rs b/substrate/srml/fees/src/lib.rs new file mode 100644 index 0000000000..a86ea68cdb --- /dev/null +++ b/substrate/srml/fees/src/lib.rs @@ -0,0 +1,116 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Handles all transaction fee related operations + +// Ensure we're `no_std` when compiling for Wasm. +#![cfg_attr(not(feature = "std"), no_std)] + +use srml_support::{dispatch::Result, Parameter, StorageMap, decl_event, decl_storage, decl_module}; +use runtime_primitives::traits::{ + As, Member, SimpleArithmetic, ChargeBytesFee, ChargeFee, + TransferAsset, CheckedAdd, CheckedSub, CheckedMul, Zero +}; +use system; + +mod mock; +mod tests; + +pub trait Trait: system::Trait { + /// The overarching event type. + type Event: From> + Into<::Event>; + + /// The unit for fee amount + type Amount: Member + Parameter + SimpleArithmetic + Default + Copy + As; + + /// A function does the asset transfer between accounts + type TransferAsset: TransferAsset; +} + +decl_module! { + pub struct Module for enum Call where origin: T::Origin { + fn deposit_event() = default; + + fn on_finalise() { + let extrinsic_count = >::extrinsic_count(); + (0..extrinsic_count).for_each(|index| { + // Deposit `Charged` event if some amount of fee charged. + let fee = >::take(index); + if !fee.is_zero() { + Self::deposit_event(RawEvent::Charged(index, fee)); + } + }); + } + } +} + +decl_event!( + pub enum Event where ::Amount { + /// Fee charged (extrinsic_index, fee_amount) + Charged(u32, Amount), + } +); + +decl_storage! { + trait Store for Module as Fees { + /// The fee to be paid for making a transaction; the base. + pub TransactionBaseFee get(transaction_base_fee) config(): T::Amount; + /// The fee to be paid for making a transaction; the per-byte portion. + pub TransactionByteFee get(transaction_byte_fee) config(): T::Amount; + + /// The `extrinsic_index => accumulated_fees` map, containing records to + /// track the overall charged fees for each transaction. + /// + /// All records should be removed at finalise stage. + CurrentTransactionFee get(current_transaction_fee): map u32 => T::Amount; + } +} + +impl ChargeBytesFee for Module { + fn charge_base_bytes_fee(transactor: &T::AccountId, encoded_len: usize) -> Result { + let bytes_fee = Self::transaction_byte_fee().checked_mul( + &>::sa(encoded_len as u64) + ).ok_or_else(|| "bytes fee overflow")?; + let overall = Self::transaction_base_fee().checked_add(&bytes_fee).ok_or_else(|| "bytes fee overflow")?; + Self::charge_fee(transactor, overall) + } +} + +impl ChargeFee for Module { + type Amount = T::Amount; + + fn charge_fee(transactor: &T::AccountId, amount: T::Amount) -> Result { + let extrinsic_index = >::extrinsic_index().ok_or_else(|| "no extrinsic index found")?; + let current_fee = Self::current_transaction_fee(extrinsic_index); + let new_fee = current_fee.checked_add(&amount).ok_or_else(|| "fee got overflow after charge")?; + + T::TransferAsset::remove_from(transactor, amount)?; + + >::insert(extrinsic_index, new_fee); + Ok(()) + } + + fn refund_fee(transactor: &T::AccountId, amount: T::Amount) -> Result { + let extrinsic_index = >::extrinsic_index().ok_or_else(|| "no extrinsic index found")?; + let current_fee = Self::current_transaction_fee(extrinsic_index); + let new_fee = current_fee.checked_sub(&amount).ok_or_else(|| "fee got underflow after refund")?; + + T::TransferAsset::add_to(transactor, amount)?; + + >::insert(extrinsic_index, new_fee); + Ok(()) + } +} diff --git a/substrate/srml/fees/src/mock.rs b/substrate/srml/fees/src/mock.rs new file mode 100644 index 0000000000..46058e1921 --- /dev/null +++ b/substrate/srml/fees/src/mock.rs @@ -0,0 +1,109 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Test utilities + +#![cfg(test)] + +use runtime_primitives::BuildStorage; +use runtime_primitives::{ + traits::{IdentityLookup, BlakeTwo256, TransferAsset}, + testing::{Digest, DigestItem, Header}, +}; +use primitives::{H256, Blake2Hasher}; +use runtime_io; +use srml_support::{impl_outer_origin, impl_outer_event}; +use crate::{GenesisConfig, Module, Trait, system}; + +impl_outer_origin!{ + pub enum Origin for Test {} +} + +mod fees { + pub use crate::Event; +} + +impl_outer_event!{ + pub enum TestEvent for Test { + fees, + } +} + +pub struct TransferAssetMock; + +impl TransferAsset for TransferAssetMock { + type Amount = u64; + + fn transfer(_: &AccountId, _: &AccountId, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } + fn remove_from(_: &AccountId, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } + fn add_to(_: &AccountId, _: Self::Amount) -> Result<(), &'static str> { Ok(()) } +} + +// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted. +#[derive(Clone, PartialEq, Eq, Debug)] +pub struct Test; +impl system::Trait for Test { + type Origin = Origin; + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type Digest = Digest; + type AccountId = u64; + type Lookup = IdentityLookup; + type Header = Header; + type Event = TestEvent; + type Log = DigestItem; +} +impl Trait for Test { + type Amount = u64; + type Event =TestEvent; + type TransferAsset = TransferAssetMock; +} + +pub type System = system::Module; +pub type Fees = Module; + +pub struct ExtBuilder { + transaction_base_fee: u64, + transaction_byte_fee: u64, +} +impl Default for ExtBuilder { + fn default() -> Self { + Self { + transaction_base_fee: 0, + transaction_byte_fee: 0, + } + } +} +impl ExtBuilder { + pub fn transaction_base_fee(mut self, transaction_base_fee: u64) -> Self { + self.transaction_base_fee = transaction_base_fee; + self + } + pub fn transaction_byte_fee(mut self, transaction_byte_fee: u64) -> Self { + self.transaction_byte_fee = transaction_byte_fee; + self + } + pub fn build(self) -> runtime_io::TestExternalities { + let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; + t.extend(GenesisConfig:: { + transaction_base_fee: self.transaction_base_fee, + transaction_byte_fee: self.transaction_byte_fee, + }.build_storage().unwrap().0); + t.into() + } +} diff --git a/substrate/srml/fees/src/tests.rs b/substrate/srml/fees/src/tests.rs new file mode 100644 index 0000000000..a1c9657062 --- /dev/null +++ b/substrate/srml/fees/src/tests.rs @@ -0,0 +1,174 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Tests for the module. + +#![cfg(test)] + +use super::*; +use runtime_io::with_externalities; +use runtime_primitives::traits::{OnFinalise}; +use system::{EventRecord, Phase}; + +use mock::{Fees, System, ExtBuilder}; +use srml_support::{assert_ok, assert_err}; + +#[test] +fn charge_base_bytes_fee_should_work() { + with_externalities( + &mut ExtBuilder::default() + .transaction_base_fee(3) + .transaction_byte_fee(5) + .build(), + || { + System::set_extrinsic_index(0); + assert_ok!(Fees::charge_base_bytes_fee(&0, 7)); + assert_eq!(Fees::current_transaction_fee(0), 3 + 5 * 7); + + System::set_extrinsic_index(1); + assert_ok!(Fees::charge_base_bytes_fee(&0, 11)); + assert_eq!(Fees::current_transaction_fee(1), 3 + 5 * 11); + + System::set_extrinsic_index(3); + assert_ok!(Fees::charge_base_bytes_fee(&0, 13)); + assert_eq!(Fees::current_transaction_fee(3), 3 + 5 * 13); + } + ); +} + +#[test] +fn charge_base_bytes_fee_should_not_work_if_bytes_fee_overflow() { + // bytes fee overflows. + with_externalities( + &mut ExtBuilder::default() + .transaction_base_fee(0) + .transaction_byte_fee(u64::max_value()) + .build(), + || { + System::set_extrinsic_index(0); + assert_err!( + Fees::charge_base_bytes_fee(&0, 2), + "bytes fee overflow" + ); + } + ); +} + +#[test] +fn charge_base_bytes_fee_should_not_work_if_overall_fee_overflow() { + // bytes fee doesn't overflow, but overall fee (bytes_fee + base_fee) does + with_externalities( + &mut ExtBuilder::default() + .transaction_base_fee(u64::max_value()) + .transaction_byte_fee(1) + .build(), + || { + System::set_extrinsic_index(0); + assert_err!( + Fees::charge_base_bytes_fee(&0, 1), + "bytes fee overflow" + ); + } + ); +} + +#[test] +fn charge_fee_should_work() { + with_externalities(&mut ExtBuilder::default().build(), || { + System::set_extrinsic_index(0); + assert_ok!(Fees::charge_fee(&0, 2)); + assert_ok!(Fees::charge_fee(&0, 3)); + assert_eq!(Fees::current_transaction_fee(0), 2 + 3); + + System::set_extrinsic_index(2); + assert_ok!(Fees::charge_fee(&0, 5)); + assert_ok!(Fees::charge_fee(&0, 7)); + assert_eq!(Fees::current_transaction_fee(2), 5 + 7); + }); +} + +#[test] +fn charge_fee_when_overflow_should_not_work() { + with_externalities(&mut ExtBuilder::default().build(), || { + System::set_extrinsic_index(0); + assert_ok!(Fees::charge_fee(&0, u64::max_value())); + assert_err!(Fees::charge_fee(&0, 1), "fee got overflow after charge"); + }); +} + +#[test] +fn refund_fee_should_work() { + with_externalities(&mut ExtBuilder::default().build(), || { + System::set_extrinsic_index(0); + assert_ok!(Fees::charge_fee(&0, 5)); + assert_ok!(Fees::refund_fee(&0, 3)); + assert_eq!(Fees::current_transaction_fee(0), 5 - 3); + }); +} + +#[test] +fn refund_fee_when_underflow_should_not_work() { + with_externalities(&mut ExtBuilder::default().build(), || { + System::set_extrinsic_index(0); + assert_err!(Fees::refund_fee(&0, 1), "fee got underflow after refund"); + }); +} + +#[test] +fn on_finalise_should_work() { + with_externalities(&mut ExtBuilder::default().build(), || { + // charge fees in extrinsic index 3 + System::set_extrinsic_index(3); + assert_ok!(Fees::charge_fee(&0, 1)); + System::note_applied_extrinsic(&Ok(()), 1); + // charge fees in extrinsic index 5 + System::set_extrinsic_index(5); + assert_ok!(Fees::charge_fee(&0, 1)); + System::note_applied_extrinsic(&Ok(()), 1); + System::note_finished_extrinsics(); + + // `current_transaction_fee`, `extrinsic_count` should be as expected. + assert_eq!(Fees::current_transaction_fee(3), 1); + assert_eq!(Fees::current_transaction_fee(5), 1); + assert_eq!(System::extrinsic_count(), 5 + 1); + + >::on_finalise(1); + + // When finalised, `CurrentTransactionFee` records should be cleared. + assert_eq!(Fees::current_transaction_fee(3), 0); + assert_eq!(Fees::current_transaction_fee(5), 0); + + // When finalised, if any fee charged in a extrinsic, a `Charged` event should be deposited + // for it. + let fee_charged_events: Vec> = System::events() + .into_iter() + .filter(|e| match e.event { + mock::TestEvent::fees(RawEvent::Charged(_, _)) => return true, + _ => return false, + }) + .collect(); + assert_eq!(fee_charged_events, vec![ + EventRecord { + phase: Phase::Finalization, + event: RawEvent::Charged(3, 1).into(), + }, + EventRecord { + phase: Phase::Finalization, + event: RawEvent::Charged(5, 1).into(), + }, + ]); + }); +} diff --git a/substrate/srml/staking/src/mock.rs b/substrate/srml/staking/src/mock.rs index 5fc411e609..a76c0fed85 100644 --- a/substrate/srml/staking/src/mock.rs +++ b/substrate/srml/staking/src/mock.rs @@ -104,8 +104,6 @@ pub fn new_test_ext( } else { vec![(10, balance_factor), (20, balance_factor)] }, - transaction_base_fee: 0, - transaction_byte_fee: 0, existential_deposit: ext_deposit, transfer_fee: 0, creation_fee: 0, diff --git a/substrate/srml/system/src/lib.rs b/substrate/srml/system/src/lib.rs index 2f3ea10457..8f3fd1df8c 100644 --- a/substrate/srml/system/src/lib.rs +++ b/substrate/srml/system/src/lib.rs @@ -273,6 +273,11 @@ impl Module { storage::unhashed::get(well_known_keys::EXTRINSIC_INDEX) } + /// Gets extrinsics count. + pub fn extrinsic_count() -> u32 { + >::get().unwrap_or_default() + } + /// Gets a total length of all executed extrinsics. pub fn all_extrinsics_len() -> u32 { >::get().unwrap_or_default() diff --git a/substrate/srml/treasury/src/lib.rs b/substrate/srml/treasury/src/lib.rs index a4fd741bb3..ad861ac7ec 100644 --- a/substrate/srml/treasury/src/lib.rs +++ b/substrate/srml/treasury/src/lib.rs @@ -303,8 +303,6 @@ mod tests { let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; t.extend(balances::GenesisConfig::{ balances: vec![(0, 100), (1, 99), (2, 1)], - transaction_base_fee: 0, - transaction_byte_fee: 0, transfer_fee: 0, creation_fee: 0, existential_deposit: 0,