Target Contract: payment-vault-contract
Labels: phase-1-vault, infrastructure
Description: Standard Soroban WASM upgrade capability to patch bugs without migrating state.
Tasks:
src/contract.rs: Implement upgrade_contract(env, new_wasm_hash: soroban_sdk::BytesN<32>). Require admin.require_auth(). Call env.deployer().update_current_contract_wasm(new_wasm_hash).
src/lib.rs: Expose pub fn upgrade_contract(env: Env, new_wasm_hash: soroban_sdk::BytesN<32>) -> Result<(), VaultError> inside #[contractimpl].
src/events.rs: Emit contract_upgraded(new_wasm_hash).
src/test.rs: Deploy a mock V2 wasm and assert upgrade_contract successfully updates the logic.
Acceptance Criteria:
- Admin can hot-swap contract WASM.
Target Contract: payment-vault-contract
Labels: phase-1-vault, infrastructure
Description: Standard Soroban WASM upgrade capability to patch bugs without migrating state.
Tasks:
src/contract.rs: Implement upgrade_contract(env, new_wasm_hash: soroban_sdk::BytesN<32>). Require admin.require_auth(). Call env.deployer().update_current_contract_wasm(new_wasm_hash).src/lib.rs: Expose pub fn upgrade_contract(env: Env, new_wasm_hash: soroban_sdk::BytesN<32>) -> Result<(), VaultError> inside #[contractimpl].src/events.rs: Emit contract_upgraded(new_wasm_hash).src/test.rs: Deploy a mock V2 wasm and assert upgrade_contract successfully updates the logic.Acceptance Criteria: