Commit Graph

126 Commits

Author SHA1 Message Date
Ross Savage
69e17c60a1 Fix Clippy issues (#758) 2025-02-26 12:42:34 +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
ded8ef16b8 Extract description from metadata_str for LNURL payments (#740)
* Extract description from LnUrlPayRequestData's metadata on lnurl_pay

* Persist description from lnurlp metadata on payment details description

* Use invoice description if it's available then fallback to description from metadata

for LNURLp payments
2025-02-18 17:25:34 +03:00
Daniel Granhão
eb3b12021c Remove min 0-conf fee rate (#750) 2025-02-18 12:20:39 +00:00
Ross Savage
6bf203dd80 Add seed to ConnectRequest (#748)
* Add seed option to ConnectRequest

* Explicitly require mnemonic or seed
2025-02-17 17:37:06 +01:00
Daniel Granhão
3ec57ad93e Add tx propagation grace period to swap recovery (#733)
* Add tx propagation grace period to swap recovery

* Add missing tx reset checks and improve logs
2025-02-17 13:23:32 +00: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
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
yse
e7a7adaf8a feat: remove swapper initialization at startup (#712) 2025-02-06 14:24:55 +01:00
Ross Savage
0b4acc6f6a Add seed passphrase to ConnectRequest (#722)
* Add seed passphrase to ConnectRequest

* Fix tests
2025-02-06 11:32:47 +01:00
Daniel Granhão
0c9d2b8cbe Prevent missing notifications due to concurrent SDK instances (#697)
* Prevent missing notifications due to concurrent SDK instances

* Expose swap claim tx id and use it to derive WaitingConfirmation in plugins

* Use id type as get payment request variant
2025-02-03 17:33:07 +00:00
Ross Savage
b24046c5e9 LNURL-pay drain (#674)
* LNURL-pay drain

* Fix min_sendable calculation
2025-01-29 14:44:46 +01:00
Ross Savage
ad5b108eda Fix the send amount for swap payments (#693) 2025-01-25 19:59:36 +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
Ross Savage
e196a91973 Multi-asset send/receive (#645)
* Multi-asset send/receive

* Apply suggestions from code review

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

* Log the prepare asset_id

---------

Co-authored-by: Daniel Granhão <32176319+danielgranhao@users.noreply.github.com>
2025-01-24 16:55:51 +01:00
Daniel Granhão
7841939e6a Expose amountless swap fees auto acceptance (#690)
* Expose amountless swap fees auto acceptance

* Move field behind optional ones

* Add serde default to auto_accepted_fees
2025-01-24 10:18:34 +00: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
6760960cb0 Add SdkEvent for refundable swap (#683) 2025-01-21 14:43:23 +00:00
yse
95998013a9 fix: remove mandatory API key checks (#639) 2025-01-21 08:32:05 +01:00
yse
4abcebcde8 feat: add sort_ascending flag to list_payments (#679) 2025-01-21 08:06:18 +01: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
Ross Savage
f92a6b9f0f Ensure fees are calculated without overflow (#671) 2025-01-17 15:28:09 +01:00
Daniel Granhão
bc779e3269 Fix amountless receiver amount and waiting fee acceptance condition (#670) 2025-01-17 13:26:42 +00:00
Daniel Granhão
037c77ab9f Fix swap structs PartialEq implementation (#662) 2025-01-17 10:57:44 +00:00
Daniel Granhão
95bbd0e49b Implement optimistic locking for read-update-write swap operations (#652)
* Implement optimistic locking for read-update-write swap operations

* Fail on stale swap update and add tests
2025-01-12 22:44:15 +00: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
Daniel Granhão
a9ec1c01dd Fix fees shown for send chain swaps 2025-01-06 12:45:56 +00:00
Daniel Granhão
fa70c0b6df Add receiver amount to FetchPaymentProposedFeesResponse 2025-01-03 09:53:12 +00:00
Daniel Granhão
c4f707f87e Derive chain swap fees using claim tx amount when available 2025-01-02 10:40:31 +00:00
Daniel Granhão
535d2ec063 Always fill in the actual_payer_amount_sat 2025-01-02 10:40:30 +00:00
Daniel Granhão
a1e5576286 Store actual payer and accepted receiver amounts 2025-01-02 10:40:25 +00:00
Daniel Granhão
0394a66d4c Fix after rebase 2025-01-02 10:35:45 +00:00
Daniel Granhão
351473a41e Expose fees for review + auto accept 2025-01-02 10:35:45 +00:00
Ross Savage
9253caa388 Store unblinding data for the tx (#584) 2025-01-02 09:03:01 +01: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
b0b88b8f1c Merge pull request #614 from breez/default-external-input-parsers
Support default external input parsers
2024-12-20 14:50:37 +00:00
Daniel Granhão
bac98a6ddf Move get_all_external_input_parsers to Config 2024-12-17 10:32:42 +00:00
Daniel Granhão
72a9aa66ff Support default external input parsers 2024-12-16 19:37:35 +00:00
Daniel Granhão
456de3c0a4 Minor docs fixes 2024-12-16 19:07:49 +00:00
Daniel Granhão
895e64b823 Implement external input parsing 2024-12-12 12:02:53 +00:00
ok300
cfc883ae00 Add zero-amount Receive Chain Swap (#538)
Add support for Zero-Amount Receive Chain Swaps
2024-12-09 16:10:52 +00:00
ok300
790dfa91be Persist swapper fees for swaps (#586)
* Add new Payment field swapper_fees_sat

* Add swapper fee handling for Receive Swaps

* Add swapper fee handling for Send Swaps

* Add swapper fee handling for Chain Swaps

* Fix tests

* Send Swap: persist pair JSON instead of service fee

* Receive Swap: persist pair JSON instead of service fee

* Chain Swap: persist pair JSON instead of service fee
2024-12-06 08:32:03 +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
Ross Savage
802e9eece7 Configurable cache dir (#567)
* Add a configurable cache dir

* Fix UDL field position
2024-11-18 13:36:38 +01:00
Ross Savage
4da57e3fe2 Liquid/Lightning drain (#553)
* Attempt drain using liquid or lightning payment

* Optimize estimation handling, use address in drain estimation

* Add drain option to PrepareSendRequest

* Block draining while there are pending payments

* Apply suggestions from code review

* Rename PayOnchainAmount to PayAmount
2024-11-11 21:50:18 +01:00
Ross Savage
92e7384522 Fix chronological order of list_payments (#552)
* Order payments first by swap timestamp then tx timestamp

* Fix payment timestamp from tx
2024-11-07 18:07:00 +01:00
Ross Savage
4d036f2529 Reserved address pool (#531) 2024-10-30 11:06:10 +01:00
Ross Savage
b3f1eed429 Prevent swap double claim (#542)
* Prevent receive swap double claim

* Prevent chain swap double claim
2024-10-30 10:08:13 +01:00
Roei Erez
2e559364d8 fix comments 2024-10-18 11:25:25 +02:00