@@ -22,7 +22,6 @@ use crate::c_oracle_header::{
22
22
use crate :: deserialize:: {
23
23
initialize_pyth_account_checked,
24
24
load,
25
- load_account_as_mut,
26
25
load_checked,
27
26
} ;
28
27
use crate :: instruction:: {
@@ -37,7 +36,6 @@ use crate::instruction::{
37
36
use crate :: time_machine_types:: PriceAccountWrapper ;
38
37
use crate :: utils:: {
39
38
check_exponent_range,
40
- check_valid_fresh_account,
41
39
check_valid_funding_account,
42
40
check_valid_signable_account,
43
41
check_valid_writable_account,
@@ -115,7 +113,7 @@ pub fn resize_price_account(
115
113
} ?;
116
114
117
115
check_valid_funding_account ( funding_account_info) ?;
118
- check_valid_signable_account ( program_id, price_account_info, size_of :: < PriceAccount > ( ) ) ?;
116
+ check_valid_signable_account ( program_id, price_account_info) ?;
119
117
pyth_assert (
120
118
check_id ( system_program. key ) ,
121
119
OracleError :: InvalidSystemAccount . into ( ) ,
@@ -145,11 +143,7 @@ pub fn resize_price_account(
145
143
price_account_info. realloc ( size_of :: < PriceAccountWrapper > ( ) , false ) ?;
146
144
147
145
// Check that everything is ok
148
- check_valid_signable_account (
149
- program_id,
150
- price_account_info,
151
- size_of :: < PriceAccountWrapper > ( ) ,
152
- ) ?;
146
+ check_valid_signable_account ( program_id, price_account_info) ?;
153
147
let mut price_account =
154
148
load_checked :: < PriceAccountWrapper > ( price_account_info, PC_VERSION ) ?;
155
149
// Initialize Time Machine
@@ -176,12 +170,7 @@ pub fn init_mapping(
176
170
} ?;
177
171
178
172
check_valid_funding_account ( funding_account) ?;
179
- check_valid_signable_account (
180
- program_id,
181
- fresh_mapping_account,
182
- size_of :: < MappingAccount > ( ) ,
183
- ) ?;
184
- check_valid_fresh_account ( fresh_mapping_account) ?;
173
+ check_valid_signable_account ( program_id, fresh_mapping_account) ?;
185
174
186
175
// Initialize by setting to zero again (just in case) and populating the account header
187
176
let hdr = load :: < CommandHeader > ( instruction_data) ?;
@@ -201,9 +190,8 @@ pub fn add_mapping(
201
190
} ?;
202
191
203
192
check_valid_funding_account ( funding_account) ?;
204
- check_valid_signable_account ( program_id, cur_mapping, size_of :: < MappingAccount > ( ) ) ?;
205
- check_valid_signable_account ( program_id, next_mapping, size_of :: < MappingAccount > ( ) ) ?;
206
- check_valid_fresh_account ( next_mapping) ?;
193
+ check_valid_signable_account ( program_id, cur_mapping) ?;
194
+ check_valid_signable_account ( program_id, next_mapping) ?;
207
195
208
196
let hdr = load :: < CommandHeader > ( instruction_data) ?;
209
197
let mut cur_mapping = load_checked :: < MappingAccount > ( cur_mapping, hdr. version ) ?;
@@ -240,7 +228,7 @@ pub fn upd_price(
240
228
} ?;
241
229
242
230
check_valid_funding_account ( funding_account) ?;
243
- check_valid_writable_account ( program_id, price_account, size_of :: < PriceAccount > ( ) ) ?;
231
+ check_valid_writable_account ( program_id, price_account) ?;
244
232
// Check clock
245
233
let clock = Clock :: from_account_info ( clock_account) ?;
246
234
@@ -291,7 +279,8 @@ pub fn upd_price(
291
279
292
280
let account_len = price_account. try_data_len ( ) ?;
293
281
if aggregate_updated && account_len == PRICE_ACCOUNT_SIZE {
294
- let mut price_account = load_account_as_mut :: < PriceAccountWrapper > ( price_account) ?;
282
+ let mut price_account =
283
+ load_checked :: < PriceAccountWrapper > ( price_account, cmd_args. header . version ) ?;
295
284
price_account. add_price_to_time_machine ( ) ?;
296
285
}
297
286
@@ -358,9 +347,8 @@ pub fn add_price(
358
347
} ?;
359
348
360
349
check_valid_funding_account ( funding_account) ?;
361
- check_valid_signable_account ( program_id, product_account, PC_PROD_ACC_SIZE as usize ) ?;
362
- check_valid_signable_account ( program_id, price_account, size_of :: < PriceAccount > ( ) ) ?;
363
- check_valid_fresh_account ( price_account) ?;
350
+ check_valid_signable_account ( program_id, product_account) ?;
351
+ check_valid_signable_account ( program_id, price_account) ?;
364
352
365
353
let mut product_data =
366
354
load_checked :: < ProductAccount > ( product_account, cmd_args. header . version ) ?;
@@ -403,8 +391,8 @@ pub fn del_price(
403
391
} ?;
404
392
405
393
check_valid_funding_account ( funding_account) ?;
406
- check_valid_signable_account ( program_id, product_account, PC_PROD_ACC_SIZE as usize ) ?;
407
- check_valid_signable_account ( program_id, price_account, size_of :: < PriceAccount > ( ) ) ?;
394
+ check_valid_signable_account ( program_id, product_account) ?;
395
+ check_valid_signable_account ( program_id, price_account) ?;
408
396
409
397
{
410
398
let cmd_args = load :: < CommandHeader > ( instruction_data) ?;
@@ -454,7 +442,7 @@ pub fn init_price(
454
442
} ?;
455
443
456
444
check_valid_funding_account ( funding_account) ?;
457
- check_valid_signable_account ( program_id, price_account, size_of :: < PriceAccount > ( ) ) ?;
445
+ check_valid_signable_account ( program_id, price_account) ?;
458
446
459
447
let mut price_data = load_checked :: < PriceAccount > ( price_account, cmd_args. header . version ) ?;
460
448
pyth_assert (
@@ -524,7 +512,7 @@ pub fn add_publisher(
524
512
} ?;
525
513
526
514
check_valid_funding_account ( funding_account) ?;
527
- check_valid_signable_account ( program_id, price_account, size_of :: < PriceAccount > ( ) ) ?;
515
+ check_valid_signable_account ( program_id, price_account) ?;
528
516
529
517
let mut price_data = load_checked :: < PriceAccount > ( price_account, cmd_args. header . version ) ?;
530
518
@@ -577,7 +565,7 @@ pub fn del_publisher(
577
565
} ?;
578
566
579
567
check_valid_funding_account ( funding_account) ?;
580
- check_valid_signable_account ( program_id, price_account, size_of :: < PriceAccount > ( ) ) ?;
568
+ check_valid_signable_account ( program_id, price_account) ?;
581
569
582
570
let mut price_data = load_checked :: < PriceAccount > ( price_account, cmd_args. header . version ) ?;
583
571
@@ -613,13 +601,8 @@ pub fn add_product(
613
601
} ?;
614
602
615
603
check_valid_funding_account ( funding_account) ?;
616
- check_valid_signable_account (
617
- program_id,
618
- tail_mapping_account,
619
- size_of :: < MappingAccount > ( ) ,
620
- ) ?;
621
- check_valid_signable_account ( program_id, new_product_account, PC_PROD_ACC_SIZE as usize ) ?;
622
- check_valid_fresh_account ( new_product_account) ?;
604
+ check_valid_signable_account ( program_id, tail_mapping_account) ?;
605
+ check_valid_signable_account ( program_id, new_product_account) ?;
623
606
624
607
let hdr = load :: < CommandHeader > ( instruction_data) ?;
625
608
let mut mapping_data = load_checked :: < MappingAccount > ( tail_mapping_account, hdr. version ) ?;
@@ -658,7 +641,7 @@ pub fn upd_product(
658
641
} ?;
659
642
660
643
check_valid_funding_account ( funding_account) ?;
661
- check_valid_signable_account ( program_id, product_account, try_convert ( PC_PROD_ACC_SIZE ) ? ) ?;
644
+ check_valid_signable_account ( program_id, product_account) ?;
662
645
663
646
let hdr = load :: < CommandHeader > ( instruction_data) ?;
664
647
{
@@ -723,7 +706,7 @@ pub fn set_min_pub(
723
706
} ?;
724
707
725
708
check_valid_funding_account ( funding_account) ?;
726
- check_valid_signable_account ( program_id, price_account, size_of :: < PriceAccount > ( ) ) ?;
709
+ check_valid_signable_account ( program_id, price_account) ?;
727
710
728
711
let mut price_account_data = load_checked :: < PriceAccount > ( price_account, cmd. header . version ) ?;
729
712
price_account_data. min_pub_ = cmd. minimum_publishers ;
@@ -749,8 +732,8 @@ pub fn del_product(
749
732
} ?;
750
733
751
734
check_valid_funding_account ( funding_account) ?;
752
- check_valid_signable_account ( program_id, mapping_account, size_of :: < MappingAccount > ( ) ) ?;
753
- check_valid_signable_account ( program_id, product_account, PC_PROD_ACC_SIZE as usize ) ?;
735
+ check_valid_signable_account ( program_id, mapping_account) ?;
736
+ check_valid_signable_account ( program_id, product_account) ?;
754
737
755
738
{
756
739
let cmd_args = load :: < CommandHeader > ( instruction_data) ?;
0 commit comments