* Remove unneeded resource files from iOS Project
* Remove breez_liquid_sdk.h
* Remove outdated method to enforce bundling on AppDelegate
* Add NSCameraUsageDescription to be able to scan QR codes on example app
* Do not show "No Balance" text when balance is 0
* Wait for reconnect attempt on startup
* Add a cancel button to mobile scanner
* Bound size of QR image view
* Reverse the payment list
* Publish flutter artifacts and package
* Publish dart package
* Add LICENCE
* Force rm
* Don't copy lock files
* Fix output directory
* Fix podspec name
* Pass SWIFT_RELEASE_TOKEN
* Fix overrides indentation
* Update package version on CMake script
Update example dependencies
* Depend on dart & flutter packages from git on pubspec files
* Correct repository links & add publish_to: 'none'
* run just clean && just init
* Update README.md
* Download framework as part of prepare_command
* Use wget, then fallback to curl
* Remove redundant .zip suffix on the url
* Fix release tag
* Add v to tag replacement
* Fix podspec version
* Copy header file
* Downgrade vm_service
---------
Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>
* Fix relative path on melos.yaml
* Mention current version on CHANGELOG.md
* Remove symlink for apache license
* Address typos & relative path issues on README.md
* Ignore Flutter example app on Melos.yaml
* Remove obsolete param from Config on example app
* Do not treat info messages as critical
* Update README of Dart/Flutter packages
Revert changes on topmost README
* Update pubspec.lock
* Make dart output directory if it does not exists
* Replace continue-on-error
Resume even if previous step fails, this approach displays errors on CI summary.
* Install Protoc as part of CI workflow
* Added init-sdk as part of just bootstrap recipe which installs protobuf
* Pinned freezed to <=2.5.2
* 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>
* Generate Dart bindings
* flutter_rust_bridge has relative path issues with this new approach introduced in 2.0.0-dev.38, we'll be using the default rust_output path until it's addressed.
* Receive: Add magic routing hint support
* Send: add MRH support
* Filter out and reject self-transfers
* Extract self-transfer validation in own fn
* PrepareSendResponse: use onchain fee as fees_sat if MRH present
* Use onchain tx fee as payment fee, if MRH used for direct onchain tx
* Fix swap fee calculation when MRH is used
* Apply boltz-client patch that aborts send if tx broadcast fails
* Send with MRH: return pending payment
* Receive with MRH: validate BIP21 amount, address
* Emit remaining events for MRH Send, Receive
* Sync: update swap info and emit events after new tx data is persisted
* Extract MRH send into its own send_payment_via_mrh()
* Pending Send via swap: store tx fees for pseudo-tx
* Fix clippy
* Add SDK global logger
* Add bindings
* Fix path to internal uniffi log
* Exclude "set_log_stream" from generated RN methods
* Move logger-specific structs to a separate module
* Delegate init_logging to method in logger.rs
* Rename uniffi BindingLogger to UniffiBindingLogger
* Add set_log_stream for dart bindings
* Add SDK logger to Dart bindings
* Rename dart binding logger to DartBindingLogger
* Add rustdocs
* RN bindings: Add manual handling for setLogStream()
* Re-generate dart bindings
* Re-generate RN bindings
* Remove LOG_INIT cell
* Set global maximum log level once on initialization
Return a LiquidSdkError::Generic instead of Anyhow error when initializing log stream on Dart bindings
* Do not panic when initializing binding loggers
* Rename LogStream to Logger
---------
Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>
* Add shutdown signal handling
Revert periodic sync interval change
Revert keep-alive interval change
CLI: Add disconnect command
SDK: Add scaffolding for is_started, shutdown()
Simplify instance init
* Rebase on savage-async-ws branch
* Avoid waiting when shutdown signal is received in the sync loop
* Directly use shutdown signal in background threads
* Acquire is_started lock at the very beginning of start()
* Fix cargo clippy warnings
* Update RN generator (kt): set bindingLiquidSdk to null on disconnect()
* Update RN generator (swift): set bindingLiquidSdk to nil on disconnect()
* Startup: only run foreground sync() if this could be the first run
* Start a sync() in background, before regular sync() loop
* Remove ensure_started check from start()
* Add bindings for disconnect()
* Remove foreground sync condition from startup
* Simplify background sync loop
* feat: add random keypair generation
* Encapsulate decode_keypair in SendSwap::get_refund_keypair()
* Add refund_tx_id and refund_tx_amount_sat to Payment
* fix: remove blocking on refund
* fix: change `refund_private_key` order
* fix: rebasing
* fix: set `next_unused_address` as refund output
* Handle refunds in `get_info`, `list_payments` (#226)
* Exclude refund txs from payment list
* Adjust balance calculation to account for refunds
* fix: revert boltz changes and fix locktime
* Replace subquery with LEFT JOIN to get refund data
* Rewrite locktime check for more clarity
* Rewrite locktime check for more clarity
* Fix select_payment_query in case of refunds
* Include boltz-client fixes (handling of unwraps for failed broadcasts)
* Cargo.toml: Use boltz-client branch instead of commit
---------
Co-authored-by: ok300 <106775972+ok300@users.noreply.github.com>