From 590c1a0b28c8734f2b5a215e9368f6ea1f907a96 Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Mon, 28 May 2018 20:04:53 +0200 Subject: [PATCH 1/3] Apply inversion of control to contract module. --- substrate/runtime/staking/src/contract.rs | 102 +++++++++++----------- substrate/runtime/staking/src/lib.rs | 36 +++++++- 2 files changed, 84 insertions(+), 54 deletions(-) diff --git a/substrate/runtime/staking/src/contract.rs b/substrate/runtime/staking/src/contract.rs index ed6353dd461a4..c8a63c75b2c3b 100644 --- a/substrate/runtime/staking/src/contract.rs +++ b/substrate/runtime/staking/src/contract.rs @@ -21,12 +21,23 @@ use codec::Slicable; use rstd::prelude::*; use sandbox; -use {AccountDb, Module, OverlayAccountDb, Trait}; use parity_wasm::elements::{self, External, MemoryType}; use pwasm_utils; use pwasm_utils::rules; +pub trait Ext { + type AccountId: Slicable + Clone; + type Balance: Slicable; + + // TODO: Convert input vectors to slices? + fn get_storage(&self, key: &[u8]) -> Option>; + fn set_storage(&mut self, key: &[u8], value: Option>); + // TODO: Return the address of the created contract. + fn create(&mut self, code: &[u8], value: Self::Balance); + fn transfer(&mut self, to: &Self::AccountId, value: Self::Balance); +} + /// Error that can occur while preparing or executing wasm smart-contract. #[derive(Debug, PartialEq, Eq)] pub enum Error { @@ -67,26 +78,22 @@ pub enum Error { Memory, } -struct ExecutionExt<'a, 'b: 'a, T: Trait + 'b> { - account_db: &'a mut OverlayAccountDb<'b, T>, - account: T::AccountId, +struct Runtime<'a, T: Ext + 'a> { + ext: &'a mut T, memory: sandbox::Memory, gas_used: u64, gas_limit: u64, } -impl<'a, 'b: 'a, T: Trait> ExecutionExt<'a, 'b, T> { - fn account(&self) -> &T::AccountId { - &self.account - } - fn account_db(&self) -> &OverlayAccountDb { - self.account_db - } - fn account_db_mut(&mut self) -> &mut OverlayAccountDb<'b, T> { - self.account_db - } +impl<'a, T: Ext + 'a> Runtime<'a, T> { fn memory(&self) -> &sandbox::Memory { &self.memory } + fn ext(&self) -> &T { + self.ext + } + fn ext_mut(&mut self) -> &mut T { + self.ext + } /// Account for used gas. /// /// Returns `false` if there is not enough gas or addition of the specified @@ -105,10 +112,9 @@ impl<'a, 'b: 'a, T: Trait> ExecutionExt<'a, 'b, T> { } } -pub(crate) fn execute<'a, 'b: 'a, T: Trait>( +pub(crate) fn execute<'a, T: Ext>( code: &[u8], - account: &T::AccountId, - account_db: &'a mut OverlayAccountDb<'b, T>, + ext: &'a mut T, gas_limit: u64, ) -> Result<(), Error> { // ext_gas(amount: u32) @@ -116,7 +122,7 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( // Account for used gas. Traps if gas used is greater than gas limit. // // - amount: How much gas is used. - fn ext_gas(e: &mut ExecutionExt, args: &[sandbox::TypedValue]) -> Result { + fn ext_gas(e: &mut Runtime, args: &[sandbox::TypedValue]) -> Result { let amount = args[0].as_i32().unwrap() as u32; if e.charge_gas(amount as u64) { Ok(sandbox::ReturnValue::Unit) @@ -135,7 +141,10 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( // at the given location will be removed. // - value_ptr: pointer into the linear memory // where the value to set is placed. If `value_non_null` is set to 0, then this parameter is ignored. - fn ext_set_storage(e: &mut ExecutionExt, args: &[sandbox::TypedValue]) -> Result { + fn ext_set_storage( + e: &mut Runtime, + args: &[sandbox::TypedValue], + ) -> Result { let location_ptr = args[0].as_i32().unwrap() as u32; let value_non_null = args[1].as_i32().unwrap() as u32; let value_ptr = args[2].as_i32().unwrap() as u32; @@ -143,17 +152,18 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( let mut location = [0; 32]; e.memory().get(location_ptr, &mut location)?; - let account = e.account().clone(); - if value_non_null != 0 { + let value = if value_non_null != 0 { let mut value = [0; 32]; e.memory().get(value_ptr, &mut value)?; - e.account_db_mut() - .set_storage(&account, location.to_vec(), Some(value.to_vec())); + Some(value.to_vec()) } else { - e.account_db_mut() - .set_storage(&account, location.to_vec(), None); - } + None + }; + e.ext_mut().set_storage( + &location, + value, + ); Ok(sandbox::ReturnValue::Unit) } @@ -168,15 +178,14 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( // memory where the location of the requested value is placed. // - dest_ptr: pointer where contents of the specified storage location // should be placed. - fn ext_get_storage(e: &mut ExecutionExt, args: &[sandbox::TypedValue]) -> Result { + fn ext_get_storage(e: &mut Runtime, args: &[sandbox::TypedValue]) -> Result { let location_ptr = args[0].as_i32().unwrap() as u32; let dest_ptr = args[1].as_i32().unwrap() as u32; let mut location = [0; 32]; e.memory().get(location_ptr, &mut location)?; - let account = e.account().clone(); - if let Some(value) = e.account_db_mut().get_storage(&account, &location) { + if let Some(value) = e.ext().get_storage(&location) { e.memory().set(dest_ptr, &value)?; } else { e.memory().set(dest_ptr, &[0u8; 32])?; @@ -185,8 +194,8 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( Ok(sandbox::ReturnValue::Unit) } - // ext_transfer(transfer_to: u32, transfer_to_len: u32, value: u32) - fn ext_transfer(e: &mut ExecutionExt, args: &[sandbox::TypedValue]) -> Result { + // ext_transfer(transfer_to: u32, transfer_to_len: u32, value_ptr: u32, value_len: u32) + fn ext_transfer(e: &mut Runtime, args: &[sandbox::TypedValue]) -> Result { let transfer_to_ptr = args[0].as_i32().unwrap() as u32; let transfer_to_len = args[1].as_i32().unwrap() as u32; let value_ptr = args[2].as_i32().unwrap() as u32; @@ -202,19 +211,13 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( e.memory().get(value_ptr, &mut value_buf)?; let value = T::Balance::decode(&mut &value_buf[..]).unwrap(); - let account = e.account().clone(); - if let Some(commit_state) = - Module::::effect_transfer(&account, &transfer_to, value, e.account_db()) - .map_err(|_| sandbox::Error::Execution)? - { - e.account_db_mut().merge(commit_state); - } + e.ext_mut().transfer(&transfer_to, value); Ok(sandbox::ReturnValue::Unit) } - // ext_create(code_ptr: u32, code_len: u32, value: u32) - fn ext_create(e: &mut ExecutionExt, args: &[sandbox::TypedValue]) -> Result { + // ext_create(code_ptr: u32, code_len: u32, value_ptr: u32, value_len: u32) + fn ext_create(e: &mut Runtime, args: &[sandbox::TypedValue]) -> Result { let code_ptr = args[0].as_i32().unwrap() as u32; let code_len = args[1].as_i32().unwrap() as u32; let value_ptr = args[2].as_i32().unwrap() as u32; @@ -229,13 +232,7 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( code.resize(code_len as usize, 0u8); e.memory().get(code_ptr, &mut code)?; - let account = e.account().clone(); - if let Some(commit_state) = - Module::::effect_create(&account, &code, value, e.account_db()) - .map_err(|_| sandbox::Error::Execution)? - { - e.account_db_mut().merge(commit_state); - } + e.ext_mut().create(&code, value); Ok(sandbox::ReturnValue::Unit) } @@ -254,19 +251,18 @@ pub(crate) fn execute<'a, 'b: 'a, T: Trait>( // TODO: ext_balance, ext_address, ext_callvalue, etc. imports.add_memory("env", "memory", memory.clone()); - let mut exec_ext = ExecutionExt { - account: account.clone(), - account_db, + let mut runtime = Runtime { + ext, memory, gas_limit, gas_used: 0, }; let mut instance = - sandbox::Instance::new(&instrumented_code, &imports, &mut exec_ext) + sandbox::Instance::new(&instrumented_code, &imports, &mut runtime) .map_err(|_| Error::Instantiate)?; instance - .invoke(b"call", &[], &mut exec_ext) + .invoke(b"call", &[], &mut runtime) .map(|_| ()) .map_err(|_| Error::Invoke) } @@ -448,7 +444,7 @@ mod tests { use wabt; use runtime_io::with_externalities; use mock::{Staking, Test, new_test_ext}; - use ::{CodeOf, ContractAddressFor, DirectAccountDb, FreeBalance, StorageMap}; + use ::{AccountDb, Trait, CodeOf, ContractAddressFor, DirectAccountDb, FreeBalance, StorageMap}; impl fmt::Debug for PreparedContract { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { diff --git a/substrate/runtime/staking/src/lib.rs b/substrate/runtime/staking/src/lib.rs index e63b3de7d7e14..f4361fc22bb98 100644 --- a/substrate/runtime/staking/src/lib.rs +++ b/substrate/runtime/staking/src/lib.rs @@ -629,7 +629,11 @@ impl Module { } else { // TODO: logging (logs are just appended into a notable storage-based vector and cleared every // block). - contract::execute(&dest_code, dest, &mut overlay, gas_limit).is_ok() + let mut staking_ext = StakingExt { + account_db: &mut overlay, + account: dest.clone(), + }; + contract::execute(&dest_code, &mut staking_ext, gas_limit).is_ok() }; Ok(if should_commit { @@ -640,6 +644,36 @@ impl Module { } } +struct StakingExt<'a, 'b: 'a, T: Trait + 'b> { + account_db: &'a mut OverlayAccountDb<'b, T>, + account: T::AccountId, +} +impl<'a, 'b: 'a, T: Trait> contract::Ext for StakingExt<'a, 'b, T> { + type AccountId = T::AccountId; + type Balance = T::Balance; + + fn get_storage(&self, key: &[u8]) -> Option> { + self.account_db.get_storage(&self.account, key) + } + fn set_storage(&mut self, key: &[u8], value: Option>) { + self.account_db.set_storage(&self.account, key.to_vec(), value); + } + fn create(&mut self, code: &[u8], value: Self::Balance) { + if let Ok(Some(commit_state)) = + Module::::effect_create(&self.account, code, value, self.account_db) + { + self.account_db.merge(commit_state); + } + } + fn transfer(&mut self, to: &Self::AccountId, value: Self::Balance) { + if let Ok(Some(commit_state)) = + Module::::effect_transfer(&self.account, to, value, self.account_db) + { + self.account_db.merge(commit_state); + } + } +} + impl MakePayment for Module { fn make_payment(transactor: &T::AccountId, encoded_len: usize) -> bool { let b = Self::free_balance(transactor); From 67c4845b020401c404793bd9577c653c6378e958 Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Tue, 29 May 2018 16:18:47 +0200 Subject: [PATCH 2/3] Extract contract to it's own crate. --- Cargo.lock | 17 +- Cargo.toml | 1 + substrate/runtime/contract/Cargo.toml | 25 ++ .../src/contract.rs => contract/src/lib.rs} | 220 +++++++++++------- substrate/runtime/staking/Cargo.toml | 7 +- substrate/runtime/staking/src/lib.rs | 140 ++++++++++- substrate/runtime/staking/src/mock.rs | 79 ------- 7 files changed, 302 insertions(+), 187 deletions(-) create mode 100644 substrate/runtime/contract/Cargo.toml rename substrate/runtime/{staking/src/contract.rs => contract/src/lib.rs} (84%) delete mode 100644 substrate/runtime/staking/src/mock.rs diff --git a/Cargo.lock b/Cargo.lock index 5b8d05d04ef5a..8209509e4fab5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2071,6 +2071,19 @@ dependencies = [ "substrate-runtime-system 0.1.0", ] +[[package]] +name = "substrate-runtime-contract" +version = "0.1.0" +dependencies = [ + "assert_matches 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pwasm-utils 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-runtime-sandbox 0.1.0", + "substrate-runtime-std 0.1.0", + "wabt 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "substrate-runtime-council" version = "0.1.0" @@ -2193,16 +2206,14 @@ dependencies = [ name = "substrate-runtime-staking" version = "0.1.0" dependencies = [ - "assert_matches 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pwasm-utils 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 0.1.0", "serde 1.0.63 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", "substrate-runtime-consensus 0.1.0", + "substrate-runtime-contract 0.1.0", "substrate-runtime-io 0.1.0", "substrate-runtime-primitives 0.1.0", "substrate-runtime-sandbox 0.1.0", diff --git a/Cargo.toml b/Cargo.toml index d58205e310b19..b3042535e5e71 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,6 +43,7 @@ members = [ "substrate/runtime-std", "substrate/runtime-support", "substrate/runtime/consensus", + "substrate/runtime/contract", "substrate/runtime/council", "substrate/runtime/democracy", "substrate/runtime/executive", diff --git a/substrate/runtime/contract/Cargo.toml b/substrate/runtime/contract/Cargo.toml new file mode 100644 index 0000000000000..30c3564063b02 --- /dev/null +++ b/substrate/runtime/contract/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "substrate-runtime-contract" +version = "0.1.0" +authors = ["Parity Technologies "] + +[dependencies] +substrate-codec = { path = "../../codec", default_features = false } +substrate-runtime-std = { path = "../../runtime-std", default_features = false } +substrate-runtime-sandbox = { path = "../../runtime-sandbox", default_features = false } +parity-wasm = { version = "0.30", default_features = false } +pwasm-utils = { version = "0.2", default_features = false } + +[dev-dependencies] +wabt = "0.1.7" +assert_matches = "1.1" + +[features] +default = ["std"] +std = [ + "substrate-codec/std", + "substrate-runtime-std/std", + "substrate-runtime-sandbox/std", + "parity-wasm/std", + "pwasm-utils/std", +] diff --git a/substrate/runtime/staking/src/contract.rs b/substrate/runtime/contract/src/lib.rs similarity index 84% rename from substrate/runtime/staking/src/contract.rs rename to substrate/runtime/contract/src/lib.rs index c8a63c75b2c3b..6b8f63b974cc6 100644 --- a/substrate/runtime/staking/src/contract.rs +++ b/substrate/runtime/contract/src/lib.rs @@ -12,29 +12,61 @@ // 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 . +// along with Substrate. If not, see . -//! Smart-contract execution module. +//! Crate for executing smart-contracts. +//! +//! It provides an means for executing contracts represented in WebAssembly (Wasm for short). +//! Contracts are able to create other contracts, transfer funds to each other and operate on a simple key-value storage. -// TODO: Extract to it's own crate? +#![cfg_attr(not(feature = "std"), no_std)] +#![warn(missing_docs)] + +extern crate parity_wasm; +extern crate pwasm_utils; + +extern crate substrate_runtime_std as rstd; +extern crate substrate_runtime_sandbox as sandbox; +extern crate substrate_codec as codec; + +#[cfg(test)] +#[macro_use] +extern crate assert_matches; + +#[cfg(test)] +extern crate wabt; -use codec::Slicable; use rstd::prelude::*; -use sandbox; +use codec::Slicable; use parity_wasm::elements::{self, External, MemoryType}; -use pwasm_utils; use pwasm_utils::rules; +/// An interface that provides an access to the external environment in which the +/// smart-contract is executed. +/// +/// This interface is specialised to an account of the executing code, so all +/// operations are implicitly performed on that account. pub trait Ext { + /// The indentifier of an account. type AccountId: Slicable + Clone; + /// The balance of an account. type Balance: Slicable; - // TODO: Convert input vectors to slices? + /// Returns the storage entry of the executing account by the given key. fn get_storage(&self, key: &[u8]) -> Option>; + + /// Sets the storage entry by the given key to the specified value. fn set_storage(&mut self, key: &[u8], value: Option>); + // TODO: Return the address of the created contract. + /// Create a new account for a contract. + /// + /// The newly created account will be associated with the `code`. `value` specifies the amount of value + /// transfered from this to the newly created account. fn create(&mut self, code: &[u8], value: Self::Balance); + + /// Transfer some funds to the specified account. fn transfer(&mut self, to: &Self::AccountId, value: Self::Balance); } @@ -112,7 +144,8 @@ impl<'a, T: Ext + 'a> Runtime<'a, T> { } } -pub(crate) fn execute<'a, T: Ext>( +/// Execute the given code as a contract. +pub fn execute<'a, T: Ext>( code: &[u8], ext: &'a mut T, gas_limit: u64, @@ -442,9 +475,51 @@ mod tests { use super::*; use std::fmt; use wabt; - use runtime_io::with_externalities; - use mock::{Staking, Test, new_test_ext}; - use ::{AccountDb, Trait, CodeOf, ContractAddressFor, DirectAccountDb, FreeBalance, StorageMap}; + use std::collections::HashMap; + + #[derive(Debug, PartialEq, Eq)] + struct CreateEntry { + code: Vec, + endownment: u64, + } + #[derive(Debug, PartialEq, Eq)] + struct TransferEntry { + to: u64, + value: u64, + } + #[derive(Default)] + struct MockExt { + storage: HashMap, Vec>, + creates: Vec, + transfers: Vec, + } + impl Ext for MockExt { + type AccountId = u64; + type Balance = u64; + + fn get_storage(&self, key: &[u8]) -> Option> { + self.storage.get(key).cloned() + } + fn set_storage(&mut self, key: &[u8], value: Option>) { + *self.storage.entry(key.to_vec()).or_insert(Vec::new()) = value.unwrap_or(Vec::new()); + } + fn create(&mut self, code: &[u8], value: Self::Balance) { + self.creates.push( + CreateEntry { + code: code.to_vec(), + endownment: value, + } + ); + } + fn transfer(&mut self, to: &Self::AccountId, value: Self::Balance) { + self.transfers.push( + TransferEntry { + to: *to, + value, + } + ); + } + } impl fmt::Debug for PreparedContract { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { @@ -540,19 +615,13 @@ mod tests { fn contract_transfer() { let code_transfer = wabt::wat2wasm(CODE_TRANSFER).unwrap(); - with_externalities(&mut new_test_ext(1, 3, 1, false), || { - >::insert(0, 111); - >::insert(1, 0); - >::insert(2, 30); + let mut mock_ext = MockExt::default(); + execute(&code_transfer, &mut mock_ext, 50_000).unwrap(); - >::insert(1, code_transfer.to_vec()); - - assert_ok!(Staking::transfer(&0, 1, 11)); - - assert_eq!(Staking::balance(&0), 100); - assert_eq!(Staking::balance(&1), 5); - assert_eq!(Staking::balance(&2), 36); - }); + assert_eq!(&mock_ext.transfers, &[TransferEntry { + to: 2, + value: 6, + }]); } /// Returns code that uses `ext_create` runtime call. @@ -605,22 +674,15 @@ r#" let code_transfer = wabt::wat2wasm(CODE_TRANSFER).unwrap(); let code_create = wabt::wat2wasm(&code_create(&code_transfer)).unwrap(); - with_externalities(&mut new_test_ext(1, 3, 1, false), || { - >::insert(0, 111); - >::insert(1, 0); - - >::insert(1, code_create.to_vec()); - - // When invoked, the contract at address `1` must create a contract with 'transfer' code. - assert_ok!(Staking::transfer(&0, 1, 11)); - - let derived_address = - ::DetermineContractAddress::contract_address_for(&code_transfer, &1); + let mut mock_ext = MockExt::default(); + execute(&code_create, &mut mock_ext, 50_000).unwrap(); - assert_eq!(Staking::balance(&0), 100); - assert_eq!(Staking::balance(&1), 8); - assert_eq!(Staking::balance(&derived_address), 3); - }); + assert_eq!(&mock_ext.creates, &[ + CreateEntry { + code: code_transfer, + endownment: 3, + } + ]); } /// This code a value from the storage, increment it's first byte @@ -665,32 +727,25 @@ r#" fn contract_adder() { let code_adder = wabt::wat2wasm(CODE_ADDER).unwrap(); - with_externalities(&mut new_test_ext(1, 3, 1, false), || { - >::insert(0, 111); - >::insert(1, 0); - >::insert(1, code_adder); - - assert_ok!(Staking::transfer(&0, 1, 1)); - assert_ok!(Staking::transfer(&0, 1, 1)); - - let storage_addr = [0x01u8; 32]; - let value = - AccountDb::::get_storage(&DirectAccountDb, &1, &storage_addr).unwrap(); - - assert_eq!( - &value, - &[ - 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - ] - ); - }); + let mut mock_ext = MockExt::default(); + + // Execute the test twice. + execute(&code_adder, &mut mock_ext, 50_000).unwrap(); + execute(&code_adder, &mut mock_ext, 50_000).unwrap(); + + let storage_addr = [0x01u8; 32]; + assert_eq!( + &mock_ext.storage.get(&storage_addr[..]).unwrap()[..], + &[ + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + ][..], + ); } - // This code should make 100_000 iterations so it should - // consume more than 100_000 units of gas. + // This code should make 100_000 iterations. const CODE_LOOP: &str = r#" (module @@ -722,21 +777,16 @@ r#" fn contract_out_of_gas() { let code_loop = wabt::wat2wasm(CODE_LOOP).unwrap(); - with_externalities(&mut new_test_ext(1, 3, 1, false), || { - // Set initial balances. - >::insert(0, 111); - >::insert(1, 0); - - >::insert(1, code_loop.to_vec()); - - // Transfer some balance from 0 to 1. This will trigger execution - // of the smart-contract code at address 1. - assert_ok!(Staking::transfer(&0, 1, 11)); + let mut mock_ext = MockExt::default(); - // The balance should remain unchanged since we are expecting - // out-of-gas error which will revert transfer. - assert_eq!(Staking::balance(&0), 111); - }); + assert_matches!( + execute(&code_loop, &mut mock_ext, 900_000), + Err(_) + ); + assert_matches!( + execute(&code_loop, &mut mock_ext, 937_000), + Ok(_) + ); } const CODE_MEM: &str = @@ -755,19 +805,11 @@ r#" fn contract_internal_mem() { let code_mem = wabt::wat2wasm(CODE_MEM).unwrap(); - with_externalities(&mut new_test_ext(1, 3, 1, false), || { - // Set initial balances. - >::insert(0, 111); - >::insert(1, 0); - - >::insert(1, code_mem.to_vec()); + let mut mock_ext = MockExt::default(); - // Transfer some balance from 0 to 1. - assert_ok!(Staking::transfer(&0, 1, 11)); - - // The balance should remain unchanged since we are expecting - // validation error caused by internal memory declaration. - assert_eq!(Staking::balance(&0), 111); - }); + assert_matches!( + execute(&code_mem, &mut mock_ext, 100_000), + Err(_) + ); } } diff --git a/substrate/runtime/staking/Cargo.toml b/substrate/runtime/staking/Cargo.toml index 9c81d072fee73..0f9274198a544 100644 --- a/substrate/runtime/staking/Cargo.toml +++ b/substrate/runtime/staking/Cargo.toml @@ -10,6 +10,7 @@ safe-mix = { path = "../../../safe-mix", default_features = false} substrate-keyring = { path = "../../keyring", optional = true } substrate-codec = { path = "../../codec", default_features = false } substrate-primitives = { path = "../../primitives", default_features = false } +substrate-runtime-contract = { path = "../contract", default_features = false } substrate-runtime-std = { path = "../../runtime-std", default_features = false } substrate-runtime-io = { path = "../../runtime-io", default_features = false } substrate-runtime-sandbox = { path = "../../runtime-sandbox", default_features = false } @@ -18,12 +19,9 @@ substrate-runtime-primitives = { path = "../primitives", default_features = fals substrate-runtime-consensus = { path = "../consensus", default_features = false } substrate-runtime-system = { path = "../system", default_features = false } substrate-runtime-session = { path = "../session", default_features = false } -parity-wasm = { version = "0.30", default_features = false } -pwasm-utils = { version = "0.2", default_features = false } [dev-dependencies] wabt = "0.1.7" -assert_matches = "1.1" [features] default = ["std"] @@ -33,6 +31,7 @@ std = [ "substrate-keyring", "substrate-codec/std", "substrate-primitives/std", + "substrate-runtime-contract/std", "substrate-runtime-std/std", "substrate-runtime-io/std", "substrate-runtime-sandbox/std", @@ -40,6 +39,4 @@ std = [ "substrate-runtime-primitives/std", "substrate-runtime-session/std", "substrate-runtime-system/std", - "pwasm-utils/std", - "parity-wasm/std", ] diff --git a/substrate/runtime/staking/src/lib.rs b/substrate/runtime/staking/src/lib.rs index f4361fc22bb98..418ed28132446 100644 --- a/substrate/runtime/staking/src/lib.rs +++ b/substrate/runtime/staking/src/lib.rs @@ -24,10 +24,6 @@ extern crate serde; #[cfg(test)] extern crate wabt; -#[cfg(test)] -#[macro_use] -extern crate assert_matches; - #[macro_use] extern crate substrate_runtime_support as runtime_support; @@ -36,14 +32,13 @@ extern crate substrate_runtime_std as rstd; extern crate substrate_codec as codec; extern crate substrate_primitives; +extern crate substrate_runtime_contract as contract; extern crate substrate_runtime_io as runtime_io; extern crate substrate_runtime_primitives as primitives; extern crate substrate_runtime_consensus as consensus; extern crate substrate_runtime_sandbox as sandbox; extern crate substrate_runtime_session as session; extern crate substrate_runtime_system as system; -extern crate pwasm_utils; -extern crate parity_wasm; #[cfg(test)] use std::fmt::Debug; use rstd::prelude::*; @@ -55,10 +50,6 @@ use runtime_support::{StorageValue, StorageMap, Parameter}; use runtime_support::dispatch::Result; use primitives::traits::{Zero, One, Bounded, RefInto, SimpleArithmetic, Executable, MakePayment, As}; -mod contract; -#[cfg(test)] -mod mock; - #[cfg(test)] #[derive(Debug, PartialEq, Clone)] pub enum LockStatus { @@ -793,7 +784,62 @@ impl primitives::BuildExternalities for GenesisConfig { mod tests { use super::*; use runtime_io::with_externalities; - use mock::*; + use substrate_primitives::H256; + use primitives::BuildExternalities; + use primitives::traits::{HasPublicAux, Identity}; + use primitives::testing::{Digest, Header}; + + pub struct Test; + impl HasPublicAux for Test { + type PublicAux = u64; + } + impl consensus::Trait for Test { + type PublicAux = ::PublicAux; + type SessionKey = u64; + } + impl system::Trait for Test { + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = runtime_io::BlakeTwo256; + type Digest = Digest; + type AccountId = u64; + type Header = Header; + } + impl session::Trait for Test { + type ConvertAccountIdToSessionKey = Identity; + } + impl Trait for Test { + type Balance = u64; + type DetermineContractAddress = DummyContractAddressFor; + } + + fn new_test_ext(session_length: u64, sessions_per_era: u64, current_era: u64, monied: bool) -> runtime_io::TestExternalities { + let mut t = system::GenesisConfig::::default().build_externalities(); + t.extend(consensus::GenesisConfig::{ + code: vec![], + authorities: vec![], + }.build_externalities()); + t.extend(session::GenesisConfig::{ + session_length, + validators: vec![10, 20], + }.build_externalities()); + t.extend(GenesisConfig::{ + sessions_per_era, + current_era, + balances: if monied { vec![(1, 10), (2, 20), (3, 30), (4, 40)] } else { vec![] }, + intentions: vec![], + validator_count: 2, + bonding_duration: 3, + transaction_base_fee: 0, + transaction_byte_fee: 0, + }.build_externalities()); + t + } + + type System = system::Module; + type Session = session::Module; + type Staking = Module; #[test] fn staking_should_work() { @@ -1077,4 +1123,76 @@ mod tests { assert_eq!(Staking::free_balance(&2), 42); }); } + + const CODE_TRANSFER: &str = r#" +(module + ;; ext_transfer(transfer_to: u32, transfer_to_len: u32, value_ptr: u32, value_len: u32) + (import "env" "ext_transfer" (func $ext_transfer (param i32 i32 i32 i32))) + (import "env" "memory" (memory 1 1)) + (func (export "call") + (call $ext_transfer + (i32.const 4) ;; Pointer to "Transfer to" address. + (i32.const 8) ;; Length of "Transfer to" address. + (i32.const 12) ;; Pointer to the buffer with value to transfer + (i32.const 8) ;; Length of the buffer with value to transfer. + ) + ) + ;; Destination AccountId to transfer the funds. + ;; Represented by u64 (8 bytes long) in little endian. + (data (i32.const 4) "\02\00\00\00\00\00\00\00") + ;; Amount of value to transfer. + ;; Represented by u64 (8 bytes long) in little endian. + (data (i32.const 12) "\06\00\00\00\00\00\00\00") +) +"#; + + #[test] + fn contract_transfer() { + let code_transfer = wabt::wat2wasm(CODE_TRANSFER).unwrap(); + + with_externalities(&mut new_test_ext(1, 3, 1, false), || { + >::insert(0, 111); + >::insert(1, 0); + >::insert(2, 30); + + >::insert(1, code_transfer.to_vec()); + + assert_ok!(Staking::transfer(&0, 1, 11)); + + assert_eq!(Staking::balance(&0), 100); + assert_eq!(Staking::balance(&1), 5); + assert_eq!(Staking::balance(&2), 36); + }); + } + + const CODE_MEM: &str = +r#" +(module + ;; Internal memory is not allowed. + (memory 1 1) + (func (export "call") + nop + ) +) +"#; + + #[test] + fn contract_internal_mem() { + let code_mem = wabt::wat2wasm(CODE_MEM).unwrap(); + + with_externalities(&mut new_test_ext(1, 3, 1, false), || { + // Set initial balances. + >::insert(0, 111); + >::insert(1, 0); + + >::insert(1, code_mem.to_vec()); + + // Transfer some balance from 0 to 1. + assert_ok!(Staking::transfer(&0, 1, 11)); + + // The balance should remain unchanged since we are expecting + // validation error caused by internal memory declaration. + assert_eq!(Staking::balance(&0), 111); + }); + } } diff --git a/substrate/runtime/staking/src/mock.rs b/substrate/runtime/staking/src/mock.rs deleted file mode 100644 index 7a805a6c02a72..0000000000000 --- a/substrate/runtime/staking/src/mock.rs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2018 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 primitives::BuildExternalities; -use primitives::traits::{HasPublicAux, Identity}; -use primitives::testing::{Digest, Header}; -use substrate_primitives::H256; -use runtime_io; -use {DummyContractAddressFor, GenesisConfig, Module, Trait, consensus, session, system}; - -pub struct Test; -impl HasPublicAux for Test { - type PublicAux = u64; -} -impl consensus::Trait for Test { - type PublicAux = ::PublicAux; - type SessionKey = u64; -} -impl system::Trait for Test { - type Index = u64; - type BlockNumber = u64; - type Hash = H256; - type Hashing = runtime_io::BlakeTwo256; - type Digest = Digest; - type AccountId = u64; - type Header = Header; -} -impl session::Trait for Test { - type ConvertAccountIdToSessionKey = Identity; -} -impl Trait for Test { - type Balance = u64; - type DetermineContractAddress = DummyContractAddressFor; -} - -pub fn new_test_ext(session_length: u64, sessions_per_era: u64, current_era: u64, monied: bool) -> runtime_io::TestExternalities { - let mut t = system::GenesisConfig::::default().build_externalities(); - t.extend(consensus::GenesisConfig::{ - code: vec![], - authorities: vec![], - }.build_externalities()); - t.extend(session::GenesisConfig::{ - session_length, - validators: vec![10, 20], - }.build_externalities()); - t.extend(GenesisConfig::{ - sessions_per_era, - current_era, - balances: if monied { vec![(1, 10), (2, 20), (3, 30), (4, 40)] } else { vec![] }, - intentions: vec![], - validator_count: 2, - bonding_duration: 3, - transaction_base_fee: 0, - transaction_byte_fee: 0, - }.build_externalities()); - t -} - -pub type System = system::Module; -pub type Session = session::Module; -pub type Staking = Module; From 1aeeae86cfb97dc484233254a2b8c504251b8efc Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Tue, 29 May 2018 16:22:27 +0200 Subject: [PATCH 3/3] Rebuild binaries. --- demo/runtime/wasm/Cargo.lock | 14 ++++++++++++-- .../release/demo_runtime.compact.wasm | Bin 414553 -> 414072 bytes .../release/demo_runtime.wasm | Bin 444581 -> 444089 bytes polkadot/runtime/wasm/Cargo.lock | 14 ++++++++++++-- .../release/polkadot_runtime.compact.wasm | Bin 431511 -> 428387 bytes .../release/polkadot_runtime.wasm | Bin 467586 -> 464443 bytes .../release/runtime_test.compact.wasm | Bin 13648 -> 13648 bytes .../release/runtime_test.wasm | Bin 13773 -> 13773 bytes .../substrate_test_runtime.compact.wasm | Bin 21385 -> 21385 bytes .../release/substrate_test_runtime.wasm | Bin 22955 -> 22955 bytes 10 files changed, 24 insertions(+), 4 deletions(-) diff --git a/demo/runtime/wasm/Cargo.lock b/demo/runtime/wasm/Cargo.lock index fe80ff221c789..f8c0de993c7d2 100644 --- a/demo/runtime/wasm/Cargo.lock +++ b/demo/runtime/wasm/Cargo.lock @@ -548,6 +548,17 @@ dependencies = [ "substrate-runtime-system 0.1.0", ] +[[package]] +name = "substrate-runtime-contract" +version = "0.1.0" +dependencies = [ + "parity-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pwasm-utils 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-runtime-sandbox 0.1.0", + "substrate-runtime-std 0.1.0", +] + [[package]] name = "substrate-runtime-council" version = "0.1.0" @@ -667,14 +678,13 @@ name = "substrate-runtime-staking" version = "0.1.0" dependencies = [ "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-wasm 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pwasm-utils 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 0.1.0", "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", "substrate-runtime-consensus 0.1.0", + "substrate-runtime-contract 0.1.0", "substrate-runtime-io 0.1.0", "substrate-runtime-primitives 0.1.0", "substrate-runtime-sandbox 0.1.0", diff --git a/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm b/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm index b7748f835732708fa03fdd0bd72855063f8f4952..1b85c4a9d6c8e3e153721fdca33902797413c800 100644 GIT binary patch delta 27010 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 delta 26923 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 delta 29589 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 delta 46596 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 W2$mYrToHyI)P;mr_I%jfW&D3m(ark+ diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm index 3eabfef169955812680d10e877ec16217acce9b9..1a254a365da3d72993bcd940549a0640ce99efe9 100755 GIT binary patch delta 45343 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 G_x}NswXWO% delta 48670 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⪚NaO4sWJq^O)@jDv;P?oL+0JNml2W&>)05n&X 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 diff --git a/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm b/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm index 7cca19d08801d7307d4c821ebeb7ce98814a9f78..d222a1f6b1200d5fa6493271383de163ae599a93 100755 GIT binary patch delta 81 zcmV-X0IvVdYt3u04gvxJ3bPOb@D`JJ8cdQI8Vo2P1VI>TAORo(5Gb=I8BzhW#2Q5j n4=Er5K@e&|xeh@KK?D#fvlt{@50mIKQ2{BFbu)6aIW&|3ec2Vp delta 95 zcmV-l0HFWPYt3u04gvxS0kaSS@D`Iy85#^JAOt}eY9Ik10uU*)av4$qk{L|1#2Q5j z4=5l4K@e&|xeh@KK?D#evlt{@50l3;atkR?Us_HzFkd80RFiQr6qA!PGqX7~lmWn1 B8TJ4G diff --git a/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 3151358586870368113781237ce8351794533964..bb95320a5f13b87c830cc7b3c80699e37ed9fca6 100644 GIT binary patch delta 64 zcmeBN&e*w}aYL4*@C<%OV*z;vZpWA0j=EsRjLo%@I;@OmH?NYrsSc!C+}1EpPW3Wm QVqlo8=ViQkn%8Fz0D{L9vH$=8 delta 64 zcmeBN&e*w}aYL4*@L7IGV*z;vZpWA0j=EsR+0C_*I;@N{Hm{PqsSc!C+}1EpPW3Wm QVqlo8=ViQkn%8Fz0E*favH$=8 diff --git a/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm b/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm index fd762805332323b91fcec81a53660685a4ca0d0a..43b67db5299070af44fc4527d9e053087b89adb7 100755 GIT binary patch delta 54 zcmV-60LlNWvjMBK0kGv80hp8K8y^9fvj!Z;1(W3)5VPGO!72gGv!6_}1CxhPF#-Sp MlTc7Iv$#<62z0O(4*&oF delta 54 zcmV-60LlNWvjMBK0kGv80nL-<8y^A9vj!Z;1(W3)5VPGO!72fmv!6_}1CxhPF#-Sp MlTc7Iv$#<62!R|HL;wH)