From 966a886439f4c5ef0bc81f32b8a189d758a2505f Mon Sep 17 00:00:00 2001 From: Cyrill Leutwiler Date: Sat, 3 Feb 2024 12:50:55 +0100 Subject: [PATCH] Contracts: Stabilize `caller_is_root` API (#3154) Can this API be marked stable? Implemented in [solang here](https://github.com/hyperledger/solang/pull/1620) --------- Signed-off-by: Cyrill Leutwiler --- prdoc/pr_3154.prdoc | 9 +++++++++ substrate/frame/contracts/src/wasm/runtime.rs | 1 - substrate/frame/contracts/uapi/src/host.rs | 3 --- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 prdoc/pr_3154.prdoc diff --git a/prdoc/pr_3154.prdoc b/prdoc/pr_3154.prdoc new file mode 100644 index 0000000000..2dfc1b2781 --- /dev/null +++ b/prdoc/pr_3154.prdoc @@ -0,0 +1,9 @@ +title: "Contracts: Stabilize caller_is_root API" + +doc: + - audience: Runtime Dev + description: | + Removed the `#[unstable]` attrribute on `caller_is_root` host function. + +crates: + - name: pallet-contracts diff --git a/substrate/frame/contracts/src/wasm/runtime.rs b/substrate/frame/contracts/src/wasm/runtime.rs index 3e49b68f86..3af0d04a3a 100644 --- a/substrate/frame/contracts/src/wasm/runtime.rs +++ b/substrate/frame/contracts/src/wasm/runtime.rs @@ -1542,7 +1542,6 @@ pub mod env { /// Checks whether the caller of the current contract is root. /// See [`pallet_contracts_uapi::HostFn::caller_is_root`]. - #[unstable] fn caller_is_root(ctx: _, _memory: _) -> Result { ctx.charge_gas(RuntimeCosts::CallerIsRoot)?; Ok(ctx.ext.caller_is_root() as u32) diff --git a/substrate/frame/contracts/uapi/src/host.rs b/substrate/frame/contracts/uapi/src/host.rs index 21350bc4eb..c8b9ae8b2d 100644 --- a/substrate/frame/contracts/uapi/src/host.rs +++ b/substrate/frame/contracts/uapi/src/host.rs @@ -277,9 +277,6 @@ pub trait HostFn { /// /// A return value of `true` indicates that this contract is being called by a root origin, /// and `false` indicates that the caller is a signed origin. - #[deprecated( - note = "Unstable function. Behaviour can change without further notice. Use only for testing." - )] fn caller_is_root() -> u32; /// Clear the value at the given key in the contract storage.