Skip to main content

AuthenticatedOpenPaymentsClient

Struct AuthenticatedOpenPaymentsClient 

Source
pub struct AuthenticatedOpenPaymentsClient {
    pub http_client: Client,
    pub config: ClientConfig,
    pub signing_key: SigningKey,
}
Expand description

An authenticated Open Payments client that can make signed HTTP requests.

This client automatically handles HTTP message signature creation for all requests using the configured private key. It’s used for operations that require authentication such as creating payments, quotes and managing access tokens.

§Example

use open_payments::client::{AuthenticatedClient, ClientConfig, AuthenticatedResources, UnauthenticatedResources};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // In a real application, you would use actual file paths
    let config = ClientConfig {
        private_key_path: "path/to/private-key.pem".into(),
        key_id: "my-key-id".to_string(),
        jwks_path: Some("path/to/jwks.json".into()),
        wallet_address_url: "https://rafiki.money/alice".into(),
    };

    // This would fail in a real scenario if the files don't exist
    // but demonstrates the API usage
    let _client = AuthenticatedClient::new(config)?;
    Ok(())
}

Fields§

§http_client: Client

The underlying HTTP client for making requests.

§config: ClientConfig

Client configuration including key paths and identifiers.

§signing_key: SigningKey

The signing key used for HTTP message signatures.

Implementations§

Source§

impl AuthenticatedOpenPaymentsClient

Source

pub fn new(config: ClientConfig) -> Result<Self>

Creates a new authenticated client with the given configuration.

This method will:

  1. Load or generate the signing key from the specified path
  2. Generate and save JWKS if a JWKS path is provided
  3. Create an HTTP client for making requests
§Arguments
  • config - The client configuration containing key paths and identifiers
§Returns

Returns a configured authenticated client or an error if key loading fails.

§Errors

Returns an OpClientError with:

  • description: Human-readable error message
  • status: HTTP status text (for HTTP errors)
  • code: HTTP status code (for HTTP errors)
  • validation_errors: List of validation errors (if applicable)
  • details: Additional error details (if applicable)
Source

pub fn public_jwk(&self) -> JsonWebKey

Returns the public JsonWebKey corresponding to this client’s signing key.

Useful for directed-identity grant requests via grant().request(..., Some(&jwk)).

Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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.

Source§

impl<T> Instrument for T

Source§

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

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

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> PolicyExt for T
where T: ?Sized,

Source§

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

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

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

impl<C> UnauthenticatedResources for C
where C: BaseClient,

Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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