Skip to main content

dfns_sdk_rust/
types.rs

1// Code generated by rust-sdk-generator. DO NOT EDIT.
2
3#![allow(clippy::all)]
4
5#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
6pub enum AddressWatchNetwork {
7    #[serde(rename = "ArbitrumOne")]
8    ArbitrumOne,
9    #[serde(rename = "ArbitrumSepolia")]
10    ArbitrumSepolia,
11    #[serde(rename = "ArcTestnet")]
12    ArcTestnet,
13    #[serde(rename = "AvalancheC")]
14    AvalancheC,
15    #[serde(rename = "AvalancheCFuji")]
16    AvalancheCFuji,
17    #[serde(rename = "Base")]
18    Base,
19    #[serde(rename = "BaseSepolia")]
20    BaseSepolia,
21    #[serde(rename = "Berachain")]
22    Berachain,
23    #[serde(rename = "BerachainBepolia")]
24    BerachainBepolia,
25    #[serde(rename = "Bob")]
26    Bob,
27    #[serde(rename = "BobSepolia")]
28    BobSepolia,
29    #[serde(rename = "Bsc")]
30    Bsc,
31    #[serde(rename = "BscTestnet")]
32    BscTestnet,
33    #[serde(rename = "Celo")]
34    Celo,
35    #[serde(rename = "CeloAlfajores")]
36    CeloAlfajores,
37    #[serde(rename = "Codex")]
38    Codex,
39    #[serde(rename = "CodexSepolia")]
40    CodexSepolia,
41    #[serde(rename = "Ethereum")]
42    Ethereum,
43    #[serde(rename = "EthereumClassic")]
44    EthereumClassic,
45    #[serde(rename = "EthereumClassicMordor")]
46    EthereumClassicMordor,
47    #[serde(rename = "EthereumSepolia")]
48    EthereumSepolia,
49    #[serde(rename = "EthereumHoodi")]
50    EthereumHoodi,
51    #[serde(rename = "FlareC")]
52    FlareC,
53    #[serde(rename = "FlareCCoston2")]
54    FlareCCoston2,
55    #[serde(rename = "FlowEvm")]
56    FlowEvm,
57    #[serde(rename = "FlowEvmTestnet")]
58    FlowEvmTestnet,
59    #[serde(rename = "Ink")]
60    Ink,
61    #[serde(rename = "InkSepolia")]
62    InkSepolia,
63    #[serde(rename = "Optimism")]
64    Optimism,
65    #[serde(rename = "OptimismSepolia")]
66    OptimismSepolia,
67    #[serde(rename = "Plasma")]
68    Plasma,
69    #[serde(rename = "PlasmaTestnet")]
70    PlasmaTestnet,
71    #[serde(rename = "Plume")]
72    Plume,
73    #[serde(rename = "PlumeSepolia")]
74    PlumeSepolia,
75    #[serde(rename = "Polygon")]
76    Polygon,
77    #[serde(rename = "PolygonAmoy")]
78    PolygonAmoy,
79    #[serde(rename = "Race")]
80    Race,
81    #[serde(rename = "RaceSepolia")]
82    RaceSepolia,
83    #[serde(rename = "Rayls")]
84    Rayls,
85    #[serde(rename = "RaylsTestnet")]
86    RaylsTestnet,
87    #[serde(rename = "Robinhood")]
88    Robinhood,
89    #[serde(rename = "RobinhoodSepolia")]
90    RobinhoodSepolia,
91    #[serde(rename = "SeiAtlantic2")]
92    SeiAtlantic2,
93    #[serde(rename = "SeiPacific1")]
94    SeiPacific1,
95    #[serde(rename = "Sonic")]
96    Sonic,
97    #[serde(rename = "SonicTestnet")]
98    SonicTestnet,
99    #[serde(rename = "Tempo")]
100    Tempo,
101    #[serde(rename = "TempoModerato")]
102    TempoModerato,
103    #[serde(rename = "Tsc")]
104    Tsc,
105    #[serde(rename = "TscTestnet1")]
106    TscTestnet1,
107    #[serde(rename = "Xdc")]
108    Xdc,
109    #[serde(rename = "XdcApothem")]
110    XdcApothem,
111    #[serde(rename = "XLayer")]
112    XLayer,
113    #[serde(rename = "XLayerSepolia")]
114    XLayerSepolia,
115}
116
117impl std::fmt::Display for AddressWatchNetwork {
118    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
119        f.write_str(match self {
120            AddressWatchNetwork::ArbitrumOne => "ArbitrumOne",
121            AddressWatchNetwork::ArbitrumSepolia => "ArbitrumSepolia",
122            AddressWatchNetwork::ArcTestnet => "ArcTestnet",
123            AddressWatchNetwork::AvalancheC => "AvalancheC",
124            AddressWatchNetwork::AvalancheCFuji => "AvalancheCFuji",
125            AddressWatchNetwork::Base => "Base",
126            AddressWatchNetwork::BaseSepolia => "BaseSepolia",
127            AddressWatchNetwork::Berachain => "Berachain",
128            AddressWatchNetwork::BerachainBepolia => "BerachainBepolia",
129            AddressWatchNetwork::Bob => "Bob",
130            AddressWatchNetwork::BobSepolia => "BobSepolia",
131            AddressWatchNetwork::Bsc => "Bsc",
132            AddressWatchNetwork::BscTestnet => "BscTestnet",
133            AddressWatchNetwork::Celo => "Celo",
134            AddressWatchNetwork::CeloAlfajores => "CeloAlfajores",
135            AddressWatchNetwork::Codex => "Codex",
136            AddressWatchNetwork::CodexSepolia => "CodexSepolia",
137            AddressWatchNetwork::Ethereum => "Ethereum",
138            AddressWatchNetwork::EthereumClassic => "EthereumClassic",
139            AddressWatchNetwork::EthereumClassicMordor => "EthereumClassicMordor",
140            AddressWatchNetwork::EthereumSepolia => "EthereumSepolia",
141            AddressWatchNetwork::EthereumHoodi => "EthereumHoodi",
142            AddressWatchNetwork::FlareC => "FlareC",
143            AddressWatchNetwork::FlareCCoston2 => "FlareCCoston2",
144            AddressWatchNetwork::FlowEvm => "FlowEvm",
145            AddressWatchNetwork::FlowEvmTestnet => "FlowEvmTestnet",
146            AddressWatchNetwork::Ink => "Ink",
147            AddressWatchNetwork::InkSepolia => "InkSepolia",
148            AddressWatchNetwork::Optimism => "Optimism",
149            AddressWatchNetwork::OptimismSepolia => "OptimismSepolia",
150            AddressWatchNetwork::Plasma => "Plasma",
151            AddressWatchNetwork::PlasmaTestnet => "PlasmaTestnet",
152            AddressWatchNetwork::Plume => "Plume",
153            AddressWatchNetwork::PlumeSepolia => "PlumeSepolia",
154            AddressWatchNetwork::Polygon => "Polygon",
155            AddressWatchNetwork::PolygonAmoy => "PolygonAmoy",
156            AddressWatchNetwork::Race => "Race",
157            AddressWatchNetwork::RaceSepolia => "RaceSepolia",
158            AddressWatchNetwork::Rayls => "Rayls",
159            AddressWatchNetwork::RaylsTestnet => "RaylsTestnet",
160            AddressWatchNetwork::Robinhood => "Robinhood",
161            AddressWatchNetwork::RobinhoodSepolia => "RobinhoodSepolia",
162            AddressWatchNetwork::SeiAtlantic2 => "SeiAtlantic2",
163            AddressWatchNetwork::SeiPacific1 => "SeiPacific1",
164            AddressWatchNetwork::Sonic => "Sonic",
165            AddressWatchNetwork::SonicTestnet => "SonicTestnet",
166            AddressWatchNetwork::Tempo => "Tempo",
167            AddressWatchNetwork::TempoModerato => "TempoModerato",
168            AddressWatchNetwork::Tsc => "Tsc",
169            AddressWatchNetwork::TscTestnet1 => "TscTestnet1",
170            AddressWatchNetwork::Xdc => "Xdc",
171            AddressWatchNetwork::XdcApothem => "XdcApothem",
172            AddressWatchNetwork::XLayer => "XLayer",
173            AddressWatchNetwork::XLayerSepolia => "XLayerSepolia",
174        })
175    }
176}
177
178#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
179pub enum Network {
180    #[serde(rename = "Algorand")]
181    Algorand,
182    #[serde(rename = "AlgorandTestnet")]
183    AlgorandTestnet,
184    #[serde(rename = "Aptos")]
185    Aptos,
186    #[serde(rename = "AptosTestnet")]
187    AptosTestnet,
188    #[serde(rename = "ArbitrumOne")]
189    ArbitrumOne,
190    #[serde(rename = "ArbitrumSepolia")]
191    ArbitrumSepolia,
192    #[serde(rename = "ArcTestnet")]
193    ArcTestnet,
194    #[serde(rename = "AvalancheC")]
195    AvalancheC,
196    #[serde(rename = "AvalancheCFuji")]
197    AvalancheCFuji,
198    #[serde(rename = "BabylonGenesis")]
199    BabylonGenesis,
200    #[serde(rename = "BabylonTestnet5")]
201    BabylonTestnet5,
202    #[serde(rename = "Base")]
203    Base,
204    #[serde(rename = "BaseSepolia")]
205    BaseSepolia,
206    #[serde(rename = "Berachain")]
207    Berachain,
208    #[serde(rename = "BerachainBepolia")]
209    BerachainBepolia,
210    #[serde(rename = "Bitcoin")]
211    Bitcoin,
212    #[serde(rename = "BitcoinSignet")]
213    BitcoinSignet,
214    #[serde(rename = "BitcoinTestnet4")]
215    BitcoinTestnet4,
216    #[serde(rename = "BitcoinCash")]
217    BitcoinCash,
218    #[serde(rename = "Bob")]
219    Bob,
220    #[serde(rename = "BobSepolia")]
221    BobSepolia,
222    #[serde(rename = "Bsc")]
223    Bsc,
224    #[serde(rename = "BscTestnet")]
225    BscTestnet,
226    #[serde(rename = "Canton")]
227    Canton,
228    #[serde(rename = "CantonTestnet")]
229    CantonTestnet,
230    #[serde(rename = "Cardano")]
231    Cardano,
232    #[serde(rename = "CardanoPreprod")]
233    CardanoPreprod,
234    #[serde(rename = "Concordium")]
235    Concordium,
236    #[serde(rename = "ConcordiumTestnet")]
237    ConcordiumTestnet,
238    #[serde(rename = "Celo")]
239    Celo,
240    #[serde(rename = "CeloAlfajores")]
241    CeloAlfajores,
242    #[serde(rename = "Codex")]
243    Codex,
244    #[serde(rename = "CodexSepolia")]
245    CodexSepolia,
246    #[serde(rename = "CosmosHub4")]
247    CosmosHub4,
248    #[serde(rename = "CosmosIcsTestnet")]
249    CosmosIcsTestnet,
250    #[serde(rename = "Dogecoin")]
251    Dogecoin,
252    #[serde(rename = "DogecoinTestnet")]
253    DogecoinTestnet,
254    #[serde(rename = "Ethereum")]
255    Ethereum,
256    #[serde(rename = "EthereumClassic")]
257    EthereumClassic,
258    #[serde(rename = "EthereumClassicMordor")]
259    EthereumClassicMordor,
260    #[serde(rename = "EthereumSepolia")]
261    EthereumSepolia,
262    #[serde(rename = "EthereumHoodi")]
263    EthereumHoodi,
264    #[serde(rename = "FlareC")]
265    FlareC,
266    #[serde(rename = "FlareCCoston2")]
267    FlareCCoston2,
268    #[serde(rename = "FlowEvm")]
269    FlowEvm,
270    #[serde(rename = "FlowEvmTestnet")]
271    FlowEvmTestnet,
272    #[serde(rename = "Hedera")]
273    Hedera,
274    #[serde(rename = "HederaTestnet")]
275    HederaTestnet,
276    #[serde(rename = "Ink")]
277    Ink,
278    #[serde(rename = "InkSepolia")]
279    InkSepolia,
280    #[serde(rename = "InternetComputer")]
281    InternetComputer,
282    #[serde(rename = "Ion")]
283    Ion,
284    #[serde(rename = "IonTestnet")]
285    IonTestnet,
286    #[serde(rename = "Iota")]
287    Iota,
288    #[serde(rename = "IotaTestnet")]
289    IotaTestnet,
290    #[serde(rename = "Kusama")]
291    Kusama,
292    #[serde(rename = "KusamaAssetHub")]
293    KusamaAssetHub,
294    #[serde(rename = "Litecoin")]
295    Litecoin,
296    #[serde(rename = "LitecoinTestnet")]
297    LitecoinTestnet,
298    #[serde(rename = "Movement")]
299    Movement,
300    #[serde(rename = "MovementTestnet")]
301    MovementTestnet,
302    #[serde(rename = "Near")]
303    Near,
304    #[serde(rename = "NearTestnet")]
305    NearTestnet,
306    #[serde(rename = "Optimism")]
307    Optimism,
308    #[serde(rename = "OptimismSepolia")]
309    OptimismSepolia,
310    #[serde(rename = "Origyn")]
311    Origyn,
312    #[serde(rename = "Plasma")]
313    Plasma,
314    #[serde(rename = "PlasmaTestnet")]
315    PlasmaTestnet,
316    #[serde(rename = "Plume")]
317    Plume,
318    #[serde(rename = "PlumeSepolia")]
319    PlumeSepolia,
320    #[serde(rename = "Paseo")]
321    Paseo,
322    #[serde(rename = "PaseoAssetHub")]
323    PaseoAssetHub,
324    #[serde(rename = "Polkadot")]
325    Polkadot,
326    #[serde(rename = "PolkadotAssetHub")]
327    PolkadotAssetHub,
328    #[serde(rename = "Polygon")]
329    Polygon,
330    #[serde(rename = "PolygonAmoy")]
331    PolygonAmoy,
332    #[serde(rename = "Polymesh")]
333    Polymesh,
334    #[serde(rename = "PolymeshTestnet")]
335    PolymeshTestnet,
336    #[serde(rename = "Race")]
337    Race,
338    #[serde(rename = "RaceSepolia")]
339    RaceSepolia,
340    #[serde(rename = "Rayls")]
341    Rayls,
342    #[serde(rename = "RaylsTestnet")]
343    RaylsTestnet,
344    #[serde(rename = "Robinhood")]
345    Robinhood,
346    #[serde(rename = "RobinhoodSepolia")]
347    RobinhoodSepolia,
348    #[serde(rename = "SeiAtlantic2")]
349    SeiAtlantic2,
350    #[serde(rename = "SeiPacific1")]
351    SeiPacific1,
352    #[serde(rename = "Solana")]
353    Solana,
354    #[serde(rename = "SolanaDevnet")]
355    SolanaDevnet,
356    #[serde(rename = "Sonic")]
357    Sonic,
358    #[serde(rename = "SonicTestnet")]
359    SonicTestnet,
360    #[serde(rename = "Starknet")]
361    Starknet,
362    #[serde(rename = "StarknetSepolia")]
363    StarknetSepolia,
364    #[serde(rename = "Stellar")]
365    Stellar,
366    #[serde(rename = "StellarTestnet")]
367    StellarTestnet,
368    #[serde(rename = "Sui")]
369    Sui,
370    #[serde(rename = "SuiTestnet")]
371    SuiTestnet,
372    #[serde(rename = "Tezos")]
373    Tezos,
374    #[serde(rename = "TezosGhostnet")]
375    TezosGhostnet,
376    #[serde(rename = "TezosShadownet")]
377    TezosShadownet,
378    #[serde(rename = "Tempo")]
379    Tempo,
380    #[serde(rename = "TempoModerato")]
381    TempoModerato,
382    #[serde(rename = "Tsc")]
383    Tsc,
384    #[serde(rename = "TscTestnet1")]
385    TscTestnet1,
386    #[serde(rename = "Ton")]
387    Ton,
388    #[serde(rename = "TonTestnet")]
389    TonTestnet,
390    #[serde(rename = "Tron")]
391    Tron,
392    #[serde(rename = "TronNile")]
393    TronNile,
394    #[serde(rename = "Westend")]
395    Westend,
396    #[serde(rename = "WestendAssetHub")]
397    WestendAssetHub,
398    #[serde(rename = "Xdc")]
399    Xdc,
400    #[serde(rename = "XdcApothem")]
401    XdcApothem,
402    #[serde(rename = "XLayer")]
403    XLayer,
404    #[serde(rename = "XLayerSepolia")]
405    XLayerSepolia,
406    #[serde(rename = "XrpLedger")]
407    XrpLedger,
408    #[serde(rename = "XrpLedgerTestnet")]
409    XrpLedgerTestnet,
410}
411
412impl std::fmt::Display for Network {
413    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
414        f.write_str(match self {
415            Network::Algorand => "Algorand",
416            Network::AlgorandTestnet => "AlgorandTestnet",
417            Network::Aptos => "Aptos",
418            Network::AptosTestnet => "AptosTestnet",
419            Network::ArbitrumOne => "ArbitrumOne",
420            Network::ArbitrumSepolia => "ArbitrumSepolia",
421            Network::ArcTestnet => "ArcTestnet",
422            Network::AvalancheC => "AvalancheC",
423            Network::AvalancheCFuji => "AvalancheCFuji",
424            Network::BabylonGenesis => "BabylonGenesis",
425            Network::BabylonTestnet5 => "BabylonTestnet5",
426            Network::Base => "Base",
427            Network::BaseSepolia => "BaseSepolia",
428            Network::Berachain => "Berachain",
429            Network::BerachainBepolia => "BerachainBepolia",
430            Network::Bitcoin => "Bitcoin",
431            Network::BitcoinSignet => "BitcoinSignet",
432            Network::BitcoinTestnet4 => "BitcoinTestnet4",
433            Network::BitcoinCash => "BitcoinCash",
434            Network::Bob => "Bob",
435            Network::BobSepolia => "BobSepolia",
436            Network::Bsc => "Bsc",
437            Network::BscTestnet => "BscTestnet",
438            Network::Canton => "Canton",
439            Network::CantonTestnet => "CantonTestnet",
440            Network::Cardano => "Cardano",
441            Network::CardanoPreprod => "CardanoPreprod",
442            Network::Concordium => "Concordium",
443            Network::ConcordiumTestnet => "ConcordiumTestnet",
444            Network::Celo => "Celo",
445            Network::CeloAlfajores => "CeloAlfajores",
446            Network::Codex => "Codex",
447            Network::CodexSepolia => "CodexSepolia",
448            Network::CosmosHub4 => "CosmosHub4",
449            Network::CosmosIcsTestnet => "CosmosIcsTestnet",
450            Network::Dogecoin => "Dogecoin",
451            Network::DogecoinTestnet => "DogecoinTestnet",
452            Network::Ethereum => "Ethereum",
453            Network::EthereumClassic => "EthereumClassic",
454            Network::EthereumClassicMordor => "EthereumClassicMordor",
455            Network::EthereumSepolia => "EthereumSepolia",
456            Network::EthereumHoodi => "EthereumHoodi",
457            Network::FlareC => "FlareC",
458            Network::FlareCCoston2 => "FlareCCoston2",
459            Network::FlowEvm => "FlowEvm",
460            Network::FlowEvmTestnet => "FlowEvmTestnet",
461            Network::Hedera => "Hedera",
462            Network::HederaTestnet => "HederaTestnet",
463            Network::Ink => "Ink",
464            Network::InkSepolia => "InkSepolia",
465            Network::InternetComputer => "InternetComputer",
466            Network::Ion => "Ion",
467            Network::IonTestnet => "IonTestnet",
468            Network::Iota => "Iota",
469            Network::IotaTestnet => "IotaTestnet",
470            Network::Kusama => "Kusama",
471            Network::KusamaAssetHub => "KusamaAssetHub",
472            Network::Litecoin => "Litecoin",
473            Network::LitecoinTestnet => "LitecoinTestnet",
474            Network::Movement => "Movement",
475            Network::MovementTestnet => "MovementTestnet",
476            Network::Near => "Near",
477            Network::NearTestnet => "NearTestnet",
478            Network::Optimism => "Optimism",
479            Network::OptimismSepolia => "OptimismSepolia",
480            Network::Origyn => "Origyn",
481            Network::Plasma => "Plasma",
482            Network::PlasmaTestnet => "PlasmaTestnet",
483            Network::Plume => "Plume",
484            Network::PlumeSepolia => "PlumeSepolia",
485            Network::Paseo => "Paseo",
486            Network::PaseoAssetHub => "PaseoAssetHub",
487            Network::Polkadot => "Polkadot",
488            Network::PolkadotAssetHub => "PolkadotAssetHub",
489            Network::Polygon => "Polygon",
490            Network::PolygonAmoy => "PolygonAmoy",
491            Network::Polymesh => "Polymesh",
492            Network::PolymeshTestnet => "PolymeshTestnet",
493            Network::Race => "Race",
494            Network::RaceSepolia => "RaceSepolia",
495            Network::Rayls => "Rayls",
496            Network::RaylsTestnet => "RaylsTestnet",
497            Network::Robinhood => "Robinhood",
498            Network::RobinhoodSepolia => "RobinhoodSepolia",
499            Network::SeiAtlantic2 => "SeiAtlantic2",
500            Network::SeiPacific1 => "SeiPacific1",
501            Network::Solana => "Solana",
502            Network::SolanaDevnet => "SolanaDevnet",
503            Network::Sonic => "Sonic",
504            Network::SonicTestnet => "SonicTestnet",
505            Network::Starknet => "Starknet",
506            Network::StarknetSepolia => "StarknetSepolia",
507            Network::Stellar => "Stellar",
508            Network::StellarTestnet => "StellarTestnet",
509            Network::Sui => "Sui",
510            Network::SuiTestnet => "SuiTestnet",
511            Network::Tezos => "Tezos",
512            Network::TezosGhostnet => "TezosGhostnet",
513            Network::TezosShadownet => "TezosShadownet",
514            Network::Tempo => "Tempo",
515            Network::TempoModerato => "TempoModerato",
516            Network::Tsc => "Tsc",
517            Network::TscTestnet1 => "TscTestnet1",
518            Network::Ton => "Ton",
519            Network::TonTestnet => "TonTestnet",
520            Network::Tron => "Tron",
521            Network::TronNile => "TronNile",
522            Network::Westend => "Westend",
523            Network::WestendAssetHub => "WestendAssetHub",
524            Network::Xdc => "Xdc",
525            Network::XdcApothem => "XdcApothem",
526            Network::XLayer => "XLayer",
527            Network::XLayerSepolia => "XLayerSepolia",
528            Network::XrpLedger => "XrpLedger",
529            Network::XrpLedgerTestnet => "XrpLedgerTestnet",
530        })
531    }
532}
533
534#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
535pub enum CredentialKind {
536    #[serde(rename = "Fido2")]
537    Fido2,
538    #[serde(rename = "Key")]
539    Key,
540    #[serde(rename = "RecoveryKey")]
541    RecoveryKey,
542    #[serde(rename = "PasswordProtectedKey")]
543    PasswordProtectedKey,
544}
545
546impl std::fmt::Display for CredentialKind {
547    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
548        f.write_str(match self {
549            CredentialKind::Fido2 => "Fido2",
550            CredentialKind::Key => "Key",
551            CredentialKind::RecoveryKey => "RecoveryKey",
552            CredentialKind::PasswordProtectedKey => "PasswordProtectedKey",
553        })
554    }
555}
556
557#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
558pub enum KeyScheme {
559    #[serde(rename = "ECDSA")]
560    ECDSA,
561    #[serde(rename = "EdDSA")]
562    EdDSA,
563    #[serde(rename = "Schnorr")]
564    Schnorr,
565}
566
567impl std::fmt::Display for KeyScheme {
568    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
569        f.write_str(match self {
570            KeyScheme::ECDSA => "ECDSA",
571            KeyScheme::EdDSA => "EdDSA",
572            KeyScheme::Schnorr => "Schnorr",
573        })
574    }
575}
576
577#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
578pub enum KeyCurve {
579    #[serde(rename = "ed25519")]
580    Ed25519,
581    #[serde(rename = "secp256k1")]
582    Secp256k1,
583    #[serde(rename = "stark")]
584    Stark,
585}
586
587impl std::fmt::Display for KeyCurve {
588    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
589        f.write_str(match self {
590            KeyCurve::Ed25519 => "ed25519",
591            KeyCurve::Secp256k1 => "secp256k1",
592            KeyCurve::Stark => "stark",
593        })
594    }
595}
596
597#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
598pub struct WebhookEvent {
599    #[serde(rename = "id")]
600    pub id: String,
601    #[serde(rename = "date")]
602    pub date: String,
603    #[serde(rename = "kind")]
604    pub kind: String,
605    #[serde(rename = "data")]
606    pub data:
607        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
608    #[serde(rename = "status")]
609    pub status: String,
610    #[serde(rename = "error", default, skip_serializing_if = "Option::is_none")]
611    pub error: Option<String>,
612    #[serde(rename = "timestampSent")]
613    pub timestamp_sent: i64,
614}
615
616#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
617pub struct WebhookWithSecret {
618    #[serde(rename = "id")]
619    pub id: String,
620    #[serde(rename = "url")]
621    pub url: String,
622    #[serde(rename = "events")]
623    pub events: Vec<serde_json::Value>,
624    #[serde(rename = "status")]
625    pub status: String,
626    #[serde(
627        rename = "description",
628        default,
629        skip_serializing_if = "Option::is_none"
630    )]
631    pub description: Option<String>,
632    #[serde(rename = "dateCreated")]
633    pub date_created: String,
634    #[serde(rename = "dateUpdated")]
635    pub date_updated: String,
636    #[serde(rename = "secret")]
637    pub secret: String,
638}
639
640#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
641pub struct Webhook {
642    #[serde(rename = "id")]
643    pub id: String,
644    #[serde(rename = "url")]
645    pub url: String,
646    #[serde(rename = "events")]
647    pub events: Vec<serde_json::Value>,
648    #[serde(rename = "status")]
649    pub status: String,
650    #[serde(
651        rename = "description",
652        default,
653        skip_serializing_if = "Option::is_none"
654    )]
655    pub description: Option<String>,
656    #[serde(rename = "dateCreated")]
657    pub date_created: String,
658    #[serde(rename = "dateUpdated")]
659    pub date_updated: String,
660}
661
662#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
663pub struct Offer {
664    #[serde(rename = "id")]
665    pub id: String,
666    #[serde(rename = "orgId")]
667    pub org_id: String,
668    #[serde(rename = "walletId")]
669    pub wallet_id: String,
670    #[serde(rename = "network")]
671    pub network: crate::types::Network,
672    #[serde(rename = "kind")]
673    pub kind: String,
674    #[serde(rename = "metadata")]
675    pub metadata: serde_json::Value,
676    #[serde(rename = "txHash")]
677    pub tx_hash: String,
678    #[serde(rename = "status")]
679    pub status: String,
680    #[serde(rename = "from")]
681    pub from: String,
682    #[serde(rename = "to")]
683    pub to: String,
684    #[serde(rename = "value")]
685    pub value: String,
686    #[serde(rename = "timestamp")]
687    pub timestamp: String,
688    #[serde(rename = "expiresAt", default, skip_serializing_if = "Option::is_none")]
689    pub expires_at: Option<String>,
690    #[serde(rename = "memo", default, skip_serializing_if = "Option::is_none")]
691    pub memo: Option<String>,
692    #[serde(
693        rename = "settlementTransactionId",
694        default,
695        skip_serializing_if = "Option::is_none"
696    )]
697    pub settlement_transaction_id: Option<String>,
698    #[serde(
699        rename = "dateSettled",
700        default,
701        skip_serializing_if = "Option::is_none"
702    )]
703    pub date_settled: Option<String>,
704}
705
706#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
707pub struct TransactionRequest {
708    #[serde(rename = "id")]
709    pub id: String,
710    #[serde(rename = "walletId")]
711    pub wallet_id: String,
712    #[serde(rename = "network")]
713    pub network: crate::types::Network,
714    #[serde(rename = "requester")]
715    pub requester: Requester,
716    #[serde(rename = "requestBody")]
717    pub request_body: serde_json::Value,
718    #[serde(rename = "status")]
719    pub status: String,
720    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
721    pub reason: Option<String>,
722    #[serde(rename = "txHash", default, skip_serializing_if = "Option::is_none")]
723    pub tx_hash: Option<String>,
724    #[serde(rename = "fee", default, skip_serializing_if = "Option::is_none")]
725    pub fee: Option<String>,
726    #[serde(
727        rename = "approvalId",
728        default,
729        skip_serializing_if = "Option::is_none"
730    )]
731    pub approval_id: Option<String>,
732    #[serde(rename = "dateRequested")]
733    pub date_requested: String,
734    #[serde(
735        rename = "datePolicyResolved",
736        default,
737        skip_serializing_if = "Option::is_none"
738    )]
739    pub date_policy_resolved: Option<String>,
740    #[serde(
741        rename = "dateBroadcasted",
742        default,
743        skip_serializing_if = "Option::is_none"
744    )]
745    pub date_broadcasted: Option<String>,
746    #[serde(
747        rename = "dateConfirmed",
748        default,
749        skip_serializing_if = "Option::is_none"
750    )]
751    pub date_confirmed: Option<String>,
752    #[serde(
753        rename = "externalId",
754        default,
755        skip_serializing_if = "Option::is_none"
756    )]
757    pub external_id: Option<String>,
758    #[serde(
759        rename = "replacementId",
760        default,
761        skip_serializing_if = "Option::is_none"
762    )]
763    pub replacement_id: Option<String>,
764    #[serde(rename = "details", default, skip_serializing_if = "Option::is_none")]
765    pub details: Option<
766        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
767    >,
768}
769
770/// The user who initiated the request.
771#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
772pub struct Requester {
773    #[serde(rename = "userId")]
774    pub user_id: String,
775    #[serde(rename = "tokenId", default, skip_serializing_if = "Option::is_none")]
776    pub token_id: Option<String>,
777}
778
779/// Vault balance entry object.
780#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
781pub struct VaultBalanceEntry {
782    #[serde(rename = "id")]
783    pub id: String,
784    #[serde(rename = "kind")]
785    pub kind: String,
786    #[serde(rename = "network")]
787    pub network: String,
788    #[serde(rename = "tid")]
789    pub tid: String,
790    #[serde(rename = "amount")]
791    pub amount: String,
792    #[serde(
793        rename = "transferId",
794        default,
795        skip_serializing_if = "Option::is_none"
796    )]
797    pub transfer_id: Option<String>,
798    #[serde(
799        rename = "quarantineId",
800        default,
801        skip_serializing_if = "Option::is_none"
802    )]
803    pub quarantine_id: Option<String>,
804}
805
806/// Vault net worth in fiat, broken down by balance kind plus a total.
807#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
808pub struct VaultNetWorth {
809    #[serde(rename = "available")]
810    pub available: serde_json::Value,
811    #[serde(rename = "quarantined")]
812    pub quarantined: serde_json::Value,
813    #[serde(rename = "locked")]
814    pub locked: serde_json::Value,
815    #[serde(rename = "total")]
816    pub total: serde_json::Value,
817}
818
819/// Vault asset with balances broken down by kind and USD unit price.
820#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
821pub struct VaultAsset {
822    #[serde(rename = "kind")]
823    pub kind: String,
824    #[serde(rename = "network")]
825    pub network: String,
826    #[serde(rename = "tid")]
827    pub tid: String,
828    #[serde(rename = "decimals")]
829    pub decimals: f64,
830    #[serde(rename = "symbol", default, skip_serializing_if = "Option::is_none")]
831    pub symbol: Option<String>,
832    #[serde(rename = "verified", default, skip_serializing_if = "Option::is_none")]
833    pub verified: Option<bool>,
834    #[serde(rename = "availableBalance")]
835    pub available_balance: String,
836    #[serde(rename = "quarantinedBalance")]
837    pub quarantined_balance: String,
838    #[serde(rename = "lockedBalance")]
839    pub locked_balance: String,
840    #[serde(rename = "quotes", default, skip_serializing_if = "Option::is_none")]
841    pub quotes: Option<serde_json::Value>,
842}
843
844#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
845pub struct TransferRequest {
846    #[serde(rename = "id")]
847    pub id: String,
848    #[serde(rename = "walletId")]
849    pub wallet_id: String,
850    #[serde(rename = "network")]
851    pub network: crate::types::Network,
852    #[serde(rename = "requester")]
853    pub requester: crate::types::Requester,
854    #[serde(rename = "requestBody")]
855    pub request_body: serde_json::Value,
856    #[serde(rename = "metadata")]
857    pub metadata: serde_json::Value,
858    #[serde(rename = "status")]
859    pub status: String,
860    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
861    pub reason: Option<String>,
862    #[serde(rename = "txHash", default, skip_serializing_if = "Option::is_none")]
863    pub tx_hash: Option<String>,
864    #[serde(rename = "fee", default, skip_serializing_if = "Option::is_none")]
865    pub fee: Option<String>,
866    #[serde(rename = "dateRequested")]
867    pub date_requested: String,
868    #[serde(
869        rename = "datePolicyResolved",
870        default,
871        skip_serializing_if = "Option::is_none"
872    )]
873    pub date_policy_resolved: Option<String>,
874    #[serde(
875        rename = "dateBroadcasted",
876        default,
877        skip_serializing_if = "Option::is_none"
878    )]
879    pub date_broadcasted: Option<String>,
880    #[serde(
881        rename = "dateConfirmed",
882        default,
883        skip_serializing_if = "Option::is_none"
884    )]
885    pub date_confirmed: Option<String>,
886    #[serde(
887        rename = "approvalId",
888        default,
889        skip_serializing_if = "Option::is_none"
890    )]
891    pub approval_id: Option<String>,
892    #[serde(
893        rename = "externalId",
894        default,
895        skip_serializing_if = "Option::is_none"
896    )]
897    pub external_id: Option<String>,
898    #[serde(
899        rename = "feeSponsorId",
900        default,
901        skip_serializing_if = "Option::is_none"
902    )]
903    pub fee_sponsor_id: Option<String>,
904    #[serde(
905        rename = "replacementId",
906        default,
907        skip_serializing_if = "Option::is_none"
908    )]
909    pub replacement_id: Option<String>,
910    #[serde(rename = "details", default, skip_serializing_if = "Option::is_none")]
911    pub details: Option<
912        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
913    >,
914}
915
916/// Vault address object.
917#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
918pub struct VaultAddress {
919    #[serde(rename = "walletId")]
920    pub wallet_id: String,
921    #[serde(rename = "network")]
922    pub network: String,
923    #[serde(rename = "address")]
924    pub address: String,
925}
926
927/// Vault object.
928#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
929pub struct Vault {
930    #[serde(rename = "id")]
931    pub id: String,
932    #[serde(rename = "orgId")]
933    pub org_id: String,
934    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
935    pub name: Option<String>,
936    #[serde(rename = "tags")]
937    pub tags: Vec<String>,
938    #[serde(
939        rename = "externalId",
940        default,
941        skip_serializing_if = "Option::is_none"
942    )]
943    pub external_id: Option<String>,
944    #[serde(rename = "dateCreated")]
945    pub date_created: String,
946    #[serde(rename = "dateUpdated")]
947    pub date_updated: String,
948    #[serde(rename = "addresses", default, skip_serializing_if = "Option::is_none")]
949    pub addresses: Option<Vec<crate::types::VaultAddress>>,
950}
951
952#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
953pub struct SwapQuote {
954    #[serde(rename = "id")]
955    pub id: String,
956    #[serde(rename = "walletId")]
957    pub wallet_id: String,
958    #[serde(
959        rename = "targetWalletId",
960        default,
961        skip_serializing_if = "Option::is_none"
962    )]
963    pub target_wallet_id: Option<String>,
964    #[serde(rename = "provider")]
965    pub provider: String,
966    #[serde(rename = "sourceAsset")]
967    pub source_asset: serde_json::Value,
968    #[serde(rename = "targetAsset")]
969    pub target_asset: serde_json::Value,
970    #[serde(rename = "slippageBps")]
971    pub slippage_bps: i64,
972    #[serde(rename = "fee", default, skip_serializing_if = "Option::is_none")]
973    pub fee: Option<String>,
974    #[serde(rename = "dateCreated")]
975    pub date_created: String,
976    #[serde(rename = "requestBody")]
977    pub request_body: serde_json::Value,
978    #[serde(rename = "requester")]
979    pub requester: crate::types::Requester,
980}
981
982#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
983pub struct Swap {
984    #[serde(rename = "id")]
985    pub id: String,
986    #[serde(rename = "quoteId")]
987    pub quote_id: String,
988    #[serde(rename = "reference")]
989    pub reference: serde_json::Value,
990    #[serde(rename = "walletId")]
991    pub wallet_id: String,
992    #[serde(rename = "targetWalletId")]
993    pub target_wallet_id: String,
994    #[serde(rename = "status")]
995    pub status: String,
996    #[serde(rename = "provider")]
997    pub provider: String,
998    #[serde(
999        rename = "feeSponsorId",
1000        default,
1001        skip_serializing_if = "Option::is_none"
1002    )]
1003    pub fee_sponsor_id: Option<String>,
1004    #[serde(rename = "quotedSourceAsset")]
1005    pub quoted_source_asset: serde_json::Value,
1006    #[serde(rename = "quotedTargetAsset")]
1007    pub quoted_target_asset: serde_json::Value,
1008    #[serde(rename = "slippageBps")]
1009    pub slippage_bps: f64,
1010    #[serde(rename = "dateCreated")]
1011    pub date_created: String,
1012    #[serde(rename = "requestBody")]
1013    pub request_body: serde_json::Value,
1014    #[serde(rename = "requester")]
1015    pub requester: crate::types::Requester,
1016    #[serde(
1017        rename = "failureReason",
1018        default,
1019        skip_serializing_if = "Option::is_none"
1020    )]
1021    pub failure_reason: Option<String>,
1022    #[serde(
1023        rename = "protocolStatus",
1024        default,
1025        skip_serializing_if = "Option::is_none"
1026    )]
1027    pub protocol_status: Option<String>,
1028}
1029
1030#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1031pub struct StakeAction {
1032    #[serde(rename = "id")]
1033    pub id: String,
1034    #[serde(rename = "stakeId")]
1035    pub stake_id: String,
1036    #[serde(rename = "status")]
1037    pub status: String,
1038    #[serde(
1039        rename = "transactionId",
1040        default,
1041        skip_serializing_if = "Option::is_none"
1042    )]
1043    pub transaction_id: Option<String>,
1044    #[serde(
1045        rename = "signatureId",
1046        default,
1047        skip_serializing_if = "Option::is_none"
1048    )]
1049    pub signature_id: Option<String>,
1050    #[serde(
1051        rename = "transactionHash",
1052        default,
1053        skip_serializing_if = "Option::is_none"
1054    )]
1055    pub transaction_hash: Option<String>,
1056    #[serde(rename = "kind")]
1057    pub kind: String,
1058    #[serde(rename = "requester")]
1059    pub requester: crate::types::Requester,
1060    #[serde(rename = "requestBody")]
1061    pub request_body: serde_json::Value,
1062    #[serde(
1063        rename = "failureReason",
1064        default,
1065        skip_serializing_if = "Option::is_none"
1066    )]
1067    pub failure_reason: Option<String>,
1068    #[serde(rename = "dateCreated")]
1069    pub date_created: String,
1070}
1071
1072#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1073pub struct PolicyApproval {
1074    #[serde(rename = "id")]
1075    pub id: String,
1076    #[serde(rename = "initiatorId")]
1077    pub initiator_id: String,
1078    #[serde(rename = "activity")]
1079    pub activity: serde_json::Value,
1080    #[serde(rename = "status")]
1081    pub status: String,
1082    #[serde(
1083        rename = "expirationDate",
1084        default,
1085        skip_serializing_if = "Option::is_none"
1086    )]
1087    pub expiration_date: Option<String>,
1088    #[serde(
1089        rename = "dateCreated",
1090        default,
1091        skip_serializing_if = "Option::is_none"
1092    )]
1093    pub date_created: Option<String>,
1094    #[serde(rename = "dateUpdated")]
1095    pub date_updated: String,
1096    #[serde(
1097        rename = "dateResolved",
1098        default,
1099        skip_serializing_if = "Option::is_none"
1100    )]
1101    pub date_resolved: Option<String>,
1102    #[serde(rename = "policyEvaluations")]
1103    pub policy_evaluations: Vec<serde_json::Value>,
1104    #[serde(rename = "decisions")]
1105    pub decisions: Vec<serde_json::Value>,
1106}
1107
1108/// The user who initiated the change request.
1109#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1110pub struct ChangeRequestRequester {
1111    #[serde(rename = "userId")]
1112    pub user_id: String,
1113    #[serde(rename = "tokenId", default, skip_serializing_if = "Option::is_none")]
1114    pub token_id: Option<String>,
1115    #[serde(rename = "appId", default, skip_serializing_if = "Option::is_none")]
1116    pub app_id: Option<String>,
1117}
1118
1119#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1120pub struct Permission {
1121    #[serde(rename = "id")]
1122    pub id: String,
1123    #[serde(rename = "name")]
1124    pub name: String,
1125    #[serde(rename = "operations")]
1126    pub operations: Vec<String>,
1127    #[serde(rename = "status")]
1128    pub status: String,
1129    #[serde(rename = "isImmutable")]
1130    pub is_immutable: bool,
1131    #[serde(rename = "isArchived")]
1132    pub is_archived: bool,
1133    #[serde(rename = "dateCreated")]
1134    pub date_created: String,
1135    #[serde(rename = "dateUpdated")]
1136    pub date_updated: String,
1137}
1138
1139#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1140pub struct CantonValidator {
1141    #[serde(rename = "id")]
1142    pub id: String,
1143    #[serde(rename = "orgId")]
1144    pub org_id: String,
1145    #[serde(rename = "network")]
1146    pub network: String,
1147    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1148    pub name: Option<String>,
1149    #[serde(rename = "kind")]
1150    pub kind: String,
1151    #[serde(rename = "dateCreated")]
1152    pub date_created: String,
1153    #[serde(rename = "partyHint")]
1154    pub party_hint: String,
1155}
1156
1157#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1158pub struct SignatureRequest {
1159    #[serde(rename = "id")]
1160    pub id: String,
1161    #[serde(rename = "keyId")]
1162    pub key_id: String,
1163    #[serde(rename = "requester")]
1164    pub requester: crate::types::Requester,
1165    #[serde(rename = "requestBody")]
1166    pub request_body: serde_json::Value,
1167    #[serde(rename = "status")]
1168    pub status: String,
1169    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
1170    pub reason: Option<String>,
1171    #[serde(rename = "signature", default, skip_serializing_if = "Option::is_none")]
1172    pub signature: Option<serde_json::Value>,
1173    #[serde(
1174        rename = "signatures",
1175        default,
1176        skip_serializing_if = "Option::is_none"
1177    )]
1178    pub signatures: Option<Vec<serde_json::Value>>,
1179    #[serde(
1180        rename = "signedData",
1181        default,
1182        skip_serializing_if = "Option::is_none"
1183    )]
1184    pub signed_data: Option<String>,
1185    #[serde(rename = "network", default, skip_serializing_if = "Option::is_none")]
1186    pub network: Option<crate::types::Network>,
1187    #[serde(rename = "txHash", default, skip_serializing_if = "Option::is_none")]
1188    pub tx_hash: Option<String>,
1189    #[serde(rename = "fee", default, skip_serializing_if = "Option::is_none")]
1190    pub fee: Option<String>,
1191    #[serde(
1192        rename = "approvalId",
1193        default,
1194        skip_serializing_if = "Option::is_none"
1195    )]
1196    pub approval_id: Option<String>,
1197    #[serde(rename = "dateRequested")]
1198    pub date_requested: String,
1199    #[serde(
1200        rename = "datePolicyResolved",
1201        default,
1202        skip_serializing_if = "Option::is_none"
1203    )]
1204    pub date_policy_resolved: Option<String>,
1205    #[serde(
1206        rename = "dateSigned",
1207        default,
1208        skip_serializing_if = "Option::is_none"
1209    )]
1210    pub date_signed: Option<String>,
1211    #[serde(
1212        rename = "dateConfirmed",
1213        default,
1214        skip_serializing_if = "Option::is_none"
1215    )]
1216    pub date_confirmed: Option<String>,
1217    #[serde(
1218        rename = "externalId",
1219        default,
1220        skip_serializing_if = "Option::is_none"
1221    )]
1222    pub external_id: Option<String>,
1223    #[serde(rename = "details", default, skip_serializing_if = "Option::is_none")]
1224    pub details: Option<
1225        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
1226    >,
1227}
1228
1229#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1230pub struct Key {
1231    #[serde(rename = "id")]
1232    pub id: String,
1233    #[serde(rename = "scheme")]
1234    pub scheme: crate::types::KeyScheme,
1235    #[serde(rename = "curve")]
1236    pub curve: crate::types::KeyCurve,
1237    #[serde(rename = "publicKey")]
1238    pub public_key: String,
1239    #[serde(rename = "masterKey", default, skip_serializing_if = "Option::is_none")]
1240    pub master_key: Option<bool>,
1241    #[serde(
1242        rename = "derivedFrom",
1243        default,
1244        skip_serializing_if = "Option::is_none"
1245    )]
1246    pub derived_from: Option<serde_json::Value>,
1247    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1248    pub name: Option<String>,
1249    #[serde(rename = "status")]
1250    pub status: String,
1251    #[serde(rename = "custodial")]
1252    pub custodial: bool,
1253    #[serde(rename = "dateCreated")]
1254    pub date_created: String,
1255    #[serde(rename = "imported", default, skip_serializing_if = "Option::is_none")]
1256    pub imported: Option<bool>,
1257    #[serde(rename = "exported", default, skip_serializing_if = "Option::is_none")]
1258    pub exported: Option<bool>,
1259    #[serde(
1260        rename = "dateExported",
1261        default,
1262        skip_serializing_if = "Option::is_none"
1263    )]
1264    pub date_exported: Option<String>,
1265    #[serde(
1266        rename = "dateDeleted",
1267        default,
1268        skip_serializing_if = "Option::is_none"
1269    )]
1270    pub date_deleted: Option<String>,
1271}
1272
1273#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1274pub struct FeeSponsor {
1275    #[serde(rename = "id")]
1276    pub id: String,
1277    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1278    pub name: Option<String>,
1279    #[serde(rename = "walletId")]
1280    pub wallet_id: String,
1281    #[serde(rename = "network")]
1282    pub network: crate::types::Network,
1283    #[serde(rename = "status")]
1284    pub status: String,
1285    #[serde(rename = "dateCreated")]
1286    pub date_created: String,
1287    #[serde(
1288        rename = "allowEndUser",
1289        default,
1290        skip_serializing_if = "Option::is_none"
1291    )]
1292    pub allow_end_user: Option<bool>,
1293}
1294
1295#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1296pub struct User {
1297    #[serde(rename = "username")]
1298    pub username: String,
1299    #[serde(rename = "name")]
1300    pub name: String,
1301    #[serde(rename = "userId")]
1302    pub user_id: String,
1303    #[serde(rename = "kind")]
1304    pub kind: String,
1305    #[serde(rename = "credentialUuid")]
1306    pub credential_uuid: String,
1307    #[serde(rename = "orgId", default, skip_serializing_if = "Option::is_none")]
1308    pub org_id: Option<String>,
1309    #[serde(rename = "tenantId", default, skip_serializing_if = "Option::is_none")]
1310    pub tenant_id: Option<String>,
1311    #[serde(
1312        rename = "permissions",
1313        default,
1314        skip_serializing_if = "Option::is_none"
1315    )]
1316    pub permissions: Option<Vec<String>>,
1317    #[serde(rename = "isActive")]
1318    pub is_active: bool,
1319    #[serde(rename = "isServiceAccount")]
1320    pub is_service_account: bool,
1321    #[serde(rename = "isRegistered")]
1322    pub is_registered: bool,
1323    #[serde(rename = "isSSORequired")]
1324    pub is_ssorequired: bool,
1325    #[serde(rename = "permissionAssignments")]
1326    pub permission_assignments: Vec<serde_json::Value>,
1327}
1328
1329#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1330pub struct Wallet {
1331    #[serde(rename = "id")]
1332    pub id: String,
1333    #[serde(rename = "network")]
1334    pub network: String,
1335    #[serde(rename = "address", default, skip_serializing_if = "Option::is_none")]
1336    pub address: Option<String>,
1337    #[serde(rename = "signingKey")]
1338    pub signing_key: serde_json::Value,
1339    #[serde(rename = "status")]
1340    pub status: String,
1341    #[serde(rename = "dateCreated")]
1342    pub date_created: String,
1343    #[serde(
1344        rename = "dateDeleted",
1345        default,
1346        skip_serializing_if = "Option::is_none"
1347    )]
1348    pub date_deleted: Option<String>,
1349    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1350    pub name: Option<String>,
1351    #[serde(rename = "custodial")]
1352    pub custodial: bool,
1353    #[serde(
1354        rename = "externalId",
1355        default,
1356        skip_serializing_if = "Option::is_none"
1357    )]
1358    pub external_id: Option<String>,
1359    #[serde(rename = "tags")]
1360    pub tags: Vec<String>,
1361    #[serde(
1362        rename = "validatorId",
1363        default,
1364        skip_serializing_if = "Option::is_none"
1365    )]
1366    pub validator_id: Option<String>,
1367}
1368
1369/// Register a recovery key. See [Account Recovery](https://docs.dfns.co/api-reference/auth/account-recovery) for more details.
1370#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1371pub struct RecoveryKeyAttestation {
1372    #[serde(rename = "credentialKind")]
1373    pub credential_kind: String,
1374    #[serde(rename = "credentialInfo")]
1375    pub credential_info: serde_json::Value,
1376    #[serde(
1377        rename = "encryptedPrivateKey",
1378        default,
1379        skip_serializing_if = "Option::is_none"
1380    )]
1381    pub encrypted_private_key: Option<String>,
1382    #[serde(
1383        rename = "credentialName",
1384        default,
1385        skip_serializing_if = "Option::is_none"
1386    )]
1387    pub credential_name: Option<String>,
1388}
1389
1390#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1391pub struct Credential {
1392    #[serde(rename = "kind")]
1393    pub kind: String,
1394    #[serde(rename = "credentialId")]
1395    pub credential_id: String,
1396    #[serde(rename = "credentialUuid")]
1397    pub credential_uuid: String,
1398    #[serde(rename = "dateCreated")]
1399    pub date_created: String,
1400    #[serde(rename = "isActive")]
1401    pub is_active: bool,
1402    #[serde(rename = "name")]
1403    pub name: String,
1404    #[serde(rename = "publicKey")]
1405    pub public_key: String,
1406    #[serde(rename = "relyingPartyId")]
1407    pub relying_party_id: String,
1408    #[serde(rename = "origin")]
1409    pub origin: String,
1410}
1411
1412#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1413pub struct PersonalAccessToken {
1414    #[serde(
1415        rename = "accessToken",
1416        default,
1417        skip_serializing_if = "Option::is_none"
1418    )]
1419    pub access_token: Option<String>,
1420    #[serde(rename = "dateCreated")]
1421    pub date_created: String,
1422    #[serde(rename = "credId")]
1423    pub cred_id: String,
1424    #[serde(rename = "isActive")]
1425    pub is_active: bool,
1426    #[serde(rename = "kind")]
1427    pub kind: String,
1428    #[serde(rename = "linkedUserId")]
1429    pub linked_user_id: String,
1430    #[serde(rename = "linkedAppId")]
1431    pub linked_app_id: String,
1432    #[serde(rename = "name")]
1433    pub name: String,
1434    #[serde(rename = "orgId")]
1435    pub org_id: String,
1436    #[serde(rename = "permissionAssignments")]
1437    pub permission_assignments: Vec<serde_json::Value>,
1438    #[serde(rename = "publicKey")]
1439    pub public_key: String,
1440    #[serde(rename = "tokenId")]
1441    pub token_id: String,
1442}
1443
1444#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1445pub struct AuditLog {
1446    #[serde(rename = "id")]
1447    pub id: serde_json::Value,
1448    #[serde(rename = "action")]
1449    pub action: String,
1450    #[serde(rename = "actionToken")]
1451    pub action_token: String,
1452    #[serde(rename = "userId")]
1453    pub user_id: serde_json::Value,
1454    #[serde(rename = "username")]
1455    pub username: serde_json::Value,
1456    #[serde(rename = "datePerformed")]
1457    pub date_performed: String,
1458    #[serde(rename = "firstFactorCredential")]
1459    pub first_factor_credential: serde_json::Value,
1460}
1461
1462/// A specific action performed on a allocation investment, such as depositing or withdrawing funds.
1463#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1464pub struct AllocationAction {
1465    #[serde(rename = "id")]
1466    pub id: String,
1467    #[serde(rename = "allocationId")]
1468    pub allocation_id: String,
1469    #[serde(
1470        rename = "externalId",
1471        default,
1472        skip_serializing_if = "Option::is_none"
1473    )]
1474    pub external_id: Option<String>,
1475    #[serde(rename = "kind")]
1476    pub kind: String,
1477    #[serde(rename = "status")]
1478    pub status: String,
1479    #[serde(rename = "requester")]
1480    pub requester: crate::types::Requester,
1481    #[serde(rename = "requestBody")]
1482    pub request_body: serde_json::Value,
1483    #[serde(
1484        rename = "failureReason",
1485        default,
1486        skip_serializing_if = "Option::is_none"
1487    )]
1488    pub failure_reason: Option<String>,
1489    #[serde(rename = "dateCreated")]
1490    pub date_created: String,
1491}
1492
1493/// A allocation investment representing funds deposited to earn interest from a DeFi protocol.
1494#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1495pub struct Allocation {
1496    #[serde(rename = "id")]
1497    pub id: String,
1498    #[serde(rename = "walletId")]
1499    pub wallet_id: String,
1500    #[serde(rename = "protocol")]
1501    pub protocol: String,
1502    #[serde(rename = "provider", default, skip_serializing_if = "Option::is_none")]
1503    pub provider: Option<String>,
1504    #[serde(rename = "amount")]
1505    pub amount: serde_json::Value,
1506    #[serde(rename = "rewards")]
1507    pub rewards: serde_json::Value,
1508    #[serde(rename = "dateCreated")]
1509    pub date_created: String,
1510}
1511
1512#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1513pub struct AddressWatchBlockchainEvent {
1514    #[serde(rename = "id")]
1515    pub id: String,
1516    #[serde(rename = "addressWatchId")]
1517    pub address_watch_id: String,
1518    #[serde(rename = "network")]
1519    pub network: crate::types::AddressWatchNetwork,
1520    #[serde(rename = "name")]
1521    pub name: String,
1522    #[serde(rename = "blockNumber")]
1523    pub block_number: f64,
1524    #[serde(rename = "txHash")]
1525    pub tx_hash: String,
1526    #[serde(rename = "index")]
1527    pub index: String,
1528    #[serde(rename = "timestamp")]
1529    pub timestamp: String,
1530    #[serde(rename = "status")]
1531    pub status: String,
1532    #[serde(rename = "data")]
1533    pub data:
1534        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
1535}
1536
1537#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1538pub struct AddressWatch {
1539    #[serde(rename = "id")]
1540    pub id: String,
1541    #[serde(rename = "network")]
1542    pub network: crate::types::AddressWatchNetwork,
1543    #[serde(rename = "address")]
1544    pub address: String,
1545    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1546    pub name: Option<String>,
1547    #[serde(
1548        rename = "externalId",
1549        default,
1550        skip_serializing_if = "Option::is_none"
1551    )]
1552    pub external_id: Option<String>,
1553    #[serde(rename = "tags")]
1554    pub tags: Vec<String>,
1555    #[serde(rename = "status")]
1556    pub status: String,
1557    #[serde(rename = "dateCreated")]
1558    pub date_created: String,
1559    #[serde(
1560        rename = "dateDeleted",
1561        default,
1562        skip_serializing_if = "Option::is_none"
1563    )]
1564    pub date_deleted: Option<String>,
1565}