pub struct WalletLinkLifecyclePayload<'a> {Show 13 fields
pub kind: &'a str,
pub transition: &'a str,
pub subject: &'a str,
pub wallet_address: &'a str,
pub currency: &'a str,
pub chain_id: &'a str,
pub limit_base_units: &'a str,
pub limit_human: &'a str,
pub period_secs: &'a str,
pub expiry_unix: &'a str,
pub recipients: &'a str,
pub conversation_id: &'a str,
pub timestamp: &'a str,
}Expand description
The wallet_link_lifecycle field set wallet_link_lifecycle_payload
signs, named at the call site (#2123).
Mirrors RefusalPayload’s reasoning: a positional argument list of
same-typed &strs invites a silent field swap, so every field is named
here instead. One schema version, like RefusalPayload — this event
kind ships new, with no prior persisted history to keep verifying.
Fields§
§kind: &'a strThe event kind the payload is stored under (always
polyc_proto::kinds::WALLET_LINK_LIFECYCLE).
transition: &'a strWhich ceremony transition this event records: "linked",
"renewed" (limit/expiry updated by complete_update), or
"revoked" — each minted by its own success-arm call site in
crates/control-plane/src/wallet_link.rs’s complete/
complete_revoke/complete_update, never a caller-chosen string.
subject: &'a strOpaque principal the ceremony is attributed to — the same status
RefusalPayload::subject carries.
wallet_address: &'a strThe linked wallet’s onchain address.
currency: &'a strSettlement-token contract (hex) the ceremony’s spend cap applies to.
chain_id: &'a strDecimal string of the chain id the ceremony ran on.
limit_base_units: &'a strThe spend cap in the settlement token’s base units, as a decimal
string; empty for "revoked" (no cap to report on a dead link).
limit_human: &'a strHuman-readable spend cap; empty for "revoked".
period_secs: &'a strDecimal string of the spend cap’s reset period in seconds; empty for
"renewed" (TIP-1011’s updateSpendingLimit cannot change the
period — see crate::wallet_link::PERIOD_UNCHANGED_NOTICE in the
control plane) and for "revoked".
expiry_unix: &'a strDecimal string of the unix-seconds authorization expiry; empty for
"renewed" (the expiry is unchanged, not re-attested — TIP-1011’s
updateSpendingLimit never touches it) and for "revoked" (no
expiry survives a dead link).
recipients: &'a strComma-joined recipient allowlist (TIP-1011); empty means any recipient.
conversation_id: &'a strThe conversation the ceremony was minted and redeemed in — also the
journal partition (conv-{conversation_id}) this event is appended
to.
timestamp: &'a strDecimal string of the unix-seconds clock value at the moment the
ceremony handler recorded the transition — the
payment_refusal.timestamp sibling, divided from a millisecond clock
exactly once at the recording seam.
Trait Implementations§
Source§impl<'a> Clone for WalletLinkLifecyclePayload<'a>
impl<'a> Clone for WalletLinkLifecyclePayload<'a>
Source§fn clone(&self) -> WalletLinkLifecyclePayload<'a>
fn clone(&self) -> WalletLinkLifecyclePayload<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<'a> Copy for WalletLinkLifecyclePayload<'a>
Auto Trait Implementations§
impl<'a> Freeze for WalletLinkLifecyclePayload<'a>
impl<'a> RefUnwindSafe for WalletLinkLifecyclePayload<'a>
impl<'a> Send for WalletLinkLifecyclePayload<'a>
impl<'a> Sync for WalletLinkLifecyclePayload<'a>
impl<'a> Unpin for WalletLinkLifecyclePayload<'a>
impl<'a> UnsafeUnpin for WalletLinkLifecyclePayload<'a>
impl<'a> UnwindSafe for WalletLinkLifecyclePayload<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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