Refactor: Cleanup InvokeContext (#20785)
* Move blockhash and fee_calculator in ThisInvokeContext instead of using a reference. * Moves tx_wide_compute_cap into InvokeContext::push(). * Adds ThisInvokeContext::new_mock() constructor. * Adds missing loader account in uses of MockInvokeContext. * Use keyed_account_at_index() when accessing keyed_accounts. * Makes sysvar interface consistent between ThisInvokeContext and MockInvokeContext, in order to add InvokeContext::get_sysvars(). * Adds InvokeContext::set_blockhash() and InvokeContext ::set_fee_calculator(). * Adds new_mock_with_features. * Makes ancestors optional in ThisInvokeContext. * Adds prepare_mock_invoke_context() and mock_process_instruction().
This commit is contained in:
committed by
GitHub
parent
0ac89841bf
commit
97c2732d02
@ -3335,7 +3335,8 @@ mod tests {
|
||||
let mut data = vec![];
|
||||
bincode::serialize_into(&mut data, &src_clock).unwrap();
|
||||
invoke_context
|
||||
.sysvars
|
||||
.get_sysvars()
|
||||
.borrow_mut()
|
||||
.push((sysvar::clock::id(), Some(Rc::new(data))));
|
||||
|
||||
let mut syscall = SyscallGetClockSysvar {
|
||||
@ -3380,7 +3381,8 @@ mod tests {
|
||||
let mut data = vec![];
|
||||
bincode::serialize_into(&mut data, &src_epochschedule).unwrap();
|
||||
invoke_context
|
||||
.sysvars
|
||||
.get_sysvars()
|
||||
.borrow_mut()
|
||||
.push((sysvar::epoch_schedule::id(), Some(Rc::new(data))));
|
||||
|
||||
let mut syscall = SyscallGetEpochScheduleSysvar {
|
||||
@ -3432,7 +3434,8 @@ mod tests {
|
||||
let mut data = vec![];
|
||||
bincode::serialize_into(&mut data, &src_fees).unwrap();
|
||||
invoke_context
|
||||
.sysvars
|
||||
.get_sysvars()
|
||||
.borrow_mut()
|
||||
.push((sysvar::fees::id(), Some(Rc::new(data))));
|
||||
|
||||
let mut syscall = SyscallGetFeesSysvar {
|
||||
@ -3475,7 +3478,8 @@ mod tests {
|
||||
let mut data = vec![];
|
||||
bincode::serialize_into(&mut data, &src_rent).unwrap();
|
||||
invoke_context
|
||||
.sysvars
|
||||
.get_sysvars()
|
||||
.borrow_mut()
|
||||
.push((sysvar::rent::id(), Some(Rc::new(data))));
|
||||
|
||||
let mut syscall = SyscallGetRentSysvar {
|
||||
|
Reference in New Issue
Block a user