@@ -9,27 +9,6 @@ enum Env {
99 static let isPreview = ProcessInfo . processInfo. environment [ " XCODE_RUNNING_FOR_PREVIEWS " ] == " 1 "
1010 static let isTestFlight = Bundle . main. appStoreReceiptURL? . lastPathComponent == " sandboxReceipt "
1111 static let isUnitTest = ProcessInfo . processInfo. environment [ " XCTestConfigurationFilePath " ] != nil
12- #if E2E_BUILD
13- static let isE2E = true
14- #else
15- static let isE2E = ProcessInfo . processInfo. environment [ " E2E " ] == " true "
16- #endif
17- static let dustLimit = 547
18- static let msatsPerSat : UInt64 = 1000
19-
20- #if CHECK_GEOBLOCK
21- static let isGeoblockingEnabled = true
22- #else
23- static let isGeoblockingEnabled = ProcessInfo . processInfo. environment [ " GEO " ] == " true "
24- #endif
25-
26- /// The current execution context of the app
27- static var currentExecutionContext : ExecutionContext {
28- return Bundle . main. bundleIdentifier? . lowercased ( ) . contains ( " notification " ) == true ? . pushNotificationExtension : . foregroundApp
29- }
30-
31- // {Team ID}.{Keychain Group}
32- static let keychainGroup = " KYH47R284B.to.bitkit " // TODO: needs to change for regtest/mainnet so we don't use same group
3312
3413 #if targetEnvironment(simulator)
3514 static let isSim = true
@@ -43,22 +22,60 @@ enum Env {
4322 static let isDebug = false
4423 #endif
4524
25+ static var isE2E : Bool {
26+ #if E2E_BUILD
27+ return true
28+ #else
29+ return ProcessInfo . processInfo. environment [ " E2E " ] == " true "
30+ #endif
31+ }
32+
33+ static var isGeoblockingEnabled : Bool {
34+ #if CHECK_GEOBLOCK
35+ return true
36+ #else
37+ return ProcessInfo . processInfo. environment [ " GEO " ] == " true "
38+ #endif
39+ }
40+
41+ /// The current execution context of the app
42+ static var currentExecutionContext : ExecutionContext {
43+ let isNotificationExtension = Bundle . main. bundleIdentifier? . lowercased ( ) . contains ( " notification " ) == true
44+ return isNotificationExtension ? . pushNotificationExtension : . foregroundApp
45+ }
46+
47+ // {Team ID}.{Keychain Group}
48+ /// Returns the keychain access group based on the current network
49+ static var keychainGroup : String {
50+ let base = " KYH47R284B.to.bitkit "
51+ let networkSuffix = networkName ( network)
52+ return networkSuffix == " bitcoin " ? base : " \( base) . \( networkSuffix) "
53+ }
54+
4655 // MARK: wallet services
4756
48- static let network : LDKNode . Network = . regtest
57+ static let network : LDKNode . Network = . bitcoin
58+ static let ldkLogLevel = LDKNode . LogLevel. trace
59+
4960 static let walletSyncIntervalSecs : UInt64 = 10 // TODO: play around with this
5061
5162 /// Converts the LDKNode.Network to BitkitCore.Network for use with bitkitcore functions
5263 static var bitkitCoreNetwork : BitkitCore . Network {
5364 switch network {
54- case . bitcoin:
55- return . bitcoin
56- case . testnet:
57- return . testnet
58- case . signet:
59- return . signet
60- case . regtest:
61- return . regtest
65+ case . bitcoin: . bitcoin
66+ case . testnet: . testnet
67+ case . signet: . signet
68+ case . regtest: . regtest
69+ }
70+ }
71+
72+ /// Returns the lowercase name of the network (e.g., "bitcoin", "testnet", "signet", "regtest")
73+ private static func networkName( _ network: LDKNode . Network ) -> String {
74+ switch network {
75+ case . bitcoin: " bitcoin "
76+ case . testnet: " testnet "
77+ case . signet: " signet "
78+ case . regtest: " regtest "
6279 }
6380 }
6481
@@ -74,27 +91,10 @@ enum Env {
7491 }
7592
7693 switch network {
77- case . bitcoin:
78- return " ssl://35.187.18.233:8900 "
79- case . signet:
80- fatalError ( " Signet network not implemented " )
81- case . testnet:
82- return " ssl://electrum.blockstream.info:60002 "
83- case . regtest:
84- return " tcp://34.65.252.32:18483 "
85- }
86- }
87-
88- static var esploraServerUrl : String {
89- switch network {
90- case . regtest:
91- return " https://bitkit.stag0.blocktank.to/electrs "
92- case . bitcoin:
93- fatalError ( " Bitcoin network not implemented " )
94- case . testnet:
95- fatalError ( " Testnet network not implemented " )
96- case . signet:
97- fatalError ( " Signet network not implemented " )
94+ case . bitcoin: return " ssl://fulcrum.bitkit.blocktank.to:8900 "
95+ case . signet: return " ssl://mempool.space:60602 "
96+ case . testnet: return " ssl://electrum.blockstream.info:60002 "
97+ case . regtest: return " ssl://fulcrum.bitkit.stag0.blocktank.to:18484 "
9898 }
9999 }
100100
@@ -112,83 +112,50 @@ enum Env {
112112 }
113113
114114 static func ldkStorage( walletIndex: Int ) -> URL {
115- switch network {
116- case . regtest:
117- return
118- appStorageUrl
119- . appendingPathComponent ( " regtest " )
120- . appendingPathComponent ( " wallet \( walletIndex) /ldk " )
121- case . bitcoin:
122- return
123- appStorageUrl
124- . appendingPathComponent ( " bitcoin " )
125- . appendingPathComponent ( " wallet \( walletIndex) /ldk " )
126- case . testnet:
127- fatalError ( " Testnet network not implemented " )
128- case . signet:
129- fatalError ( " Signet network not implemented " )
130- }
115+ appStorageUrl
116+ . appendingPathComponent ( networkName ( network) )
117+ . appendingPathComponent ( " wallet \( walletIndex) /ldk " )
131118 }
132119
133120 static func bitkitCoreStorage( walletIndex: Int ) -> URL {
134- switch network {
135- case . regtest:
136- return
137- appStorageUrl
138- . appendingPathComponent ( " regtest " )
139- . appendingPathComponent ( " wallet \( walletIndex) /core " )
140- case . bitcoin:
141- return
142- appStorageUrl
143- . appendingPathComponent ( " bitcoin " )
144- . appendingPathComponent ( " wallet \( walletIndex) /core " )
145- case . testnet:
146- fatalError ( " Testnet network not implemented " )
147- case . signet:
148- fatalError ( " Signet network not implemented " )
149- }
121+ appStorageUrl
122+ . appendingPathComponent ( networkName ( network) )
123+ . appendingPathComponent ( " wallet \( walletIndex) /core " )
150124 }
151125
152126 static var ldkRgsServerUrl : String ? {
153127 switch network {
154- case . regtest:
155- return " https://bitkit.stag0.blocktank.to/rgs/snapshot "
156- case . bitcoin:
157- return " https://rgs.blocktank.to/snapshot "
158- case . testnet:
159- return " https://rapidsync.lightningdevkit.org/testnet/snapshot "
160- case . signet:
161- return nil
128+ case . bitcoin: " https://rgs.blocktank.to/snapshot "
129+ case . signet: " https://rapidsync.lightningdevkit.org/signet/snapshot "
130+ case . testnet: " https://rapidsync.lightningdevkit.org/testnet/snapshot "
131+ case . regtest: " https://bitkit.stag0.blocktank.to/rgs/snapshot "
162132 }
163133 }
164134
165135 // TODO: remove this to load from BT API instead
166136 static var trustedLnPeers : [ LnPeer ] {
167137 switch network {
168- case . regtest :
138+ case . bitcoin :
169139 return [
170- // Staging Blocktank node
171- . init( nodeId: " 028a8910b0048630d4eb17af25668cdd7ea6f2d8ae20956e7a06e2ae46ebcb69fc " , host: " 34.65.86.104 " , port: 9400 ) ,
140+ . init( nodeId: " 039b8b4dd1d88c2c5db374290cda397a8f5d79f312d6ea5d5bfdfc7c6ff363eae3 " , host: " 34.65.111.104 " , port: 9735 ) ,
141+ . init( nodeId: " 03816141f1dce7782ec32b66a300783b1d436b19777e7c686ed00115bd4b88ff4b " , host: " 34.65.191.64 " , port: 9735 ) ,
142+ . init( nodeId: " 02a371038863605300d0b3fc9de0cf5ccb57728b7f8906535709a831b16e311187 " , host: " 34.65.186.40 " , port: 9735 ) ,
172143 ]
173- case . bitcoin :
144+ case . signet :
174145 return [ ]
175146 case . testnet:
176147 return [ ]
177- case . signet:
178- return [ ]
148+ case . regtest:
149+ return [
150+ . init( nodeId: " 028a8910b0048630d4eb17af25668cdd7ea6f2d8ae20956e7a06e2ae46ebcb69fc " , host: " 34.65.86.104 " , port: 9400 ) ,
151+ ]
179152 }
180153 }
181154
182155 static var blocktankBaseUrl : String {
183156 switch network {
184- case . regtest:
185- return " https://api.stag0.blocktank.to "
186- case . bitcoin:
187- fatalError ( " Bitcoin network not implemented " )
188- case . testnet:
189- fatalError ( " Testnet network not implemented " )
190- case . signet:
191- fatalError ( " Signet network not implemented " )
157+ case . bitcoin: " https://api1.blocktank.to/api "
158+ default : " https://api.stag0.blocktank.to/ "
192159 }
193160 }
194161
@@ -197,11 +164,19 @@ enum Env {
197164 }
198165
199166 static var blocktankClientServer : String {
200- " \( blocktankBaseUrl) /blocktank/api/v2 "
167+ switch network {
168+ case . bitcoin: " \( blocktankBaseUrl) "
169+ default : " \( blocktankBaseUrl) /blocktank/api/v2 "
170+ }
201171 }
202172
203173 static var btcRatesServer : String {
204- " https://bitkit.stag0.blocktank.to/fx/rates/btc " // TODO: switch to prod when available
174+ switch network {
175+ case . bitcoin: " https://blocktank.synonym.to/fx/rates/btc "
176+ case . signet: " https://bitkit.stag0.blocktank.to/fx/rates/btc "
177+ case . testnet: " https://bitkit.stag0.blocktank.to/fx/rates/btc "
178+ case . regtest: " https://bitkit.stag0.blocktank.to/fx/rates/btc "
179+ }
205180 }
206181
207182 static let fxRateRefreshInterval : TimeInterval = 2 * 60 // 2 minutes
@@ -217,45 +192,39 @@ enum Env {
217192 . wakeToTimeout,
218193 ]
219194
195+ static var vssStoreIdPrefix : String {
196+ " bitkit_v1_ \( networkName ( network) ) "
197+ }
198+
220199 static var vssServerUrl : String {
221200 switch network {
222- case . bitcoin:
223- fatalError ( " Bitcoin network not implemented " )
224- default :
225- return " https://bitkit.stag0.blocktank.to/vss_rs_auth "
201+ case . bitcoin: " https://bitkit.to/vss_rs_auth "
202+ default : " https://bitkit.stag0.blocktank.to/vss_rs_auth "
226203 }
227204 }
228205
229- static var vssStoreIdPrefix : String {
206+ static var lnurlAuthServerUrl : String {
230207 switch network {
231- case . bitcoin:
232- fatalError ( " Bitcoin network not implemented " )
233- case . regtest:
234- return " bitkit_v1_regtest "
235- case . testnet:
236- return " bitkit_v1_testnet "
237- case . signet:
238- return " bitkit_v1_signet "
208+ case . bitcoin: " https://bitkit.to/lnurl_auth/auth "
209+ default : " https://bitkit.stag0.blocktank.to/lnurl_auth/auth "
239210 }
240211 }
241212
242- static var lnurlAuthServerUrl : String {
213+ static var blockExplorerUrl : String {
243214 switch network {
244- case . bitcoin:
245- fatalError ( " LNURL-auth server not implemented for mainnet " )
246- default :
247- return " https://bitkit.stag0.blocktank.to/lnurl_auth/auth "
215+ case . bitcoin: " https://mempool.space "
216+ case . signet : " https://mutinynet.com/ "
217+ case . testnet : " https://mempool.space/testnet "
218+ case . regtest : " https://mempool.space " // TODO: switch to staging explorer when available
248219 }
249220 }
250221
251222 static var logDirectory : String {
252- return appStorageUrl. appendingPathComponent ( " logs " ) . path
253- }
254-
255- static var ldkLogLevel : LDKNode . LogLevel {
256- return . trace
223+ appStorageUrl. appendingPathComponent ( " logs " ) . path
257224 }
258225
226+ static let dustLimit = 547
227+ static let msatsPerSat : UInt64 = 1000
259228 static let appStoreUrl = " https://apps.apple.com/app/bitkit-wallet/id6502440655 "
260229 static let playStoreUrl = " https://play.google.com/store/apps/details?id=to.bitkit "
261230 static let githubUrl = " https://www.github.com/synonymdev/bitkit "
0 commit comments