1pub(crate) fn current_migrations() -> Vec<&'static str> {
2 vec![
3 "
4 CREATE TABLE IF NOT EXISTS payments (
5 payment_type TEXT NOT NULL check( payment_type in('sent', 'received')),
6 payment_hash TEXT NOT NULL PRIMARY KEY,
7 payment_time INTEGER NOT NULL,
8 label TEXT,
9 destination_pubkey TEXT NOT NULL,
10 amount_msats INTEGER NOT NULL,
11 fee_msat INTEGER NOT NULL,
12 payment_preimage TEXT,
13 keysend INTEGER NOT NULL,
14 bolt11 TEXT,
15 pending INTEGER NOT NULL,
16 description TEXT
17 ) STRICT;
18
19 CREATE TABLE IF NOT EXISTS settings (
20 key TEXT NOT NULL PRIMARY KEY,
21 value TEXT NOT NULL
22 ) STRICT;
23
24 CREATE TABLE IF NOT EXISTS cached_items (
25 key TEXT NOT NULL PRIMARY KEY,
26 value TEXT NOT NULL
27 ) STRICT;
28
29 CREATE TABLE IF NOT EXISTS swaps (
30 bitcoin_address TEXT PRIMARY KEY NOT NULL,
31 created_at INTEGER DEFAULT CURRENT_TIMESTAMP,
32 lock_height INTEGER NOT NULL,
33 payment_hash BLOB NOT NULL UNIQUE,
34 preimage BLOB NOT NULL UNIQUE,
35 private_key BLOB NOT NULL UNIQUE,
36 public_key BLOB NOT NULL UNIQUE,
37 swapper_public_key BLOB NOT NULL UNIQUE,
38 script BLOB NOT NULL UNIQUE,
39 bolt11 TEXT,
40 paid_sats INTEGER NOT NULL DEFAULT 0,
41 confirmed_sats INTEGER NOT NULL DEFAULT 0,
42 status INTEGER NOT NULL DEFAULT 0,
43 refund_tx_ids TEXT NOT NULL,
44 confirmed_tx_ids TEXT NOT NULL
45 ) STRICT;
46 ",
47 "
48 CREATE TABLE channels (
49 funding_txid TEXT NOT NULL PRIMARY KEY,
50 short_channel_id TEXT,
51 state TEXT NOT NULL check( state in('PendingOpen', 'Opened', 'PendingClose', 'Closed')),
52 spendable_msat INTEGER NOT NULL,
53 receivable_msat INTEGER NOT NULL,
54 closed_at INTEGER
55 ) STRICT;
56 ",
57 "
58 ALTER TABLE payments RENAME TO old_payments;
59
60 CREATE TABLE IF NOT EXISTS payments (
61 id TEXT NOT NULL PRIMARY KEY,
62 payment_type TEXT NOT NULL check( payment_type in('Sent', 'Received', 'ClosedChannel')),
63 payment_time INTEGER NOT NULL,
64 amount_msat INTEGER NOT NULL,
65 fee_msat INTEGER NOT NULL,
66 pending INTEGER NOT NULL,
67 description TEXT,
68 details TEXT
69 ) STRICT;
70
71 INSERT INTO payments
72 (id, payment_type, payment_time, amount_msat, fee_msat, pending, description, details)
73 SELECT
74 payment_hash,
75 case when payment_type = 'received' then 'Received' else 'Sent' end,
76 payment_time,
77 amount_msats,
78 fee_msat,
79 pending,
80 description,
81 json_object(
82 'payment_hash', payment_hash,
83 'label', label,
84 'destination_pubkey', destination_pubkey,
85 'payment_preimage', payment_preimage,
86 'keysend', CASE keysend WHEN 1 THEN json('true') ELSE json('false') END,
87 'bolt11', bolt11
88 )
89 FROM old_payments;
90
91 DROP TABLE old_payments;
92 ",
93
94 "
95 ALTER TABLE swaps ADD COLUMN min_allowed_deposit INTEGER NOT NULL;
96 ALTER TABLE swaps ADD COLUMN max_allowed_deposit INTEGER NOT NULL;
97 ",
98 "UPDATE payments SET fee_msat = ABS(fee_msat) WHERE fee_msat < 0",
99
100 "
101 ALTER TABLE swaps RENAME TO old_swaps;
102
103 CREATE TABLE IF NOT EXISTS swaps (
104 bitcoin_address TEXT PRIMARY KEY NOT NULL,
105 created_at INTEGER DEFAULT CURRENT_TIMESTAMP,
106 lock_height INTEGER NOT NULL,
107 payment_hash BLOB NOT NULL UNIQUE,
108 preimage BLOB NOT NULL UNIQUE,
109 private_key BLOB NOT NULL UNIQUE,
110 public_key BLOB NOT NULL UNIQUE,
111 swapper_public_key BLOB NOT NULL UNIQUE,
112 script BLOB NOT NULL UNIQUE,
113 bolt11 TEXT,
114 paid_sats INTEGER NOT NULL DEFAULT 0,
115 unconfirmed_sats INTEGER NOT NULL DEFAULT 0,
116 confirmed_sats INTEGER NOT NULL DEFAULT 0,
117 status INTEGER NOT NULL DEFAULT 0,
118 refund_tx_ids TEXT NOT NULL,
119 unconfirmed_tx_ids TEXT NOT NULL,
120 confirmed_tx_ids TEXT NOT NULL,
121 min_allowed_deposit INTEGER NOT NULL,
122 max_allowed_deposit INTEGER NOT NULL,
123 last_redeem_error TEXT
124 ) STRICT;
125
126 INSERT INTO swaps
127 (
128 bitcoin_address,
129 created_at,
130 lock_height,
131 payment_hash,
132 preimage,
133 private_key,
134 public_key,
135 swapper_public_key,
136 script,
137 bolt11,
138 paid_sats,
139 unconfirmed_sats,
140 confirmed_sats,
141 status,
142 refund_tx_ids,
143 unconfirmed_tx_ids,
144 confirmed_tx_ids,
145 min_allowed_deposit,
146 max_allowed_deposit,
147 last_redeem_error
148 )
149 SELECT
150 bitcoin_address,
151 created_at,
152 lock_height,
153 payment_hash,
154 preimage,
155 private_key,
156 public_key,
157 swapper_public_key,
158 script,
159 bolt11,
160 paid_sats,
161 0,
162 confirmed_sats,
163 status,
164 refund_tx_ids,
165 '[]',
166 confirmed_tx_ids,
167 min_allowed_deposit,
168 max_allowed_deposit,
169 NULL
170 FROM old_swaps;
171
172 DROP TABLE old_swaps;
173 ",
174 "
175 CREATE TABLE IF NOT EXISTS payments_external_info (
176 payment_id TEXT NOT NULL PRIMARY KEY,
177 lnurl_success_action TEXT,
178 FOREIGN KEY(payment_id) REFERENCES payments(id)
179 ) STRICT;
180 ",
181 "ALTER TABLE payments_external_info ADD COLUMN ln_address TEXT;",
182 "ALTER TABLE payments_external_info ADD COLUMN lnurl_metadata TEXT;",
183 "
184 ALTER TABLE swaps RENAME TO old_swaps;
185
186 CREATE TABLE IF NOT EXISTS swaps (
187 bitcoin_address TEXT PRIMARY KEY NOT NULL,
188 created_at INTEGER DEFAULT CURRENT_TIMESTAMP,
189 lock_height INTEGER NOT NULL,
190 payment_hash BLOB NOT NULL UNIQUE,
191 preimage BLOB NOT NULL UNIQUE,
192 private_key BLOB NOT NULL UNIQUE,
193 public_key BLOB NOT NULL UNIQUE,
194 swapper_public_key BLOB NOT NULL UNIQUE,
195 script BLOB NOT NULL UNIQUE,
196 min_allowed_deposit INTEGER NOT NULL,
197 max_allowed_deposit INTEGER NOT NULL
198 ) STRICT;
199
200 CREATE TABLE IF NOT EXISTS swaps_info (
201 bitcoin_address TEXT PRIMARY KEY NOT NULL,
202 bolt11 TEXT,
203 paid_sats INTEGER NOT NULL DEFAULT 0,
204 unconfirmed_sats INTEGER NOT NULL DEFAULT 0,
205 confirmed_sats INTEGER NOT NULL DEFAULT 0,
206 status INTEGER NOT NULL DEFAULT 0,
207 unconfirmed_tx_ids TEXT NOT NULL,
208 confirmed_tx_ids TEXT NOT NULL,
209 last_redeem_error TEXT,
210 FOREIGN KEY(bitcoin_address) REFERENCES swaps(bitcoin_address)
211 ) STRICT;
212
213 CREATE TABLE IF NOT EXISTS swap_refunds (
214 bitcoin_address TEXT NOT NULL,
215 refund_tx_id TEXT NOT NULL,
216 PRIMARY KEY (bitcoin_address, refund_tx_id),
217 FOREIGN KEY(bitcoin_address) REFERENCES swaps(bitcoin_address)
218 ) STRICT;
219
220 INSERT INTO swaps
221 (
222 bitcoin_address,
223 created_at,
224 lock_height,
225 payment_hash,
226 preimage,
227 private_key,
228 public_key,
229 swapper_public_key,
230 script,
231 min_allowed_deposit,
232 max_allowed_deposit
233 )
234 SELECT
235 bitcoin_address,
236 created_at,
237 lock_height,
238 payment_hash,
239 preimage,
240 private_key,
241 public_key,
242 swapper_public_key,
243 script,
244 min_allowed_deposit,
245 max_allowed_deposit
246 FROM old_swaps;
247
248 INSERT INTO swaps_info
249 (
250 bitcoin_address,
251 bolt11,
252 paid_sats,
253 unconfirmed_sats,
254 confirmed_sats,
255 status,
256 unconfirmed_tx_ids,
257 confirmed_tx_ids,
258 last_redeem_error
259 )
260 SELECT
261 bitcoin_address,
262 bolt11,
263 paid_sats,
264 unconfirmed_sats,
265 confirmed_sats,
266 status,
267 unconfirmed_tx_ids,
268 confirmed_tx_ids,
269 last_redeem_error
270 FROM old_swaps;
271
272 DROP TABLE old_swaps;
273 ",
274
275 "
276 CREATE TABLE IF NOT EXISTS sync_versions (
277 last_version INTEGER NOT NULL,
278 data BLOB NOT NULL,
279 created_at TEXT DEFAULT CURRENT_TIMESTAMP
280 ) STRICT;
281 ",
282
283 "
284 CREATE TABLE IF NOT EXISTS sync.swaps (
285 bitcoin_address TEXT PRIMARY KEY NOT NULL,
286 created_at INTEGER DEFAULT CURRENT_TIMESTAMP,
287 lock_height INTEGER NOT NULL,
288 payment_hash BLOB NOT NULL UNIQUE,
289 preimage BLOB NOT NULL UNIQUE,
290 private_key BLOB NOT NULL UNIQUE,
291 public_key BLOB NOT NULL UNIQUE,
292 swapper_public_key BLOB NOT NULL UNIQUE,
293 script BLOB NOT NULL UNIQUE,
294 min_allowed_deposit INTEGER NOT NULL,
295 max_allowed_deposit INTEGER NOT NULL
296 ) STRICT;
297
298 ALTER TABLE swaps_info RENAME TO old_swaps_info;
299
300 CREATE TABLE IF NOT EXISTS swaps_info (
301 bitcoin_address TEXT PRIMARY KEY NOT NULL,
302 bolt11 TEXT,
303 paid_sats INTEGER NOT NULL DEFAULT 0,
304 unconfirmed_sats INTEGER NOT NULL DEFAULT 0,
305 confirmed_sats INTEGER NOT NULL DEFAULT 0,
306 status INTEGER NOT NULL DEFAULT 0,
307 unconfirmed_tx_ids TEXT NOT NULL,
308 confirmed_tx_ids TEXT NOT NULL,
309 last_redeem_error TEXT
310 ) STRICT;
311
312 ALTER TABLE swap_refunds RENAME TO old_swap_refunds;
313 CREATE TABLE IF NOT EXISTS sync.swap_refunds (
314 bitcoin_address TEXT NOT NULL,
315 refund_tx_id TEXT NOT NULL,
316 PRIMARY KEY (bitcoin_address, refund_tx_id)
317 ) STRICT;
318
319 INSERT INTO sync.swaps
320 (
321 bitcoin_address,
322 created_at,
323 lock_height,
324 payment_hash,
325 preimage,
326 private_key,
327 public_key,
328 swapper_public_key,
329 script,
330 min_allowed_deposit,
331 max_allowed_deposit
332 )
333 SELECT
334 bitcoin_address,
335 created_at,
336 lock_height,
337 payment_hash,
338 preimage,
339 private_key,
340 public_key,
341 swapper_public_key,
342 script,
343 min_allowed_deposit,
344 max_allowed_deposit
345 FROM swaps
346 WHERE bitcoin_address NOT IN (SELECT bitcoin_address FROM sync.swaps);
347
348 INSERT INTO swaps_info select * from old_swaps_info;
349 INSERT INTO sync.swap_refunds select * from old_swap_refunds where bitcoin_address in (select bitcoin_address from sync.swap_refunds);
350 DROP TABLE old_swaps_info;
351 DROP TABLE old_swap_refunds;
352 DROP TABLE swaps;
353
354 ALTER TABLE payments_external_info RENAME TO old_payments_external_info;
355 CREATE TABLE IF NOT EXISTS sync.payments_external_info (
356 payment_id TEXT NOT NULL PRIMARY KEY,
357 lnurl_success_action TEXT,
358 ln_address TEXT,
359 lnurl_metadata TEXT
360 ) STRICT;
361
362 INSERT INTO sync.payments_external_info
363 SELECT * FROM old_payments_external_info where payment_id not in (select payment_id from sync.payments_external_info);
364
365 DROP TABLE old_payments_external_info;
366 ",
367
368 "
369 CREATE TABLE IF NOT EXISTS sync.reverse_swaps (
370 id TEXT PRIMARY KEY NOT NULL,
371 created_at_block_height INTEGER NOT NULL,
372 preimage BLOB NOT NULL UNIQUE,
373 private_key BLOB NOT NULL UNIQUE,
374 claim_pubkey TEXT NOT NULL,
375 timeout_block_height INTEGER NOT NULL,
376 invoice TEXT NOT NULL UNIQUE,
377 onchain_amount_sat INTEGER NOT NULL,
378 sat_per_vbyte INTEGER NOT NULL,
379 redeem_script TEXT NOT NULL
380 ) STRICT;
381
382 CREATE TABLE IF NOT EXISTS reverse_swaps_info (
383 id TEXT PRIMARY KEY NOT NULL,
384 status TEXT NOT NULL
385 ) STRICT;
386 ",
387
388 "
390 SELECT 1;
391 ",
392 "
393 DROP TABLE sync_versions;
394 CREATE TABLE IF NOT EXISTS sync_versions (
395 last_version INTEGER NOT NULL,
396 data BLOB NOT NULL,
397 created_at TEXT DEFAULT CURRENT_TIMESTAMP
398 ) STRICT;
399 ",
400 "
402 CREATE TABLE IF NOT EXISTS sync.swaps_fees (
403 bitcoin_address TEXT PRIMARY KEY NOT NULL,
404 created_at TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL,
405 channel_opening_fees TEXT NOT NULL
406 ) STRICT;
407 ",
408 "
409 ALTER TABLE channels ADD COLUMN funding_outnum INTEGER;
410 ",
411 "
412 ALTER TABLE payments RENAME COLUMN pending TO status;
413 UPDATE payments SET status = CASE WHEN status = 1 THEN 0 ELSE 1 END;
414 ",
415 "SELECT 1;", "ALTER TABLE channels ADD COLUMN alias_local TEXT;",
417 "ALTER TABLE channels ADD COLUMN alias_remote TEXT;",
418 "ALTER TABLE channels ADD COLUMN closing_txid TEXT;",
419 "
420 ALTER TABLE reverse_swaps_info ADD COLUMN lockup_txid TEXT;
421 ALTER TABLE reverse_swaps_info ADD COLUMN claim_txid TEXT;",
422 "
423 ALTER TABLE swaps_info RENAME COLUMN paid_sats TO paid_msat;
424 ",
425 "ALTER TABLE swaps_info ADD COLUMN confirmed_at INTEGER;",
426 "
427 ALTER TABLE swaps_info ADD COLUMN total_incoming_txs INTEGER;
428 UPDATE swaps_info SET status = 0;
429 ",
430 "SELECT 1;",
431 "
432 ALTER TABLE channels ADD COLUMN local_balance_msat INTEGER;
433 UPDATE channels SET local_balance_msat = spendable_msat;
434 ",
435 "DELETE FROM cached_items WHERE key = 'gl_credentials'",
436 "DELETE FROM cached_items WHERE key = 'last_sync_time'",
437 "DELETE FROM cached_items WHERE key = 'node_state'",
438 "
439 CREATE TABLE IF NOT EXISTS send_pays (
440 created_index INTEGER PRIMARY KEY NOT NULL,
441 updated_index INTEGER,
442 groupid INTEGER NOT NULL,
443 partid INTEGER,
444 payment_hash BLOB NOT NULL,
445 status INTEGER NOT NULL,
446 amount_msat INTEGER,
447 destination BLOB,
448 created_at INTEGER NOT NULL,
449 amount_sent_msat INTEGER,
450 label TEXT,
451 bolt11 TEXT,
452 description TEXT,
453 bolt12 TEXT,
454 payment_preimage BLOB,
455 erroronion BLOB
456 ) STRICT;
457 ",
458 "DELETE FROM payments",
459 "DELETE FROM cached_items WHERE key = 'sync_state'",
460 "
462 DROP TABLE send_pays;
463
464 CREATE TABLE send_pays (
465 created_index INTEGER PRIMARY KEY NOT NULL,
466 updated_index INTEGER,
467 groupid TEXT NOT NULL,
468 partid INTEGER,
469 payment_hash BLOB NOT NULL,
470 status INTEGER NOT NULL,
471 amount_msat INTEGER,
472 destination BLOB,
473 created_at INTEGER NOT NULL,
474 amount_sent_msat INTEGER,
475 label TEXT,
476 bolt11 TEXT,
477 description TEXT,
478 bolt12 TEXT,
479 payment_preimage BLOB,
480 erroronion BLOB
481 ) STRICT;
482
483 DELETE FROM cached_items WHERE key = 'sync_state';
484 ",
485 "ALTER TABLE payments ADD COLUMN is_pseudo INTEGER DEFAULT 0 NOT NULL;
486 DELETE FROM payments;
487 DELETE FROM cached_items WHERE key = 'sync_state';
488 "
489 ]
490}
491
492pub(crate) fn current_sync_migrations() -> Vec<&'static str> {
493 vec![
494 "
495 CREATE TABLE IF NOT EXISTS open_channel_payment_info (
496 payment_hash TEXT PRIMARY KEY NOT NULL,
497 payer_amount_msat INTEGER NOT NULL
498 ) STRICT;
499
500 ",
501 "
503 CREATE TABLE IF NOT EXISTS swaps_fees (
504 bitcoin_address TEXT PRIMARY KEY NOT NULL,
505 created_at TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL,
506 channel_opening_fees TEXT NOT NULL
507 ) STRICT;
508 ",
509 "
511 CREATE TABLE IF NOT EXISTS swaps (
512 bitcoin_address TEXT PRIMARY KEY NOT NULL,
513 created_at INTEGER DEFAULT CURRENT_TIMESTAMP,
514 lock_height INTEGER NOT NULL,
515 payment_hash BLOB NOT NULL UNIQUE,
516 preimage BLOB NOT NULL UNIQUE,
517 private_key BLOB NOT NULL UNIQUE,
518 public_key BLOB NOT NULL UNIQUE,
519 swapper_public_key BLOB NOT NULL UNIQUE,
520 script BLOB NOT NULL UNIQUE,
521 min_allowed_deposit INTEGER NOT NULL,
522 max_allowed_deposit INTEGER NOT NULL
523 ) STRICT;
524
525 CREATE TABLE IF NOT EXISTS swap_refunds (
526 bitcoin_address TEXT NOT NULL,
527 refund_tx_id TEXT NOT NULL,
528 PRIMARY KEY (bitcoin_address, refund_tx_id)
529 ) STRICT;
530
531 CREATE TABLE IF NOT EXISTS payments_external_info (
532 payment_id TEXT NOT NULL PRIMARY KEY,
533 lnurl_success_action TEXT,
534 ln_address TEXT,
535 lnurl_metadata TEXT
536 ) STRICT;
537
538 CREATE TABLE IF NOT EXISTS reverse_swaps (
539 id TEXT PRIMARY KEY NOT NULL,
540 created_at_block_height INTEGER NOT NULL,
541 preimage BLOB NOT NULL UNIQUE,
542 private_key BLOB NOT NULL UNIQUE,
543 claim_pubkey TEXT NOT NULL,
544 timeout_block_height INTEGER NOT NULL,
545 invoice TEXT NOT NULL UNIQUE,
546 onchain_amount_sat INTEGER NOT NULL,
547 sat_per_vbyte INTEGER NOT NULL,
548 redeem_script TEXT NOT NULL
549 ) STRICT;
550
551 CREATE TABLE IF NOT EXISTS sync_requests (
552 id INTEGER PRIMARY KEY AUTOINCREMENT,
553 changed_table TEXT NOT NULL
554 ) STRICT;
555
556 CREATE TRIGGER IF NOT EXISTS sync_requests_swaps
557 AFTER INSERT ON swaps
558 BEGIN
559 INSERT INTO sync_requests(changed_table) VALUES('swaps');
560 END;
561
562 CREATE TRIGGER IF NOT EXISTS sync_requests_swap_refunds
563 AFTER INSERT ON swap_refunds
564 BEGIN
565 INSERT INTO sync_requests(changed_table) VALUES('swap_refunds');
566 END;
567
568 CREATE TRIGGER IF NOT EXISTS sync_requests_reverse_swaps
569 AFTER INSERT ON reverse_swaps
570 BEGIN
571 INSERT INTO sync_requests(changed_table) VALUES('reverse_swaps');
572 END;
573 ",
574 "
575 ALTER TABLE payments_external_info RENAME TO payments_external_info_old;
576
577 CREATE TABLE payments_external_info (
578 payment_id TEXT NOT NULL PRIMARY KEY,
579 lnurl_success_action TEXT,
580 ln_address TEXT,
581 lnurl_metadata TEXT,
582 lnurl_withdraw_endpoint TEXT
583 ) STRICT;
584
585 INSERT INTO payments_external_info
586 (payment_id, lnurl_success_action, ln_address, lnurl_metadata, lnurl_withdraw_endpoint)
587 SELECT
588 payment_id,
589 lnurl_success_action,
590 ln_address,
591 lnurl_metadata,
592 NULL
593 FROM payments_external_info_old;
594
595 DROP TABLE payments_external_info_old;
596
597 CREATE TRIGGER IF NOT EXISTS sync_requests_payments_external_info
598 AFTER INSERT ON payments_external_info
599 BEGIN
600 INSERT INTO sync_requests(changed_table) VALUES('payments_external_info');
601 END;
602 ",
603 "ALTER TABLE payments_external_info ADD COLUMN failed_amount_msat INTEGER;",
604 "ALTER TABLE payments_external_info RENAME COLUMN failed_amount_msat TO attempted_amount_msat;",
605 "
606 CREATE TRIGGER IF NOT EXISTS sync_requests_payments_external_info_update
607 AFTER UPDATE ON payments_external_info
608 BEGIN
609 INSERT INTO sync_requests(changed_table) VALUES('payments_external_info');
610 END;
611
612 ALTER TABLE payments_external_info ADD COLUMN attempted_error TEXT;
613 ",
614 "
615 CREATE TABLE IF NOT EXISTS payments_metadata (
616 payment_id TEXT NOT NULL PRIMARY KEY,
617 metadata TEXT,
618 updated_at TEXT DEFAULT CURRENT_TIMESTAMP
619 ) STRICT;
620 ",
621 "ALTER TABLE payments_external_info ADD COLUMN lnurl_pay_domain TEXT;",
622 "ALTER TABLE open_channel_payment_info ADD COLUMN open_channel_bolt11 TEXT;",
623
624 "
628 ALTER TABLE reverse_swaps RENAME TO reverse_swaps_old;
629
630 CREATE TABLE reverse_swaps (
631 id TEXT PRIMARY KEY NOT NULL,
632 created_at_block_height INTEGER NOT NULL,
633 preimage BLOB NOT NULL UNIQUE,
634 private_key BLOB NOT NULL UNIQUE,
635 claim_pubkey TEXT NOT NULL,
636 timeout_block_height INTEGER NOT NULL,
637 invoice TEXT NOT NULL UNIQUE,
638 onchain_amount_sat INTEGER NOT NULL,
639 sat_per_vbyte INTEGER,
640 receive_amount_sat INTEGER,
641 redeem_script TEXT NOT NULL
642 ) STRICT;
643
644 INSERT INTO reverse_swaps
645 (id, created_at_block_height, preimage, private_key, claim_pubkey, timeout_block_height, invoice, onchain_amount_sat, sat_per_vbyte, redeem_script)
646 SELECT
647 id,
648 created_at_block_height,
649 preimage,
650 private_key,
651 claim_pubkey,
652 timeout_block_height,
653 invoice,
654 onchain_amount_sat,
655 sat_per_vbyte,
656 redeem_script
657 FROM reverse_swaps_old;
658
659 DROP TABLE reverse_swaps_old;
660 ",
661 "
662 CREATE TRIGGER IF NOT EXISTS sync_payments_metadata
663 AFTER INSERT ON payments_metadata
664 BEGIN
665 INSERT INTO sync_requests(changed_table) VALUES('payments_metadata');
666 END;
667 ",
668 "
670 ALTER TABLE swaps ADD COLUMN max_swapper_payable INTEGER NOT NULL DEFAULT 0;
671 UPDATE swaps SET max_swapper_payable = max_allowed_deposit;
672 ",
673 "ALTER TABLE payments_external_info ADD COLUMN lnurl_pay_comment TEXT;",
674 ]
675}