pub trait PrecompileSet {
// Required methods
fn execute(
&self,
address: H160,
input: &[u8],
context: &Context,
is_static: bool,
) -> Option<Result<PrecompileOutput, PrecompileFailure>>;
fn is_precompile(&self, address: H160) -> bool;
}Expand description
A set of precompiles. Checks of the provided address being in the precompile set should be as cheap as possible since it may be called often.
Required Methods§
Sourcefn execute(
&self,
address: H160,
input: &[u8],
context: &Context,
is_static: bool,
) -> Option<Result<PrecompileOutput, PrecompileFailure>>
fn execute( &self, address: H160, input: &[u8], context: &Context, is_static: bool, ) -> Option<Result<PrecompileOutput, PrecompileFailure>>
Tries to execute a precompile in the precompile set. If the provided address is not a precompile, returns None.
Sourcefn is_precompile(&self, address: H160) -> bool
fn is_precompile(&self, address: H160) -> bool
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.
Implementations on Foreign Types§
Source§impl PrecompileSet for ()
impl PrecompileSet for ()
Source§impl PrecompileSet for BTreeMap<H160, PrecompileFn>
impl PrecompileSet for BTreeMap<H160, PrecompileFn>
Source§fn is_precompile(&self, address: H160) -> bool
fn is_precompile(&self, address: H160) -> bool
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.