Skip to main content

SigningResult

Struct SigningResult 

Source
pub struct SigningResult {
    pub parsed_tx: ParsedTx,
    pub policy_result: PolicyCheckResult,
    pub signature: Option<SignatureBytes>,
    pub recovery_id: Option<u8>,
}
Expand description

Comprehensive result of a signing operation.

Contains all information about the signing attempt:

  • The parsed transaction
  • The policy check result
  • The signature (if signing was performed and allowed)
  • The recovery ID for ECDSA signatures

§Signature Format

For secp256k1 signatures, the signature is 64 bytes (r || s). The recovery ID is returned separately for flexibility in different transaction formats:

  • Ethereum legacy: v = recovery_id + 27
  • Ethereum EIP-155: v = recovery_id + 35 + chain_id * 2
  • Ethereum EIP-2930/EIP-1559: v = recovery_id

Fields§

§parsed_tx: ParsedTx

The parsed transaction with all extracted fields.

§policy_result: PolicyCheckResult

The result of the policy check.

§signature: Option<SignatureBytes>

The signature (if signing was performed and allowed).

This is None for:

§recovery_id: Option<u8>

Recovery ID for ECDSA signatures (0 or 1).

This is needed for Ethereum ecrecover operations. None if no signature was produced.

Implementations§

Source§

impl SigningResult

Source

pub const fn allowed( parsed_tx: ParsedTx, signature: SignatureBytes, recovery_id: u8, ) -> Self

Create a new signing result for an allowed transaction.

Source

pub const fn checked( parsed_tx: ParsedTx, policy_result: PolicyCheckResult, ) -> Self

Create a signing result for a dry-run check (no signature).

Source

pub const fn is_allowed(&self) -> bool

Returns true if the transaction was allowed.

Source

pub const fn has_signature(&self) -> bool

Returns true if a signature was produced.

Source

pub fn signature_with_recovery_id(&self) -> Option<[u8; 65]>

Returns the signature as a 65-byte array with recovery ID appended.

Returns None if no signature was produced.

Trait Implementations§

Source§

impl Clone for SigningResult

Source§

fn clone(&self) -> SigningResult

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SigningResult

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.