pub struct GasCost;
Expand description
Defines the gas consumption.
Implementations§
source§impl GasCost
impl GasCost
sourcepub const SELFDESTRUCT: u64 = 5_000u64
pub const SELFDESTRUCT: u64 = 5_000u64
Constant cost for SELFDESTRUCT
sourcepub const COPY_SHA3: u64 = 6u64
pub const COPY_SHA3: u64 = 6u64
Constant cost for copying every word, specifically in the case of SHA3 opcode.
sourcepub const WARM_ACCESS: u64 = 100u64
pub const WARM_ACCESS: u64 = 100u64
Constant cost for accessing account or storage key
sourcepub const COLD_SLOAD: u64 = 2_100u64
pub const COLD_SLOAD: u64 = 2_100u64
Constant cost for a cold SLOAD
sourcepub const COLD_ACCOUNT_ACCESS: u64 = 2_600u64
pub const COLD_ACCOUNT_ACCESS: u64 = 2_600u64
Constant cost for a cold account access
sourcepub const SSTORE_SENTRY: u64 = 2_300u64
pub const SSTORE_SENTRY: u64 = 2_300u64
SSTORE reentrancy sentry
sourcepub const SSTORE_SET: u64 = 20_000u64
pub const SSTORE_SET: u64 = 20_000u64
Constant cost for a storage set
sourcepub const SSTORE_RESET: u64 = 2_900u64
pub const SSTORE_RESET: u64 = 2_900u64
Constant cost for a storage reset
sourcepub const SSTORE_CLEARS_SCHEDULE: u64 = 4_800u64
pub const SSTORE_CLEARS_SCHEDULE: u64 = 4_800u64
Constant cost for a storage clear. EIP-3529 changed it to 4800 from 15000.
sourcepub const CREATION_TX: u64 = 53_000u64
pub const CREATION_TX: u64 = 53_000u64
Constant cost for a creation transaction
sourcepub const CALL_WITH_VALUE: u64 = 9_000u64
pub const CALL_WITH_VALUE: u64 = 9_000u64
Constant cost for calling with non-zero value
sourcepub const NEW_ACCOUNT: u64 = 25_000u64
pub const NEW_ACCOUNT: u64 = 25_000u64
Constant cost for turning empty account into non-empty account
sourcepub const CODE_DEPOSIT_BYTE_COST: u64 = 200u64
pub const CODE_DEPOSIT_BYTE_COST: u64 = 200u64
Cost per byte of deploying a new contract
sourcepub const MEMORY_EXPANSION_QUAD_DENOMINATOR: u64 = 512u64
pub const MEMORY_EXPANSION_QUAD_DENOMINATOR: u64 = 512u64
Denominator of quadratic part of memory expansion gas cost
sourcepub const MEMORY_EXPANSION_LINEAR_COEFF: u64 = 3u64
pub const MEMORY_EXPANSION_LINEAR_COEFF: u64 = 3u64
Coefficient of linear part of memory expansion gas cost
sourcepub const EXP_BYTE_TIMES: u64 = 50u64
pub const EXP_BYTE_TIMES: u64 = 50u64
Times ceil exponent byte size for the EXP instruction, EIP-158 changed it from 10 to 50.
sourcepub const PRECOMPILE_ECRECOVER_BASE: u64 = 3_000u64
pub const PRECOMPILE_ECRECOVER_BASE: u64 = 3_000u64
Base gas cost for precompile call: Elliptic curve recover
sourcepub const PRECOMPILE_SHA256_BASE: u64 = 60u64
pub const PRECOMPILE_SHA256_BASE: u64 = 60u64
Base gas cost for precompile call: SHA256
sourcepub const PRECOMPILE_SHA256_PER_WORD: u64 = 12u64
pub const PRECOMPILE_SHA256_PER_WORD: u64 = 12u64
Per-word gas cost for SHA256
sourcepub const PRECOMPILE_RIPEMD160_BASE: u64 = 600u64
pub const PRECOMPILE_RIPEMD160_BASE: u64 = 600u64
Base gas cost for precompile call: RIPEMD160
sourcepub const PRECOMPILE_RIPEMD160_PER_WORD: u64 = 120u64
pub const PRECOMPILE_RIPEMD160_PER_WORD: u64 = 120u64
Per-word gas cost for RIPEMD160
sourcepub const PRECOMPILE_IDENTITY_BASE: u64 = 15u64
pub const PRECOMPILE_IDENTITY_BASE: u64 = 15u64
Base gas cost for precompile call: Identity
sourcepub const PRECOMPILE_IDENTITY_PER_WORD: u64 = 3u64
pub const PRECOMPILE_IDENTITY_PER_WORD: u64 = 3u64
Per-word gas cost for Identity
sourcepub const PRECOMPILE_BN256ADD: u64 = 150u64
pub const PRECOMPILE_BN256ADD: u64 = 150u64
Base gas cost for precompile call: BN256 point addition
sourcepub const PRECOMPILE_BN256MUL: u64 = 6_000u64
pub const PRECOMPILE_BN256MUL: u64 = 6_000u64
Base gas cost for precompile call: BN256 scalar multiplication
sourcepub const PRECOMPILE_BN256PAIRING: u64 = 45_000u64
pub const PRECOMPILE_BN256PAIRING: u64 = 45_000u64
Base gas cost for precompile call: BN256 pairing op base cost
sourcepub const PRECOMPILE_BN256PAIRING_PER_PAIR: u64 = 34_000u64
pub const PRECOMPILE_BN256PAIRING_PER_PAIR: u64 = 34_000u64
Per-pair gas cost for BN256 pairing
sourcepub const PRECOMPILE_MODEXP: u64 = 200u64
pub const PRECOMPILE_MODEXP: u64 = 200u64
Base gas cost for precompile call: MODEXP
sourcepub const PRECOMPILE_MODEXP_MIN: u64 = 200u64
pub const PRECOMPILE_MODEXP_MIN: u64 = 200u64
Minimum gas cost for precompile calls: MODEXP
sourcepub const PRECOMPILE_BLAKE2F: u64 = 0u64
pub const PRECOMPILE_BLAKE2F: u64 = 0u64
Base gas cost for precompile call: BLAKE2F
Auto Trait Implementations§
impl RefUnwindSafe for GasCost
impl Send for GasCost
impl Sync for GasCost
impl Unpin for GasCost
impl UnwindSafe for GasCost
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.