* 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>
* 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
* Flutter uniffi
* Set on-demand resources
* Do not build non-uniffi libraries
* Change iosLibName
* Add BreezSDKLiquid as on demand resources
* Use downloaded framework
* Add Sources to published flutter package
* Set OTHER_LDFLAGS
* Add logging
* Refactor library initialization logic and throw an error if initialization fails
* Do not statically link framework on production
* Use uniFFI headers to generate FlutterBreezLiquidBindings
* Re add frb header
* Correct the library name
* Remove static_framework
* Move source header files
* Copy iOS podspecs to macOS folder
* Update version of macOS podspecs
* Remove Windows & Linux support
* Remove CMake scripts
* Remove breez_sdk_liquid.podspec from version script
* Cleanup older build scripts used by melos & just recipes
* Remove softlink & copy recipes
Add recipe descriptions
* Rename link-uniffi recipe to link-headers
Make sure headers are linked after uniffi is built
- Remove just gen recipe
Add recipe descriptions
* Set package versions on production files as well when publishing
* Include bindings project on melos script hooks
* Flutter uniffi
* Set on-demand resources
* Do not build non-uniffi libraries
* Change iosLibName
* Add BreezSDKLiquid as on demand resources
* Use downloaded framework
* Add Sources to published flutter package
* Set OTHER_LDFLAGS
* Add logging
* Refactor library initialization logic and throw an error if initialization fails
* Do not statically link framework on production
* Use uniFFI headers to generate FlutterBreezLiquidBindings
* Re add frb header
* Correct the library name
* Remove static_framework
* Move source header files
* Copy iOS podspecs to macOS folder
* Update version of macOS podspecs
* Remove Windows & Linux support
* Remove CMake scripts
* Remove breez_sdk_liquid.podspec from version script
* Cleanup older build scripts used by melos & just recipes
* Remove softlink & copy recipes
Add recipe descriptions
* Rename link-uniffi recipe to link-headers
Make sure headers are linked after uniffi is built
- Remove just gen recipe
Add recipe descriptions
* Set package versions on production files as well when publishing
* Include bindings project on melos script hooks
* chore: just version
* fix: remove unused files on "Set package version" step
* copy FFI header files
* [WIP] Add macOS support
* remove example app on Flutter plugin
* Link headers before running ffigen on CI workflow
* macOS: add macos/Sources folder to .gitignore
.
* macOS: Copy iOS sources to macOS sources after downloading bindings
* macOS: copy sources & framework file to macos folder on build-uniffi-swift script
* import breez_sdk_liquidFFI header on plugin file
Update flutter_breez_liquid.c
* cleanup header file artifacts
---------
Co-authored-by: Ross Savage <hello@satimoto.com>
* prepare-pay-onchain: add option for drain in req
* Fix clippy
* ChainSwapStateHandler: gracefully handle building both drain and non-drain lockups
* Send Chain swap: use standard feerate when estimating lockup tx fee
* UDL: move new drain field above the last PreparePayOnchainRequest optional field
* UDL: move new drain field optional
* prepare-pay-onchain: treat normal payment as drain if receiver amount is high enough
If the receiver amount is as high as it would be in case of drain, treat the current prepare-pay-onchain as drain, even if the drain flag is not set.
* build_drain_tx: add optional amount validation
* Add PayOnchainAmount enum to cover amount types (drain, receiver)
* Add ability to find max_receiver_amount_sat for non-drain sends
* Revert "Add ability to find max_receiver_amount_sat for non-drain sends"
This reverts commit 60ee1c768021810f72bc64a8ada69d35b638185e.
* prepare_pay_onchain: treat drain and non-drain cases separately
If the non-drain case is chosen with a receiver_amount equivalent to what drain would have calculated, it results in an error. For drain, the caller has to explicitly choose PayOnchainAmount::Drain.
* CLI: send-onchain-payment accepts optional amount
* CLI: add docs for send-onchain-payment drain arg
* SDK: expand docs for prepare_pay_onchain
* Re-generate RN bindings
* Re-generate flutter bindings
* Integrate webhooks
* Make hash_swap_id optional
* Hash and store the swap id
* Add webhook status include lists
* Remove superfluous webhook statuses
* Verify and fetch user_lockup_tx_id if missing
* Fix tests
* Use bitcoin sha256
* Fix flutter CI
* List payments in reverse chonological order
* Add payment filtering and paging
* Fix examples
* Apply suggestions from code review
Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>
* Set timestamp for pseudo payments
* Filter by the first non-null timestamp from the join query
---------
Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>
* Check chain swap addresses for unspent outputs
* Monitoring expired swaps up to 4320 blocks after expiration
* Refactor chain swap monitoring
* Handle the error to prevent the loop exiting
* Add RefundPending state
* Check if RefundPendingbefore setting to Refundable
* Use script_get_balance to determine spent state
* Use unconfirmed balance to check if RefundPending should be reset to Refundable
* Implement Chain Swaps for receiving
* Send: validate if we have sufficient funds (#321)
* Implement Chain Swaps for receiving
* Fix rebase of flutter_rust_bridge version
* Send: validate if we have sufficient funds
* Re-generate FRB
---------
Co-authored-by: Ross Savage <hello@satimoto.com>
* Chaim swap claim: remove refund_tx arg (#328)
---------
Co-authored-by: ok300 <106775972+ok300@users.noreply.github.com>
* feat: switch to pending state when receive lockup is in the mempool
* rebasing
* fix: move socket update logic to sub-crate
* Update payments query, to avoid duplicate Receive Swaps
This can happen if the app is stopped before the temporary lockup tx is removed from the DB. The Receive Swap would then forever result in two payments in list_payments.
* Add comments to clarify use of temp lockup txid
* Re-generate flutter bridge bindings
* feat: set Payment `tx_id` as optional and change `list_payments` logic
* fix: debug typo
* fix: undo `remove_temporary_tx` changes
* fix: switch to full join rather than manual filtering
* fix: bindings
* fix: improve error handling when tx data is not present
* fix: RN bindings
* fix: exclude Created receives from the list
* fix: fixing nits
* Re-generate FRB bindings
---------
Co-authored-by: ok300 <106775972+ok300@users.noreply.github.com>