Skip to main content

open_payments/types/
wallet_address.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
4#[serde(rename_all = "camelCase")]
5pub struct WalletAddress {
6    pub id: String,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub public_name: Option<String>,
9    pub asset_code: String,
10    pub asset_scale: u8,
11    pub auth_server: String,
12    pub resource_server: String,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
16pub struct JsonWebKeySet {
17    pub keys: Vec<JsonWebKey>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
21pub struct JsonWebKey {
22    pub kid: String,
23    pub alg: JwkAlgorithm,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub use_: Option<JwkUse>,
26    pub kty: JwkKeyType,
27    pub crv: JwkCurve,
28    pub x: String,
29}
30
31#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
32pub enum JwkAlgorithm {
33    EdDSA,
34}
35
36#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
37#[serde(rename_all = "lowercase")]
38pub enum JwkUse {
39    #[serde(rename = "sig")]
40    Signature,
41}
42
43#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
44pub enum JwkKeyType {
45    OKP,
46}
47
48#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
49pub enum JwkCurve {
50    Ed25519,
51}