pub struct Payment<S> { /* private fields */ }Expand description
A payment moving through the verify → settle lifecycle.
The type parameter S tracks the current state at compile time. The
struct is transparent (zero overhead) around the underlying request.
Implementations§
Source§impl<S> Payment<S>
impl<S> Payment<S>
Sourcepub const fn request(&self) -> &VerifyRequest
pub const fn request(&self) -> &VerifyRequest
Returns a reference to the wire-level verify request this payment was constructed from.
Source§impl Payment<Unverified>
impl Payment<Unverified>
Sourcepub const fn new(request: VerifyRequest) -> Self
pub const fn new(request: VerifyRequest) -> Self
Wraps a raw verify request as an unverified payment.
Sourcepub async fn verify<F: Facilitator>(
self,
facilitator: &F,
request: VerifyRequest,
) -> Result<(Payment<Verified>, VerifyResponse), FacilitatorError>
pub async fn verify<F: Facilitator>( self, facilitator: &F, request: VerifyRequest, ) -> Result<(Payment<Verified>, VerifyResponse), FacilitatorError>
Runs facilitator verification.
On success, returns the verified payment together with the
facilitator’s VerifyResponse. On failure, the payment is
consumed and a FacilitatorError is returned.
§Errors
Propagates any FacilitatorError raised by the underlying
facilitator. A Valid verification that returns VerifyResponse::Invalid
is surfaced as Err(FacilitatorError::Verification(VerificationError::InvalidFormat)).
Source§impl Payment<Verified>
impl Payment<Verified>
Sourcepub async fn settle<F: Facilitator>(
self,
facilitator: &F,
request: SettleRequest,
) -> Result<(Payment<Settled>, SettleResponse), FacilitatorError>
pub async fn settle<F: Facilitator>( self, facilitator: &F, request: SettleRequest, ) -> Result<(Payment<Settled>, SettleResponse), FacilitatorError>
Runs facilitator settlement on a previously verified payment.
§Errors
Propagates any FacilitatorError raised by the facilitator; a
SettleResponse::Failure is surfaced as
Err(FacilitatorError::Onchain(...)).
Source§impl Payment<Settled>
impl Payment<Settled>
Sourcepub fn into_request(self) -> VerifyRequest
pub fn into_request(self) -> VerifyRequest
Extracts the underlying wire-level request.