chore: seal extension traits (#1553)
* chore: seal extension traits * chore: fmt Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
This commit is contained in:
parent
eb8cee0d2f
commit
550d2d86ef
|
@ -26,8 +26,18 @@ pub use human_readable::{
|
||||||
|
|
||||||
use crate::types::{H256, H512, I256, U128, U256, U64};
|
use crate::types::{H256, H512, I256, U128, U256, U64};
|
||||||
|
|
||||||
|
mod sealed {
|
||||||
|
use ethabi::{Event, Function};
|
||||||
|
|
||||||
|
/// private trait to ensure extension traits are used as intended
|
||||||
|
pub trait Sealed {}
|
||||||
|
impl Sealed for Function {}
|
||||||
|
impl Sealed for Event {}
|
||||||
|
impl Sealed for ethabi::AbiError {}
|
||||||
|
}
|
||||||
|
|
||||||
/// Extension trait for `ethabi::Function`.
|
/// Extension trait for `ethabi::Function`.
|
||||||
pub trait FunctionExt {
|
pub trait FunctionExt: sealed::Sealed {
|
||||||
/// Compute the method signature in the standard ABI format. This does not
|
/// Compute the method signature in the standard ABI format. This does not
|
||||||
/// include the output types.
|
/// include the output types.
|
||||||
fn abi_signature(&self) -> String;
|
fn abi_signature(&self) -> String;
|
||||||
|
@ -52,7 +62,7 @@ impl FunctionExt for Function {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Extension trait for `ethabi::Event`.
|
/// Extension trait for `ethabi::Event`.
|
||||||
pub trait EventExt {
|
pub trait EventExt: sealed::Sealed {
|
||||||
/// Compute the event signature in human-readable format. The `keccak256`
|
/// Compute the event signature in human-readable format. The `keccak256`
|
||||||
/// hash of this value is the actual event signature that is used as topic0
|
/// hash of this value is the actual event signature that is used as topic0
|
||||||
/// in the transaction logs.
|
/// in the transaction logs.
|
||||||
|
@ -71,7 +81,7 @@ impl EventExt for Event {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Extension trait for `ethabi::AbiError`.
|
/// Extension trait for `ethabi::AbiError`.
|
||||||
pub trait ErrorExt {
|
pub trait ErrorExt: sealed::Sealed {
|
||||||
/// Compute the method signature in the standard ABI format.
|
/// Compute the method signature in the standard ABI format.
|
||||||
fn abi_signature(&self) -> String;
|
fn abi_signature(&self) -> String;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue