[−][src]Trait pallet_evm::precompiles::Precompiles
Custom precompiles to be used by EVM engine.
Required methods
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
Try to execute the code address as precompile. If the code address is not
a precompile or the precompile is not yet available, return None
.
Otherwise, calculate the amount of gas needed with given input
and
target_gas
. Return Some(Ok(status, output, gas_used))
if the execution
is successful. Otherwise return Some(Err(_))
.
Implementations on Foreign Types
impl Precompiles for ()
[src]
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0> Precompiles for (TupleElement0,) where
TupleElement0: Precompile,
[src]
TupleElement0: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1> Precompiles for (TupleElement0, TupleElement1) where
TupleElement0: Precompile,
TupleElement1: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2> Precompiles for (TupleElement0, TupleElement1, TupleElement2) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
TupleElement13: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
TupleElement13: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
TupleElement13: Precompile,
TupleElement14: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
TupleElement13: Precompile,
TupleElement14: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15) where
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
TupleElement13: Precompile,
TupleElement14: Precompile,
TupleElement15: Precompile,
[src]
TupleElement0: Precompile,
TupleElement1: Precompile,
TupleElement2: Precompile,
TupleElement3: Precompile,
TupleElement4: Precompile,
TupleElement5: Precompile,
TupleElement6: Precompile,
TupleElement7: Precompile,
TupleElement8: Precompile,
TupleElement9: Precompile,
TupleElement10: Precompile,
TupleElement11: Precompile,
TupleElement12: Precompile,
TupleElement13: Precompile,
TupleElement14: Precompile,
TupleElement15: Precompile,
pub fn execute(
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>
[src]
address: H160,
input: &[u8],
target_gas: Option<usize>
) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>