pub trait Precompile {
// Required methods
fn required_gas(input: &[u8]) -> Result<EthGas, ExitError>
where Self: Sized;
fn run(
&self,
input: &[u8],
target_gas: Option<EthGas>,
context: &Context,
is_static: bool,
) -> EvmPrecompileResult;
}Expand description
A precompiled function for use in the EVM.
Required Methods§
Implementors§
impl Precompile for CurrentAccount
impl Precompile for Bn256Add<Byzantium>
impl Precompile for Bn256Add<Istanbul>
impl Precompile for Bn256Mul<Byzantium>
impl Precompile for Bn256Mul<Istanbul>
impl Precompile for Bn256Pair<Byzantium>
impl Precompile for Bn256Pair<Istanbul>
impl Precompile for Blake2F
impl Precompile for BlsG1Add
impl Precompile for BlsG1Msm
impl Precompile for BlsG2Add
impl Precompile for BlsG2Msm
impl Precompile for BlsMapFp2ToG2
impl Precompile for BlsMapFpToG1
impl Precompile for BlsPairingCheck
impl Precompile for RIPEMD160
impl Precompile for SHA256
impl Precompile for Identity
impl Precompile for RandomSeed
impl Precompile for ECRecover
impl Precompile for Secp256r1
impl<E: Env> Precompile for PredecessorAccount<'_, E>
impl<E: Env> Precompile for PrepaidGas<'_, E>
impl<H: ReadOnlyPromiseHandler> Precompile for PromiseResult<H>
impl<I: IO> Precompile for ExitToEthereum<I>
impl<I: IO> Precompile for ExitToNear<I>
impl<M: ModExpAlgorithm> Precompile for ModExp<Berlin, M>
impl<M: ModExpAlgorithm> Precompile for ModExp<Byzantium, M>
impl<M: ModExpAlgorithm> Precompile for ModExp<Osaka, M>
EIP-7823 and EIP-7883 for Osaka hard fork