Skip to main content

SignedAction

Struct SignedAction 

Source
pub struct SignedAction<'a, M: ModuleData> { /* private fields */ }
Expand description

A self-custodial action ready to be sent to the venue once signed.

The struct binds the EIP-712 action context to the module-specific payload and tracks the resulting 65-byte signature. Compose it via SignedAction::new, then call SignedAction::sign with the session-key signer.

Implementations§

Source§

impl<'a, M: ModuleData> SignedAction<'a, M>

Source

pub fn new( ctx: ActionContext, module_data: &'a M, domain_separator: B256, action_typehash: B256, ) -> Self

Constructs a new unsigned action.

Source

pub fn sign( &mut self, signer: &PrivateKeySigner, ) -> Result<[u8; 65], TypedDataError>

Signs the action using the supplied secp256k1 session-key signer.

Validates signature_expiry_sec against MIN_SIGNATURE_TTL before hashing; the adapter conservatively requires five minutes in the future.

§Errors

Returns an error if the configured expiry is closer to now than the venue minimum, if the system clock is invalid, if the per-module ABI encoder rejects the payload, or if the underlying secp256k1 signer errors.

Source

pub fn signature_hex(&self) -> String

Returns the signature as a 0x-prefixed 130-character hex string. Panics if SignedAction::sign has not yet been called.

§Panics

Panics if SignedAction::sign has not been called.

Source

pub const fn subaccount_id(&self) -> u64

Returns the signed action’s subaccount id.

Source

pub const fn nonce(&self) -> u64

Returns the signed action’s nonce.

Source

pub const fn signer_address(&self) -> Address

Returns the signed action’s session-key signer address.

Source

pub const fn signature_expiry_sec(&self) -> i64

Returns the signed action’s signature expiry in UNIX seconds.

Trait Implementations§

Source§

impl<M> Debug for SignedAction<'_, M>
where M: ModuleData + Debug,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<M: ModuleData> Drop for SignedAction<'_, M>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl<M: ModuleData> Zeroize for SignedAction<'_, M>

Source§

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not “optimized away” by the compiler.
Source§

impl<M: ModuleData> ZeroizeOnDrop for SignedAction<'_, M>

Auto Trait Implementations§

§

impl<'a, M> Freeze for SignedAction<'a, M>
where &'a M: Freeze,

§

impl<'a, M> RefUnwindSafe for SignedAction<'a, M>

§

impl<'a, M> Send for SignedAction<'a, M>
where &'a M: Send,

§

impl<'a, M> Sync for SignedAction<'a, M>
where &'a M: Sync,

§

impl<'a, M> Unpin for SignedAction<'a, M>
where &'a M: Unpin,

§

impl<'a, M> UnsafeUnpin for SignedAction<'a, M>

§

impl<'a, M> UnwindSafe for SignedAction<'a, M>

Blanket Implementations§

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
§

impl<T> Ungil for T
where T: Send,

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more