* 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>
* Cancel slow swap
* Change Cancelled to TimedOut
* Set Created send swaps to TimedOut on start
* feat: add fetch by invoice before creating swap
* feat: add refund check for swap expired
* fix: check for lockup_tx_id rather than swap state
---------
Co-authored-by: Ross Savage <hello@satimoto.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>