pub enum PrecompileSpecId {
HOMESTEAD,
BYZANTIUM,
ISTANBUL,
BERLIN,
CANCUN,
PRAGUE,
}
Expand description
Ethereum hardfork spec ids. Represents the specs where precompiles had a change.
Variants§
HOMESTEAD
Frontier spec.
BYZANTIUM
Byzantium spec introduced
ISTANBUL
Istanbul spec introduced
EIP-152: Add BLAKE2 compression function
F
precompile (at 0x09 address).EIP-1108: Reduce alt_bn128 precompile gas costs
. It reduced the gas cost of the bn_add, bn_mul, and bn_pair precompiles.
BERLIN
Berlin spec made a change to:
EIP-2565: ModExp Gas Cost
. It changed the gas cost of the modexp precompile.
CANCUN
Cancun spec added
EIP-4844: Shard Blob Transactions
. It added the KZG point evaluation precompile (at 0x0A address).
PRAGUE
Prague spec added bls precompiles EIP-2537: Precompile for BLS12-381 curve operations
.
BLS12_G1ADD
at address 0x0bBLS12_G1MSM
at address 0x0cBLS12_G2ADD
at address 0x0dBLS12_G2MSM
at address 0x0eBLS12_PAIRING_CHECK
at address 0x0fBLS12_MAP_FP_TO_G1
at address 0x10BLS12_MAP_FP2_TO_G2
at address 0x11
Implementations§
Source§impl PrecompileSpecId
impl PrecompileSpecId
Sourcepub const fn from_spec_id(spec_id: SpecId) -> Self
pub const fn from_spec_id(spec_id: SpecId) -> Self
Returns the appropriate precompile Spec for the primitive SpecId.
Trait Implementations§
Source§impl Clone for PrecompileSpecId
impl Clone for PrecompileSpecId
Source§fn clone(&self) -> PrecompileSpecId
fn clone(&self) -> PrecompileSpecId
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for PrecompileSpecId
impl Debug for PrecompileSpecId
Source§impl From<SpecId> for PrecompileSpecId
impl From<SpecId> for PrecompileSpecId
Source§impl Hash for PrecompileSpecId
impl Hash for PrecompileSpecId
Source§impl Ord for PrecompileSpecId
impl Ord for PrecompileSpecId
Source§fn cmp(&self, other: &PrecompileSpecId) -> Ordering
fn cmp(&self, other: &PrecompileSpecId) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for PrecompileSpecId
impl PartialEq for PrecompileSpecId
Source§impl PartialOrd for PrecompileSpecId
impl PartialOrd for PrecompileSpecId
impl Copy for PrecompileSpecId
impl Eq for PrecompileSpecId
impl StructuralPartialEq for PrecompileSpecId
Auto Trait Implementations§
impl Freeze for PrecompileSpecId
impl RefUnwindSafe for PrecompileSpecId
impl Send for PrecompileSpecId
impl Sync for PrecompileSpecId
impl Unpin for PrecompileSpecId
impl UnwindSafe for PrecompileSpecId
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more