Skip to content
Open
Show file tree
Hide file tree
Changes from 2 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
21 changes: 21 additions & 0 deletions contracts/invoice/src/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,24 @@ pub fn contract_initialized(env: &Env, admin: &Address, registry_contract: &Addr
(),
);
}

pub fn supported_asset_added(env: &Env, asset: &Address) {
env.events().publish(
(Symbol::new(env, "supported_asset_added"), asset.clone()),
(),
);
}

pub fn supported_asset_removed(env: &Env, asset: &Address) {
env.events().publish(
(Symbol::new(env, "supported_asset_removed"), asset.clone()),
(),
);
}

pub fn escrow_contract_updated(env: &Env, old: &Address, new: &Address) {
env.events().publish(
(Symbol::new(env, "escrow_contract_updated"), old.clone(), new.clone()),
(),
);
}
10 changes: 10 additions & 0 deletions contracts/invoice/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -285,9 +285,17 @@ impl InvoiceContract {
.get(&DataKey::Admin)
.unwrap_or_else(|| panic_with_error!(&env, InvoiceError::NotInitialized));
admin.require_auth();

let old_escrow: Option<Address> = env.storage().instance().get(&DataKey::EscrowContract);
env.storage()
.instance()
.set(&DataKey::EscrowContract, &escrow_contract);

if let Some(old) = old_escrow {
events::escrow_contract_updated(&env, &old, &escrow_contract);
} else {
events::escrow_contract_updated(&env, &escrow_contract, &escrow_contract);
}
}

/// Returns the stored escrow contract address, or `None` if not configured.
Expand Down Expand Up @@ -359,6 +367,7 @@ impl InvoiceContract {
.instance()
.set(&DataKey::SupportedAssetCount, &(count + 1));
env.storage().persistent().set(&key, &true);
events::supported_asset_added(&env, &asset);
}

pub fn remove_supported_asset(env: Env, asset: Address) {
Expand All @@ -383,6 +392,7 @@ impl InvoiceContract {
.instance()
.set(&DataKey::SupportedAssetCount, &(count - 1));
env.storage().persistent().remove(&key);
events::supported_asset_removed(&env, &asset);
}

pub fn is_supported_asset(env: Env, asset: Address) -> bool {
Expand Down
Loading