pub struct LimitConfig {
Show 26 fields pub max_gas_burnt: Gas, pub max_stack_height: u32, pub contract_prepare_version: ContractPrepareVersion, pub initial_memory_pages: u32, pub max_memory_pages: u32, pub registers_memory_limit: u64, pub max_register_size: u64, pub max_number_registers: u64, pub max_number_logs: u64, pub max_total_log_length: u64, pub max_total_prepaid_gas: Gas, pub max_actions_per_receipt: u64, pub max_number_bytes_method_names: u64, pub max_length_method_name: u64, pub max_arguments_length: u64, pub max_length_returned_data: u64, pub max_contract_size: u64, pub max_transaction_size: u64, pub max_length_storage_key: u64, pub max_length_storage_value: u64, pub max_promises_per_function_call_action: u64, pub max_number_input_data_dependencies: u64, pub max_functions_number_per_contract: Option<u64>, pub wasmer2_stack_limit: i32, pub max_locals_per_contract: Option<u64>, pub account_id_validity_rules_version: AccountIdValidityRulesVersion,
}
Expand description

Describes limits for VM and Runtime. TODO #4139: consider switching to strongly-typed wrappers instead of raw quantities

Fields§

§max_gas_burnt: Gas

Max amount of gas that can be used, excluding gas attached to promises.

§max_stack_height: u32

How tall the stack is allowed to grow?

See https://wiki.parity.io/WebAssembly-StackHeight to find out how the stack frame cost is calculated.

§contract_prepare_version: ContractPrepareVersion

Whether a legacy version of stack limiting should be used, see ContractPrepareVersion.

§initial_memory_pages: u32

The initial number of memory pages. NOTE: It’s not a limiter itself, but it’s a value we use for initial_memory_pages.

§max_memory_pages: u32

What is the maximal memory pages amount is allowed to have for a contract.

§registers_memory_limit: u64

Limit of memory used by registers.

§max_register_size: u64

Maximum number of bytes that can be stored in a single register.

§max_number_registers: u64

Maximum number of registers that can be used simultaneously.

Note that due to an implementation quirk [read: a bug] in VMLogic, if we have this number of registers, no subsequent writes to the registers will succeed even if they replace an existing register.

§max_number_logs: u64

Maximum number of log entries.

§max_total_log_length: u64

Maximum total length in bytes of all log messages.

§max_total_prepaid_gas: Gas

Max total prepaid gas for all function call actions per receipt.

§max_actions_per_receipt: u64

Max number of actions per receipt.

§max_number_bytes_method_names: u64

Max total length of all method names (including terminating character) for a function call permission access key.

§max_length_method_name: u64

Max length of any method name (without terminating character).

§max_arguments_length: u64

Max length of arguments in a function call action.

§max_length_returned_data: u64

Max length of returned data

§max_contract_size: u64

Max contract size

§max_transaction_size: u64

Max transaction size

§max_length_storage_key: u64

Max storage key size

§max_length_storage_value: u64

Max storage value size

§max_promises_per_function_call_action: u64

Max number of promises that a function call can create

§max_number_input_data_dependencies: u64

Max number of input data dependencies

§max_functions_number_per_contract: Option<u64>

If present, stores max number of functions in one contract

§wasmer2_stack_limit: i32

If present, stores the secondary stack limit as implemented by wasmer2.

This limit should never be hit normally.

§max_locals_per_contract: Option<u64>

If present, stores max number of locals declared globally in one contract

§account_id_validity_rules_version: AccountIdValidityRulesVersion

Whether to enforce account_id well-formedness where it wasn’t enforced historically.

Trait Implementations§

source§

impl Clone for LimitConfig

source§

fn clone(&self) -> LimitConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LimitConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for LimitConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for LimitConfig

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for LimitConfig

source§

fn eq(&self, other: &LimitConfig) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for LimitConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for LimitConfig

source§

impl StructuralEq for LimitConfig

source§

impl StructuralPartialEq for LimitConfig

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,