pub trait PrecompileSet {
    // Required methods
    fn execute(
        &self,
        handle: &mut impl PrecompileHandle
    ) -> Option<Result<PrecompileOutput, PrecompileFailure>>;
    fn is_precompile(
        &self,
        address: H160,
        remaining_gas: u64
    ) -> IsPrecompileResult;
}
Expand description

A set of precompiles.

Checks if the provided address is in the precompile set. This should be as cheap as possible since it may be called often.

Required Methods§

fn execute( &self, handle: &mut impl PrecompileHandle ) -> Option<Result<PrecompileOutput, PrecompileFailure>>

Tries to execute a precompile in the precompile set. If the provided address is not a precompile, returns None.

fn is_precompile(&self, address: H160, remaining_gas: u64) -> IsPrecompileResult

Check if the given address is a precompile. Should only be called to perform the check while not executing the precompile afterward, since execute already performs a check internally.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl PrecompileSet for ()

§

impl PrecompileSet for BTreeMap<H160, fn(_: &[u8], _: Option<u64>, _: &Context, _: bool) -> Result<(PrecompileOutput, u64), PrecompileFailure>>

§

fn is_precompile(&self, address: H160, _: u64) -> IsPrecompileResult

Check if the given address is a precompile. Should only be called to perform the check while not executing the precompile afterward, since execute already performs a check internally.

§

fn execute( &self, handle: &mut impl PrecompileHandle ) -> Option<Result<PrecompileOutput, PrecompileFailure>>

Implementors§