1933 Commits

Author SHA1 Message Date
edouardparis
67c9262a30
Merge #1370: [GUI] Indicate wallet is syncing after completing installer
6f4eb79a5a45751a1c919565ea9c88f59fbda0ab gui: refresh cache more often while height is 0 (Michael Mallan)
a51110269c96e7a9d7c4143e0bd6f8cf27a703a3 gui(home): indicate that wallet is syncing (Michael Mallan)
b452966653da1f2d857dd5901972171aa9d1250c gui(home): track blockheight from cache (Michael Mallan)
1d1e735ae975bb73af5389090e1eee68c727c7ea ui: add loading spinner that types text (Michael Mallan)
3c46a7337c57ef646626d052a0ab23a7fa0ecb17 ui: add carousel loading spinner (Michael Mallan)
e4c1ab106d74ad193aa1ba2f5746ce598c4801e5 ui: render amount with chosen colors (Michael Mallan)
013feb3909ebed0a8850a51a7d61383f327b5d4d ui: refactor amount function (Michael Mallan)

Pull request description:

  This is to resolve #1361.

  The home page considers the wallet to be syncing if its height is 0. In this case, the balance will slowly blink and a "Syncing..." text will appear just below.

  The home page will check the wallet's height upon each cache refresh, and will reload the home page once the syncing has completed so that the updated balance is displayed without the user needing to do anything.

  Both the blinking balance and "Syncing..." text use a new `Carousel` widget that cycles through different child widgets at a specified rate.

  EDIT: I've added an extra commit to address #1363 as that is also related to the wallet height and cache refresh.

ACKs for top commit:
  edouardparis:
    ACK 6f4eb79a5a45751a1c919565ea9c88f59fbda0ab

Tree-SHA512: 04214ccb1cf998ae6f7589f2c37335416a6d39b668269c4e07e30c8713e1a0e9e46257c60cea7b19ee6d6e35cbdccaf1122d25a66e6e7e905de51fce185f9180
2024-10-18 14:46:14 +02:00
edouardparis
d35a594baf
Merge #1381: Change primary and secondary button for consistency
3e33353745212e6d344c2b172941c8eae1bdcb53 change button kind for transaction save modal (edouardparis)
0c2f0de951c0fb050a9934aabc256343aed83c4c Add light background to active buttons (edouardparis)
5c9171d0903a3f674f8a3e01fc7f878ece432c6a remove unused picklist theme (edouardparis)
8546e55ffaaa1585e1f1c9d724853682087656e7 change button for secondary button for consistency (edouardparis)
08854c4940569697e634e0c7ce53316ee04a049e change secondary button ui (edouardparis)
277945dddf63295d65abb8f3a28cbe3c671f8f47 convert all primary button to secondary button (edouardparis)

