Skip to content

Commit

Permalink
Contracts Bump ApiVersion and add test (#3619)
Browse files Browse the repository at this point in the history
ApiVersion should have been bumped with
#3606
this does that and add a test so we don't forget to do that everytime
  • Loading branch information
pgherveou authored Mar 8, 2024
1 parent 2aa006e commit f977c21
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 2 deletions.
5 changes: 5 additions & 0 deletions substrate/frame/contracts/proc-macro/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -497,9 +497,14 @@ fn expand_docs(def: &EnvDef) -> TokenStream2 {
fn expand_env(def: &EnvDef, docs: bool) -> TokenStream2 {
let impls = expand_impls(def);
let docs = docs.then_some(expand_docs(def)).unwrap_or(TokenStream2::new());
let stable_api_count = def.host_funcs.iter().filter(|f| f.is_stable).count();

quote! {
pub struct Env;

#[cfg(test)]
pub const STABLE_API_COUNT: usize = #stable_api_count;

#impls
/// Documentation of the API (host functions) available to contracts.
///
Expand Down
11 changes: 10 additions & 1 deletion substrate/frame/contracts/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -222,10 +222,19 @@ pub struct Environment<T: Config> {
pub struct ApiVersion(u16);
impl Default for ApiVersion {
fn default() -> Self {
Self(1)
Self(2)
}
}

#[test]
fn api_version_is_up_to_date() {
assert_eq!(
109,
crate::wasm::STABLE_API_COUNT,
"Stable API count has changed. Bump the returned value of ApiVersion::default() and update the test."
);
}

#[frame_support::pallet]
pub mod pallet {
use super::*;
Expand Down
3 changes: 3 additions & 0 deletions substrate/frame/contracts/src/wasm/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
mod prepare;
mod runtime;

#[cfg(test)]
pub use runtime::STABLE_API_COUNT;

#[cfg(doc)]
pub use crate::wasm::runtime::api_doc;

Expand Down
1 change: 0 additions & 1 deletion substrate/frame/contracts/src/wasm/runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -987,7 +987,6 @@ impl<'a, E: Ext + 'a> Runtime<'a, E> {
// for every function.
#[define_env(doc)]
pub mod env {

/// Set the value at the given key in the contract storage.
/// See [`pallet_contracts_uapi::HostFn::set_storage`]
#[prefixed_alias]
Expand Down

0 comments on commit f977c21

Please sign in to comment.