chore: move decode_revert_reason to primitives (#2615)

This commit is contained in:
Matthias Seitz
2023-05-09 16:26:22 +02:00
committed by GitHub
parent f035b1faf9
commit bda830c1a5
3 changed files with 18 additions and 13 deletions

View File

@ -0,0 +1,16 @@
//! Eth ABI helpers.
use crate::constants::SELECTOR_LEN;
/// Returns the revert reason from the given output data, if it's an abi encoded String. Returns
/// `None` if the output is not long enough to contain a function selector or the content is not a
/// valid abi encoded String.
///
/// **Note:** it's assumed the `out` buffer starts with the call's signature
pub fn decode_revert_reason(out: impl AsRef<[u8]>) -> Option<String> {
use ethers_core::abi::AbiDecode;
let out = out.as_ref();
if out.len() < SELECTOR_LEN {
return None
}
String::decode(&out[SELECTOR_LEN..]).ok()
}

View File

@ -9,6 +9,7 @@
//!
//! This crate contains Ethereum primitive types and helper functions.
pub mod abi;
mod account;
pub mod basefee;
mod bits;