nautilus_dydx/python/
config.rs1use nautilus_core::string::secret::SecretString;
19use nautilus_model::identifiers::AccountId;
20use pyo3::prelude::*;
21
22use crate::{
23 common::enums::DydxNetwork,
24 config::{DydxDataClientConfig, DydxExecutionClientConfig},
25};
26
27#[pymethods]
28#[pyo3_stub_gen::derive::gen_stub_pymethods]
29impl DydxDataClientConfig {
30 #[new]
32 #[pyo3(signature = (proxy_url=None, network=None))]
33 fn py_new(proxy_url: Option<String>, network: Option<DydxNetwork>) -> Self {
34 Self {
35 network: network.unwrap_or_default(),
36 proxy_url: proxy_url.map(SecretString::from),
37 ..Self::default()
38 }
39 }
40
41 #[getter]
42 const fn has_proxy_url(&self) -> bool {
43 self.proxy_url.is_some()
44 }
45
46 fn __repr__(&self) -> String {
47 stringify!(DydxDataClientConfig).to_string()
48 }
49}
50
51#[pymethods]
52#[pyo3_stub_gen::derive::gen_stub_pymethods]
53impl DydxExecutionClientConfig {
54 #[new]
56 #[pyo3(signature = (
57 account_id,
58 proxy_url=None,
59 network=None,
60 private_key=None,
61 wallet_address=None,
62 subaccount_number=0,
63 ))]
64 fn py_new(
65 account_id: AccountId,
66 proxy_url: Option<String>,
67 network: Option<DydxNetwork>,
68 private_key: Option<String>,
69 wallet_address: Option<String>,
70 subaccount_number: u32,
71 ) -> Self {
72 Self {
73 account_id,
74 network: network.unwrap_or_default(),
75 private_key: private_key.map(SecretString::from),
76 wallet_address,
77 subaccount_number,
78 proxy_url: proxy_url.map(SecretString::from),
79 ..Self::default()
80 }
81 }
82
83 #[getter]
84 const fn has_proxy_url(&self) -> bool {
85 self.proxy_url.is_some()
86 }
87
88 fn __repr__(&self) -> String {
89 stringify!(DydxExecutionClientConfig).to_string()
90 }
91}