Pull request description:

  close #1380

  We removed all the primary buttons, they will be introduced back in the GUI incrementally to follow a one primary button per page policy

  The secondary button is border grey then border and text green on hover, whereas primary button will have its background green to be a call to action to the user.
  The background of the secondary button is changed for a light grey in order to be consistent with items list selection.

  ![20241014_12h47m01s_grim](https://github.com/user-attachments/assets/d18feeba-1ea8-424e-b735-1c37ab9dbaa4)
  ![20241014_12h47m24s_grim](https://github.com/user-attachments/assets/ecdd69e5-674e-40a4-a784-466bccf84cfa)
  ![20241014_12h47m42s_grim](https://github.com/user-attachments/assets/c622f4f0-8935-4bcf-8f91-6ad87e1fb8df)

ACKs for top commit:
  edouardparis:
    Self-ACK 3e33353745212e6d344c2b172941c8eae1bdcb53

Tree-SHA512: ab4a2f347e4d85edeee5b38bbc5da1ff995ae8a6d62ea819ac6f23ed30881a61391b63d325268e374c9b100238fe5993d31323283abcfeb9f922051965f9ebe1
2024-10-15 12:07:05 +02:00
edouardparis
3e33353745 change button kind for transaction save modal 2024-10-15 11:47:27 +02:00
edouardparis
0c2f0de951 Add light background to active buttons 2024-10-14 12:22:10 +02:00
edouardparis
5c9171d090 remove unused picklist theme 2024-10-14 12:02:13 +02:00
edouardparis
8546e55ffa change button for secondary button for consistency 2024-10-14 11:45:13 +02:00
edouardparis
08854c4940 change secondary button ui
The secondary button is light grey border and transparent
background that has border and text green on hover.
It brings consistency with item list selection that
has green border on hover.
2024-10-14 11:36:38 +02:00
edouardparis
277945dddf convert all primary button to secondary button 2024-10-14 11:24:43 +02:00
Michael Mallan
6f4eb79a5a
gui: refresh cache more often while height is 0
The wallet's height is taken from the cache and is used to check
if the wallet has been initially synced after creation.

For the remote backend, the cache refresh should be done with the
usual frequency while the wallet's height is 0 so that the sync
completion can be detected sooner.
2024-10-11 16:00:31 +01:00
Michael Mallan
a51110269c
gui(home): indicate that wallet is syncing 2024-10-11 16:00:29 +01:00
Michael Mallan
b452966653
gui(home): track blockheight from cache 2024-10-11 16:00:27 +01:00
Michael Mallan
1d1e735ae9
ui: add loading spinner that types text 2024-10-08 10:46:07 +01:00
Michael Mallan
3c46a7337c
ui: add carousel loading spinner 2024-10-08 10:46:05 +01:00
Michael Mallan
e4c1ab106d
ui: render amount with chosen colors 2024-10-07 15:31:14 +01:00
Michael Mallan
013feb3909
ui: refactor amount function
The `amount` function can call `amount_with_size` rather than
repeating the underlying call to `render_amount`.
2024-10-07 15:28:04 +01:00
edouardparis
8fb74d1cf9
Merge #1358: hw: check if app is open before sending old version error message
37cea480b83651171739edc453a41c3dde1c14ba hw: check if app is open before sending old version error message (edouardparis)

Pull request description:

  We check if we are able to fetch master fingerprint to see if the bitcoin app is open. The error is then displayed with the generic connection error message.

ACKs for top commit:
  edouardparis:
    Self-ACK 37cea480b83651171739edc453a41c3dde1c14ba

Tree-SHA512: e477987a57d2e79ed21cd1b1e61bdbd5725d39b88913a19bb6b9fffcbddde7ef95e8065de8695517ab57e8f830d078b76b42c01f7f257ac8f02bf0f03ddfe793
2024-09-25 15:13:39 +02:00
edouardparis
37cea480b8 hw: check if app is open before sending old version error message
We check if we are able to fetch master fingerprint
to see if the bitcoin app is open. The error is then displayed
with the generic connection error message.
2024-09-25 11:24:57 +02:00
edouardparis
1374f53483
Merge #1359: fix history events and txs pagination
0219752f784db12fa7a92231e596b7f264df8523 Add processing state to next page load (edouardparis)
1a370d380655b0cf852f2a51688cd15a327e1d7e fix history events and txs pagination (edouardparis)

Pull request description:

  The problem:
  We display the button if the size of the list is a multiple of the page size. Otherwise, we assume that the user has reached a partial page, indicating they've reached the bottom. However, since we chose to include all transactions with the same block time on a single page (because it's not possible to order them by block index in the database, as we don't store the block index), this can cause the page size to exceed the set limit. As a result, the list size may not be a multiple of the page size.

  The solution:
  keep in the state if the last fetched page has a length inferior of the expected page size and do not display the button 'See more' then as we reached the bottom.

ACKs for top commit:
  jp1ac4:
    Tested ACK 0219752f78.

Tree-SHA512: acba63aaa269e1c974ca3b6ffc7e5f7545d273b6cea8cea4f380c76a3aa569eaa5ac7b413525e613e1fbb55b7076b0b541bc72f802b5c619eeef3244f3366b52
2024-09-24 12:32:21 +02:00
edouardparis
0219752f78 Add processing state to next page load 2024-09-23 11:58:46 +02:00
edouardparis
1a370d3806 fix history events and txs pagination
The problem:
We display the button if the size of the list is a multiple of the page
size. Otherwise, we assume that the user has reached a partial page,
indicating they've reached the bottom. However, since we chose to
include all transactions with the same block time on a single page
(because it's not possible to order them by block index in the database,
as we don't store the block index), this can cause the page size to
exceed the set limit. As a result, the list size may not be a multiple
of the page size.

The solution:
keep in the state if the last fetched page has a length inferior
of the expected page size and do not display the button 'See more'
then as we reached the bottom.
2024-09-20 14:32:35 +02:00
edouardparis
6e551919bd
Merge #1346: Check coldcard version and request user to upgrade
7124e09b7555f46a9c16e265eed4bf247ea8326c Check coldcard version and request user to upgrade (edouardparis)

Pull request description:

  Close #1343

ACKs for top commit:
  jp1ac4:
    utACK 7124e09b75.
  edouardparis:
    Self-ACK 7124e09b7555f46a9c16e265eed4bf247ea8326c

Tree-SHA512: 105ada9d34b36020b1be369d515486f3e245ce975a253f4b075273037345d2c7e97aa9b0921715d3e9d45c5bd5856c51f2737882188bc8d2f13dc1e8db3e82f9
2024-09-17 12:27:40 +02:00
edouardparis
7124e09b75 Check coldcard version and request user to upgrade
Close #1343
2024-09-17 11:56:51 +02:00
edouardparis
47fb6efb3b
Merge #1344: gui: add help text for electrum address
00841631760241d58f89f433be7529cc705e2b02 gui: add help text for electrum address (Michael Mallan)

Pull request description:

  This adds a short text explanation about SSL usage in Electrum addresses to both the installer and settings page.

  This is a modified version of #1342.

ACKs for top commit:
  edouardparis:
    ACK 00841631760241d58f89f433be7529cc705e2b02

Tree-SHA512: 1b25547c07afaebc3ce86bdcb8c9de8d83b9f36b1bbfabbec2303e1c57e8c64c154412081c2bc26500e2c0d1d48f764b47730ebd4fb21d1c554e7da26ce8f0fb
2024-09-16 18:06:35 +02:00
Michael Mallan
0084163176
gui: add help text for electrum address 2024-09-16 15:43:59 +01:00
Antoine Poinsot
ec3a799dc6
Merge #1338: poller: query deposit tx for all coins, including expired
d7e5997c998edd2082ce86481726d22500bba67c poller: query deposit tx for all coins, including expired (Antoine Poinsot)

Pull request description:

  This fixes a crash whereby we missed the deposit transaction of a received coin because it was also part of the expired coins list.

  See the following logs.

  ```
  [8:33 AM](https://mm.revault.dev/revault/pl/a9mazcncaff3fc88yq8oqpipgo)
  root@cirrus-ci-task-4780461782728704:/tmp/cirrus-ci-build# tail -n100 /tmp/lianad-tests-o3guj0vh/test_rescan_edge_cases_1/
  lianad/log
  b'[1726295509][liana][INFO][thread main] Watchonly wallet created.'
  b'[1726295509][liana][INFO][thread main] Loading our watchonly wallet on bitcoind.'
  b'[1726295509][liana][INFO][thread main] Watchonly wallet loaded on bitcoind and sanity checked.'
  b'[1726295510][liana::database::sqlite][INFO][thread main] Created a fresh database at /tmp/lianad-tests-o3guj0vh/test_rescan_edge_cases_1/lianad/regtest/lianad.sqlite3.'
  b'[1726295510][liana::database::sqlite][INFO][thread main] Checking if the database needs upgrading.'
  b'[1726295510][liana][INFO][thread main] Database initialized and checked.'
  b'[1726295510][liana][INFO][thread Bitcoin Network poller] Bitcoin poller started.'
  b'[1726295510][liana::jsonrpc::server][DEBUG][thread Bitcoin Network poller] Binding socket at /tmp/lianad-tests-o3guj0vh/test_rescan_edge_cases_1/lianad/regtest/lianad_rpc'
  b'[1726295510][liana][INFO][thread Bitcoin Network poller] JSONRPC server started.'
  b'[1726295510][liana::bitcoin::poller][INFO][thread Bitcoin Network poller] Block chain synchronization progress: 100.00% (129 blocks / 129 headers)'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: []'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: []'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Missing txids: []'
  b"[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] New tip: '(129,56fa7e0cc43c7767f68cc230df045a58a2c7cbd8e50d5ed900f39260d6e551fa)'"
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Updates done.'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Checking the state of an ongoing rescan if there is any'
  b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] No ongoing rescan.'
  b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Block chain reorganization detected. Looking for common ancestor.'
  b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Common ancestor found: '(117,63a3207b98d2f832f9a213c8135243b5d8f7228778aeae4aa23ca6e565bf5b1e)'. Starting rescan from there. Old tip was '(129,56fa7e0cc43c7767f68cc230df045a58a2c7cbd8e50d5ed900f39260d6e551fa)'."
  b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Tip was rolled back to '(117,63a3207b98d2f832f9a213c8135243b5d8f7228778aeae4aa23ca6e565bf5b1e)'."
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Chain tip changed while we were updating our state. Starting over.'
  b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Block chain reorganization detected. Looking for common ancestor.'
  b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Common ancestor found: '(106,7b2a449b8287d0e29054073110c47164edfc2ab842c43415705e53722acb1e24)'. Starting rescan from there. Old tip was '(117,63a3207b98d2f832f9a213c8135243b5d8f7228778aeae4aa23ca6e565bf5b1e)'."
  b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Tip was rolled back to '(106,7b2a449b8287d0e29054073110c47164edfc2ab842c43415705e53722acb1e24)'."
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Chain tip changed while we were updating our state. Starting over.'
  b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Block chain reorganization detected. Looking for common ancestor.'
  b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Common ancestor found: '(101,7ad2fc79a78611d1d088ce6638c8324ba496bbd2e26a1d90a2be693b5d613f05)'. Starting rescan from there. Old tip was '(106,7b2a449b8287d0e29054073110c47164edfc2ab842c43415705e53722acb1e24)'."
  b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Tip was rolled back to '(101,7ad2fc79a78611d1d088ce6638c8324ba496bbd2e26a1d90a2be693b5d613f05)'."
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: [Coin { outpoint: OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 2 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 1 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0xaf4ef0538cdd46661de66c0175e0d053fbf82d56ff32b04c8699a56ef7f4a2f0, vout: 1 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 0 }, is_change: false, spend_txid: None, spend_block: None }]'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: [OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }, OutPoint { txid: 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e, vout: 0 }]'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Chain tip changed while we were updating our state. Starting over.'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: [Coin { outpoint: OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 2 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 1 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0xaf4ef0538cdd46661de66c0175e0d053fbf82d56ff32b04c8699a56ef7f4a2f0, vout: 1 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 0 }, is_change: false, spend_txid: None, spend_block: None }]'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: [OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }]'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
  b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Missing txids: [0xaf4ef0538cdd46661de66c0175e0d053fbf82d56ff32b04c8699a56ef7f4a2f0, 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e]'
  b'[1726295511][liana][ERROR][thread Bitcoin Network poller] panic occurred at line 465 of file src/database/sqlite/mod.rs: Some("Database must be available: SqliteFailure(Error { code: ConstraintViolation, extended_code: 787 }, Some(\\"FOREIGN KEY constraint failed\\"))")'
  b'   0: liana::setup_panic_hook::{{closure}}'
  b'   1: std::panicking::rust_panic_with_hook'
  b'   2: std::panicking::begin_panic_handler::{{closure}}'
  b'   3: std::sys::backtrace::__rust_end_short_backtrace'
  b'   4: rust_begin_unwind'
  b'   5: core::panicking::panic_fmt'
  b'   6: core::result::unwrap_failed'
  b'   7: <liana::database::sqlite::SqliteConn as liana::database::DatabaseConnection>::new_unspent_coins'
  b'   8: liana::bitcoin::poller::looper::updates'
  b'   9: liana::bitcoin::poller::looper::updates'
  b'  10: liana::bitcoin::poller::looper::updates'
  b'  11: liana::bitcoin::poller::looper::updates'
  b'  12: liana::bitcoin::poller::looper::updates'
  b'  13: liana::bitcoin::poller::looper::updates'
  b'  14: liana::bitcoin::poller::looper::updates'
  b'  15: liana::bitcoin::poller::looper::poll'
  b'  16: liana::bitcoin::poller::Poller::poll_forever'
  b'  17: std::sys::backtrace::__rust_begin_short_backtrace'
  b'  18: core::ops::function::FnOnce::call_once{{vtable.shim}}'
  b'  19: std::sys::pal::unix:🧵:Thread:🆕:thread_start'
  b'  20: <unknown>'
  b'  21: <unknown>'
  b''
  ```

  This should fix the flaky chain functional tests in ci.

ACKs for top commit:
  jp1ac4:
    ACK d7e5997c998edd2082ce86481726d22500bba67c.

Tree-SHA512: 2d51b15c4ef5aaeac5a703fb348c637d7bb44703b783fb928d7989cc69bf2ba3874128c74679640a4737236c60734394f36ab0974a8c9bdacc3ca5f59191b702
2024-09-16 11:03:47 +02:00
edouardparis
9b7ea093f9
Merge #1337: fix wrong redirection message in settings
1d20064bebcd2451b9844231576dc0b9cef0bac7 fix wrong redirection message in settings (edouardparis)

Pull request description:

  close #1334

ACKs for top commit:
  pythcoiner:
    tACK 1d20064
  edouardparis:
    Self-ACK 1d20064bebcd2451b9844231576dc0b9cef0bac7

Tree-SHA512: fa86fbe131f5223bca56e2f4e42574be2c9d6c5cb3e5b911a2dc57c1a07620a07ed58c1bcd3b8b3bd8f3c35f4eadd0b1c9eda594ac03a70a5245ad961a8914ec
2024-09-16 10:12:31 +02:00
Antoine Poinsot
d7e5997c99
poller: query deposit tx for all coins, including expired
This fixes a crash whereby we missed the deposit transaction of a
received coin because it was also part of the expired coins list.

See the following logs.

b'[1726295509][liana][INFO][thread main] Watchonly wallet created.'
b'[1726295509][liana][INFO][thread main] Loading our watchonly wallet on bitcoind.'
b'[1726295509][liana][INFO][thread main] Watchonly wallet loaded on bitcoind and sanity checked.'
b'[1726295510][liana::database::sqlite][INFO][thread main] Created a fresh database at /tmp/lianad-tests-o3guj0vh/test_rescan_edge_cases_1/lianad/regtest/lianad.sqlite3.'
b'[1726295510][liana::database::sqlite][INFO][thread main] Checking if the database needs upgrading.'
b'[1726295510][liana][INFO][thread main] Database initialized and checked.'
b'[1726295510][liana][INFO][thread Bitcoin Network poller] Bitcoin poller started.'
b'[1726295510][liana::jsonrpc::server][DEBUG][thread Bitcoin Network poller] Binding socket at /tmp/lianad-tests-o3guj0vh/test_rescan_edge_cases_1/lianad/regtest/lianad_rpc'
b'[1726295510][liana][INFO][thread Bitcoin Network poller] JSONRPC server started.'
b'[1726295510][liana::bitcoin::poller][INFO][thread Bitcoin Network poller] Block chain synchronization progress: 100.00% (129 blocks / 129 headers)'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: []'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: []'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Missing txids: []'
b"[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] New tip: '(129,56fa7e0cc43c7767f68cc230df045a58a2c7cbd8e50d5ed900f39260d6e551fa)'"
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Updates done.'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Checking the state of an ongoing rescan if there is any'
b'[1726295510][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] No ongoing rescan.'
b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Block chain reorganization detected. Looking for common ancestor.'
b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Common ancestor found: '(117,63a3207b98d2f832f9a213c8135243b5d8f7228778aeae4aa23ca6e565bf5b1e)'. Starting rescan from there. Old tip was '(129,56fa7e0cc43c7767f68cc230df045a58a2c7cbd8e50d5ed900f39260d6e551fa)'."
b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Tip was rolled back to '(117,63a3207b98d2f832f9a213c8135243b5d8f7228778aeae4aa23ca6e565bf5b1e)'."
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Chain tip changed while we were updating our state. Starting over.'
b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Block chain reorganization detected. Looking for common ancestor.'
b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Common ancestor found: '(106,7b2a449b8287d0e29054073110c47164edfc2ab842c43415705e53722acb1e24)'. Starting rescan from there. Old tip was '(117,63a3207b98d2f832f9a213c8135243b5d8f7228778aeae4aa23ca6e565bf5b1e)'."
b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Tip was rolled back to '(106,7b2a449b8287d0e29054073110c47164edfc2ab842c43415705e53722acb1e24)'."
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Chain tip changed while we were updating our state. Starting over.'
b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Block chain reorganization detected. Looking for common ancestor.'
b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Common ancestor found: '(101,7ad2fc79a78611d1d088ce6638c8324ba496bbd2e26a1d90a2be693b5d613f05)'. Starting rescan from there. Old tip was '(106,7b2a449b8287d0e29054073110c47164edfc2ab842c43415705e53722acb1e24)'."
b"[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Tip was rolled back to '(101,7ad2fc79a78611d1d088ce6638c8324ba496bbd2e26a1d90a2be693b5d613f05)'."
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: [Coin { outpoint: OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 2 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 1 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0xaf4ef0538cdd46661de66c0175e0d053fbf82d56ff32b04c8699a56ef7f4a2f0, vout: 1 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 0 }, is_change: false, spend_txid: None, spend_block: None }]'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: [OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }, OutPoint { txid: 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e, vout: 0 }]'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
b'[1726295511][liana::bitcoin::poller::looper][INFO][thread Bitcoin Network poller] Chain tip changed while we were updating our state. Starting over.'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Current coins: {}'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly received coins: [Coin { outpoint: OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 2 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e, vout: 0 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 1 }, is_change: false, spend_txid: None, spend_block: None }, Coin { outpoint: OutPoint { txid: 0xaf4ef0538cdd46661de66c0175e0d053fbf82d56ff32b04c8699a56ef7f4a2f0, vout: 1 }, is_immature: false, block_info: None, amount: Amount(0.35600000 BTC), derivation_index: Normal { index: 0 }, is_change: false, spend_txid: None, spend_block: None }]'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly confirmed coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Expired coins: [OutPoint { txid: 0x414ca732f0e59acef1ce6f63bdb6514dd8e0a8519671f38bb59c1b7353f6c00a, vout: 0 }]'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spending coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Newly spent coins: []'
b'[1726295511][liana::bitcoin::poller::looper][DEBUG][thread Bitcoin Network poller] Missing txids: [0xaf4ef0538cdd46661de66c0175e0d053fbf82d56ff32b04c8699a56ef7f4a2f0, 0x154afc0fd2190d65f0b5ffd466608c24bd55135666c142ae36b5a2648e0bf44e]'
b'[1726295511][liana][ERROR][thread Bitcoin Network poller] panic occurred at line 465 of file src/database/sqlite/mod.rs: Some("Database must be available: SqliteFailure(Error { code: ConstraintViolation, extended_code: 787 }, Some(\\"FOREIGN KEY constraint failed\\"))")'
b'   0: liana::setup_panic_hook::{{closure}}'
b'   1: std::panicking::rust_panic_with_hook'
b'   2: std::panicking::begin_panic_handler::{{closure}}'
b'   3: std::sys::backtrace::__rust_end_short_backtrace'
b'   4: rust_begin_unwind'
b'   5: core::panicking::panic_fmt'
b'   6: core::result::unwrap_failed'
b'   7: <liana::database::sqlite::SqliteConn as liana::database::DatabaseConnection>::new_unspent_coins'
b'   8: liana::bitcoin::poller::looper::updates'
b'   9: liana::bitcoin::poller::looper::updates'
b'  10: liana::bitcoin::poller::looper::updates'
b'  11: liana::bitcoin::poller::looper::updates'
b'  12: liana::bitcoin::poller::looper::updates'
b'  13: liana::bitcoin::poller::looper::updates'
b'  14: liana::bitcoin::poller::looper::updates'
b'  15: liana::bitcoin::poller::looper::poll'
b'  16: liana::bitcoin::poller::Poller::poll_forever'
b'  17: std::sys::backtrace::__rust_begin_short_backtrace'
b'  18: core::ops::function::FnOnce::call_once{{vtable.shim}}'
b'  19: std::sys::pal::unix:🧵:Thread:🆕:thread_start'
b'  20: <unknown>'
b'  21: <unknown>'
b''
2024-09-14 08:46:14 +02:00
edouardparis
1d20064beb fix wrong redirection message in settings
close #1334
2024-09-13 16:36:57 +02:00
edouardparis
dde02dfa7c
Merge #1331: Update gpg key documentation with Edouard key
1cf22eb00c2d9bdc06be6c05c2a094281159f76a Update gpg key documentation with Edouard key (edouardparis)

Pull request description:

ACKs for top commit:
  pythcoiner:
    ACK 1cf22eb

Tree-SHA512: b98a985d5d22f11ee34a5f1cfc9d591c7a16bb8ae56dfbe9aeb8392307ddda8ac4937d0e51ffb506c7dffbb6e8709087f394ba71de91eb27437d8ec1c2c5f06a
2024-09-13 10:24:55 +02:00
edouardparis
1cf22eb00c Update gpg key documentation with Edouard key 2024-09-13 09:54:21 +02:00
edouardparis
9b37a148ae
Merge #1328: gui: bump version v7.0
dbd1bf57b5b93f1954653a18cd00b9db8dc73bf9 gui: Bump version v7.0 (edouardparis)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK dbd1bf57b5b93f1954653a18cd00b9db8dc73bf9

Tree-SHA512: 3e6ab442022e71f4010ab2ab5c34e49ad15191d891ac84bb120338189b18f727130fe47967d1c5f506de53e445838285db387353c87a6ca33bd0a6b624e40661
2024-09-12 14:40:34 +02:00
edouardparis
dbd1bf57b5 gui: Bump version v7.0 2024-09-12 14:26:40 +02:00
edouardparis
18950c219a
Merge #1325: Prepare liana v7.0 release
d95e792f56a9b9bcc3f8dd0c8fea43debbff36be Add v7.0 to CHANGELOG.md (edouardparis)
aa1ca64816b43ec2c5484dac8db31d807b9aea0b Bump liana v7.0 (edouardparis)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK d95e792f56a9b9bcc3f8dd0c8fea43debbff36be

Tree-SHA512: 1afa8953fe81a732c3f6eb2efc05de5d632599bcef82b39aff42e20c8e5a90dc099244a34f9a2c4b97e1e10b05c9a4b68fc111018c8db6d97325bf71a79004f8
2024-09-12 14:10:17 +02:00
edouardparis
d95e792f56 Add v7.0 to CHANGELOG.md 2024-09-12 11:46:39 +02:00
edouardparis
aa1ca64816 Bump liana v7.0 2024-09-12 09:31:21 +02:00
Antoine Poinsot
fc52679e7d
Merge #1284: installer/prompt: improve grammar and fix typos
6a6a72408fe105c278b9e66d885d30310b92dd8a grammar: USAGE.md download it there -> download it here (Ben Westgate)
80fddb20f3522e4baf917468ebacef6aa4dd9718 grammar fixes: loader.rs (Ben Westgate)
b821896f7792c6f5b7e101666751a50e71b93c5d installer/prompt: improve grammar and fix typos (Ben Westgate)

Pull request description:

  Closes https://github.com/wizardsardine/liana/issues/1283

  back up is a verb, backup is a noun.
  Other words had improper plurality to match the verbs used or the verb had the wrong conjugation or adjectives were placed outside of normal locations. More descriptive pronouns used.

ACKs for top commit:
  darosior:
    ACK 6a6a72408fe105c278b9e66d885d30310b92dd8a

Tree-SHA512: dffa8158c0c59045cccac9b124f60dbfe0489cf0e6cf43be462aaf38e4ebdcb418a26cfc7d7c7e813d30e4e0c35bc6a563a985437e882b376f6b14c10bd07d4d
2024-09-12 09:08:41 +02:00
Antoine Poinsot
47592be412
Merge #1316: electrum: don't roll the tip forward upon reorg
87593befd4a85accbab7e7417b322ea74393b69d electrum: don't roll the tip forward upon reorg (Michael Mallan)

Pull request description:

  For Electrum, we detect reorgs while syncing based on our local chain.

  When a user requests a rescan, we roll the DB back to genesis block, but leave the local chain as it is. If there's then a reorg, we would find the common ancestor with respect to our local chain, which would be later than the DB's tip. In order not to miss any updates, we shouldn't roll the DB tip forward in that case.

ACKs for top commit:
  darosior:
    utACK 87593befd4a85accbab7e7417b322ea74393b69d.

Tree-SHA512: d89f95d15a55b21479ace2757d2f343bbff8919dd31733d9bff3165d0cfdcb1256e0894dab414f57d363331ef81c15fb4efdae572394640fbc620bcea8c8c57c
2024-09-12 09:08:09 +02:00
Antoine Poinsot
b2da2b7e19
Merge #1323: spend: ensure fee above min relay value
74a53baa39c409d8a39a27affc5ebac34128cb24 spend: add 10 sats to fee for 1 sat/vb txs (Michael Mallan)

Pull request description:

  This is a quick change to address #1322.

  It adds 10 sats to the fee for a non-replacement transaction targeted at 1 sat/vb.

ACKs for top commit:
  darosior:
    utACK 74a53baa39c409d8a39a27affc5ebac34128cb24. Looking forward to a real fix.

Tree-SHA512: c8ef2a49be67b94c2198a246a82f92f16661308151540197a7831a06e1eca277fa3dafe733b53a97dc3c9fc6639f4b724237863f186e4ffeb0bf61c74a1e9c0b
2024-09-12 09:06:10 +02:00
Michael Mallan
74a53baa39
spend: add 10 sats to fee for 1 sat/vb txs
This is a quick change to prevent the fee being below the
min relay fee.
2024-09-11 15:30:32 +01:00
Antoine Poinsot
ea49d12975
Merge #1303: backend settings
6349df95d3a690ac35be6dc18e5c6e0843d6c940 gui(installer): implement Default for DefineElectrum (pythcoiner)
530a8c50f5d96123880443e3bdb8886f51235815 gui(settings): do not switch between backend types (pythcoiner)

Pull request description:

  22ed096 fixes #1306
  2bd22b4 fixes #1305
  fd50913 in order to make clippy happy

ACKs for top commit:
  jp1ac4:
    ACK 6349df95d3a690ac35be6dc18e5c6e0843d6c940.

Tree-SHA512: 55fcac1a6e2129269e54106b354d22d6ddd4eae68034ecca030f7eb17adf1d7e6cb3cd3118dd877df3b934d26f61c6f7b5af0f354dc1000fa0c1fc6c6d833df5
2024-09-11 15:14:45 +02:00
pythcoiner
6349df95d3 gui(installer): implement Default for DefineElectrum 2024-09-11 14:21:37 +02:00
pythcoiner
530a8c50f5 gui(settings): do not switch between backend types 2024-09-11 14:21:37 +02:00
edouardparis
2a407013e3
Merge #1321: Deserialize error from create_spend http response
b73193ae77dccde519d43e5042324742dbee5523 Deserialize error from create_spend http response (edouardparis)

Pull request description:

  Instead of having an unclear and ugly message like:
  data did not match any variant of untagged enum DraftPsbtResult

ACKs for top commit:
  edouardparis:
    Self-ACK b73193ae77dccde519d43e5042324742dbee5523

Tree-SHA512: 8182c01ce4067b30dc821dc8f13243b3df4a85fa8f146d779bd9922fedd26f0eabd7fca07c47fdc517b0d958cbe0185c7003e09d6d28f32312e6cb4d4fb9ba52
2024-09-11 13:22:26 +02:00
edouardparis
b73193ae77 Deserialize error from create_spend http response
Instead of having a simple ugly message like:
data did not match any variant of untagged enum DraftPsbtResult
2024-09-11 12:53:17 +02:00
Antoine Poinsot
f6baec322a
Merge #1320: gui(settings): fix daemon reload handling for electrum
ff3d497fe12a70c606e9953cfb29fa4af0520859 gui(settings): fix daemon reload handling for electrum (Michael Mallan)

Pull request description:

  In case of error reloading daemon for Electrum, set edited to false (same handling as for bitcoind).

ACKs for top commit:
  darosior:
    tested ACK ff3d497fe12a70c606e9953cfb29fa4af0520859. Not bulletproof as i need to get back to the settings and re-click save with the previous settings for the daemon to be restarted, but still helps a lot to have the previous-working-config ready to be saved.

Tree-SHA512: c9c6aad38a8a834d51a6642b42c560107e503afa820db971a2af23c979681ee8487ff4c1c635d99ac740351fab0fe9c3b0119d0d3326193b5aea81f7dfe6598b
2024-09-11 12:29:55 +02:00
Michael Mallan
ff3d497fe1
gui(settings): fix daemon reload handling for electrum 2024-09-11 11:16:27 +01:00
edouardparis
a0bafa4cdc
Merge #1319: gui(settings): add sanity check on electrum wallet address
f67ee76f57b199b7b826348143e40cba61f81c8d gui: update liana dependency commit hash (Michael Mallan)
bf25103fadfdef7912b0ef4e155000d65acd3ccc gui(settings): add sanity check on electrum wallet address (pythcoiner)

Pull request description:

  This is the first commit from #1303.

ACKs for top commit:
  edouardparis:
    ACK f67ee76f57b199b7b826348143e40cba61f81c8d

Tree-SHA512: 02c52039c42af1fbae549862a3c8971b8561ce6285674461a40b04ede5d7704b001b93705874ea466b0176b6a43c849b6070be0dbb0d32205abc1389ccbd2b4e
2024-09-11 11:12:32 +02:00
Michael Mallan
f67ee76f57
gui: update liana dependency commit hash 2024-09-11 09:46:17 +01:00
pythcoiner
bf25103fad
gui(settings): add sanity check on electrum wallet address 2024-09-11 09:41:29 +01:00
Antoine Poinsot
4dd0fd3692
Merge #1315: electrum: make sure chain updates connect on rescan
3d7b3e44734ec859e37d1ac4005f25678f0cbc94 qa: correct reorg_shit function to use given `height` (Antoine Poinsot)
193f38a7c7258978e590f54aa55e048adb45e9ef ci: lower overall timeout (Antoine Poinsot)
59ba0ad8ef3f3a7203b1d0587ebf07e8642767f2 electrum: log local and updated chains after polling Electrum (Antoine Poinsot)
d3082a63050a9ee7fdc2f50153f161432e9b2989 electrum: make sure chain updates connect on rescan (Antoine Poinsot)

Pull request description:

  The `from_chain_tip` command takes a `CheckPoint` of our current chain tip for purposes of providing a chain update which connects to it, including in case of a reorg.

  This is not a point from which to rescan the chain.

  The current code made it so in case a rescan was performed while there was too much progress on the backend (>8 blocks), or when there was a deep enough reorg, the chain update could not unambiguously connect to our local chain. Here is an instance (logs were adapted to debug this issue):
  ```
    2024-09-10T15:19:48.258728Z DEBUG liana::bitcoin::electrum:196: Full local chain: LocalChain { tip: CheckPoint(CPInner { block: BlockId { height: 618, hash: 0x6c6f30d76e1ce1bee2157d271300b93e968c501685c20e8466635310a4622efe }, prev: Some(CPInner { block: BlockId { height: 617, hash: 0x3ed1127ea206b672f47c6dfc984c63c229264f618015865057de9a75e7a6f8b0 }, prev: Some(CPInner { block: BlockId { height: 616, hash: 0x6ffe4d528
  b5689802c46c86a1bd0acc9ecb35abf0bf73d2ccce72935b333c29e }, prev: Some(CPInner { block: BlockId { height: 615, hash: 0x433f6d69da936c29fdf02d43aeca9e0cfce0ce877f628743ada38e566dff1d73 }, prev: Some(CPInner { block: BlockId { height: 614, hash: 0x12a64d6416e196618154c34ad58f5c7342b59a752dbc4686af668e987f38dc28 }, prev: Some(CPInner { block: BlockId { height: 613, hash: 0x539942c4bb38f94e9ae35f0d120c8e250edd7a56930e130fe079 59d179dd2c0a }, prev: Some(CPInner { block: BlockId { height: 612, hash: 0x12ab45ad9c2dc246e450f98831cf2e6c5b3c9c5a0ab4af46c8a8cd915680d728 }, prev: Some(CPInner { block: BlockId { height: 611, hash: 0x21c890e0885f4672e22dbb6d17b110863bdd6b0464e0f5e731072d63f45a12d7 }, prev: Some(CPInner { block: BlockId { height: 515, hash: 0x021e3c76fbe92630214b1b23b85d44a9b443c6b1d01b336b7d1994a18944ebb1 }, prev: Some(CPInner { block:
   BlockId { height: 0, hash: 0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206 }, prev: None }) }) }) }) }) }) }) }) }) }) }

    2024-09-10T15:19:48.259058Z DEBUG liana::bitcoin::electrum:197: Full chain update: CheckPoint(CPInner { block: BlockId { height: 633, hash: 0x41ce59abb80de83d165501a1f9ba7acc98ed0ce4af7fde512fd2491905e777bd }, prev: Some(CPInner { block: BlockId { height: 632, hash: 0x4e812e2a98150c5da85efa44d792feed64e76ffbd0bf31ac5925a1b798bad959 }, prev: Some(CPInner { block: BlockId { height: 631, hash: 0x1379b6c609ce9adb0e2123dd36
  629e71a5011dc0e9f6aa3935f2f6c5c9ed28b2 }, prev: Some(CPInner { block: BlockId { height: 630, hash: 0x4bb4f27e5cefd3ef2d9707af6ed933c6bb049a48081250d365fdb1bd3a10da4d }, prev: Some(CPInner { block: BlockId { height: 629, hash: 0x64bf474cde129b6b9a45c7f697d57c9514ef33de02cda3df1f65543f0b111366 }, prev: Some(CPInner { block: BlockId { height: 628, hash: 0x60c205d56d5a244da352867c7db48a696fe9ecfe04d0fd4f105c7663afdf5717 }, p
  rev: Some(CPInner { block: BlockId { height: 627, hash: 0x70b8d4091481295e39582d82f5c72ca5cb62505861a6d804afc1b1a0caa25c2b }, prev: Some(CPInner { block: BlockId { height: 626, hash: 0x15ad17258b32d87b8719e6ee911e4b54e8095a3429d05617d391f262a4e8b8c1 }, prev: Some(CPInner { block: BlockId { height: 0, hash: 0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206 }, prev: None }) }) }) }) }) }) }) }) })
  ```

  I think this is the root cause of the issue we are seeing in the `rescan_edge_cases` functional test when ran in CI, and also of the crash Pyth reported.

  Fixes #1280.
  Fixes #1270.

ACKs for top commit:
  jp1ac4:
    ACK 3d7b3e44734ec859e37d1ac4005f25678f0cbc94.

Tree-SHA512: 0ed89722af4aa014877406f47543779ebcb23d28827fe87b48e6593fd8283bfa92fa22f9862dd0b6f34a367e01609aad07bd5df339988b1054091492d65ec312
2024-09-11 10:32:04 +02:00