From 03e9c5afd4b02c420efc22e09b7f06d8bf4f6116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <bkchr@users.noreply.github.com> Date: Mon, 8 Nov 2021 22:03:37 +0100 Subject: [PATCH] Offchain-worker: Accessing time is not HTTP (#10220) Accessing time related functionality is clearly not related to HTTP. So, this pr introduces a `TIME` capability. --- substrate/primitives/core/src/offchain/mod.rs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/substrate/primitives/core/src/offchain/mod.rs b/substrate/primitives/core/src/offchain/mod.rs index dfe23c1ff8f..8058d4d05d6 100644 --- a/substrate/primitives/core/src/offchain/mod.rs +++ b/substrate/primitives/core/src/offchain/mod.rs @@ -262,21 +262,23 @@ bitflags::bitflags! { /// Execution context extra capabilities. pub struct Capabilities: u32 { /// Access to transaction pool. - const TRANSACTION_POOL = 0b0000_0001; + const TRANSACTION_POOL = 0b0000_0000_0001; /// External http calls. - const HTTP = 0b0000_0010; + const HTTP = 0b0000_0000_0010; /// Keystore access. - const KEYSTORE = 0b0000_0100; + const KEYSTORE = 0b0000_0000_0100; /// Randomness source. - const RANDOMNESS = 0b0000_1000; + const RANDOMNESS = 0b0000_0000_1000; /// Access to opaque network state. - const NETWORK_STATE = 0b0001_0000; + const NETWORK_STATE = 0b0000_0001_0000; /// Access to offchain worker DB (read only). - const OFFCHAIN_DB_READ = 0b0010_0000; + const OFFCHAIN_DB_READ = 0b0000_0010_0000; /// Access to offchain worker DB (writes). - const OFFCHAIN_DB_WRITE = 0b0100_0000; + const OFFCHAIN_DB_WRITE = 0b0000_0100_0000; /// Manage the authorized nodes - const NODE_AUTHORIZATION = 0b1000_0000; + const NODE_AUTHORIZATION = 0b0000_1000_0000; + /// Access time related functionality + const TIME = 0b0001_0000_0000; } } @@ -541,12 +543,12 @@ impl<T: Externalities> Externalities for LimitedExternalities<T> { } fn timestamp(&mut self) -> Timestamp { - self.check(Capabilities::HTTP, "timestamp"); + self.check(Capabilities::TIME, "timestamp"); self.externalities.timestamp() } fn sleep_until(&mut self, deadline: Timestamp) { - self.check(Capabilities::HTTP, "sleep_until"); + self.check(Capabilities::TIME, "sleep_until"); self.externalities.sleep_until(deadline) } -- GitLab