Trait PrecompileSet
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>>
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
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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
§impl PrecompileSet for ()
impl PrecompileSet for ()
fn execute( &self, _: &mut impl PrecompileHandle, ) -> Option<Result<PrecompileOutput, PrecompileFailure>>
fn is_precompile(&self, _: H160, _: u64) -> IsPrecompileResult
§impl PrecompileSet for BTreeMap<H160, fn(&[u8], Option<u64>, &Context, bool) -> Result<(PrecompileOutput, u64), PrecompileFailure>>
impl PrecompileSet for BTreeMap<H160, fn(&[u8], Option<u64>, &Context, bool) -> Result<(PrecompileOutput, u64), PrecompileFailure>>
§fn is_precompile(&self, address: H160, _: u64) -> IsPrecompileResult
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.