Removes deprecated BpfComputeBudget. (#20728)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							8955c76d24
						
					
				
				
					commit
					e98cfbb570
				
			@@ -5086,15 +5086,6 @@ impl Bank {
 | 
			
		||||
        self.compute_budget = compute_budget;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[allow(deprecated)]
 | 
			
		||||
    #[deprecated(since = "1.8.0", note = "please use `set_compute_budget` instead")]
 | 
			
		||||
    pub fn set_bpf_compute_budget(
 | 
			
		||||
        &mut self,
 | 
			
		||||
        bpf_compute_budget: Option<solana_sdk::process_instruction::BpfComputeBudget>,
 | 
			
		||||
    ) {
 | 
			
		||||
        self.compute_budget = bpf_compute_budget.map(|budget| budget.into());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn hard_forks(&self) -> Arc<RwLock<HardForks>> {
 | 
			
		||||
        self.hard_forks.clone()
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -57,8 +57,6 @@ pub struct ThisInvokeContext<'a> {
 | 
			
		||||
    programs: &'a [(Pubkey, ProcessInstructionWithContext)],
 | 
			
		||||
    logger: Rc<RefCell<dyn Logger>>,
 | 
			
		||||
    compute_budget: ComputeBudget,
 | 
			
		||||
    #[allow(deprecated)]
 | 
			
		||||
    bpf_compute_budget: solana_sdk::process_instruction::BpfComputeBudget,
 | 
			
		||||
    compute_meter: Rc<RefCell<dyn ComputeMeter>>,
 | 
			
		||||
    executors: Rc<RefCell<Executors>>,
 | 
			
		||||
    instruction_recorders: Option<&'a [InstructionRecorder]>,
 | 
			
		||||
@@ -98,7 +96,6 @@ impl<'a> ThisInvokeContext<'a> {
 | 
			
		||||
            programs,
 | 
			
		||||
            logger: Rc::new(RefCell::new(ThisLogger { log_collector })),
 | 
			
		||||
            compute_budget,
 | 
			
		||||
            bpf_compute_budget: compute_budget.into(),
 | 
			
		||||
            compute_meter,
 | 
			
		||||
            executors,
 | 
			
		||||
            instruction_recorders,
 | 
			
		||||
@@ -357,10 +354,6 @@ impl<'a> InvokeContext for ThisInvokeContext<'a> {
 | 
			
		||||
    fn get_logger(&self) -> Rc<RefCell<dyn Logger>> {
 | 
			
		||||
        self.logger.clone()
 | 
			
		||||
    }
 | 
			
		||||
    #[allow(deprecated)]
 | 
			
		||||
    fn get_bpf_compute_budget(&self) -> &solana_sdk::process_instruction::BpfComputeBudget {
 | 
			
		||||
        &self.bpf_compute_budget
 | 
			
		||||
    }
 | 
			
		||||
    fn get_compute_meter(&self) -> Rc<RefCell<dyn ComputeMeter>> {
 | 
			
		||||
        self.compute_meter.clone()
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -98,10 +98,6 @@ pub trait InvokeContext {
 | 
			
		||||
    fn get_programs(&self) -> &[(Pubkey, ProcessInstructionWithContext)];
 | 
			
		||||
    /// Get this invocation's logger
 | 
			
		||||
    fn get_logger(&self) -> Rc<RefCell<dyn Logger>>;
 | 
			
		||||
    /// Get this invocation's compute budget
 | 
			
		||||
    #[allow(deprecated)]
 | 
			
		||||
    #[deprecated(since = "1.8.0", note = "please use `get_compute_budget` instead")]
 | 
			
		||||
    fn get_bpf_compute_budget(&self) -> &BpfComputeBudget;
 | 
			
		||||
    /// Get this invocation's compute meter
 | 
			
		||||
    fn get_compute_meter(&self) -> Rc<RefCell<dyn ComputeMeter>>;
 | 
			
		||||
    /// Loaders may need to do work in order to execute a program.  Cache
 | 
			
		||||
@@ -184,103 +180,6 @@ pub fn get_sysvar<T: Sysvar>(
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[deprecated(since = "1.8.0", note = "please use `ComputeBudget` instead")]
 | 
			
		||||
#[derive(Clone, Copy, Debug, PartialEq)]
 | 
			
		||||
pub struct BpfComputeBudget {
 | 
			
		||||
    /// Number of compute units that an instruction is allowed.  Compute units
 | 
			
		||||
    /// are consumed by program execution, resources they use, etc...
 | 
			
		||||
    pub max_units: u64,
 | 
			
		||||
    /// Number of compute units consumed by a log_u64 call
 | 
			
		||||
    pub log_64_units: u64,
 | 
			
		||||
    /// Number of compute units consumed by a create_program_address call
 | 
			
		||||
    pub create_program_address_units: u64,
 | 
			
		||||
    /// Number of compute units consumed by an invoke call (not including the cost incurred by
 | 
			
		||||
    /// the called program)
 | 
			
		||||
    pub invoke_units: u64,
 | 
			
		||||
    /// Maximum cross-program invocation depth allowed
 | 
			
		||||
    pub max_invoke_depth: usize,
 | 
			
		||||
    /// Base number of compute units consumed to call SHA256
 | 
			
		||||
    pub sha256_base_cost: u64,
 | 
			
		||||
    /// Incremental number of units consumed by SHA256 (based on bytes)
 | 
			
		||||
    pub sha256_byte_cost: u64,
 | 
			
		||||
    /// Maximum BPF to BPF call depth
 | 
			
		||||
    pub max_call_depth: usize,
 | 
			
		||||
    /// Size of a stack frame in bytes, must match the size specified in the LLVM BPF backend
 | 
			
		||||
    pub stack_frame_size: usize,
 | 
			
		||||
    /// Number of compute units consumed by logging a `Pubkey`
 | 
			
		||||
    pub log_pubkey_units: u64,
 | 
			
		||||
    /// Maximum cross-program invocation instruction size
 | 
			
		||||
    pub max_cpi_instruction_size: usize,
 | 
			
		||||
    /// Number of account data bytes per conpute unit charged during a cross-program invocation
 | 
			
		||||
    pub cpi_bytes_per_unit: u64,
 | 
			
		||||
    /// Base number of compute units consumed to get a sysvar
 | 
			
		||||
    pub sysvar_base_cost: u64,
 | 
			
		||||
    /// Number of compute units consumed to call secp256k1_recover
 | 
			
		||||
    pub secp256k1_recover_cost: u64,
 | 
			
		||||
    /// Number of compute units consumed to do a syscall without any work
 | 
			
		||||
    pub syscall_base_cost: u64,
 | 
			
		||||
    /// Optional program heap region size, if `None` then loader default
 | 
			
		||||
    pub heap_size: Option<usize>,
 | 
			
		||||
}
 | 
			
		||||
#[allow(deprecated)]
 | 
			
		||||
impl From<ComputeBudget> for BpfComputeBudget {
 | 
			
		||||
    fn from(item: ComputeBudget) -> Self {
 | 
			
		||||
        BpfComputeBudget {
 | 
			
		||||
            max_units: item.max_units,
 | 
			
		||||
            log_64_units: item.log_64_units,
 | 
			
		||||
            create_program_address_units: item.create_program_address_units,
 | 
			
		||||
            invoke_units: item.invoke_units,
 | 
			
		||||
            max_invoke_depth: item.max_invoke_depth,
 | 
			
		||||
            sha256_base_cost: item.sha256_base_cost,
 | 
			
		||||
            sha256_byte_cost: item.sha256_byte_cost,
 | 
			
		||||
            max_call_depth: item.max_call_depth,
 | 
			
		||||
            stack_frame_size: item.stack_frame_size,
 | 
			
		||||
            log_pubkey_units: item.log_pubkey_units,
 | 
			
		||||
            max_cpi_instruction_size: item.max_cpi_instruction_size,
 | 
			
		||||
            cpi_bytes_per_unit: item.cpi_bytes_per_unit,
 | 
			
		||||
            sysvar_base_cost: item.sysvar_base_cost,
 | 
			
		||||
            syscall_base_cost: item.syscall_base_cost,
 | 
			
		||||
            secp256k1_recover_cost: item.secp256k1_recover_cost,
 | 
			
		||||
            heap_size: item.heap_size,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#[allow(deprecated)]
 | 
			
		||||
impl From<BpfComputeBudget> for ComputeBudget {
 | 
			
		||||
    fn from(item: BpfComputeBudget) -> Self {
 | 
			
		||||
        ComputeBudget {
 | 
			
		||||
            max_units: item.max_units,
 | 
			
		||||
            log_64_units: item.log_64_units,
 | 
			
		||||
            create_program_address_units: item.create_program_address_units,
 | 
			
		||||
            invoke_units: item.invoke_units,
 | 
			
		||||
            max_invoke_depth: item.max_invoke_depth,
 | 
			
		||||
            sha256_base_cost: item.sha256_base_cost,
 | 
			
		||||
            sha256_byte_cost: item.sha256_byte_cost,
 | 
			
		||||
            max_call_depth: item.max_call_depth,
 | 
			
		||||
            stack_frame_size: item.stack_frame_size,
 | 
			
		||||
            log_pubkey_units: item.log_pubkey_units,
 | 
			
		||||
            max_cpi_instruction_size: item.max_cpi_instruction_size,
 | 
			
		||||
            cpi_bytes_per_unit: item.cpi_bytes_per_unit,
 | 
			
		||||
            sysvar_base_cost: item.sysvar_base_cost,
 | 
			
		||||
            secp256k1_recover_cost: item.secp256k1_recover_cost,
 | 
			
		||||
            syscall_base_cost: item.syscall_base_cost,
 | 
			
		||||
            heap_size: item.heap_size,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#[allow(deprecated)]
 | 
			
		||||
impl Default for BpfComputeBudget {
 | 
			
		||||
    fn default() -> Self {
 | 
			
		||||
        ComputeBudget::default().into()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#[allow(deprecated)]
 | 
			
		||||
impl BpfComputeBudget {
 | 
			
		||||
    pub fn new() -> Self {
 | 
			
		||||
        BpfComputeBudget::default()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Compute meter
 | 
			
		||||
pub trait ComputeMeter {
 | 
			
		||||
    /// Consume compute units
 | 
			
		||||
@@ -448,7 +347,6 @@ pub struct MockInvokeContext<'a> {
 | 
			
		||||
    pub invoke_stack: Vec<InvokeContextStackFrame<'a>>,
 | 
			
		||||
    pub logger: MockLogger,
 | 
			
		||||
    pub compute_budget: ComputeBudget,
 | 
			
		||||
    pub bpf_compute_budget: BpfComputeBudget,
 | 
			
		||||
    pub compute_meter: MockComputeMeter,
 | 
			
		||||
    pub programs: Vec<(Pubkey, ProcessInstructionWithContext)>,
 | 
			
		||||
    pub accounts: Vec<(Pubkey, Rc<RefCell<AccountSharedData>>)>,
 | 
			
		||||
@@ -466,7 +364,6 @@ impl<'a> MockInvokeContext<'a> {
 | 
			
		||||
            invoke_stack: Vec::with_capacity(compute_budget.max_invoke_depth),
 | 
			
		||||
            logger: MockLogger::default(),
 | 
			
		||||
            compute_budget,
 | 
			
		||||
            bpf_compute_budget: compute_budget.into(),
 | 
			
		||||
            compute_meter: MockComputeMeter {
 | 
			
		||||
                remaining: std::i64::MAX as u64,
 | 
			
		||||
            },
 | 
			
		||||
@@ -573,11 +470,6 @@ impl<'a> InvokeContext for MockInvokeContext<'a> {
 | 
			
		||||
    fn get_logger(&self) -> Rc<RefCell<dyn Logger>> {
 | 
			
		||||
        Rc::new(RefCell::new(self.logger.clone()))
 | 
			
		||||
    }
 | 
			
		||||
    #[allow(deprecated)]
 | 
			
		||||
    fn get_bpf_compute_budget(&self) -> &BpfComputeBudget {
 | 
			
		||||
        #[allow(deprecated)]
 | 
			
		||||
        &self.bpf_compute_budget
 | 
			
		||||
    }
 | 
			
		||||
    fn get_compute_meter(&self) -> Rc<RefCell<dyn ComputeMeter>> {
 | 
			
		||||
        Rc::new(RefCell::new(self.compute_meter.clone()))
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user