Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions soroban-contract/contracts/dao_governance/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,57 @@ impl DaoGovernance {
Self::get_config(&env)
}

// ── Upgrade / admin surface ──────────────────────────────────────────────

pub fn schedule_upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::schedule_upgrade(&env, new_wasm_hash);
}

pub fn cancel_upgrade(env: Env) {
upg::cancel_upgrade(&env);
}

pub fn commit_upgrade(env: Env) {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}

pub fn unpause(env: Env) {
upg::unpause(&env);
}

pub fn transfer_admin(env: Env, new_admin: Address) {
upg::transfer_admin(&env, new_admin);
}

pub fn version(env: Env) -> u32 {
upg::get_version(&env)
}

// ── Internal Helper Functions ────────────────────────────────────────────

fn get_config(env: &Env) -> DaoConfig {
Expand Down
34 changes: 34 additions & 0 deletions soroban-contract/contracts/event_manager/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,8 @@ pub struct RefundClaimedEvent {
pub total_paid: i128,
}

/// Per-attendee POAP metadata sent over the wire to the POAP NFT contract's
/// `mint_poap` entry point. Field shape must match `poap_nft::PoapMetadata`.
#[contracttype]
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct TicketPurchasedEvent {
Expand Down Expand Up @@ -785,6 +787,17 @@ impl EventManager {
env.events()
.publish((Symbol::new(&env, "RefundClaimed"),), event);

pub fn initialize_legacy(env: Env, ticket_factory: Address) -> Result<(), Error> {
if env.storage().instance().has(&DataKey::TicketFactory) {
return Err(Error::AlreadyInitialized);
}
upg::set_admin(&env, &ticket_factory);
upg::init_version(&env);
env.storage()
.instance()
.set(&DataKey::TicketFactory, &ticket_factory);
env.storage().instance().set(&DataKey::EventCounter, &0u32);
upg::extend_instance_ttl(&env);
Ok(())
}

Expand Down Expand Up @@ -1183,6 +1196,27 @@ impl EventManager {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}
Expand Down
21 changes: 21 additions & 0 deletions soroban-contract/contracts/marketplace/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -789,6 +789,27 @@ impl MarketplaceContract {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}
Expand Down
21 changes: 21 additions & 0 deletions soroban-contract/contracts/poap_nft/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,27 @@ impl PoapNft {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}
Expand Down
21 changes: 21 additions & 0 deletions soroban-contract/contracts/tba_account/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,27 @@ impl TbaAccount {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}
Expand Down
21 changes: 21 additions & 0 deletions soroban-contract/contracts/tba_registry/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,27 @@ impl TbaRegistry {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}
Expand Down
21 changes: 21 additions & 0 deletions soroban-contract/contracts/ticket_factory/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,27 @@ impl TicketFactory {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}
Expand Down
21 changes: 21 additions & 0 deletions soroban-contract/contracts/ticket_nft/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,27 @@ impl TicketNft {
upg::commit_upgrade(&env);
}

/// Immediate (fast-path) upgrade. Admin-only, no timelock — see
/// `upgradeable::upgrade` for the full security note. Reserve for
/// emergencies; prefer `schedule_upgrade` + `commit_upgrade` for
/// routine upgrades.
pub fn upgrade(env: Env, new_wasm_hash: BytesN<32>) {
upg::upgrade(&env, new_wasm_hash);
}

/// Apply post-upgrade state-shape migrations and bump the version to
/// `target_version`. Admin-only; rejects downgrades.
pub fn migrate(env: Env, target_version: u32) {
upg::require_admin(&env);
upg::require_version_increase(&env, target_version);

match target_version {
_ => {}
}

upg::migration_completed(&env, target_version);
}

pub fn pause(env: Env) {
upg::pause(&env);
}
Expand Down
Loading
Loading