Trait PrecompileProvider
pub trait PrecompileProvider<CTX>where
CTX: ContextTr,{
type Output;
// Required methods
fn set_spec(&mut self, spec: <<CTX as ContextTr>::Cfg as Cfg>::Spec);
fn run(
&mut self,
context: &mut CTX,
address: &Address,
bytes: &Bytes,
gas_limit: u64,
) -> Result<Option<Self::Output>, PrecompileError>;
fn warm_addresses(&self) -> Box<impl Iterator<Item = Address>>;
fn contains(&self, address: &Address) -> bool;
}
Required Associated Types§
type Output
Required Methods§
fn set_spec(&mut self, spec: <<CTX as ContextTr>::Cfg as Cfg>::Spec)
fn run(
&mut self,
context: &mut CTX,
address: &Address,
bytes: &Bytes,
gas_limit: u64,
) -> Result<Option<Self::Output>, PrecompileError>
fn run( &mut self, context: &mut CTX, address: &Address, bytes: &Bytes, gas_limit: u64, ) -> Result<Option<Self::Output>, PrecompileError>
Run the precompile.
fn warm_addresses(&self) -> Box<impl Iterator<Item = Address>>
fn warm_addresses(&self) -> Box<impl Iterator<Item = Address>>
Get the warm addresses.
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.