Skip to content

Commit 80e7128

Browse files
authored
Merge pull request #1664 from SatoshiPortal/fulcrum-es-default
update: default electrum server to fulcrum
2 parents 303c9e0 + d4d241f commit 80e7128

3 files changed

Lines changed: 58 additions & 2 deletions

File tree

lib/core/storage/database_seeds.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ class DatabaseSeeds {
2828

2929
static Future<void> seedDefaultElectrumServers(SqliteDatabase db) async {
3030
final serversData = [
31-
(ApiServiceConstants.bbElectrumUrl, false, false, 0),
31+
(ApiServiceConstants.fulcrumElectrumUrl, false, false, 0),
32+
(ApiServiceConstants.bbElectrumUrl, false, false, 1),
3233
(ApiServiceConstants.bbLiquidElectrumUrlPath, false, true, 0),
33-
(ApiServiceConstants.publicElectrumUrl, false, false, 1),
34+
(ApiServiceConstants.publicElectrumUrl, false, false, 2),
3435
(ApiServiceConstants.publicLiquidElectrumUrlPath, false, true, 1),
3536
(ApiServiceConstants.publicElectrumTestUrl, true, false, 0),
3637
(ApiServiceConstants.publicliquidElectrumTestUrlPath, true, true, 0),

lib/core/storage/migrations/schema_10_to_11.dart

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:bb_mobile/core/storage/sqlite_database.dart';
22
import 'package:bb_mobile/core/storage/sqlite_database.steps.dart';
3+
import 'package:bb_mobile/core/utils/constants.dart';
34
import 'package:drift/drift.dart';
45

56
class Schema10To11 {
@@ -39,5 +40,58 @@ class Schema10To11 {
3940
await db.managers.settings.update(
4041
(f) => f(themeMode: const Value('system')),
4142
);
43+
44+
final electrumServers = schema11.electrumServers;
45+
final fulcrumUrl = ApiServiceConstants.fulcrumElectrumUrl;
46+
final fulcrumUrlWithoutProtocol = fulcrumUrl.replaceAll('ssl://', '');
47+
48+
// Delete any existing custom entries for the fulcrum server
49+
await (m.database.delete(electrumServers)..where(
50+
(e) =>
51+
electrumServers.url.equals(fulcrumUrl) |
52+
electrumServers.url.equals(fulcrumUrlWithoutProtocol),
53+
))
54+
.go();
55+
56+
// Get all Bitcoin mainnet servers and update their priority
57+
final serversToUpdate =
58+
await (m.database.select(electrumServers)..where(
59+
(e) =>
60+
electrumServers.isTestnet.equals(0) &
61+
electrumServers.isLiquid.equals(0),
62+
))
63+
.get();
64+
65+
for (final server in serversToUpdate) {
66+
final url = server.read('url') as String;
67+
final isTestnet = server.read('is_testnet') as bool;
68+
final isLiquid = server.read('is_liquid') as bool;
69+
final priority = server.read('priority') as int;
70+
final isCustom = server.read('is_custom') as bool;
71+
72+
await m.database
73+
.into(electrumServers)
74+
.insertOnConflictUpdate(
75+
RawValuesInsertable({
76+
'url': Constant(url),
77+
'is_testnet': Constant(isTestnet),
78+
'is_liquid': Constant(isLiquid),
79+
'priority': Constant(priority + 1),
80+
'is_custom': Constant(isCustom),
81+
}),
82+
);
83+
}
84+
85+
await m.database
86+
.into(electrumServers)
87+
.insert(
88+
RawValuesInsertable({
89+
'url': Constant(fulcrumUrl),
90+
'is_testnet': const Constant(false),
91+
'is_liquid': const Constant(false),
92+
'priority': const Constant(0),
93+
'is_custom': const Constant(false),
94+
}),
95+
);
4296
}
4397
}

lib/core/utils/constants.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class ApiServiceConstants {
7070
static const publicLiquidMempoolTestnetUrl = 'https://liquid.network/testnet';
7171

7272
// Bitcoin Electrum servers
73+
static const fulcrumElectrumUrl = 'ssl://fulcrum.bullbitcoin.com:50002';
7374
static const bbElectrumUrl = 'ssl://wes.bullbitcoin.com:50002';
7475
static const publicElectrumUrl = 'ssl://blockstream.info:700';
7576
// BB test currently not operational

0 commit comments

Comments
 (0)