renegade_sdk/renegade_wallet_client/
config.rs1use crate::auth::HmacKey;
8use alloy::{
9 primitives::{Address, address},
10 signers::local::PrivateKeySigner,
11};
12
13use crate::{
14 ARBITRUM_ONE_CHAIN_ID, ARBITRUM_ONE_RELAYER_BASE_URL, ARBITRUM_SEPOLIA_CHAIN_ID,
15 ARBITRUM_SEPOLIA_RELAYER_BASE_URL, BASE_MAINNET_CHAIN_ID, BASE_MAINNET_RELAYER_BASE_URL,
16 BASE_SEPOLIA_CHAIN_ID, BASE_SEPOLIA_RELAYER_BASE_URL, ETHEREUM_SEPOLIA_CHAIN_ID,
17 ETHEREUM_SEPOLIA_RELAYER_BASE_URL,
18};
19
20pub(crate) const MAINNET_HISTORICAL_STATE_BASE_URL: &str =
24 "https://mainnet.historical-state.renegade.fi";
25pub(crate) const TESTNET_HISTORICAL_STATE_BASE_URL: &str =
27 "https://testnet.historical-state.renegade.fi";
28
29pub(crate) const ARBITRUM_ONE_DARKPOOL_ADDRESS: Address =
33 address!("0xC5D1B8096BbdEC83Bc6049e42822c7483BBA6500");
34pub(crate) const ARBITRUM_SEPOLIA_DARKPOOL_ADDRESS: Address =
36 address!("0x57dF3a4449aaBf72f61e4A5DFe83d4A45DcC8537");
37pub(crate) const BASE_MAINNET_DARKPOOL_ADDRESS: Address =
39 address!("0x15d7CF277BE6463F153Dd0d4d73F92Ad65e6348C");
40pub(crate) const BASE_SEPOLIA_DARKPOOL_ADDRESS: Address =
42 address!("0xDE9BfD62B2187d4c14FBcC7D869920d34e4DB3Da");
43pub(crate) const ETHEREUM_SEPOLIA_DARKPOOL_ADDRESS: Address =
45 address!("0x45537c28F245645CC1E7F7258FCC18A189CE16e3");
46
47pub(crate) const ARBITRUM_ONE_PERMIT2_ADDRESS: Address =
51 address!("0x000000000022D473030F116dDEE9F6B43aC78BA3");
52pub(crate) const ARBITRUM_SEPOLIA_PERMIT2_ADDRESS: Address =
54 address!("0x9458198bcc289c42e460cb8ca143e5854f734442");
55pub(crate) const BASE_MAINNET_PERMIT2_ADDRESS: Address =
57 address!("0x000000000022D473030F116dDEE9F6B43aC78BA3");
58pub(crate) const BASE_SEPOLIA_PERMIT2_ADDRESS: Address =
60 address!("0x000000000022D473030F116dDEE9F6B43aC78BA3");
61pub(crate) const ETHEREUM_SEPOLIA_PERMIT2_ADDRESS: Address =
63 address!("0x000000000022D473030F116dDEE9F6B43aC78BA3");
64
65pub(crate) const ARBITRUM_ONE_EXECUTOR_ADDRESS: Address =
69 address!("0x336A6b8AE5589d40ba4391020649E268E8323CA1");
70pub(crate) const ARBITRUM_SEPOLIA_EXECUTOR_ADDRESS: Address =
72 address!("0x9094314D60e3eF5fC73df548A3dD7b1Cd9798729");
73pub(crate) const BASE_MAINNET_EXECUTOR_ADDRESS: Address =
75 address!("0x1b5A1833d8566FACb138aa6BF1cd040f572B1D56");
76pub(crate) const BASE_SEPOLIA_EXECUTOR_ADDRESS: Address =
78 address!("0x5E2ca57B7F09Cf3DAca07c67CC65e1BfbDf346b0");
79pub(crate) const ETHEREUM_SEPOLIA_EXECUTOR_ADDRESS: Address =
81 address!("0x92467D2FF278383187f0aB04F8511EF45c31b723");
82
83pub(crate) const ARBITRUM_ONE_RELAYER_FEE_RECIPIENT: Address =
87 address!("0x0000000000000000000000000000000000000000");
88pub(crate) const ARBITRUM_SEPOLIA_RELAYER_FEE_RECIPIENT: Address =
90 address!("0xb0c0d3e8ebc39df5799d9c98d65dacf8637deba1");
91pub(crate) const BASE_MAINNET_RELAYER_FEE_RECIPIENT: Address =
93 address!("0x0000000000000000000000000000000000000000");
94pub(crate) const BASE_SEPOLIA_RELAYER_FEE_RECIPIENT: Address =
96 address!("0xa125ecd644591348d08243d8821120c6d7d3a077");
97pub(crate) const ETHEREUM_SEPOLIA_RELAYER_FEE_RECIPIENT: Address =
99 address!("0x0000000000000000000000000000000000000000");
100
101#[derive(Debug, Clone)]
103pub struct RenegadeClientConfig {
104 pub relayer_base_url: String,
106 pub historical_state_base_url: String,
108 pub chain_id: u64,
110 pub darkpool_address: Address,
112 pub permit2_address: Address,
114 pub executor_address: Address,
116 pub relayer_fee_recipient: Address,
118 pub key: PrivateKeySigner,
120 pub admin_hmac_key: Option<HmacKey>,
122}
123
124impl RenegadeClientConfig {
125 pub fn new_arbitrum_one(key: &PrivateKeySigner) -> Self {
127 Self {
128 relayer_base_url: ARBITRUM_ONE_RELAYER_BASE_URL.to_string(),
129 historical_state_base_url: MAINNET_HISTORICAL_STATE_BASE_URL.to_string(),
130 chain_id: ARBITRUM_ONE_CHAIN_ID,
131 darkpool_address: ARBITRUM_ONE_DARKPOOL_ADDRESS,
132 permit2_address: ARBITRUM_ONE_PERMIT2_ADDRESS,
133 executor_address: ARBITRUM_ONE_EXECUTOR_ADDRESS,
134 relayer_fee_recipient: ARBITRUM_ONE_RELAYER_FEE_RECIPIENT,
135 key: key.clone(),
136 admin_hmac_key: None,
137 }
138 }
139
140 pub fn new_arbitrum_one_admin(key: &PrivateKeySigner, admin_hmac_key: HmacKey) -> Self {
142 Self {
143 relayer_base_url: ARBITRUM_ONE_RELAYER_BASE_URL.to_string(),
144 historical_state_base_url: MAINNET_HISTORICAL_STATE_BASE_URL.to_string(),
145 chain_id: ARBITRUM_ONE_CHAIN_ID,
146 darkpool_address: ARBITRUM_ONE_DARKPOOL_ADDRESS,
147 permit2_address: ARBITRUM_ONE_PERMIT2_ADDRESS,
148 executor_address: ARBITRUM_ONE_EXECUTOR_ADDRESS,
149 relayer_fee_recipient: ARBITRUM_ONE_RELAYER_FEE_RECIPIENT,
150 key: key.clone(),
151 admin_hmac_key: Some(admin_hmac_key),
152 }
153 }
154
155 pub fn new_arbitrum_sepolia(key: &PrivateKeySigner) -> Self {
157 Self {
158 relayer_base_url: ARBITRUM_SEPOLIA_RELAYER_BASE_URL.to_string(),
159 historical_state_base_url: TESTNET_HISTORICAL_STATE_BASE_URL.to_string(),
160 chain_id: ARBITRUM_SEPOLIA_CHAIN_ID,
161 darkpool_address: ARBITRUM_SEPOLIA_DARKPOOL_ADDRESS,
162 permit2_address: ARBITRUM_SEPOLIA_PERMIT2_ADDRESS,
163 executor_address: ARBITRUM_SEPOLIA_EXECUTOR_ADDRESS,
164 relayer_fee_recipient: ARBITRUM_SEPOLIA_RELAYER_FEE_RECIPIENT,
165 key: key.clone(),
166 admin_hmac_key: None,
167 }
168 }
169
170 pub fn new_arbitrum_sepolia_admin(key: &PrivateKeySigner, admin_hmac_key: HmacKey) -> Self {
172 Self {
173 relayer_base_url: ARBITRUM_SEPOLIA_RELAYER_BASE_URL.to_string(),
174 historical_state_base_url: TESTNET_HISTORICAL_STATE_BASE_URL.to_string(),
175 chain_id: ARBITRUM_SEPOLIA_CHAIN_ID,
176 darkpool_address: ARBITRUM_SEPOLIA_DARKPOOL_ADDRESS,
177 permit2_address: ARBITRUM_SEPOLIA_PERMIT2_ADDRESS,
178 executor_address: ARBITRUM_SEPOLIA_EXECUTOR_ADDRESS,
179 relayer_fee_recipient: ARBITRUM_SEPOLIA_RELAYER_FEE_RECIPIENT,
180 key: key.clone(),
181 admin_hmac_key: Some(admin_hmac_key),
182 }
183 }
184
185 pub fn new_base_mainnet(key: &PrivateKeySigner) -> Self {
187 Self {
188 relayer_base_url: BASE_MAINNET_RELAYER_BASE_URL.to_string(),
189 historical_state_base_url: MAINNET_HISTORICAL_STATE_BASE_URL.to_string(),
190 chain_id: BASE_MAINNET_CHAIN_ID,
191 darkpool_address: BASE_MAINNET_DARKPOOL_ADDRESS,
192 permit2_address: BASE_MAINNET_PERMIT2_ADDRESS,
193 executor_address: BASE_MAINNET_EXECUTOR_ADDRESS,
194 relayer_fee_recipient: BASE_MAINNET_RELAYER_FEE_RECIPIENT,
195 key: key.clone(),
196 admin_hmac_key: None,
197 }
198 }
199
200 pub fn new_base_mainnet_admin(key: &PrivateKeySigner, admin_hmac_key: HmacKey) -> Self {
202 Self {
203 relayer_base_url: BASE_MAINNET_RELAYER_BASE_URL.to_string(),
204 historical_state_base_url: MAINNET_HISTORICAL_STATE_BASE_URL.to_string(),
205 chain_id: BASE_MAINNET_CHAIN_ID,
206 darkpool_address: BASE_MAINNET_DARKPOOL_ADDRESS,
207 permit2_address: BASE_MAINNET_PERMIT2_ADDRESS,
208 executor_address: BASE_MAINNET_EXECUTOR_ADDRESS,
209 relayer_fee_recipient: BASE_MAINNET_RELAYER_FEE_RECIPIENT,
210 key: key.clone(),
211 admin_hmac_key: Some(admin_hmac_key),
212 }
213 }
214
215 pub fn new_base_sepolia(key: &PrivateKeySigner) -> Self {
217 Self {
218 relayer_base_url: BASE_SEPOLIA_RELAYER_BASE_URL.to_string(),
219 historical_state_base_url: TESTNET_HISTORICAL_STATE_BASE_URL.to_string(),
220 chain_id: BASE_SEPOLIA_CHAIN_ID,
221 darkpool_address: BASE_SEPOLIA_DARKPOOL_ADDRESS,
222 permit2_address: BASE_SEPOLIA_PERMIT2_ADDRESS,
223 executor_address: BASE_SEPOLIA_EXECUTOR_ADDRESS,
224 relayer_fee_recipient: BASE_SEPOLIA_RELAYER_FEE_RECIPIENT,
225 key: key.clone(),
226 admin_hmac_key: None,
227 }
228 }
229
230 pub fn new_base_sepolia_admin(key: &PrivateKeySigner, admin_hmac_key: HmacKey) -> Self {
232 Self {
233 relayer_base_url: BASE_SEPOLIA_RELAYER_BASE_URL.to_string(),
234 historical_state_base_url: TESTNET_HISTORICAL_STATE_BASE_URL.to_string(),
235 chain_id: BASE_SEPOLIA_CHAIN_ID,
236 darkpool_address: BASE_SEPOLIA_DARKPOOL_ADDRESS,
237 permit2_address: BASE_SEPOLIA_PERMIT2_ADDRESS,
238 executor_address: BASE_SEPOLIA_EXECUTOR_ADDRESS,
239 relayer_fee_recipient: BASE_SEPOLIA_RELAYER_FEE_RECIPIENT,
240 key: key.clone(),
241 admin_hmac_key: Some(admin_hmac_key),
242 }
243 }
244
245 pub fn new_ethereum_sepolia(key: &PrivateKeySigner) -> Self {
247 Self {
248 relayer_base_url: ETHEREUM_SEPOLIA_RELAYER_BASE_URL.to_string(),
249 historical_state_base_url: TESTNET_HISTORICAL_STATE_BASE_URL.to_string(),
250 chain_id: ETHEREUM_SEPOLIA_CHAIN_ID,
251 darkpool_address: ETHEREUM_SEPOLIA_DARKPOOL_ADDRESS,
252 permit2_address: ETHEREUM_SEPOLIA_PERMIT2_ADDRESS,
253 executor_address: ETHEREUM_SEPOLIA_EXECUTOR_ADDRESS,
254 relayer_fee_recipient: ETHEREUM_SEPOLIA_RELAYER_FEE_RECIPIENT,
255 key: key.clone(),
256 admin_hmac_key: None,
257 }
258 }
259
260 pub fn new_ethereum_sepolia_admin(key: &PrivateKeySigner, admin_hmac_key: HmacKey) -> Self {
262 Self {
263 relayer_base_url: ETHEREUM_SEPOLIA_RELAYER_BASE_URL.to_string(),
264 historical_state_base_url: TESTNET_HISTORICAL_STATE_BASE_URL.to_string(),
265 chain_id: ETHEREUM_SEPOLIA_CHAIN_ID,
266 darkpool_address: ETHEREUM_SEPOLIA_DARKPOOL_ADDRESS,
267 permit2_address: ETHEREUM_SEPOLIA_PERMIT2_ADDRESS,
268 executor_address: ETHEREUM_SEPOLIA_EXECUTOR_ADDRESS,
269 relayer_fee_recipient: ETHEREUM_SEPOLIA_RELAYER_FEE_RECIPIENT,
270 key: key.clone(),
271 admin_hmac_key: Some(admin_hmac_key),
272 }
273 }
274}