[][src]Trait pallet_evm::precompiles::Precompiles

pub trait Precompiles {
    pub fn execute(
        address: H160,
        input: &[u8],
        target_gas: Option<usize>
    ) -> Option<Result<(ExitSucceed, Vec<u8>, usize), ExitError>>; }

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]

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(_)).

Loading content...

Implementations on Foreign Types

impl Precompiles for ()[src]

impl<TupleElement0> Precompiles for (TupleElement0,) where
    TupleElement0: Precompile
[src]

impl<TupleElement0, TupleElement1> Precompiles for (TupleElement0, TupleElement1) where
    TupleElement0: Precompile,
    TupleElement1: Precompile
[src]

impl<TupleElement0, TupleElement1, TupleElement2> Precompiles for (TupleElement0, TupleElement1, TupleElement2) where
    TupleElement0: Precompile,
    TupleElement1: Precompile,
    TupleElement2: Precompile
[src]

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3> Precompiles for (TupleElement0, TupleElement1, TupleElement2, TupleElement3) where
    TupleElement0: Precompile,
    TupleElement1: Precompile,
    TupleElement2: Precompile,
    TupleElement3: Precompile
[src]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

Loading content...

Implementors

Loading content...