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    #[serde(rename = "lockId", default, skip_serializing_if = "Option::is_none")]
805    pub lock_id: Option<String>,
806}
807
808/// Vault net worth in fiat, broken down by balance kind plus a total.
809#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
810pub struct VaultNetWorth {
811    #[serde(rename = "available")]
812    pub available: serde_json::Value,
813    #[serde(rename = "quarantined")]
814    pub quarantined: serde_json::Value,
815    #[serde(rename = "locked")]
816    pub locked: serde_json::Value,
817    #[serde(rename = "total")]
818    pub total: serde_json::Value,
819}
820
821/// Vault asset with balances broken down by kind and USD unit price.
822#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
823pub struct VaultAsset {
824    #[serde(rename = "kind")]
825    pub kind: String,
826    #[serde(rename = "network")]
827    pub network: String,
828    #[serde(rename = "tid")]
829    pub tid: String,
830    #[serde(rename = "decimals")]
831    pub decimals: f64,
832    #[serde(rename = "symbol", default, skip_serializing_if = "Option::is_none")]
833    pub symbol: Option<String>,
834    #[serde(rename = "verified", default, skip_serializing_if = "Option::is_none")]
835    pub verified: Option<bool>,
836    #[serde(rename = "availableBalance")]
837    pub available_balance: String,
838    #[serde(rename = "quarantinedBalance")]
839    pub quarantined_balance: String,
840    #[serde(rename = "lockedBalance")]
841    pub locked_balance: String,
842    #[serde(rename = "quotes", default, skip_serializing_if = "Option::is_none")]
843    pub quotes: Option<serde_json::Value>,
844}
845
846#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
847pub struct TransferRequest {
848    #[serde(rename = "id")]
849    pub id: String,
850    #[serde(rename = "walletId")]
851    pub wallet_id: String,
852    #[serde(rename = "network")]
853    pub network: crate::types::Network,
854    #[serde(rename = "requester")]
855    pub requester: crate::types::Requester,
856    #[serde(rename = "requestBody")]
857    pub request_body: serde_json::Value,
858    #[serde(rename = "metadata")]
859    pub metadata: serde_json::Value,
860    #[serde(rename = "status")]
861    pub status: String,
862    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
863    pub reason: Option<String>,
864    #[serde(rename = "txHash", default, skip_serializing_if = "Option::is_none")]
865    pub tx_hash: Option<String>,
866    #[serde(rename = "fee", default, skip_serializing_if = "Option::is_none")]
867    pub fee: Option<String>,
868    #[serde(rename = "dateRequested")]
869    pub date_requested: String,
870    #[serde(
871        rename = "datePolicyResolved",
872        default,
873        skip_serializing_if = "Option::is_none"
874    )]
875    pub date_policy_resolved: Option<String>,
876    #[serde(
877        rename = "dateBroadcasted",
878        default,
879        skip_serializing_if = "Option::is_none"
880    )]
881    pub date_broadcasted: Option<String>,
882    #[serde(
883        rename = "dateConfirmed",
884        default,
885        skip_serializing_if = "Option::is_none"
886    )]
887    pub date_confirmed: Option<String>,
888    #[serde(
889        rename = "approvalId",
890        default,
891        skip_serializing_if = "Option::is_none"
892    )]
893    pub approval_id: Option<String>,
894    #[serde(
895        rename = "externalId",
896        default,
897        skip_serializing_if = "Option::is_none"
898    )]
899    pub external_id: Option<String>,
900    #[serde(
901        rename = "feeSponsorId",
902        default,
903        skip_serializing_if = "Option::is_none"
904    )]
905    pub fee_sponsor_id: Option<String>,
906    #[serde(
907        rename = "replacementId",
908        default,
909        skip_serializing_if = "Option::is_none"
910    )]
911    pub replacement_id: Option<String>,
912    #[serde(rename = "details", default, skip_serializing_if = "Option::is_none")]
913    pub details: Option<
914        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
915    >,
916}
917
918/// Vault lock object: funds manually locked for off-chain settlement or escrow.
919#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
920pub struct VaultLock {
921    #[serde(rename = "id")]
922    pub id: String,
923    #[serde(rename = "vaultId")]
924    pub vault_id: String,
925    #[serde(rename = "network")]
926    pub network: String,
927    #[serde(rename = "tid")]
928    pub tid: String,
929    #[serde(rename = "amount")]
930    pub amount: String,
931    #[serde(rename = "owner")]
932    pub owner: String,
933    #[serde(
934        rename = "externalId",
935        default,
936        skip_serializing_if = "Option::is_none"
937    )]
938    pub external_id: Option<String>,
939    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
940    pub reason: Option<String>,
941    #[serde(rename = "dateCreated")]
942    pub date_created: String,
943    #[serde(
944        rename = "dateDeleted",
945        default,
946        skip_serializing_if = "Option::is_none"
947    )]
948    pub date_deleted: Option<String>,
949}
950
951/// Vault address object.
952#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
953pub struct VaultAddress {
954    #[serde(rename = "walletId")]
955    pub wallet_id: String,
956    #[serde(rename = "network")]
957    pub network: String,
958    #[serde(rename = "address")]
959    pub address: String,
960}
961
962/// Vault object.
963#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
964pub struct Vault {
965    #[serde(rename = "id")]
966    pub id: String,
967    #[serde(rename = "orgId")]
968    pub org_id: String,
969    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
970    pub name: Option<String>,
971    #[serde(rename = "tags")]
972    pub tags: Vec<String>,
973    #[serde(
974        rename = "externalId",
975        default,
976        skip_serializing_if = "Option::is_none"
977    )]
978    pub external_id: Option<String>,
979    #[serde(rename = "dateCreated")]
980    pub date_created: String,
981    #[serde(rename = "dateUpdated")]
982    pub date_updated: String,
983    #[serde(rename = "addresses", default, skip_serializing_if = "Option::is_none")]
984    pub addresses: Option<Vec<crate::types::VaultAddress>>,
985}
986
987#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
988pub struct SwapQuote {
989    #[serde(rename = "id")]
990    pub id: String,
991    #[serde(rename = "walletId")]
992    pub wallet_id: String,
993    #[serde(
994        rename = "targetWalletId",
995        default,
996        skip_serializing_if = "Option::is_none"
997    )]
998    pub target_wallet_id: Option<String>,
999    #[serde(rename = "provider")]
1000    pub provider: String,
1001    #[serde(rename = "sourceAsset")]
1002    pub source_asset: serde_json::Value,
1003    #[serde(rename = "targetAsset")]
1004    pub target_asset: serde_json::Value,
1005    #[serde(rename = "slippageBps")]
1006    pub slippage_bps: i64,
1007    #[serde(rename = "fee", default, skip_serializing_if = "Option::is_none")]
1008    pub fee: Option<String>,
1009    #[serde(rename = "dateCreated")]
1010    pub date_created: String,
1011    #[serde(rename = "requestBody")]
1012    pub request_body: serde_json::Value,
1013    #[serde(rename = "requester")]
1014    pub requester: crate::types::Requester,
1015}
1016
1017#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1018pub struct Swap {
1019    #[serde(rename = "id")]
1020    pub id: String,
1021    #[serde(rename = "quoteId")]
1022    pub quote_id: String,
1023    #[serde(rename = "reference")]
1024    pub reference: serde_json::Value,
1025    #[serde(rename = "walletId")]
1026    pub wallet_id: String,
1027    #[serde(rename = "targetWalletId")]
1028    pub target_wallet_id: String,
1029    #[serde(rename = "status")]
1030    pub status: String,
1031    #[serde(rename = "provider")]
1032    pub provider: String,
1033    #[serde(
1034        rename = "feeSponsorId",
1035        default,
1036        skip_serializing_if = "Option::is_none"
1037    )]
1038    pub fee_sponsor_id: Option<String>,
1039    #[serde(rename = "quotedSourceAsset")]
1040    pub quoted_source_asset: serde_json::Value,
1041    #[serde(rename = "quotedTargetAsset")]
1042    pub quoted_target_asset: serde_json::Value,
1043    #[serde(rename = "slippageBps")]
1044    pub slippage_bps: f64,
1045    #[serde(rename = "dateCreated")]
1046    pub date_created: String,
1047    #[serde(rename = "requestBody")]
1048    pub request_body: serde_json::Value,
1049    #[serde(rename = "requester")]
1050    pub requester: crate::types::Requester,
1051    #[serde(
1052        rename = "failureReason",
1053        default,
1054        skip_serializing_if = "Option::is_none"
1055    )]
1056    pub failure_reason: Option<String>,
1057    #[serde(
1058        rename = "protocolStatus",
1059        default,
1060        skip_serializing_if = "Option::is_none"
1061    )]
1062    pub protocol_status: Option<String>,
1063}
1064
1065#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1066pub struct StakeAction {
1067    #[serde(rename = "id")]
1068    pub id: String,
1069    #[serde(rename = "stakeId")]
1070    pub stake_id: String,
1071    #[serde(rename = "status")]
1072    pub status: String,
1073    #[serde(
1074        rename = "transactionId",
1075        default,
1076        skip_serializing_if = "Option::is_none"
1077    )]
1078    pub transaction_id: Option<String>,
1079    #[serde(
1080        rename = "signatureId",
1081        default,
1082        skip_serializing_if = "Option::is_none"
1083    )]
1084    pub signature_id: Option<String>,
1085    #[serde(
1086        rename = "transactionHash",
1087        default,
1088        skip_serializing_if = "Option::is_none"
1089    )]
1090    pub transaction_hash: Option<String>,
1091    #[serde(rename = "kind")]
1092    pub kind: String,
1093    #[serde(rename = "requester")]
1094    pub requester: crate::types::Requester,
1095    #[serde(rename = "requestBody")]
1096    pub request_body: serde_json::Value,
1097    #[serde(
1098        rename = "failureReason",
1099        default,
1100        skip_serializing_if = "Option::is_none"
1101    )]
1102    pub failure_reason: Option<String>,
1103    #[serde(rename = "dateCreated")]
1104    pub date_created: String,
1105}
1106
1107#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1108pub struct PolicyApproval {
1109    #[serde(rename = "id")]
1110    pub id: String,
1111    #[serde(rename = "initiatorId")]
1112    pub initiator_id: String,
1113    #[serde(rename = "activity")]
1114    pub activity: serde_json::Value,
1115    #[serde(rename = "status")]
1116    pub status: String,
1117    #[serde(
1118        rename = "expirationDate",
1119        default,
1120        skip_serializing_if = "Option::is_none"
1121    )]
1122    pub expiration_date: Option<String>,
1123    #[serde(
1124        rename = "dateCreated",
1125        default,
1126        skip_serializing_if = "Option::is_none"
1127    )]
1128    pub date_created: Option<String>,
1129    #[serde(rename = "dateUpdated")]
1130    pub date_updated: String,
1131    #[serde(
1132        rename = "dateResolved",
1133        default,
1134        skip_serializing_if = "Option::is_none"
1135    )]
1136    pub date_resolved: Option<String>,
1137    #[serde(rename = "policyEvaluations")]
1138    pub policy_evaluations: Vec<serde_json::Value>,
1139    #[serde(rename = "decisions")]
1140    pub decisions: Vec<serde_json::Value>,
1141}
1142
1143/// The user who initiated the change request.
1144#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1145pub struct ChangeRequestRequester {
1146    #[serde(rename = "userId")]
1147    pub user_id: String,
1148    #[serde(rename = "tokenId", default, skip_serializing_if = "Option::is_none")]
1149    pub token_id: Option<String>,
1150    #[serde(rename = "appId", default, skip_serializing_if = "Option::is_none")]
1151    pub app_id: Option<String>,
1152}
1153
1154#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1155pub struct Permission {
1156    #[serde(rename = "id")]
1157    pub id: String,
1158    #[serde(rename = "name")]
1159    pub name: String,
1160    #[serde(rename = "operations")]
1161    pub operations: Vec<String>,
1162    #[serde(rename = "status")]
1163    pub status: String,
1164    #[serde(rename = "isImmutable")]
1165    pub is_immutable: bool,
1166    #[serde(rename = "isArchived")]
1167    pub is_archived: bool,
1168    #[serde(rename = "dateCreated")]
1169    pub date_created: String,
1170    #[serde(rename = "dateUpdated")]
1171    pub date_updated: String,
1172}
1173
1174#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1175pub struct CantonValidator {
1176    #[serde(rename = "id")]
1177    pub id: String,
1178    #[serde(rename = "orgId")]
1179    pub org_id: String,
1180    #[serde(rename = "network")]
1181    pub network: String,
1182    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1183    pub name: Option<String>,
1184    #[serde(rename = "kind")]
1185    pub kind: String,
1186    #[serde(rename = "dateCreated")]
1187    pub date_created: String,
1188    #[serde(rename = "partyHint")]
1189    pub party_hint: String,
1190}
1191
1192#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1193pub struct SignatureRequest {
1194    #[serde(rename = "id")]
1195    pub id: String,
1196    #[serde(rename = "keyId")]
1197    pub key_id: String,
1198    #[serde(rename = "requester")]
1199    pub requester: crate::types::Requester,
1200    #[serde(rename = "requestBody")]
1201    pub request_body: serde_json::Value,
1202    #[serde(rename = "status")]
1203    pub status: String,
1204    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
1205    pub reason: Option<String>,
1206    #[serde(rename = "signature", default, skip_serializing_if = "Option::is_none")]
1207    pub signature: Option<serde_json::Value>,
1208    #[serde(
1209        rename = "signatures",
1210        default,
1211        skip_serializing_if = "Option::is_none"
1212    )]
1213    pub signatures: Option<Vec<serde_json::Value>>,
1214    #[serde(
1215        rename = "signedData",
1216        default,
1217        skip_serializing_if = "Option::is_none"
1218    )]
1219    pub signed_data: Option<String>,
1220    #[serde(rename = "network", default, skip_serializing_if = "Option::is_none")]
1221    pub network: Option<crate::types::Network>,
1222    #[serde(rename = "txHash", default, skip_serializing_if = "Option::is_none")]
1223    pub tx_hash: Option<String>,
1224    #[serde(rename = "fee", default, skip_serializing_if = "Option::is_none")]
1225    pub fee: Option<String>,
1226    #[serde(
1227        rename = "approvalId",
1228        default,
1229        skip_serializing_if = "Option::is_none"
1230    )]
1231    pub approval_id: Option<String>,
1232    #[serde(rename = "dateRequested")]
1233    pub date_requested: String,
1234    #[serde(
1235        rename = "datePolicyResolved",
1236        default,
1237        skip_serializing_if = "Option::is_none"
1238    )]
1239    pub date_policy_resolved: Option<String>,
1240    #[serde(
1241        rename = "dateSigned",
1242        default,
1243        skip_serializing_if = "Option::is_none"
1244    )]
1245    pub date_signed: Option<String>,
1246    #[serde(
1247        rename = "dateConfirmed",
1248        default,
1249        skip_serializing_if = "Option::is_none"
1250    )]
1251    pub date_confirmed: Option<String>,
1252    #[serde(
1253        rename = "externalId",
1254        default,
1255        skip_serializing_if = "Option::is_none"
1256    )]
1257    pub external_id: Option<String>,
1258    #[serde(rename = "details", default, skip_serializing_if = "Option::is_none")]
1259    pub details: Option<
1260        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
1261    >,
1262}
1263
1264#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1265pub struct Key {
1266    #[serde(rename = "id")]
1267    pub id: String,
1268    #[serde(rename = "scheme")]
1269    pub scheme: crate::types::KeyScheme,
1270    #[serde(rename = "curve")]
1271    pub curve: crate::types::KeyCurve,
1272    #[serde(rename = "publicKey")]
1273    pub public_key: String,
1274    #[serde(rename = "masterKey", default, skip_serializing_if = "Option::is_none")]
1275    pub master_key: Option<bool>,
1276    #[serde(
1277        rename = "derivedFrom",
1278        default,
1279        skip_serializing_if = "Option::is_none"
1280    )]
1281    pub derived_from: Option<serde_json::Value>,
1282    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1283    pub name: Option<String>,
1284    #[serde(rename = "status")]
1285    pub status: String,
1286    #[serde(rename = "custodial")]
1287    pub custodial: bool,
1288    #[serde(rename = "dateCreated")]
1289    pub date_created: String,
1290    #[serde(rename = "imported", default, skip_serializing_if = "Option::is_none")]
1291    pub imported: Option<bool>,
1292    #[serde(rename = "exported", default, skip_serializing_if = "Option::is_none")]
1293    pub exported: Option<bool>,
1294    #[serde(
1295        rename = "dateExported",
1296        default,
1297        skip_serializing_if = "Option::is_none"
1298    )]
1299    pub date_exported: Option<String>,
1300    #[serde(
1301        rename = "dateDeleted",
1302        default,
1303        skip_serializing_if = "Option::is_none"
1304    )]
1305    pub date_deleted: Option<String>,
1306}
1307
1308#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1309pub struct FeeSponsor {
1310    #[serde(rename = "id")]
1311    pub id: String,
1312    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1313    pub name: Option<String>,
1314    #[serde(rename = "walletId")]
1315    pub wallet_id: String,
1316    #[serde(rename = "network")]
1317    pub network: crate::types::Network,
1318    #[serde(rename = "status")]
1319    pub status: String,
1320    #[serde(rename = "dateCreated")]
1321    pub date_created: String,
1322    #[serde(
1323        rename = "allowEndUser",
1324        default,
1325        skip_serializing_if = "Option::is_none"
1326    )]
1327    pub allow_end_user: Option<bool>,
1328}
1329
1330#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1331pub struct User {
1332    #[serde(rename = "username")]
1333    pub username: String,
1334    #[serde(rename = "name")]
1335    pub name: String,
1336    #[serde(rename = "userId")]
1337    pub user_id: String,
1338    #[serde(rename = "kind")]
1339    pub kind: String,
1340    #[serde(rename = "credentialUuid")]
1341    pub credential_uuid: String,
1342    #[serde(rename = "orgId", default, skip_serializing_if = "Option::is_none")]
1343    pub org_id: Option<String>,
1344    #[serde(rename = "tenantId", default, skip_serializing_if = "Option::is_none")]
1345    pub tenant_id: Option<String>,
1346    #[serde(
1347        rename = "permissions",
1348        default,
1349        skip_serializing_if = "Option::is_none"
1350    )]
1351    pub permissions: Option<Vec<String>>,
1352    #[serde(rename = "isActive")]
1353    pub is_active: bool,
1354    #[serde(rename = "isServiceAccount")]
1355    pub is_service_account: bool,
1356    #[serde(rename = "isRegistered")]
1357    pub is_registered: bool,
1358    #[serde(rename = "isSSORequired")]
1359    pub is_ssorequired: bool,
1360    #[serde(rename = "permissionAssignments")]
1361    pub permission_assignments: Vec<serde_json::Value>,
1362}
1363
1364#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1365pub struct Wallet {
1366    #[serde(rename = "id")]
1367    pub id: String,
1368    #[serde(rename = "network")]
1369    pub network: String,
1370    #[serde(rename = "address", default, skip_serializing_if = "Option::is_none")]
1371    pub address: Option<String>,
1372    #[serde(rename = "signingKey")]
1373    pub signing_key: serde_json::Value,
1374    #[serde(rename = "status")]
1375    pub status: String,
1376    #[serde(rename = "dateCreated")]
1377    pub date_created: String,
1378    #[serde(
1379        rename = "dateDeleted",
1380        default,
1381        skip_serializing_if = "Option::is_none"
1382    )]
1383    pub date_deleted: Option<String>,
1384    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1385    pub name: Option<String>,
1386    #[serde(rename = "custodial")]
1387    pub custodial: bool,
1388    #[serde(
1389        rename = "externalId",
1390        default,
1391        skip_serializing_if = "Option::is_none"
1392    )]
1393    pub external_id: Option<String>,
1394    #[serde(rename = "tags")]
1395    pub tags: Vec<String>,
1396    #[serde(
1397        rename = "validatorId",
1398        default,
1399        skip_serializing_if = "Option::is_none"
1400    )]
1401    pub validator_id: Option<String>,
1402}
1403
1404/// Register a recovery key. See [Account Recovery](https://docs.dfns.co/api-reference/auth/account-recovery) for more details.
1405#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1406pub struct RecoveryKeyAttestation {
1407    #[serde(rename = "credentialKind")]
1408    pub credential_kind: String,
1409    #[serde(rename = "credentialInfo")]
1410    pub credential_info: serde_json::Value,
1411    #[serde(
1412        rename = "encryptedPrivateKey",
1413        default,
1414        skip_serializing_if = "Option::is_none"
1415    )]
1416    pub encrypted_private_key: Option<String>,
1417    #[serde(
1418        rename = "credentialName",
1419        default,
1420        skip_serializing_if = "Option::is_none"
1421    )]
1422    pub credential_name: Option<String>,
1423}
1424
1425#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1426pub struct Credential {
1427    #[serde(rename = "kind")]
1428    pub kind: String,
1429    #[serde(rename = "credentialId")]
1430    pub credential_id: String,
1431    #[serde(rename = "credentialUuid")]
1432    pub credential_uuid: String,
1433    #[serde(rename = "dateCreated")]
1434    pub date_created: String,
1435    #[serde(rename = "isActive")]
1436    pub is_active: bool,
1437    #[serde(rename = "name")]
1438    pub name: String,
1439    #[serde(rename = "publicKey")]
1440    pub public_key: String,
1441    #[serde(rename = "relyingPartyId")]
1442    pub relying_party_id: String,
1443    #[serde(rename = "origin")]
1444    pub origin: String,
1445}
1446
1447#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1448pub struct PersonalAccessToken {
1449    #[serde(
1450        rename = "accessToken",
1451        default,
1452        skip_serializing_if = "Option::is_none"
1453    )]
1454    pub access_token: Option<String>,
1455    #[serde(rename = "dateCreated")]
1456    pub date_created: String,
1457    #[serde(rename = "credId")]
1458    pub cred_id: String,
1459    #[serde(rename = "isActive")]
1460    pub is_active: bool,
1461    #[serde(rename = "kind")]
1462    pub kind: String,
1463    #[serde(rename = "linkedUserId")]
1464    pub linked_user_id: String,
1465    #[serde(rename = "linkedAppId")]
1466    pub linked_app_id: String,
1467    #[serde(rename = "name")]
1468    pub name: String,
1469    #[serde(rename = "orgId")]
1470    pub org_id: String,
1471    #[serde(rename = "permissionAssignments")]
1472    pub permission_assignments: Vec<serde_json::Value>,
1473    #[serde(rename = "publicKey")]
1474    pub public_key: String,
1475    #[serde(rename = "tokenId")]
1476    pub token_id: String,
1477}
1478
1479#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1480pub struct AuditLog {
1481    #[serde(rename = "id")]
1482    pub id: serde_json::Value,
1483    #[serde(rename = "action")]
1484    pub action: String,
1485    #[serde(rename = "actionToken")]
1486    pub action_token: String,
1487    #[serde(rename = "userId")]
1488    pub user_id: serde_json::Value,
1489    #[serde(rename = "username")]
1490    pub username: serde_json::Value,
1491    #[serde(rename = "datePerformed")]
1492    pub date_performed: String,
1493    #[serde(rename = "firstFactorCredential")]
1494    pub first_factor_credential: serde_json::Value,
1495}
1496
1497/// A specific action performed on a allocation investment, such as depositing or withdrawing funds.
1498#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1499pub struct AllocationAction {
1500    #[serde(rename = "id")]
1501    pub id: String,
1502    #[serde(rename = "allocationId")]
1503    pub allocation_id: String,
1504    #[serde(
1505        rename = "externalId",
1506        default,
1507        skip_serializing_if = "Option::is_none"
1508    )]
1509    pub external_id: Option<String>,
1510    #[serde(rename = "kind")]
1511    pub kind: String,
1512    #[serde(rename = "status")]
1513    pub status: String,
1514    #[serde(rename = "requester")]
1515    pub requester: crate::types::Requester,
1516    #[serde(rename = "requestBody")]
1517    pub request_body: serde_json::Value,
1518    #[serde(
1519        rename = "failureReason",
1520        default,
1521        skip_serializing_if = "Option::is_none"
1522    )]
1523    pub failure_reason: Option<String>,
1524    #[serde(rename = "dateCreated")]
1525    pub date_created: String,
1526}
1527
1528/// A allocation investment representing funds deposited to earn interest from a DeFi protocol.
1529#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1530pub struct Allocation {
1531    #[serde(rename = "id")]
1532    pub id: String,
1533    #[serde(rename = "walletId")]
1534    pub wallet_id: String,
1535    #[serde(rename = "protocol")]
1536    pub protocol: String,
1537    #[serde(rename = "provider", default, skip_serializing_if = "Option::is_none")]
1538    pub provider: Option<String>,
1539    #[serde(rename = "amount")]
1540    pub amount: serde_json::Value,
1541    #[serde(rename = "rewards")]
1542    pub rewards: serde_json::Value,
1543    #[serde(rename = "dateCreated")]
1544    pub date_created: String,
1545}
1546
1547#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1548pub struct AddressWatchBlockchainEvent {
1549    #[serde(rename = "id")]
1550    pub id: String,
1551    #[serde(rename = "addressWatchId")]
1552    pub address_watch_id: String,
1553    #[serde(rename = "network")]
1554    pub network: crate::types::AddressWatchNetwork,
1555    #[serde(rename = "name")]
1556    pub name: String,
1557    #[serde(rename = "blockNumber")]
1558    pub block_number: f64,
1559    #[serde(rename = "txHash")]
1560    pub tx_hash: String,
1561    #[serde(rename = "index")]
1562    pub index: String,
1563    #[serde(rename = "timestamp")]
1564    pub timestamp: String,
1565    #[serde(rename = "status")]
1566    pub status: String,
1567    #[serde(rename = "data")]
1568    pub data:
1569        std::collections::HashMap<String, std::collections::HashMap<String, serde_json::Value>>,
1570}
1571
1572#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
1573pub struct AddressWatch {
1574    #[serde(rename = "id")]
1575    pub id: String,
1576    #[serde(rename = "network")]
1577    pub network: crate::types::AddressWatchNetwork,
1578    #[serde(rename = "address")]
1579    pub address: String,
1580    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none")]
1581    pub name: Option<String>,
1582    #[serde(
1583        rename = "externalId",
1584        default,
1585        skip_serializing_if = "Option::is_none"
1586    )]
1587    pub external_id: Option<String>,
1588    #[serde(rename = "tags")]
1589    pub tags: Vec<String>,
1590    #[serde(rename = "status")]
1591    pub status: String,
1592    #[serde(rename = "dateCreated")]
1593    pub date_created: String,
1594    #[serde(
1595        rename = "dateDeleted",
1596        default,
1597        skip_serializing_if = "Option::is_none"
1598    )]
1599    pub date_deleted: Option<String>,
1600}