Browse Source

substrate upgrade: update impl_runtime_apis!

Mokhtar Naamani 6 năm trước cách đây
mục cha
commit
147b06d7c4
3 tập tin đã thay đổi với 105 bổ sung49 xóa
  1. 16 0
      Cargo.toml
  2. 61 49
      src/lib.rs
  3. 28 0
      wasm/Cargo.lock

+ 16 - 0
Cargo.toml

@@ -29,6 +29,8 @@ std = [
     'consensus-aura/std',
     'staking/std',
     'session/std',
+    'offchain-primitives/std',
+    'consensus-authorities/std',
 ]
 [dependencies.aura]
 default_features = false
@@ -155,3 +157,17 @@ default_features = false
 git = 'https://github.com/joystream/substrate.git'
 package = 'srml-session'
 rev = '59d5ec144704cec017a01f3e4dbb6b73c5542bf7'
+
+[dependencies.offchain-primitives]
+default_features = false
+git = 'https://github.com/joystream/substrate.git'
+package = 'substrate-offchain-primitives'
+rev = '59d5ec144704cec017a01f3e4dbb6b73c5542bf7'
+
+[dependencies.consensus-authorities]
+default_features = false
+git = 'https://github.com/joystream/substrate.git'
+package = 'substrate-consensus-authorities'
+rev = '59d5ec144704cec017a01f3e4dbb6b73c5542bf7'
+
+

+ 61 - 49
src/lib.rs

@@ -29,7 +29,7 @@ mod migration;
 mod roles;
 use client::{
     block_builder::api::{self as block_builder_api, CheckInherentsResult, InherentData},
-    impl_runtime_apis, runtime_api,
+    impl_runtime_apis, runtime_api as client_api
 };
 #[cfg(feature = "std")]
 use primitives::bytes;
