Struct solana_sdk::process_instruction::BpfComputeBudget[][src]

pub struct BpfComputeBudget {
Show 18 fields pub max_units: u64, pub log_units: u64, pub log_64_units: u64, pub create_program_address_units: u64, pub invoke_units: u64, pub max_invoke_depth: usize, pub sha256_base_cost: u64, pub sha256_byte_cost: u64, pub max_call_depth: usize, pub stack_frame_size: usize, pub log_pubkey_units: u64, pub max_cpi_instruction_size: usize, pub cpi_bytes_per_unit: u64, pub sysvar_base_cost: u64, pub secp256k1_recover_cost: u64, pub syscall_base_cost: u64, pub heap_size: Option<usize>, pub heap_cost: u64,
}

Fields

max_units: u64

Number of compute units that an instruction is allowed. Compute units are consumed by program execution, resources they use, etc…

log_units: u64

Number of compute units consumed by a log call

log_64_units: u64

Number of compute units consumed by a log_u64 call

create_program_address_units: u64

Number of compute units consumed by a create_program_address call

invoke_units: u64

Number of compute units consumed by an invoke call (not including the cost incurred by the called program)

max_invoke_depth: usize

Maximum cross-program invocation depth allowed

sha256_base_cost: u64

Base number of compute units consumed to call SHA256

sha256_byte_cost: u64

Incremental number of units consumed by SHA256 (based on bytes)

max_call_depth: usize

Maximum BPF to BPF call depth

stack_frame_size: usize

Size of a stack frame in bytes, must match the size specified in the LLVM BPF backend

log_pubkey_units: u64

Number of compute units consumed by logging a Pubkey

max_cpi_instruction_size: usize

Maximum cross-program invocation instruction size

cpi_bytes_per_unit: u64

Number of account data bytes per conpute unit charged during a cross-program invocation

sysvar_base_cost: u64

Base number of compute units consumed to get a sysvar

secp256k1_recover_cost: u64

Number of compute units consumed to call secp256k1_recover

syscall_base_cost: u64

Number of compute units consumed to do a syscall without any work

heap_size: Option<usize>

Optional program heap region size, if None then loader default

heap_cost: u64

Number of compute units per additional 32k heap above the default (~.5 us per 32k at 15 units/us rounded up)

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.