Commit Graph

108 Commits

Author SHA1 Message Date
Daniel Granhão
f437c9194e Add regtest end-to-end tests (#816)
* Add regtest end-to-end tests

* Check that regtest environment is set up

* Add todo comment

* Add missing gloo-timers feature

* Link GH issues

* Update DEVELOPMENT.md

* Update boltz submodule

* Fix after rebase
2025-04-03 01:26:21 +01:00
yse
89c18c541b feat: add Esplora support to Boltz swapper (#805)
Co-authored-by: Daniel Granhão <32176319+danielgranhao@users.noreply.github.com>
2025-03-27 12:55:56 +01:00
yse
10e3ab71e0 feat: add Esplora client to chain services (#761)
Co-authored-by: Daniel Granhão <32176319+danielgranhao@users.noreply.github.com>
2025-03-27 10:40:10 +01:00
Daniel Granhão
80f6156c87 WASM: fix various minor issues (#810)
* Use tokio-stream on wasm builds

* Add missing MaybeSend/Sync

* Fix unused warning

* Exclude From<UrlError> impl
2025-03-26 01:23:36 +00:00
Ross Savage
15a0c46f76 Improve development guides (#809)
* Improve development guides

* Apply suggestions from code review

Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>

* Add Firefox prerequisites

---------

Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>
2025-03-25 17:23:04 +01:00
Ross Savage
0918330141 WASM: Conditionally add MissedTickBehavior (#806)
* Conditionally add MissedTickBehavior

* Directly reference MissedTickBehavior
2025-03-25 13:30:21 +01:00
Daniel Granhão
37979e6052 WASM: spawn task (#797) 2025-03-24 14:50:46 +00:00
Daniel Granhão
95fade5c1c WASM: sync grpc client (#790) 2025-03-24 14:00:16 +00:00
Daniel Granhão
a06c6d522e WASM: prevent filesystem access (#792)
* WASM: prevent filesystem access

* Exclude logger module on wasm

* Drop use of conditional compilation in `LiquidOnchainWallet`

* Expose `LiquidSdkBuilder` and configure build for wasm

* Move working_dir setup and log header to connect with signer

* Add in memory persister constructor

* Drop builder connect method

* Remove `empty_wallet_cache` from WASM interface

* Impose custom persister on wasm
2025-03-24 13:31:22 +00:00
Daniel Granhão
8c95ea5ac7 WASM: getting the current time (#795) 2025-03-21 11:46:28 +00:00
Erdem Yerebasmaz
6d5aa3fc82 Update flutter_rust_bridge to version 2.9.0 (#789)
chore: update dependencies to latest resolvable on Dart/Flutter packages
2025-03-19 13:42:15 +03:00
Daniel Granhão
116a898c21 Fix swap recovery before wallet scan (#775)
* Fix swap recovery before wallet scan

* Only do full scan when required

* Move scan to `recover_from_onchain`

* Cache index without buffer
2025-03-17 13:29:19 +00:00
Ross Savage
8509720cf4 Move mockall dependency (#783) 2025-03-17 11:54:34 +01:00
Roei Erez
1d5fda1428 Merge pull request #764 from breez/refactor-recoverer
Refactor recoverer
2025-03-15 16:21:40 +02:00
Daniel Granhão
7bd09aea5d WASM: Update boltz client dependency and use included wasm tokio-tungstenite (#769)
* Update boltz client dependency and use included wasm tokio-tungstenite

* Avoid unnecessary swapper init

* Update boltz client rev after merge
2025-03-15 10:29:35 +00:00
Roei Erez
79ca49d949 Add tests 2025-03-13 13:50:09 +02:00
Ross Savage
065bb7493e Improve WASM CI tests (#770) 2025-03-12 12:16:06 +01:00
Ross Savage
9e83e06bd5 Update selected built packages to Uniffi 0.28 (#766) 2025-03-12 11:56:42 +01:00
Ross Savage
6d72fdce57 WASM: Interface (#757)
* Define common types

* Define sdk types

* Add SDK methods

* Add LiquidSdkBuilder

* Add callback interfaces

* Update CI for WASM

* Replace async and test macros

* Update sdk-common/macros dependencies
2025-03-11 06:21:46 +01:00
yse
74ef2c6f08 feat(wasm): switch to compatible rusqlite fork (#754)
Co-authored-by: Ross Savage <hello@satimoto.com>
2025-03-05 23:38:19 +01:00
yse
b616ca1877 feat(wasm): split dependencies and add base wrapper (#753)
Co-authored-by: Ross Savage <551697+dangeross@users.noreply.github.com>
2025-03-05 23:01:18 +01:00
Ross Savage
b390864986 Chain swap: calculate cooperative tx size and allow immediate refund (#715)
* Calculate cooperative tx sizes

* Allow immediate refund of failed incoming chain swap

* Update to merged trunk

* Calculate refundable amount from utxos

* Revert removable of utxo selection

* Apply suggestions from code review

Co-authored-by: Daniel Granhão <32176319+danielgranhao@users.noreply.github.com>

---------

Co-authored-by: Daniel Granhão <32176319+danielgranhao@users.noreply.github.com>
2025-02-21 08:09:53 +01:00
Erdem Yerebasmaz
5a6b495f6c chore: Update flutter_rust_bridge to 2.8.0 & update Flutter dependencies to latest (#727)
* chore: update Flutter dependencies to latest

Use Flutter version 3.27.4 on CI workflows

* chore: update flutter_rust_bridge to 2.8.0 and generate bindings

chore: update dependencies to latest

* Use Flutter 3.29.0 on CI workflows
2025-02-19 13:25:01 +03:00
yse
9fbf7774b8 feat: add client_id to rt-sync notifications (#747) 2025-02-17 16:31:31 +01:00
Daniel Granhão
fc03572588 Persist and expose BIP353 addresses (#718)
* Persist and expose BIP353 addresses

* Increment schema minor version

* Move bip353 address from LNURL context to SendDestination

* Update after sdk-common merge

* Address review

* Only try to insert bip353 address when available
2025-02-11 15:29:16 +00:00
Roei Erez
41bfaab8f1 Revert "Clean and update dependencies (#726)"
This reverts commit c52acd5ae7.
2025-02-09 17:49:30 +02:00
Daniel Granhão
99d8765681 Support regtest (#707)
* Support regtest

* Fix bindings, print and switch boltz client crate

* Remove stop-grace-period

* Fix docker compose issues

* feat: add rt-sync to regtest setup

* Configure local rtsync instance on default regtest config

* Bump sdk-common rev

* Fix compose restart missing quotation

* Specify platform only in base configurations

* Fix after rebase

---------

Co-authored-by: yse <hydra_yse@proton.me>
2025-02-07 16:00:59 +00:00
Daniel Granhão
c52acd5ae7 Clean and update dependencies (#726) 2025-02-07 13:59:00 +00:00
Daniel Granhão
d139f36756 Switch to pure AES implementation in ecies (#716) 2025-02-04 18:43:22 +00:00
Roei Erez
a57edbeace configure timeouts 2025-01-30 03:15:48 +02:00
yse
cf957a4d98 fix: explicitly set absolute fees when signing transactions (#682)
Reflect changes from SatoshiPortal/boltz-client@db045fbd94
2025-01-27 19:27:45 +01:00
Ross Savage
652c23800e Configure asset metadata (#659)
* Configure asset metadata

* Apply suggestions from code review

* Return BIP21 URI also when only non-bitcoin asset_id is defined

* Rename AssetMetadata functions
2025-01-24 16:57:22 +01:00
Daniel Granhão
53fb22ab41 Chain swap refund tx fee bumping (#688)
* Chain swap refund tx fee bumping

* Add "pending" to refund tx id field names

* Rename pending to last
2025-01-24 09:41:32 +00:00
Daniel Granhão
3c2f6edad8 Set specific rev for Boltz client crate (#685) 2025-01-22 10:36:20 +00:00
Ross Savage
746b6e0223 Discount Confidential Transactions (#637)
* Update dependencies

* Use discount-ct when building txs

* Broadcast using the electrum client

* Fix CI

* Remove use of esplora url

* Address PR feedback

* Fix dart/flutter

* Update zero-conf fee rate check

* Fix clippy
2025-01-19 13:57:38 +01:00
yse
b185ff0e35 feat: add cooperative preimage recovery and optimize flow (#669) 2025-01-17 14:32:58 +01:00
Daniel Granhão
037c77ab9f Fix swap structs PartialEq implementation (#662) 2025-01-17 10:57:44 +00:00
yse
bb0b370d17 fix: remove auto-formatting command from build (#655)
* feat: use `include_protos` macro instead of builder
* fix: pin boltz to rev SatoshiPortal/boltz-rust@3bbc0dd
2025-01-15 11:02:35 +01:00
Ross Savage
50cb8be18c Add destination pubkey and bolt12 invoice to payment details (#649)
* Add destination pubkey and bolt12 invoice to payment details

* Change macro to fn
2025-01-10 13:53:43 +03:00
Ross Savage
66810ecdf6 feat: add swap expiry timestamp (#622) 2025-01-08 14:55:47 +01:00
Erdem Yerebasmaz
1695c88d9c Update flutter_rust_bridge to 2.7.0 (#642)
* Suppress no-nullability-completeness errors

* Use 'dart run' instead of the deprecated 'flutter pub run' cmd

* Update flutter_rust_bridge to version 2.7.0

Set flutter_rust_bridge range to ">=2.4.0 <=2.7.0" on Dart plugin.

* Generate Dart bindings

* Update Flutter to latest version

* Update melos to latest version

* Make Flutter plugin compatible with AGP 8.+

- Declare 'namespace' property on module-level build script
  - Change default namespace
  - Remove package name from AndroidManifest
- Bump compileSdkVersion to latest
- Update source and target compatibility

warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
2025-01-07 14:03:08 +03:00
Daniel Granhão
87c7a9fb40 Move bolt12 parsing to sdk-common 2025-01-06 18:40:13 +00:00
yse
6782e8beef feat: add real-time sync service (#629)
* feat(rt-sync): add persistency layer (#555)

* feat(rt-sync): add pull and merge (#556)

* feat(rt-sync): add push logic and run method (#568)

* feat(rt-sync): integrate rt-sync with the sdk

fix: add formatting command to build

feat: add secondary trigger to sync

deps: add tonic tls-webpki-roots

feat: prevent double claiming on status stream handlers

fix: add tx commit to chain swap update (#588)

fix: ensure we pull records before prepare_send

fix: fmt and tests

* fix: set initial pulled state to `Recoverable`

* feat(rt-sync): add `last_derivation_index` to sync service

* Single chain source

* Handle Recoverable state

* fix(rt-sync): chain recovery integration (#590)

Co-authored-by: yse <hydra_yse@proton.me>

* feat(rt-sync): add `pair_fees_json`

* fix(rt-sync): clean already persisted incoming records

* feat: cache wallet info (#591)

* log: add status-stream logging for non-local swaps

* Sync improvements (#598)

* Full sync on new Bitcoin block

* Track the last unconfirmed refund tx

* Trigger synced event on partial sync

* fix: remove `REPLACE` clause from swap insert/update

* fix(rt-sync): update chain swap payer/receiver amount (#604)

* Fix syncing last derivation index

* fix: update bindings and lockfile

* remove logs

* fix(rt-sync): avoid reuse of derivation index update logic (#608)

* Add 5 index buffer to full scan

* Fix storing claim_address (#609)

* Filter incoming MRH txs by swap timestamp

* fix liquid panding timestamp

* persist tx data timestamp

* Update unconfirmed transactions

* feat: add API key (#618)

* Use configured lazy connect channel in sync service

* fix: set lower-case header (#624)

* fix error message

* Store & Sync LNURL info (#617)

* Persist and decrypt LNURL info

* Update Notification Plugin

* Sync payment details

* Update list payments to include chain swaps with only user lockup (#620)

* Update payments query to include chain swaps without txs

* Allow emitting a payment event without tx_id

* fix: bindings

---------

Co-authored-by: Ross Savage <hello@satimoto.com>
Co-authored-by: Ross Savage <551697+dangeross@users.noreply.github.com>
Co-authored-by: Roei Erez <roeierez@gmail.com>
2024-12-24 10:39:43 +01:00
Daniel Granhão
72a9aa66ff Support default external input parsers 2024-12-16 19:37:35 +00:00
Daniel Granhão
3705175093 Default external parsers config to null 2024-12-12 15:15:56 +00:00
Daniel Granhão
895e64b823 Implement external input parsing 2024-12-12 12:02:53 +00:00
ok300
eba09c6faf Fix clippy CI step (#593)
* Add workspace-wide clippy lint config

* CLI: fix clippy
2024-12-09 16:43:29 +00:00
ok300
fe1dc30917 Add support for paying to BOLT12 (#549)
Add support for paying to BOLT12
2024-11-19 13:08:50 +00:00
ok300
bf5d4a1578 Propagate signer interface changes (#544) 2024-11-04 06:57:18 +00:00
Ross Savage
4d036f2529 Reserved address pool (#531) 2024-10-30 11:06:10 +01:00