difftreelog
Contracts rpc runtime added
in: master
4 files changed
Cargo.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",
node/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()
runtime/Cargo.tomldiffbeforeafterboth1[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]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]runtime/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)
+ }
+ }
}