Skip to content

Commit 4b69572

Browse files
committed
go
1 parent 5661ce0 commit 4b69572

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

runtime/src/bank/pyth_accumulator.rs

+19-6
Original file line numberDiff line numberDiff line change
@@ -373,18 +373,14 @@ fn post_accumulator_attestation(
373373
}
374374

375375
pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV1> {
376-
let accounts = bank
376+
let accounts: Vec<(Pubkey, AccountSharedData)> = bank
377377
.get_program_accounts(&ORACLE_PUBKEY, &ScanConfig::new(true))
378378
.map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?;
379379

380380
let mut any_v1_aggregations = false;
381381
let mut v2_messages = Vec::new();
382382

383-
let account_datas = accounts
384-
.iter()
385-
.map(|(_, account)| account.data().borrow())
386-
.collect::<Vec<_>>();
387-
let message = pyth_oracle::validator::compute_publisher_caps(account_datas, bank.clock().unix_timestamp);
383+
compute_publisher_stake_caps(&accounts, bank.clock().unix_timestamp, &mut v2_messages, true);
388384

389385
for (pubkey, mut account) in accounts {
390386
let mut price_account_data = account.data().to_owned();
@@ -414,3 +410,20 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV
414410

415411
update_v1(bank, &v2_messages, any_v1_aggregations)
416412
}
413+
414+
pub fn compute_publisher_stake_caps(
415+
accounts : &Vec<(Pubkey, AccountSharedData)>,
416+
timestamp : i64,
417+
messages : &mut Vec<Vec<u8>>,
418+
is_active : bool
419+
) {
420+
let account_datas : Vec<&[u8]> = accounts
421+
.iter()
422+
.map(|(_, account)| account.data().borrow())
423+
.collect();
424+
let message = pyth_oracle::validator::compute_publisher_caps(account_datas, timestamp);
425+
426+
if is_active {
427+
messages.push(message);
428+
}
429+
}

0 commit comments

Comments
 (0)