@@ -44,19 +44,42 @@ class Schema10To11 {
4444 const fulcrumUrl = 'ssl://fulcrum.bullbitcoin.com:50002' ;
4545 const fulcrumUrlWithoutProtocol = 'fulcrum.bullbitcoin.com:50002' ;
4646
47- await m.database.customUpdate (
48- 'DELETE FROM electrum_servers WHERE url = ? OR url = ?' ,
49- variables: [
50- Variable <String >(fulcrumUrl),
51- Variable <String >(fulcrumUrlWithoutProtocol),
52- ],
53- updates: {electrumServers},
54- );
47+ // Delete any existing custom entries for the fulcrum server
48+ await (m.database.delete (electrumServers)..where (
49+ (e) =>
50+ electrumServers.url.equals (fulcrumUrl) |
51+ electrumServers.url.equals (fulcrumUrlWithoutProtocol),
52+ ))
53+ .go ();
5554
56- await m.database.customUpdate (
57- 'UPDATE electrum_servers SET priority = priority + 1 WHERE is_testnet = 0 AND is_liquid = 0' ,
58- updates: {electrumServers},
59- );
55+ // Get all Bitcoin mainnet servers and update their priority
56+ final serversToUpdate =
57+ await (m.database.select (electrumServers)..where (
58+ (e) =>
59+ electrumServers.isTestnet.equals (0 ) &
60+ electrumServers.isLiquid.equals (0 ),
61+ ))
62+ .get ();
63+
64+ for (final server in serversToUpdate) {
65+ final url = server.read ('url' ) as String ;
66+ final isTestnet = server.read ('is_testnet' ) as bool ;
67+ final isLiquid = server.read ('is_liquid' ) as bool ;
68+ final priority = server.read ('priority' ) as int ;
69+ final isCustom = server.read ('is_custom' ) as bool ;
70+
71+ await m.database
72+ .into (electrumServers)
73+ .insertOnConflictUpdate (
74+ RawValuesInsertable ({
75+ 'url' : Constant (url),
76+ 'is_testnet' : Constant (isTestnet),
77+ 'is_liquid' : Constant (isLiquid),
78+ 'priority' : Constant (priority + 1 ),
79+ 'is_custom' : Constant (isCustom),
80+ }),
81+ );
82+ }
6083
6184 await m.database
6285 .into (electrumServers)
0 commit comments