diff --git a/src/example/paid_service/src/state.rs b/src/example/paid_service/src/state.rs index 7073f7d..aca6cad 100644 --- a/src/example/paid_service/src/state.rs +++ b/src/example/paid_service/src/state.rs @@ -4,7 +4,7 @@ use candid::Principal; use example_paid_service_api::InitArgs; thread_local! { - pub static INIT_ARGS: RefCell> = RefCell::new(None); + pub static INIT_ARGS: RefCell> = const {RefCell::new(None)}; } pub fn init_element(f: F) -> T @@ -16,12 +16,7 @@ where /// Provides the canister_id of the ledger used for payments. pub fn payment_ledger() -> Principal { - init_element(|init_args| { - init_args - .ledger - .expect("Init args specify no ledger") - .clone() - }) + init_element(|init_args| init_args.ledger.expect("Init args specify no ledger")) } /// Sets the payment ledger canister ID. diff --git a/src/guard/src/guards/icrc2_cycles.rs b/src/guard/src/guards/icrc2_cycles.rs index 31bd775..1af3e26 100644 --- a/src/guard/src/guards/icrc2_cycles.rs +++ b/src/guard/src/guards/icrc2_cycles.rs @@ -44,7 +44,7 @@ impl PaymentGuard for Icrc2CyclesPaymentGuard { async fn deduct(&self, fee: u64) -> Result<(), PaymentError> { cycles_ledger_client::Service(self.ledger_canister_id) .withdraw_from(&WithdrawFromArgs { - to: self.own_canister_id.clone(), + to: self.own_canister_id, amount: Nat::from(fee), from: self.payer_account.clone(), spender_subaccount: self.spender_subaccount.clone(),