1use alloy::primitives::Address;
4
5#[derive(Debug, Clone)]
7pub struct ContractAddresses {
8 pub usdt: Address,
9 pub fee_model: Address,
10 pub outcome_token: Address,
11 pub vault: Address,
12 pub order_book: Address,
13 pub batch_auction: Address,
14 pub market_factory: Address,
15 pub pyth_resolver: Address,
16 pub redemption: Address,
17}
18
19#[derive(Debug, Clone)]
21pub struct StrikeConfig {
22 pub addresses: ContractAddresses,
24 pub chain_id: u64,
26 pub rpc_url: String,
28 pub wss_url: String,
30 pub indexer_url: String,
32}
33
34impl StrikeConfig {
35 pub fn bsc_testnet() -> Self {
37 Self {
38 addresses: ContractAddresses {
39 usdt: "0xb242dc031998b06772C63596Bfce091c80D4c3fA"
40 .parse()
41 .unwrap(),
42 fee_model: "0x46C198Fa5e0E1CCEc3652bAB9A975B9F68B7F39E"
43 .parse()
44 .unwrap(),
45 outcome_token: "0x1c6622bE0D8cefD48009A337CD393cAe4530fc9a"
46 .parse()
47 .unwrap(),
48 vault: "0x10909d11446e48551DA0366f59b9Ac9Cb9079314"
49 .parse()
50 .unwrap(),
51 order_book: "0x343d3f42562A8E5C794DFf8637664D2d03246FB9"
52 .parse()
53 .unwrap(),
54 batch_auction: "0xF6233287fb878706B191b868a5e38E1DfdfAdDf7"
55 .parse()
56 .unwrap(),
57 market_factory: "0xd2783195A8d4Ee2f99616c3b9048B43187951E67"
58 .parse()
59 .unwrap(),
60 pyth_resolver: "0xF83aE0cfd2D1546Bb4b15ecEB010C1B045d7Ddc9"
61 .parse()
62 .unwrap(),
63 redemption: "0x03961AcDb718D84079De1B0236a77A7a1A3df177"
64 .parse()
65 .unwrap(),
66 },
67 chain_id: 97,
68 rpc_url: "https://data-seed-prebsc-1-s1.binance.org:8545".to_string(),
69 wss_url: "wss://bsc-testnet.core.chainstack.com/e602061228197d446d43e62320004d74"
70 .to_string(),
71 indexer_url: "https://testnet.strike.pm/api".to_string(),
72 }
73 }
74
75 pub fn bsc_mainnet() -> Self {
79 Self {
80 addresses: ContractAddresses {
81 usdt: "0x55d398326f99059fF775485246999027B3197955"
82 .parse()
83 .unwrap(),
84 fee_model: "0xBB628007734963352b1cF9094847B902b0fca9aB"
85 .parse()
86 .unwrap(),
87 outcome_token: "0xBd65B054a08fe0e8d26325e69B6EB6aD6dfF1516"
88 .parse()
89 .unwrap(),
90 vault: "0x2556E5DE92281EdA3300F044dfB9158416407eed"
91 .parse()
92 .unwrap(),
93 order_book: "0x074Ca415B501Bcca0020e9c312cf1F80796Ae3b1"
94 .parse()
95 .unwrap(),
96 batch_auction: "0xa8e9a6B62B93A4360969972Dc7300C6Be7B5f9D8"
97 .parse()
98 .unwrap(),
99 market_factory: "0x9c045dc57c1132e5D13b234F8e166cAaD8CE2c3D"
100 .parse()
101 .unwrap(),
102 pyth_resolver: "0x1B3335A22D410713A4Cd32eF8ffBEe672aD4e65d"
103 .parse()
104 .unwrap(),
105 redemption: "0x03961AcDb718D84079De1B0236a77A7a1A3df177"
106 .parse()
107 .unwrap(),
108 },
109 chain_id: 56,
110 rpc_url: "https://bsc-dataseed1.binance.org".to_string(),
111 wss_url: "wss://bsc-ws-node.nariox.org:443".to_string(),
112 indexer_url: "https://app.strike.pm/api".to_string(),
113 }
114 }
115
116 pub fn custom(addresses: ContractAddresses, chain_id: u64) -> Self {
118 Self {
119 addresses,
120 chain_id,
121 rpc_url: String::new(),
122 wss_url: String::new(),
123 indexer_url: String::new(),
124 }
125 }
126}