Skip to content

Payment Vault Upgradability #35

@Bosun-Josh121

Description

@Bosun-Josh121

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions