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: "0x6Cec5A83a392B90aeDB6f8f7D8A71e231883cb2f"
40 .parse()
41 .unwrap(),
42 fee_model: "0xC89a0BAE5c91428Fde19D07820917feBDCBf1597"
43 .parse()
44 .unwrap(),
45 outcome_token: "0x7e3F8454abE51CA4d6AAc932e94DF80425Fd27D0"
46 .parse()
47 .unwrap(),
48 vault: "0x4b5DF4104C4a2238ECa1fE8721c725Af80012bb6"
49 .parse()
50 .unwrap(),
51 order_book: "0xab1f925c7D97B365FCb4151fCf42d7AC528Cc830"
52 .parse()
53 .unwrap(),
54 batch_auction: "0x5b78902D8453821973667a7D1145b5a1208b862c"
55 .parse()
56 .unwrap(),
57 market_factory: "0xD1a6C60DF935595eD5BeA7Dc26623f9A5DeB117C"
58 .parse()
59 .unwrap(),
60 pyth_resolver: "0x6Ab6901ae588Cf7B0fb59B40c79A0bBfe944D920"
61 .parse()
62 .unwrap(),
63 redemption: "0xF70e37E668DDF8D9b93920887392dAfDC900e9D3"
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://strike-indexer.fly.dev".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: Address::ZERO,
86 outcome_token: Address::ZERO,
87 vault: Address::ZERO,
88 order_book: Address::ZERO,
89 batch_auction: Address::ZERO,
90 market_factory: Address::ZERO,
91 pyth_resolver: Address::ZERO,
92 redemption: Address::ZERO,
93 },
94 chain_id: 56,
95 rpc_url: "https://bsc-dataseed1.binance.org".to_string(),
96 wss_url: "wss://bsc-ws-node.nariox.org:443".to_string(),
97 indexer_url: String::new(),
98 }
99 }
100
101 pub fn custom(addresses: ContractAddresses, chain_id: u64) -> Self {
103 Self {
104 addresses,
105 chain_id,
106 rpc_url: String::new(),
107 wss_url: String::new(),
108 indexer_url: String::new(),
109 }
110 }
111}