MCPcopy Create free account
hub / github.com/base/base / execute

Function execute

crates/proof/host/src/precompiles.rs:23–42  ·  view source on GitHub ↗

Executes an accelerated precompile on [revm].

(address: Address, input: T, gas: u64)

Source from the content-addressed store, hash-verified

21
22/// Executes an accelerated precompile on [revm].
23pub fn execute<T: Into<Bytes>>(address: Address, input: T, gas: u64) -> Result<Vec<u8>> {
24 if let Some(precompile) =
25 ACCELERATED_PRECOMPILES.iter().find(|precompile| *precompile.address() == address)
26 {
27 let input = input.into();
28 let output = precompile
29 .execute(&input, gas, 0)
30 .map_err(|e| HostError::PrecompileExecutionFailed(e.to_string()))?;
31 if output.is_success() {
32 Ok(output.bytes.into())
33 } else {
34 Err(HostError::PrecompileExecutionFailed(format!(
35 "precompile returned non-success status: {:?}",
36 output.status
37 )))
38 }
39 } else {
40 Err(HostError::PrecompileNotAccelerated)
41 }
42}

Callers 2

handle_hint_innerFunction · 0.85
transact_rawMethod · 0.85

Calls 5

findMethod · 0.45
iterMethod · 0.45
addressMethod · 0.45
executeMethod · 0.45
is_successMethod · 0.45

Tested by

no test coverage detected