@@ -40,7 +40,7 @@ use runtime_primitives::{
     create_runtime_str, generic,
     traits::{
         self as runtime_traits, BlakeTwo256, Block as BlockT, CurrencyToVoteHandler, StaticLookup,
-        Verify,
+        Verify, NumberFor, AuthorityIdFor
     },
     transaction_validity::TransactionValidity,
     ApplyResult,
@@ -350,61 +350,73 @@ pub type Executive = executive::Executive<Runtime, Block, Context, Balances, All
 
 // Implement our runtime API endpoints. This is just a bunch of proxying.
 impl_runtime_apis! {
-    impl runtime_api::Core<Block> for Runtime {
-        fn version() -> RuntimeVersion {
-            VERSION
-        }
+	impl client_api::Core<Block> for Runtime {
+		fn version() -> RuntimeVersion {
+			VERSION
+		}
+
+		fn execute_block(block: Block) {
+			Executive::execute_block(block)
+		}
+
+		fn initialize_block(header: &<Block as BlockT>::Header) {
+			Executive::initialize_block(header)
+		}
+
+		fn authorities() -> Vec<AuthorityIdFor<Block>> {
+			panic!("Deprecated, please use `AuthoritiesApi`.")
+		}
+	}
 
-        fn authorities() -> Vec<AuthorityId> {
-            Consensus::authorities()
-        }
+	impl client_api::Metadata<Block> for Runtime {
+		fn metadata() -> OpaqueMetadata {
+			Runtime::metadata().into()
+		}
+	}
 
-        fn execute_block(block: Block) {
-            Executive::execute_block(block)
-        }
+	impl block_builder_api::BlockBuilder<Block> for Runtime {
+		fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyResult {
+			Executive::apply_extrinsic(extrinsic)
+		}
 
-        fn initialize_block(header: &<Block as BlockT>::Header) {
-            Executive::initialize_block(header)
-        }
-    }
+		fn finalize_block() -> <Block as BlockT>::Header {
+			Executive::finalize_block()
+		}
 
-    impl runtime_api::Metadata<Block> for Runtime {
-        fn metadata() -> OpaqueMetadata {
-            Runtime::metadata().into()
-        }
-    }
-
-    impl block_builder_api::BlockBuilder<Block> for Runtime {
-        fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyResult {
-            Executive::apply_extrinsic(extrinsic)
-        }
+		fn inherent_extrinsics(data: InherentData) -> Vec<<Block as BlockT>::Extrinsic> {
+			data.create_extrinsics()
+		}
 
-        fn finalize_block() -> <Block as BlockT>::Header {
-            Executive::finalize_block()
-        }
+		fn check_inherents(block: Block, data: InherentData) -> CheckInherentsResult {
+			data.check_extrinsics(&block)
+		}
 
-        fn inherent_extrinsics(data: InherentData) -> Vec<<Block as BlockT>::Extrinsic> {
-            data.create_extrinsics()
-        }
+		fn random_seed() -> <Block as BlockT>::Hash {
+			System::random_seed()
+		}
+	}
 
-        fn check_inherents(block: Block, data: InherentData) -> CheckInherentsResult {
-            data.check_extrinsics(&block)
-        }
+	impl client_api::TaggedTransactionQueue<Block> for Runtime {
+		fn validate_transaction(tx: <Block as BlockT>::Extrinsic) -> TransactionValidity {
+			Executive::validate_transaction(tx)
+		}
+	}
 
-        fn random_seed() -> <Block as BlockT>::Hash {
-            System::random_seed()
-        }
-    }
+	impl offchain_primitives::OffchainWorkerApi<Block> for Runtime {
+		fn offchain_worker(number: NumberFor<Block>) {
+			Executive::offchain_worker(number)
+		}
+	}
 
-    impl runtime_api::TaggedTransactionQueue<Block> for Runtime {
-        fn validate_transaction(tx: <Block as BlockT>::Extrinsic) -> TransactionValidity {
-            Executive::validate_transaction(tx)
-        }
-    }
+	impl consensus_aura::AuraApi<Block> for Runtime {
+		fn slot_duration() -> u64 {
+			Aura::slot_duration()
+		}
+	}
 
-    impl consensus_aura::AuraApi<Block> for Runtime {
-        fn slot_duration() -> u64 {
-            Aura::slot_duration()
-        }
-    }
+	impl consensus_authorities::AuthoritiesApi<Block> for Runtime {
+		fn authorities() -> Vec<AuthorityIdFor<Block>> {
+			Consensus::authorities()
+		}
+	}
 }

+ 28 - 0
wasm/Cargo.lock

@@ -780,6 +780,8 @@ dependencies = [
  "srml-timestamp 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
  "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
  "substrate-consensus-aura-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "substrate-consensus-authorities 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "substrate-offchain-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
  "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
 ]
 
@@ -2462,6 +2464,21 @@ dependencies = [
  "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
 ]
 
+[[package]]
+name = "substrate-consensus-authorities"
+version = "1.0.0"
+source = "git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7#59d5ec144704cec017a01f3e4dbb6b73c5542bf7"
+dependencies = [
+ "parity-codec 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sr-io 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "sr-std 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "sr-version 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "srml-support 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+]
+
 [[package]]
 name = "substrate-consensus-common"
 version = "1.0.0"
@@ -2529,6 +2546,15 @@ dependencies = [
  "substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
 ]
 
+[[package]]
+name = "substrate-offchain-primitives"
+version = "0.1.0"
+source = "git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7#59d5ec144704cec017a01f3e4dbb6b73c5542bf7"
+dependencies = [
+ "sr-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+ "substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)",
+]
+
 [[package]]
 name = "substrate-panic-handler"
 version = "1.0.0"
@@ -3381,10 +3407,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 "checksum substrate-bip39 0.2.1 (git+https://github.com/paritytech/substrate-bip39)" = "<none>"
 "checksum substrate-client 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-consensus-aura-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
+"checksum substrate-consensus-authorities 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-consensus-common 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-executor 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-inherents 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-keyring 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
+"checksum substrate-offchain-primitives 0.1.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-panic-handler 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-primitives 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"
 "checksum substrate-serializer 1.0.0 (git+https://github.com/joystream/substrate.git?rev=59d5ec144704cec017a01f3e4dbb6b73c5542bf7)" = "<none>"