From 3015d05f042a38a8e5d43c6dc00eb126f7e13e1d Mon Sep 17 00:00:00 2001 From: Tejas Badadare Date: Thu, 15 May 2025 14:38:02 -0700 Subject: [PATCH] fix: checks-effects-interactions pattern for pyth parse call --- .../ethereum/contracts/contracts/pulse/Scheduler.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/ethereum/contracts/contracts/pulse/Scheduler.sol b/target_chains/ethereum/contracts/contracts/pulse/Scheduler.sol index 3898d4db41..459afb4f69 100644 --- a/target_chains/ethereum/contracts/contracts/pulse/Scheduler.sol +++ b/target_chains/ethereum/contracts/contracts/pulse/Scheduler.sol @@ -269,6 +269,8 @@ abstract contract Scheduler is IScheduler, SchedulerState { // from the last trading period. Thus, we use a minimum timestamp of zero while parsing, // and we enforce the past max validity ourselves in _validateShouldUpdatePrices using // the highest timestamp in the update data. + status.balanceInWei -= pythFee; + status.totalSpent += pythFee; uint64 curTime = SafeCast.toUint64(block.timestamp); ( PythStructs.PriceFeed[] memory priceFeeds, @@ -279,8 +281,6 @@ abstract contract Scheduler is IScheduler, SchedulerState { 0, // We enforce the past max validity ourselves in _validateShouldUpdatePrices curTime + FUTURE_TIMESTAMP_MAX_VALIDITY_PERIOD ); - status.balanceInWei -= pythFee; - status.totalSpent += pythFee; // Verify all price feeds have the same Pythnet slot. // All feeds in a subscription must be updated at the same time.