open_payments/types/
wallet_address.rs1use 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}