pub trait PrecompileSetFragment {
// Required methods
fn new() -> Self;
fn execute<R: Config>(
&self,
handle: &mut impl PrecompileHandle,
) -> Option<PrecompileResult>;
fn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult;
fn used_addresses(&self) -> Vec<H160>;
fn summarize_checks(&self) -> Vec<PrecompileCheckSummary>;
}
Expand description
A fragment of a PrecompileSet. Should be implemented as is it
was a PrecompileSet containing only the precompile(set) it wraps.
They can be combined into a real PrecompileSet using PrecompileSetBuilder
.
Required Methods§
Sourcefn execute<R: Config>(
&self,
handle: &mut impl PrecompileHandle,
) -> Option<PrecompileResult>
fn execute<R: Config>( &self, handle: &mut impl PrecompileHandle, ) -> Option<PrecompileResult>
Execute the fragment.
Sourcefn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult
fn is_precompile(&self, address: H160, gas: u64) -> IsPrecompileResult
Is the provided address a precompile in this fragment?
Sourcefn used_addresses(&self) -> Vec<H160>
fn used_addresses(&self) -> Vec<H160>
Return the list of addresses covered by this fragment.
Sourcefn summarize_checks(&self) -> Vec<PrecompileCheckSummary>
fn summarize_checks(&self) -> Vec<PrecompileCheckSummary>
Summarize
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.