From 41ea45b065cf8233e23fd9fbe0319dcbb2a0b0eb Mon Sep 17 00:00:00 2001 From: Willem Wyndham Date: Tue, 30 Dec 2025 16:52:28 +0100 Subject: [PATCH 1/2] feat: use references in API --- admin/src/lib.rs | 2 +- admin_sep/src/administratable.rs | 4 ++-- admin_sep/src/upgradable.rs | 4 ++-- admin_v2/src/lib.rs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/admin/src/lib.rs b/admin/src/lib.rs index cbf06b5..83429b2 100644 --- a/admin/src/lib.rs +++ b/admin/src/lib.rs @@ -8,7 +8,7 @@ pub struct Contract; #[contractimpl] impl Contract { - pub fn __constructor(env: &Env, admin: Address) { + pub fn __constructor(env: &Env, admin: &Address) { Self::set_admin(env, admin); } } diff --git a/admin_sep/src/administratable.rs b/admin_sep/src/administratable.rs index e4f0b0a..b5933f2 100644 --- a/admin_sep/src/administratable.rs +++ b/admin_sep/src/administratable.rs @@ -7,11 +7,11 @@ pub trait Administratable { unsafe { admin_from_storage(env).unwrap_unchecked() } } - fn set_admin(env: &Env, new_admin: soroban_sdk::Address) { + fn set_admin(env: &Env, new_admin: &soroban_sdk::Address) { if let Some(owner) = admin_from_storage(env) { owner.require_auth(); } - env.storage().instance().set(STORAGE_KEY, &new_admin); + env.storage().instance().set(STORAGE_KEY, new_admin); } } diff --git a/admin_sep/src/upgradable.rs b/admin_sep/src/upgradable.rs index 9d7aac6..f4f3039 100644 --- a/admin_sep/src/upgradable.rs +++ b/admin_sep/src/upgradable.rs @@ -5,8 +5,8 @@ use soroban_sdk::contracttrait; pub trait Upgradable: AdministratableExtension { /// Upgrades the contract to a new hash. /// Admin Only. - fn upgrade(env: &soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>) { + fn upgrade(env: &soroban_sdk::Env, new_wasm_hash: &soroban_sdk::BytesN<32>) { Self::require_admin(env); - env.deployer().update_current_contract_wasm(new_wasm_hash); + env.deployer().update_current_contract_wasm(new_wasm_hash.clone()); } } diff --git a/admin_v2/src/lib.rs b/admin_v2/src/lib.rs index a516577..62ac411 100644 --- a/admin_v2/src/lib.rs +++ b/admin_v2/src/lib.rs @@ -8,7 +8,7 @@ pub struct Contract; #[contractimpl] impl Contract { - pub fn __constructor(env: &Env, admin: Address) { + pub fn __constructor(env: &Env, admin: &Address) { Self::set_admin(env, admin); } From 2b89f70e85fa0e94ddeeefca5768ace58c25ac97 Mon Sep 17 00:00:00 2001 From: Willem Wyndham Date: Tue, 30 Dec 2025 16:56:00 +0100 Subject: [PATCH 2/2] fix: fmt --- admin_sep/src/upgradable.rs | 3 ++- admin_v2/src/test.rs | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/admin_sep/src/upgradable.rs b/admin_sep/src/upgradable.rs index f4f3039..fd87b8e 100644 --- a/admin_sep/src/upgradable.rs +++ b/admin_sep/src/upgradable.rs @@ -7,6 +7,7 @@ pub trait Upgradable: AdministratableExtension { /// Admin Only. fn upgrade(env: &soroban_sdk::Env, new_wasm_hash: &soroban_sdk::BytesN<32>) { Self::require_admin(env); - env.deployer().update_current_contract_wasm(new_wasm_hash.clone()); + env.deployer() + .update_current_contract_wasm(new_wasm_hash.clone()); } } diff --git a/admin_v2/src/test.rs b/admin_v2/src/test.rs index 59d3304..276144f 100644 --- a/admin_v2/src/test.rs +++ b/admin_v2/src/test.rs @@ -6,8 +6,8 @@ use soroban_sdk::{Address, Env, testutils::Address as _}; #[test] fn test() { let env = Env::default(); - let admin = Address::generate(&env); - let contract_id = env.register(Contract, (admin.clone(),)); + let admin = &Address::generate(&env); + let contract_id = env.register(Contract, (admin,)); let _client = ContractClient::new(&env, &contract_id); // assert_eq!(client.increment(), 2);