git.delta.rocks / unique-network / refs/commits / 6ec64feddc4d

difftreelog

Contracts rpc runtime added

str-mv2020-07-10parent: #dc1cc2f.patch.diff
in: master

4 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2553,6 +2553,7 @@
  "pallet-balances",
  "pallet-contracts",
  "pallet-contracts-primitives",
+ "pallet-contracts-rpc-runtime-api",
  "pallet-grandpa",
  "pallet-nft",
  "pallet-randomness-collective-flip",
modifiednode/src/chain_spec.rsdiffbeforeafterboth
--- a/node/src/chain_spec.rs
+++ b/node/src/chain_spec.rs
@@ -122,7 +122,7 @@
 			key: root_key,
 		}),
 		contracts: Some(ContractsConfig {
-			gas_price: 1_000_000_000,
+			gas_price: 1_000,
             current_schedule: ContractsSchedule {
                  //   enable_println,
                     ..Default::default()
modifiedruntime/Cargo.tomldiffbeforeafterboth
before · runtime/Cargo.toml
1[dependencies.aura]2default-features = false3package = 'pallet-aura'4version = '2.0.0-alpha.6'56[dependencies.balances]7default-features = false8package = 'pallet-balances'9version = '2.0.0-alpha.6'1011[dependencies.codec]12default-features = false13features = ['derive']14package = 'parity-scale-codec'15version = '1.3.0'1617[dependencies.contracts]18default-features = false19package = 'pallet-contracts'20version = '2.0.0-alpha.6'2122[dependencies.contracts-primitives]23default-features = false24package = 'pallet-contracts-primitives'25version = '2.0.0-alpha.6'2627[dependencies.frame-executive]28default-features = false29version = '2.0.0-alpha.6'3031[dependencies.frame-support]32default-features = false33version = '2.0.0-alpha.6'3435[dependencies.grandpa]36default-features = false37package = 'pallet-grandpa'38version = '2.0.0-alpha.6'3940[dependencies.randomness-collective-flip]41default-features = false42package = 'pallet-randomness-collective-flip'43version = '2.0.0-alpha.6'4445[dependencies.serde]46features = ['derive']47optional = true48version = '1.0.101'4950[dependencies.sp-api]51default-features = false52version = '2.0.0-alpha.6'5354[dependencies.sp-block-builder]55default-features = false56version = '2.0.0-alpha.6'5758[dependencies.sp-consensus-aura]59default-features = false60version = '0.8.0-alpha.6'6162[dependencies.sp-core]63default-features = false64version = '2.0.0-alpha.6'6566[dependencies.sp-inherents]67default-features = false68version = '2.0.0-alpha.6'6970[dependencies.sp-io]71default-features = false72version = '2.0.0-alpha.6'7374[dependencies.sp-offchain]75default-features = false76version = '2.0.0-alpha.6'7778[dependencies.sp-runtime]79default-features = false80version = '2.0.0-alpha.6'8182[dependencies.sp-session]83default-features = false84version = '2.0.0-alpha.6'8586[dependencies.sp-std]87default-features = false88version = '2.0.0-alpha.6'8990[dependencies.sp-transaction-pool]91default-features = false92version = '2.0.0-alpha.6'9394[dependencies.sp-version]95default-features = false96version = '2.0.0-alpha.6'9798[dependencies.sudo]99default-features = false100package = 'pallet-sudo'101version = '2.0.0-alpha.6'102103[dependencies.system]104default-features = false105package = 'frame-system'106version = '2.0.0-alpha.6'107108[dependencies.nft]109default-features = false110package = 'pallet-nft'111path = '../pallets/nft'112version = '2.0.0-alpha.6'113114[dependencies.timestamp]115default-features = false116package = 'pallet-timestamp'117version = '2.0.0-alpha.6'118119[dependencies.transaction-payment]120default-features = false121package = 'pallet-transaction-payment'122version = '2.0.0-alpha.6'123124[build-dependencies.wasm-builder-runner]125package = 'substrate-wasm-builder-runner'126version = '1.0.5'127128[package]129authors = ['Anonymous']130edition = '2018'131homepage = 'https://substrate.dev'132license = 'Unlicense'133name = 'nft-runtime'134repository = 'https://github.com/paritytech/substrate/'135version = '2.0.0-alpha.6'136137[package.metadata.docs.rs]138targets = ['x86_64-unknown-linux-gnu']139140[features]141default = ['std']142std = [143    'aura/std',144    'balances/std',145    'codec/std',146    'contracts/std',147    'contracts-primitives/std',148    'frame-executive/std',149    'frame-support/std',150    'grandpa/std',151    'randomness-collective-flip/std',152    'serde',153    'sp-api/std',154    'sp-block-builder/std',155    'sp-consensus-aura/std',156    'sp-core/std',157    'sp-inherents/std',158    'sp-io/std',159    'sp-offchain/std',160    'sp-runtime/std',161    'sp-session/std',162    'sp-std/std',163    'sp-transaction-pool/std',164    'sp-version/std',165    'sudo/std',166    'system/std',167    'timestamp/std',168    'transaction-payment/std',169    'nft/std',170]
after · runtime/Cargo.toml
1[dependencies.aura]2default-features = false3package = 'pallet-aura'4version = '2.0.0-alpha.6'56[dependencies.balances]7default-features = false8package = 'pallet-balances'9version = '2.0.0-alpha.6'1011[dependencies.codec]12default-features = false13features = ['derive']14package = 'parity-scale-codec'15version = '1.3.0'1617[dependencies.contracts]18default-features = false19package = 'pallet-contracts'20version = '2.0.0-alpha.6'2122[dependencies.contracts-primitives]23default-features = false24package = 'pallet-contracts-primitives'25version = '2.0.0-alpha.6'2627[dependencies.contracts-rpc-runtime-api]28default-features = false29package = 'pallet-contracts-rpc-runtime-api'30version = '0.8.0-alpha.6'3132[dependencies.frame-executive]33default-features = false34version = '2.0.0-alpha.6'3536[dependencies.frame-support]37default-features = false38version = '2.0.0-alpha.6'3940[dependencies.grandpa]41default-features = false42package = 'pallet-grandpa'43version = '2.0.0-alpha.6'4445[dependencies.randomness-collective-flip]46default-features = false47package = 'pallet-randomness-collective-flip'48version = '2.0.0-alpha.6'4950[dependencies.serde]51features = ['derive']52optional = true53version = '1.0.101'5455[dependencies.sp-api]56default-features = false57version = '2.0.0-alpha.6'5859[dependencies.sp-block-builder]60default-features = false61version = '2.0.0-alpha.6'6263[dependencies.sp-consensus-aura]64default-features = false65version = '0.8.0-alpha.6'6667[dependencies.sp-core]68default-features = false69version = '2.0.0-alpha.6'7071[dependencies.sp-inherents]72default-features = false73version = '2.0.0-alpha.6'7475[dependencies.sp-io]76default-features = false77version = '2.0.0-alpha.6'7879[dependencies.sp-offchain]80default-features = false81version = '2.0.0-alpha.6'8283[dependencies.sp-runtime]84default-features = false85version = '2.0.0-alpha.6'8687[dependencies.sp-session]88default-features = false89version = '2.0.0-alpha.6'9091[dependencies.sp-std]92default-features = false93version = '2.0.0-alpha.6'9495[dependencies.sp-transaction-pool]96default-features = false97version = '2.0.0-alpha.6'9899[dependencies.sp-version]100default-features = false101version = '2.0.0-alpha.6'102103[dependencies.sudo]104default-features = false105package = 'pallet-sudo'106version = '2.0.0-alpha.6'107108[dependencies.system]109default-features = false110package = 'frame-system'111version = '2.0.0-alpha.6'112113[dependencies.nft]114default-features = false115package = 'pallet-nft'116path = '../pallets/nft'117version = '2.0.0-alpha.6'118119[dependencies.timestamp]120default-features = false121package = 'pallet-timestamp'122version = '2.0.0-alpha.6'123124[dependencies.transaction-payment]125default-features = false126package = 'pallet-transaction-payment'127version = '2.0.0-alpha.6'128129[build-dependencies.wasm-builder-runner]130package = 'substrate-wasm-builder-runner'131version = '1.0.5'132133[package]134authors = ['Anonymous']135edition = '2018'136homepage = 'https://substrate.dev'137license = 'Unlicense'138name = 'nft-runtime'139repository = 'https://github.com/paritytech/substrate/'140version = '2.0.0-alpha.6'141142[package.metadata.docs.rs]143targets = ['x86_64-unknown-linux-gnu']144145[features]146default = ['std']147std = [148    'aura/std',149    'balances/std',150    'codec/std',151	"contracts/std",152	"contracts-primitives/std",153	"contracts-rpc-runtime-api/std",154    'frame-executive/std',155    'frame-support/std',156    'grandpa/std',157    'randomness-collective-flip/std',158    'serde',159    'sp-api/std',160    'sp-block-builder/std',161    'sp-consensus-aura/std',162    'sp-core/std',163    'sp-inherents/std',164    'sp-io/std',165    'sp-offchain/std',166    'sp-runtime/std',167    'sp-session/std',168    'sp-std/std',169    'sp-transaction-pool/std',170    'sp-version/std',171    'sudo/std',172    'system/std',173    'timestamp/std',174    'transaction-payment/std',175    'nft/std',176]
modifiedruntime/src/lib.rsdiffbeforeafterboth
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -36,6 +36,9 @@
 pub use sp_runtime::{Perbill, Permill};
 pub use timestamp::Call as TimestampCall;
 pub use contracts::Schedule as ContractsSchedule;
+pub use contracts_rpc_runtime_api::{
+	self as runtime_api, ContractExecResult
+};
 
 /// Importing a template pallet
 pub use nft;
@@ -403,4 +406,39 @@
             Grandpa::grandpa_authorities()
         }
     }
+
+    impl contracts_rpc_runtime_api::ContractsApi<Block, AccountId, Balance, BlockNumber>
+        for Runtime
+	{
+		fn call(
+			origin: AccountId,
+			dest: AccountId,
+			value: Balance,
+			gas_limit: u64,
+			input_data: Vec<u8>,
+		) -> ContractExecResult {
+			let exec_result =
+				Contracts::bare_call(origin, dest.into(), value, gas_limit, input_data);
+			match exec_result {
+                Ok(v) => ContractExecResult::Success {
+                    status: v.status,
+                    data: v.data,
+                },
+				Err(_) => ContractExecResult::Error,
+			}
+		}
+
+		fn get_storage(
+			address: AccountId,
+			key: [u8; 32],
+		) -> contracts_primitives::GetStorageResult {
+			Contracts::get_storage(address, key)
+		}
+
+		fn rent_projection(
+			address: AccountId,
+		) -> contracts_primitives::RentProjectionResult<BlockNumber> {
+			Contracts::rent_projection(address)
+		}
+	}
 }