Skip to content

Commit de6ba44

Browse files
committed
fix: load program accounts by index
1 parent cff0080 commit de6ba44

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

runtime/src/bank/pyth_accumulator.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use {
22
super::Bank,
3-
crate::accounts_index::{ScanConfig, ScanError},
3+
crate::accounts_index::{IndexKey, ScanConfig, ScanError},
44
byteorder::{LittleEndian, ReadBytesExt},
55
log::*,
66
pyth_oracle::validator::AggregationError,
@@ -140,7 +140,12 @@ pub fn update_v1(
140140
let mut measure = Measure::start("update_v1_load_program_accounts");
141141

142142
message_buffer_accounts = bank
143-
.get_program_accounts(&MESSAGE_BUFFER_PID, &ScanConfig::new(true))
143+
.get_filtered_indexed_accounts(
144+
&IndexKey::ProgramId(*MESSAGE_BUFFER_PID),
145+
|account| account.owner() == &*MESSAGE_BUFFER_PID,
146+
&ScanConfig::new(true),
147+
None,
148+
)
144149
.map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?;
145150

146151
measure.stop();
@@ -380,7 +385,12 @@ pub fn update_v2(bank: &Bank) -> std::result::Result<(), AccumulatorUpdateErrorV
380385
let mut measure = Measure::start("update_v2_load_program_accounts");
381386

382387
let accounts = bank
383-
.get_program_accounts(&ORACLE_PID, &ScanConfig::new(true))
388+
.get_filtered_indexed_accounts(
389+
&IndexKey::ProgramId(*ORACLE_PID),
390+
|account| account.owner() == &*ORACLE_PID,
391+
&ScanConfig::new(true),
392+
None,
393+
)
384394
.map_err(AccumulatorUpdateErrorV1::GetProgramAccounts)?;
385395

386396
measure.stop();

0 commit comments

Comments
 (0)