Commit Graph

46 Commits

Author SHA1 Message Date
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
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
Daniel Granhão
9a4360bf00 Fix: prevent non-local chain swap claim (#660)
* Fix: prevent non-local chain swap claim

* Setup dotnet in binding tests

* Update cli Cargo.lock
2025-01-15 15:43:11 +00: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
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
Ross Savage
3a9b6a6dcd Set IPHONEOS_DEPLOYMENT_TARGET in CI (#587) 2024-12-02 18:40:08 +01:00
ok300
14d5bc9c27 Remove 32bit support (#575)
* Remove i686 bindings

* Remove armv7 bindings
2024-11-20 15:20:21 +00:00
Ross Savage
45281fb7e5 Fix SDK checkout (#528) 2024-10-14 10:58:32 +02:00
Ross Savage
7202e62967 Add notification plugin CI (#526)
* Add notification plugin CI

* Fix details fields error
2024-10-14 09:50:13 +02:00
Ross Savage
228bf9ab36 Re-add convenience Flutter gen command (#514)
* Re-add convenience Flutter gen command

* Decouple building ios framework step from bindings-swift script

* Add comments to uniffi build scripts.
* Make init-sdk part of init recipe
* Reorder recipes
* generate ios framework by default on gen recipe
* softlink C headers as part of their generator recipes
* Add convenience build recipe to generate everything needed for Flutter when developing the SDK

* Update Check Dart/Flutter bindings CI step

---------

Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>
2024-10-03 13:48:12 +03:00
Ross Savage
407a805418 Remove gitignore to allow Sources to be committed (#513) 2024-10-03 12:32:29 +03:00
Erdem Yerebasmaz
f6fa503cb9 Flutter uniFFI (#510)
* 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>
2024-10-01 10:59:11 +03:00
Ross Savage
471cb77e27 Build SDK bindings for Flutter (#488)
* Add build SDK bindings scripts for flutter

* Remove REMOVE_RECURSE to prevent bindings deletion

* Address feedback
2024-09-16 14:19:56 +02:00
Ross Savage
d42e37ce1e Fix CI and notfication plugin issues (#485) 2024-09-11 15:06:21 +02:00
Ross Savage
b493f3dc03 Swift notification plugin (#436)
* Add Swift notification plugin

* Hash the metadata

* Validate min sendable amount

* Remove initializer as base class, UNNotificationServiceExtension, has no default initializer

* Set the PaymentMethod

* Handle PaymentDetails in SwapUpdated

* Improve payment text
2024-08-30 09:20:13 +02:00
Ross Savage
251c252374 Add Go/CS bindings (#147)
* Publish Go/CS packages

* Fix optional param ordering

* Fix CI installed bindgens
2024-08-28 15:14:20 +02:00
Erdem Yerebasmaz
0cb02ce435 Bugfix: Update production podpsec's version with version script (#447)
* Add just recipe to update version number on podspec files & Cmake scripts

* Resolve relative path of root from script directory

* fix: Update production podpsec's version with version script

* Run 'just version'

* Update melos dependency

* Check if versions on podspec & cmake scripts were updated properly on CI

* Update versions on podspec & cmake scripts on publish

* Declare license type on podspec

* Add platform-specific link recipes

* Add copy recipes to be used in CI workflows
2024-08-20 14:51:07 +03:00
Erdem Yerebasmaz
3e38e5963a Downgrade Flutter to 3.22.3 (#438)
* Downgrade Flutter to 3.22.3

Downgrade Flutter to 3.22.3 until resource linking issue is resolved on Android release builds with 3.24

* Update pubspec.lock
2024-08-08 16:47:21 +03:00
Erdem Yerebasmaz
3703fd3477 Allow working with local library on iOS (#434)
* Update SDK range and update dependencies to latest

* Correct the output folder creation on codegen just recipe

* Create a podspec for local development

* Use production podspec when publishing

* Remove spec.platform as deployment targets are already set
2024-08-07 14:59:00 +03:00
Ross Savage
535be71d84 Fix RN CI (#408) 2024-07-25 09:27:36 +02:00
Ross Savage
091fc50270 Add rustdocs generation to CI (#402)
* Add rustdocs CI

* Flutter gen

* Add link to README
2024-07-19 17:35:59 +02:00
Ross Savage
651428b298 Fix CI dependencies (#384) 2024-07-10 14:36:48 +02:00
Ross Savage
ce4e3199d5 Remove build-other from publish CI (#381) 2024-07-10 08:00:51 +02:00
Ross Savage
da43f7ff78 Rename namespace (#345)
* Rename namespace

* Fix flutter build

* Fix kotlin-multiplatform CI

* Rename repositories
2024-07-09 17:25:05 +02:00
ok300
2d1e85f036 CI: bump checkout action to v4 (#363)
* CI: bump checkout action to v4

* CI: bump download-artifact action to v4

* CI: bump upload-artifact action to v4
2024-07-08 11:55:06 +00:00
Ross Savage
3ea6b1a9dc Publish Dart and Flutter packages (#356)
* 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>
2024-07-03 17:21:47 +02:00
Erdem Yerebasmaz
639ef0cca5 [Flutter] Fix relative path of packages (#353)
* 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
2024-07-02 17:08:38 +03:00
Ross Savage
c93b10534d Install protoc on workflow (#352)
* install protoc on workflow

(cherry picked from commit 317c7906d968eeb6726ab4a9076a8bf64bdf4a6e)

* Bump setup-protoc to v3 and 27.2

---------

Co-authored-by: Roei Erez <roeierez@gmail.com>
2024-07-01 17:22:41 +02:00
ok300
079be185c6 CI: Test if SDK compiles with latest dependencies (#323)
* CI: Test if SDK compiles with latest dependencies

* Add secp256k1-zkp patch

* Propagate the patch in Cargo.lock
2024-06-26 13:25:05 +00:00
ok300
bcb4743260 Integrate sdk-common (#308)
* Rename Network to LiquidSdkNetwork to avoid naming conflicts with sdk-common

* Integrate sdk-common: re-use parse_invoice

* Fix UDL bindings tests

* Add input parser support

* CLI: Add input parser support

* Integrate lnurl-pay

* Cargo format, re-generate FRB and RN bindings

* Duplicate LnUrlPayError, update FRB/UniFFI bindings

* Move duplicate LnUrlPayError to FRB bindings.rs

* Add support for lnurl-withdraw

* Lnurl-withdraw: convert units, incorporate fees

* Bump sdk-common, rename InputType::LnUrlError

* Bump sdk-common, remove Wrapped prefix from LnUrlPaySuccessData, LnUrlPayResult

* LNURL-withdraw: add missing UDL mappings

* Add support for LNURL-auth

* Move LNURL structs into models.rs

* Rename LiquidSdkNetwork to LiquidNetwork

* Fix binding tests

* Fix tests

* Move FRB mirroring structs to bindings.rs

* Remove TODO

* Bump sdk-common, remove sdk-common dependency on rusqlite

* Propagate LiquidNetwork rename into flutter example app

* CI: install protobuf before running clippy

* CI: add rust cache, protobuf for remaining rust steps
2024-06-20 16:18:50 +00:00
Ross Savage
5dca068619 Fix Package.swift xcframework url (#316) 2024-06-19 15:14:57 +02:00
yse
6224c5133c test: persistence and swap states (#312) 2024-06-18 21:55:46 +02:00
Ross Savage
78228d8961 Publish CI fixes (#289)
* Fix CI publish directories

* Fix kotlin multiplatform build

* Fix python ffi directory

* Add swift PAT to release

* Fix file copy

* Fix mvn check

* Test windows build (#290)

* Add jitpack yml

* Fix RN example android build
2024-06-18 09:34:47 +02:00
Ross Savage
337b52d40e Change script paths to langs directory 2024-05-21 15:38:13 +02:00
Ross Savage
cc7a6efd27 Rename bindings directories 2024-05-21 14:42:32 +02:00
Ross Savage
6e15c7762d Remove Flutter waiting CI job 2024-05-06 16:31:41 +02:00
Ross Savage
cddb9cce37 Set the breez-liquid-sdk-swift ref branch 2024-05-06 16:19:50 +02:00
Ross Savage
aec163c05a Wait for swift publishing job for flutter and RN 2024-05-06 16:19:50 +02:00
Erdem Yerebasmaz
0c0287b465 Ignore symlink files for C headers
Remove symlink files from version control
2024-05-06 11:10:17 +03:00
Erdem Yerebasmaz
c782fbf058 Check Flutter bindings with CI
- Add static analysis step for Dart & Flutter packages
- Ignore warning for unused element on build scrips for Windows targets
- Continue if there are any errors with generating bindings
2024-05-06 11:10:17 +03:00
Ross Savage
2467850bdd Change flutter directory 2024-05-03 13:30:36 +02:00
Ross Savage
3edb7d2019 Add CI workflows for publishing 2024-05-03 12:35:02 +02:00
ok300
6589a8799b Rename workspace members (subfolders) (#149)
* Rename ls-sdk-bindings workspace member

* Rename ls-sdk-core workspace member

* Rename ls-sdk-react-native
2024-05-02 18:22:32 +00:00
ok300
fddabfa0dd Add CI step to check RN bindings (#115) 2024-04-29 10:53:02 +00:00
ok300
95a05cc428 CI: build bindings, add binding tests (#114)
* CI: build bindings, add binding tests

* Cargo fmt

* Add assertion in python binding test
2024-04-29 10:49:33 +00:00
ok300
d254496269 Add CI config (#37)
* Add CI config

* Cargo fmt

* Add cargo clippy CI step
2024-03-21 09:32:58 +00:00