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
8 changes: 5 additions & 3 deletions contracts/vault/src/emergency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,15 @@ pub fn next_proposal_id(env: &Env) -> u32 {
pub fn primary_approver(env: &Env) -> Option<Address> {
env.storage()
.instance()
.get(&crate::DataKey::EmergencyApproverPrimary)
.get::<_, crate::EmergencyApprovers>(&crate::DataKey::EmergencyApprovers)
.map(|approvers| approvers.primary)
}

pub fn secondary_approver(env: &Env) -> Option<Address> {
env.storage()
.instance()
.get(&crate::DataKey::EmergencyApproverSecondary)
.get::<_, crate::EmergencyApprovers>(&crate::DataKey::EmergencyApprovers)
.map(|approvers| approvers.secondary)
}

pub fn require_distinct_approvers(primary: &Address, secondary: &Address) {
Expand Down Expand Up @@ -149,7 +151,7 @@ pub fn simulate_emergency_unwind(
#[cfg(test)]
mod tests {
use super::*;
use soroban_sdk::testutils::Address as TestAddress;
use soroban_sdk::testutils::Address as _;

#[test]
fn test_distinct_approvers_required() {
Expand Down
1 change: 1 addition & 0 deletions contracts/vault/src/event_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ fn test_claim_fees_transfers_to_treasury() {
let vault_id = env.register(YieldVault, ());
let vault = YieldVaultClient::new(&env, &vault_id);
vault.initialize(&admin, &usdc.address);
vault.set_admin_param_change_interval(&0);

vault.set_fee_bps(&1000); // 10%
vault.set_treasury(&treasury);
Expand Down
9 changes: 3 additions & 6 deletions contracts/vault/src/feature_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ fn test_dual_approval_emergency_pause() {
// Advance past the 1-hour dispute window before the secondary can confirm.
env.ledger().set_timestamp(env.ledger().timestamp() + 3_601);

vault
.confirm_emergency_action(&secondary, &proposal_id);
vault.confirm_emergency_action(&secondary, &proposal_id);

assert!(vault.is_paused());
assert_eq!(vault.pause_reason(), Some(PauseReason::SecurityIncident));
Expand Down Expand Up @@ -178,8 +177,7 @@ fn test_confirm_allowed_after_dispute_window() {
);

env.ledger().set_timestamp(env.ledger().timestamp() + 3_601);
vault
.confirm_emergency_action(&secondary, &proposal_id);
vault.confirm_emergency_action(&secondary, &proposal_id);
assert!(vault.is_paused());
}

Expand Down Expand Up @@ -302,7 +300,6 @@ fn test_custom_dispute_window_respected() {

// Allowed after 10 minutes.
env.ledger().set_timestamp(env.ledger().timestamp() + 61);
vault
.confirm_emergency_action(&secondary, &proposal_id);
vault.confirm_emergency_action(&secondary, &proposal_id);
assert!(vault.is_paused());
}
4 changes: 2 additions & 2 deletions contracts/vault/src/fee_math.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ pub fn calculate_protocol_fee(amount: i128, fee_bps: i128) -> (i128, i128) {
/// Check if accumulating a fee amount would exceed the bounded accumulator.
/// Returns true if rollover protection should be triggered.
pub fn would_exceed_accumulator_bound(current_balance: i128, fee_to_add: i128) -> bool {
current_balance > MAX_TREASURY_ACCUMULATOR ||
current_balance.saturating_add(fee_to_add) > MAX_TREASURY_ACCUMULATOR
current_balance > MAX_TREASURY_ACCUMULATOR
|| current_balance.saturating_add(fee_to_add) > MAX_TREASURY_ACCUMULATOR
}

#[cfg(test)]
Expand Down
Loading
Loading