Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WASM #595

Open
1 of 3 tasks
dangeross opened this issue Nov 7, 2023 · 17 comments
Open
1 of 3 tasks

WASM #595

dangeross opened this issue Nov 7, 2023 · 17 comments
Assignees

Comments

@dangeross
Copy link
Collaborator

dangeross commented Nov 7, 2023

This is a tracking issue to manage the WASM implementation of the Breez SDK.

Tasks

  • Test different WASM/WASI/emscripten build methods
  • Identify changes required for Breez SDK / Greenlight
  • Investigate generation of WASM bindings from UDL

Research

  • Prokio An asynchronous runtime compatible with WebAssembly and non-WebAssembly targets
  • Strings in WASM
  • WASIX WASI ABI plus additional non-invasive syscall extensions
  • WASM GC WASM Garbage Collection
  • Tokio Tungstenite WebSocket library and Tokio bindings/wrappers

Issues

@dangeross dangeross self-assigned this Nov 7, 2023
@dangeross
Copy link
Collaborator Author

dangeross commented Dec 4, 2023

Current WASIX Progress
Patching the following dependencies:

[patch.crates-io]
rustls = { git = "https://github.com/wasix-org/rustls.git", branch = "v0.21.8" }
rustls-native-certs = { git = "https://github.com/wasix-org/rustls-native-certs.git" }
socket2 = { git = "https://github.com/wasix-org/socket2.git", branch = "v0.4.9" }
reqwest = { git = "https://github.com/wasix-org/reqwest.git" }
ring = { git = "https://github.com/wasix-org/ring.git", branch = "wasix" }
tokio = { git = "https://github.com/wasix-org/tokio.git", branch = "epoll" }
tokio-rustls = { git = "https://github.com/wasix-org/tokio-rustls.git" }
hyper = { git ="https://github.com/wasix-org/hyper.git", branch = "v0.14.27" }
hyper-rustls = { git = "https://github.com/wasix-org/hyper-rustls.git", branch = "wasix" }

Several libraries are still not building

  • openssl-sys
  • secp256k1-sys
  • rcgen
  • libsqlite3-sys

openssl-sys issue
Fixed by installing openssl-wasm32-wasi locally. This is a prebuilt openssl library targeting wasm32-wasi.

git clone --recursive https://github.com/doramatadora/openssl-wasm32-wasi

then build with the following env vars set:

 OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 cargo wasix build

secp256k1-sys issue
Turn out it was a clang issue, XCode's bundled clang doesn't support wasm targets. Install the correct one with brewbrew.

brew install llvm

then build with the following env vars set:

AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang

Current build command

OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang cargo wasix build

Current Output

error[E0599]: no method named `description_` found for struct `KeyRejected` in the current scope
    --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rcgen-0.10.0/src/lib.rs:1654:35
     |
1654 |         RcgenError::RingKeyRejected(err.description_())
     |                                         ^^^^^^^^^^^^ method not found in `KeyRejected`

For more information about this error, try `rustc --explain E0599`.
error: could not compile `rcgen` (lib) due to previous error
warning: build failed, waiting for other jobs to finish...
The following warnings were emitted during compilation:

warning: sqlite3/sqlite3.c:14183:10: fatal error: 'stdio.h' file not found
warning:  14183 | #include <stdio.h>
warning:        |          ^~~~~~~~~
warning: 1 error generated.

error: failed to run custom build command for `libsqlite3-sys v0.26.0`

Caused by:
  process didn't exit successfully: `/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/debug/build/libsqlite3-sys-d11f587fe2e4b5d9/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=sqlite3/sqlite3.c
  cargo:rerun-if-changed=sqlite3/wasm32-wasi-vfs.c
  cargo:rerun-if-env-changed=SQLITE_MAX_VARIABLE_NUMBER
  cargo:rerun-if-env-changed=SQLITE_MAX_EXPR_DEPTH
  cargo:rerun-if-env-changed=LIBSQLITE3_FLAGS
  TARGET = Some("wasm32-wasmer-wasi")
  OPT_LEVEL = Some("0")
  HOST = Some("x86_64-apple-darwin")
  cargo:rerun-if-env-changed=CC_wasm32-wasmer-wasi
  CC_wasm32-wasmer-wasi = None
  cargo:rerun-if-env-changed=CC_wasm32_wasmer_wasi
  CC_wasm32_wasmer_wasi = None
  cargo:rerun-if-env-changed=TARGET_CC
  TARGET_CC = None
  cargo:rerun-if-env-changed=CC
  CC = Some("/usr/local/opt/llvm/bin/clang")
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("true")
  cargo:rerun-if-env-changed=CFLAGS_wasm32-wasmer-wasi
  CFLAGS_wasm32-wasmer-wasi = None
  cargo:rerun-if-env-changed=CFLAGS_wasm32_wasmer_wasi
  CFLAGS_wasm32_wasmer_wasi = None
  cargo:rerun-if-env-changed=TARGET_CFLAGS
  TARGET_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  running: "/usr/local/opt/llvm/bin/clang" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "--target=wasm32-wasmer-wasi" "-DSQLITE_CORE" "-DSQLITE_DEFAULT_FOREIGN_KEYS=1" "-DSQLITE_ENABLE_API_ARMOR" "-DSQLITE_ENABLE_COLUMN_METADATA" "-DSQLITE_ENABLE_DBSTAT_VTAB" "-DSQLITE_ENABLE_FTS3" "-DSQLITE_ENABLE_FTS3_PARENTHESIS" "-DSQLITE_ENABLE_FTS5" "-DSQLITE_ENABLE_JSON1" "-DSQLITE_ENABLE_LOAD_EXTENSION=1" "-DSQLITE_ENABLE_MEMORY_MANAGEMENT" "-DSQLITE_ENABLE_RTREE" "-DSQLITE_ENABLE_STAT2" "-DSQLITE_ENABLE_STAT4" "-DSQLITE_SOUNDEX" "-DSQLITE_THREADSAFE=1" "-DSQLITE_USE_URI" "-DHAVE_USLEEP=1" "-D_POSIX_THREAD_SAFE_FUNCTIONS" "-DHAVE_ISNAN" "-DHAVE_LOCALTIME_R" "-o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/build/libsqlite3-sys-f293314b1daad7a0/out/sqlite3/sqlite3.o" "-c" "sqlite3/sqlite3.c"
  cargo:warning=sqlite3/sqlite3.c:14183:10: fatal error: 'stdio.h' file not found

  cargo:warning= 14183 | #include <stdio.h>

  cargo:warning=       |          ^~~~~~~~~

  cargo:warning=1 error generated.

  exit status: 1

  --- stderr


  error occurred: Command "/usr/local/opt/llvm/bin/clang" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "--target=wasm32-wasmer-wasi" "-DSQLITE_CORE" "-DSQLITE_DEFAULT_FOREIGN_KEYS=1" "-DSQLITE_ENABLE_API_ARMOR" "-DSQLITE_ENABLE_COLUMN_METADATA" "-DSQLITE_ENABLE_DBSTAT_VTAB" "-DSQLITE_ENABLE_FTS3" "-DSQLITE_ENABLE_FTS3_PARENTHESIS" "-DSQLITE_ENABLE_FTS5" "-DSQLITE_ENABLE_JSON1" "-DSQLITE_ENABLE_LOAD_EXTENSION=1" "-DSQLITE_ENABLE_MEMORY_MANAGEMENT" "-DSQLITE_ENABLE_RTREE" "-DSQLITE_ENABLE_STAT2" "-DSQLITE_ENABLE_STAT4" "-DSQLITE_SOUNDEX" "-DSQLITE_THREADSAFE=1" "-DSQLITE_USE_URI" "-DHAVE_USLEEP=1" "-D_POSIX_THREAD_SAFE_FUNCTIONS" "-DHAVE_ISNAN" "-DHAVE_LOCALTIME_R" "-o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/build/libsqlite3-sys-f293314b1daad7a0/out/sqlite3/sqlite3.o" "-c" "sqlite3/sqlite3.c" with args "clang" did not execute successfully (status code exit status: 1).


make: *** [wasix] Error 101

@dangeross
Copy link
Collaborator Author

dangeross commented Dec 7, 2023

Current WASIX Progress
Patching the following dependencies:

[patch.crates-io]
rustls = { git = "https://github.com/wasix-org/rustls.git", branch = "v0.21.8" }
rustls-native-certs = { git = "https://github.com/wasix-org/rustls-native-certs.git" }
socket2 = { git = "https://github.com/wasix-org/socket2.git", branch = "v0.4.9" }
reqwest = { git = "https://github.com/wasix-org/reqwest.git" }
ring = { git = "https://github.com/wasix-org/ring.git", branch = "wasix" }
tokio = { git = "https://github.com/wasix-org/tokio.git", branch = "epoll" }
tokio-rustls = { git = "https://github.com/wasix-org/tokio-rustls.git" }
hyper = { git ="https://github.com/wasix-org/hyper.git", branch = "v0.14.27" }
hyper-rustls = { git = "https://github.com/wasix-org/hyper-rustls.git", branch = "wasix" }
sct = { git = "https://github.com/wasix-org/sct", branch = "v0.7.0" }

Several libraries are still not building

  • openssl-sys
  • secp256k1-sys
  • rcgen
  • libsqlite3-sys
  • rustls

openssl-sys issue
Fixed by installing openssl-wasm32-wasi locally. This is a prebuilt openssl library targeting wasm32-wasi.

git clone --recursive https://github.com/doramatadora/openssl-wasm32-wasi

then build with the following env vars set:

 OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 cargo wasix build

secp256k1-sys issue
Superceded by libsqlite3-sys issue
Turn out it was a clang issue, XCode's bundled clang doesn't support wasm targets. Install the correct one with brewbrew.

brew install llvm

then build with the following env vars set:

AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang

libsqlite3-sys issue
This was resolved by installing the wasi-sdk locally, then using this as the clang source and adding the sysroot.

export WASI_VERSION=20
export WASI_VERSION_FULL=${WASI_VERSION}.0
curl -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
tar xvf wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
mv wasi-sdk-${WASI_VERSION_FULL}-macos wasi-sdk

Current build command
make wasix

WASI_SDK := "/opt/wasi-sdk"
CLANG_LIB_WASI := "$(WASI_SDK)/lib/clang/16/lib/wasi"
WASI_SYSROOT := "$(WASI_SDK)/share/wasi-sysroot"
CC := "$(WASI_SDK)/bin/clang --sysroot=$(WASI_SYSROOT)"
AR := "$(WASI_SDK)/bin/llvm-ar"
CC_WASM32_WASI := "$(WASI_SDK)/bin/clang"
LIBSQLITE3_FLAGS := "-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_SHARED_CACHE -D_LARGEFILE64_SOURCE"
RUSTFLAGS := "-Clink-arg=-L$(CLANG_LIB_WASI) -Clink-arg=-lclang_rt.builtins-wasm32 -Clink-arg=--export-table -Clink-arg=--export=malloc -Clink-arg=--export=free"
OPENSSL_DIR := "/opt/openssl-wasm32-wasi/precompiled"

init:
	rustup target add wasm32-wasi

wasix:
	clear
	cargo update
	OPENSSL_NO_VENDOR=1 OPENSSL_STATIC=1 OPENSSL_DIR=$(OPENSSL_DIR) CC=$(CC) AR=$(AR) CC_WASM32_WASI=$(CC_WASM32_WASI) LIBSQLITE3_FLAGS=$(LIBSQLITE3_FLAGS) RUSTFLAGS=$(RUSTFLAGS) cargo wasix build

Current Output

error[E0599]: no method named `description_` found for struct `KeyRejected` in the current scope
    --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rcgen-0.10.0/src/lib.rs:1654:35
     |
1654 |         RcgenError::RingKeyRejected(err.description_())
     |                                         ^^^^^^^^^^^^ method not found in `KeyRejected`

   Compiling console_error_panic_hook v0.1.7
   Compiling breez-sdk-core v0.2.9 (/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core)
   Compiling serde_with_macros v3.4.0
For more information about this error, try `rustc --explain E0599`.
error: could not compile `rcgen` (lib) due to previous error
warning: build failed, waiting for other jobs to finish...
error[E0277]: the trait bound `TlsConnector: From<Arc<rustls::ClientConfig>>` is not satisfied
   --> /Users/rosssavage/.cargo/git/checkouts/hyper-rustls-b0e1421a62a3cd05/e8d621f/src/connector.rs:122:56
    |
122 |                     let connector = TlsConnector::from(cfg);
    |                                     ------------------ ^^^ the trait `From<Arc<rustls::ClientConfig>>` is not implemented for `TlsConnector`
    |                                     |
    |                                     required by a bound introduced by this call
    |
    = help: the trait `From<Arc<tokio_rustls::rustls::ClientConfig>>` is implemented for `TlsConnector`

error[E0308]: mismatched types
   --> /Users/rosssavage/.cargo/git/checkouts/hyper-rustls-b0e1421a62a3cd05/e8d621f/src/connector.rs:124:34
    |
124 |                         .connect(hostname, tcp)
    |                          ------- ^^^^^^^^ expected `tokio_rustls::rustls::ServerName`, found `rustls::ServerName`
    |                          |
    |                          arguments to this method are incorrect
    |
    = note: `rustls::ServerName` and `tokio_rustls::rustls::ServerName` have similar names, but are actually distinct types
note: `rustls::ServerName` is defined in crate `rustls`
   --> /Users/rosssavage/.cargo/git/checkouts/rustls-98170f7462009c04/744e3c7/rustls/src/client/client_conn.rs:338:1
    |
338 | pub enum ServerName {
    | ^^^^^^^^^^^^^^^^^^^
note: `tokio_rustls::rustls::ServerName` is defined in crate `rustls`
   --> /Users/rosssavage/.cargo/git/checkouts/rustls-98170f7462009c04/f70944f/rustls/src/client/client_conn.rs:341:1
    |
341 | pub enum ServerName {
    | ^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `rustls` are being used?
note: method defined here
   --> /Users/rosssavage/.cargo/git/checkouts/tokio-rustls-2530e4b9557b4113/d3dbaae/src/lib.rs:109:12
    |
109 |     pub fn connect<IO>(&self, domain: rustls::ServerName, stream: IO) -> Connect<IO>
    |            ^^^^^^^

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `hyper-rustls` (lib) due to 2 previous errors
error[E0277]: expected a `FnOnce<(&[u8],)>` closure, found `()`
   --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.20.9/src/kx.rs:58:67
    |
58  |         ring::agreement::agree_ephemeral(self.privkey, &peer_key, (), f)
    |         --------------------------------                          ^^ expected an `FnOnce<(&[u8],)>` closure, found `()`
    |         |
    |         required by a bound introduced by this call
    |
    = help: the trait `for<'a> FnOnce<(&'a [u8],)>` is not implemented for `()`
note: required by a bound in `agree_ephemeral`
   --> /Users/rosssavage/.cargo/git/checkouts/ring-0e6fa1de60b08522/ae82296/src/agreement.rs:252:15
    |
249 | pub fn agree_ephemeral<B: AsRef<[u8]>, R>(
    |        --------------- required by a bound in this function
...
252 |     kdf: impl FnOnce(&[u8]) -> R,
    |               ^^^^^^^^^^^^^^^^^^ required by this bound in `agree_ephemeral`

error[E0061]: this function takes 3 arguments but 4 arguments were supplied
   --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.20.9/src/kx.rs:58:9
    |
58  |         ring::agreement::agree_ephemeral(self.privkey, &peer_key, (), f)
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                            ---
    |                                                                     | |
    |                                                                     | unexpected argument of type `impl FnOnce(&[u8]) -> Result<T, ()>`
    |                                                                     help: remove the extra argument
    |
note: function defined here
   --> /Users/rosssavage/.cargo/git/checkouts/ring-0e6fa1de60b08522/ae82296/src/agreement.rs:249:8
    |
249 | pub fn agree_ephemeral<B: AsRef<[u8]>, R>(
    |        ^^^^^^^^^^^^^^^

error[E0308]: mismatched types
  --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.20.9/src/kx.rs:59:23
   |
59 |             .map_err(|()| Error::PeerMisbehavedError("key agreement failed".to_string()))
   |                       ^^
   |                       |
   |                       expected `Unspecified`, found `()`
   |                       expected due to this

Some errors have detailed explanations: E0061, E0277, E0308.
For more information about an error, try `rustc --explain E0061`.
error: could not compile `rustls` (lib) due to 3 previous errors
make: *** [wasix] Error 101

@dangeross
Copy link
Collaborator Author

Current WASIX Progress
Patching the following dependencies:

[patch.crates-io]
rustls = { git = "https://github.com/wasix-org/rustls.git", branch = "v0.21.8" }
rustls-native-certs = { git = "https://github.com/wasix-org/rustls-native-certs.git" }
socket2 = { git = "https://github.com/wasix-org/socket2.git", branch = "v0.4.9" }
reqwest = { git = "https://github.com/wasix-org/reqwest.git", branch = "rustls-0.21.8" }
ring = { git = "https://github.com/wasix-org/ring.git", branch = "wasix" }
tokio = { git = "https://github.com/wasix-org/tokio.git", branch = "epoll" }
tokio-rustls = { git = "https://github.com/wasix-org/tokio-rustls.git" }
hyper = { git ="https://github.com/wasix-org/hyper.git", branch = "v0.14.27" }
hyper-rustls = { git = "https://github.com/wasix-org/hyper-rustls.git", branch = "wasix" }
sct = { git = "https://github.com/wasix-org/sct.git", branch = "v0.7.0" }

Several libraries are still not building

  • openssl-sys
  • secp256k1-sys
  • rcgen
  • libsqlite3-sys
  • rustls

openssl-sys issue
Fixed by installing openssl-wasm32-wasi locally. This is a prebuilt openssl library targeting wasm32-wasi.

git clone --recursive https://github.com/doramatadora/openssl-wasm32-wasi

then build with the following env vars set:

 OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 cargo wasix build

secp256k1-sys issue
Superceded by libsqlite3-sys issue
Turn out it was a clang issue, XCode's bundled clang doesn't support wasm targets. Install the correct one with brewbrew.

brew install llvm

then build with the following env vars set:

AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang

libsqlite3-sys issue
This was resolved by installing the wasi-sdk locally, then using this as the clang source and adding the sysroot.

export WASI_VERSION=20
export WASI_VERSION_FULL=${WASI_VERSION}.0
curl -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
tar xvf wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
mv wasi-sdk-${WASI_VERSION_FULL}-macos wasi-sdk

Current build command
make wasix

WASI_SDK := "/opt/wasi-sdk"
CLANG_LIB_WASI := "$(WASI_SDK)/lib/clang/16/lib/wasi"
WASI_SYSROOT := "$(WASI_SDK)/share/wasi-sysroot"
CC := "$(WASI_SDK)/bin/clang --sysroot=$(WASI_SYSROOT)"
AR := "$(WASI_SDK)/bin/llvm-ar"
CC_WASM32_WASI := "$(WASI_SDK)/bin/clang"
LIBSQLITE3_FLAGS := "-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_SHARED_CACHE -D_LARGEFILE64_SOURCE"
RUSTFLAGS := "-Clink-arg=-L$(CLANG_LIB_WASI) -Clink-arg=-lclang_rt.builtins-wasm32 -Clink-arg=--export-table -Clink-arg=--export=malloc -Clink-arg=--export=free"
OPENSSL_DIR := "/opt/openssl-wasm32-wasi/precompiled"

init:
	rustup target add wasm32-wasi

wasix:
	clear
	cargo update
	OPENSSL_NO_VENDOR=1 OPENSSL_STATIC=1 OPENSSL_DIR=$(OPENSSL_DIR) CC=$(CC) AR=$(AR) CC_WASM32_WASI=$(CC_WASM32_WASI) LIBSQLITE3_FLAGS=$(LIBSQLITE3_FLAGS) RUSTFLAGS=$(RUSTFLAGS) cargo wasix build

Current Output

   Compiling asn1-rs-impl v0.1.0
error[E0277]: expected a `FnOnce<(&[u8],)>` closure, found `()`
   --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.20.9/src/kx.rs:58:67
    |
58  |         ring::agreement::agree_ephemeral(self.privkey, &peer_key, (), f)
    |         --------------------------------                          ^^ expected an `FnOnce<(&[u8],)>` closure, found `()`
    |         |
    |         required by a bound introduced by this call
    |
    = help: the trait `for<'a> FnOnce<(&'a [u8],)>` is not implemented for `()`
note: required by a bound in `agree_ephemeral`
   --> /Users/rosssavage/.cargo/git/checkouts/ring-0e6fa1de60b08522/ae82296/src/agreement.rs:252:15
    |
249 | pub fn agree_ephemeral<B: AsRef<[u8]>, R>(
    |        --------------- required by a bound in this function
...
252 |     kdf: impl FnOnce(&[u8]) -> R,
    |               ^^^^^^^^^^^^^^^^^^ required by this bound in `agree_ephemeral`

error[E0061]: this function takes 3 arguments but 4 arguments were supplied
   --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.20.9/src/kx.rs:58:9
    |
58  |         ring::agreement::agree_ephemeral(self.privkey, &peer_key, (), f)
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                            ---
    |                                                                     | |
    |                                                                     | unexpected argument of type `impl FnOnce(&[u8]) -> Result<T, ()>`
    |                                                                     help: remove the extra argument
    |
note: function defined here
   --> /Users/rosssavage/.cargo/git/checkouts/ring-0e6fa1de60b08522/ae82296/src/agreement.rs:249:8
    |
249 | pub fn agree_ephemeral<B: AsRef<[u8]>, R>(
    |        ^^^^^^^^^^^^^^^

error[E0308]: mismatched types
  --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustls-0.20.9/src/kx.rs:59:23
   |
59 |             .map_err(|()| Error::PeerMisbehavedError("key agreement failed".to_string()))
   |                       ^^
   |                       |
   |                       expected `Unspecified`, found `()`
   |                       expected due to this

   Compiling asn1-rs-derive v0.4.0
   Compiling bitcoin-consensus-derive v0.1.0
   Compiling zeroize v1.7.0
   Compiling openssl-macros v0.1.1
Some errors have detailed explanations: E0061, E0277, E0308.
For more information about an error, try `rustc --explain E0061`.
error: could not compile `rustls` (lib) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
make: *** [wasix] Error 101

@dangeross
Copy link
Collaborator Author

dangeross commented Dec 13, 2023

Current WASIX Progress
Patching the following dependencies:

[patch.crates-io]
sct = { git = "https://github.com/wasix-org/sct", branch = "v0.7.0" }
h2 = { git = "https://github.com/wasix-org/h2" }
rustls = { git = "https://github.com/wasix-org/rustls.git", branch = "v0.21.8" }
rustls-native-certs = { git = "https://github.com/wasix-org/rustls-native-certs.git" }
socket2 = { git = "https://github.com/wasix-org/socket2.git", branch = "v0.4.9" }
reqwest = { git = "https://github.com/wasix-org/reqwest.git", branch = "rustls-0.21.8" }
ring = { git = "https://github.com/wasix-org/ring.git", branch = "wasix" }
tokio = { git = "https://github.com/wasix-org/tokio.git", branch = "epoll" }
tokio-rustls = { git = "https://github.com/wasix-org/tokio-rustls.git" }
hyper = { git ="https://github.com/wasix-org/hyper.git", branch = "v0.14.27" }
hyper-rustls = { git = "https://github.com/wasix-org/hyper-rustls.git", branch = "wasix" }
tonic = { git ="https://github.com/dangeross/tonic.git", branch = "v0.8.3" }

Several libraries are still not building

  • openssl-sys
  • secp256k1-sys
  • rcgen
  • libsqlite3-sys
  • rustls

openssl-sys issue
Fixed by installing openssl-wasm32-wasi locally. This is a prebuilt openssl library targeting wasm32-wasi.

git clone --recursive https://github.com/doramatadora/openssl-wasm32-wasi

then build with the following env vars set:

 OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 cargo wasix build

secp256k1-sys issue
Superceded by libsqlite3-sys issue
Turn out it was a clang issue, XCode's bundled clang doesn't support wasm targets. Install the correct one with brewbrew.

brew install llvm

then build with the following env vars set:

AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang

libsqlite3-sys issue
This was resolved by installing the wasi-sdk locally, then using this as the clang source and adding the sysroot.

export WASI_VERSION=20
export WASI_VERSION_FULL=${WASI_VERSION}.0
curl -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
tar xvf wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
mv wasi-sdk-${WASI_VERSION_FULL}-macos wasi-sdk

rustls issue
This is due to inconsistent versions that are supported by wasix and tonic. Forked the tonic repo, bumped rustls version and added client feature to support wasm32 targets.

Current build command
make wasix

WASI_SDK := "/opt/wasi-sdk"
CLANG_LIB_WASI := "$(WASI_SDK)/lib/clang/16/lib/wasi"
WASI_SYSROOT := "$(WASI_SDK)/share/wasi-sysroot"
CC := "$(WASI_SDK)/bin/clang --sysroot=$(WASI_SYSROOT)"
AR := "$(WASI_SDK)/bin/llvm-ar"
CC_WASM32_WASI := "$(WASI_SDK)/bin/clang"
LIBSQLITE3_FLAGS := "-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_SHARED_CACHE -D_LARGEFILE64_SOURCE"
RUSTFLAGS := "-Clink-arg=-L$(CLANG_LIB_WASI) -Clink-arg=-lclang_rt.builtins-wasm32 -Clink-arg=--export-table -Clink-arg=--export=malloc -Clink-arg=--export=free"
OPENSSL_DIR := "/opt/openssl-wasm32-wasi/precompiled"

init:
	rustup target add wasm32-wasi

wasix:
	clear
	cargo update
	OPENSSL_NO_VENDOR=1 OPENSSL_STATIC=1 OPENSSL_DIR=$(OPENSSL_DIR) CC=$(CC) AR=$(AR) CC_WASM32_WASI=$(CC_WASM32_WASI) LIBSQLITE3_FLAGS=$(LIBSQLITE3_FLAGS) RUSTFLAGS=$(RUSTFLAGS) cargo wasix build

Current Output

   Compiling rcgen v0.10.0
error[E0599]: no method named `description_` found for struct `KeyRejected` in the current scope
    --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rcgen-0.10.0/src/lib.rs:1654:35
     |
1654 |         RcgenError::RingKeyRejected(err.description_())
     |                                         ^^^^^^^^^^^^ method not found in `KeyRejected`

For more information about this error, try `rustc --explain E0599`.
error: could not compile `rcgen` (lib) due to previous error
warning: build failed, waiting for other jobs to finish...
make: *** [build] Error 101

@dangeross
Copy link
Collaborator Author

Current WASIX Progress
Patching the following dependencies:

[patch.crates-io]
sct = { git = "https://github.com/dangeross/sct", branch = "v0.7.0" }
h2 = { git = "https://github.com/wasix-org/h2" }
rustls = { git = "https://github.com/dangeross/rustls.git", branch = "v0.21.5" }
rustls-native-certs = { git = "https://github.com/wasix-org/rustls-native-certs.git" }
rustls-webpki = { git ="https://github.com/dangeross/webpki.git", branch = "v0.101.0" }
socket2 = { git = "https://github.com/wasix-org/socket2.git", branch = "v0.4.9" }
reqwest = { git = "https://github.com/dangeross/reqwest.git" }
ring = { git = "https://github.com/dangeross/ring.git", branch = "wasix" }
tokio = { git = "https://github.com/wasix-org/tokio.git", branch = "epoll" }
tokio-rustls = { git = "https://github.com/dangeross/tokio-rustls.git" }
hyper = { git ="https://github.com/wasix-org/hyper.git", branch = "v0.14.27" }
hyper-rustls = { git = "https://github.com/dangeross/hyper-rustls.git", branch = "wasix" }
tonic = { git ="https://github.com/dangeross/tonic.git", branch = "v0.8.3" }

Several libraries are still not building

  • openssl-sys
  • secp256k1-sys
  • rcgen
  • libsqlite3-sys
  • rustls
  • tonic

openssl-sys issue
Fixed by installing openssl-wasm32-wasi locally. This is a prebuilt openssl library targeting wasm32-wasi.

git clone --recursive https://github.com/doramatadora/openssl-wasm32-wasi

then build with the following env vars set:

 OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 cargo wasix build

secp256k1-sys issue
Superceded by libsqlite3-sys issue
Turn out it was a clang issue, XCode's bundled clang doesn't support wasm targets. Install the correct one with brewbrew.

brew install llvm

then build with the following env vars set:

AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang

libsqlite3-sys issue
This was resolved by installing the wasi-sdk locally, then using this as the clang source and adding the sysroot.

export WASI_VERSION=20
export WASI_VERSION_FULL=${WASI_VERSION}.0
curl -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
tar xvf wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
mv wasi-sdk-${WASI_VERSION_FULL}-macos wasi-sdk

rustls issue
This is due to inconsistent versions that are supported by wasix and tonic. Forked the tonic repo, bumped rustls version and added client feature to support wasm32 targets.

rcgen issue
Causes by inconsistent port of ring for wasix. As a result of forking/fixing, several other repos also needed to be forked.

Current build command
make wasix

WASI_SDK := "/opt/wasi-sdk"
CLANG_LIB_WASI := "$(WASI_SDK)/lib/clang/16/lib/wasi"
WASI_SYSROOT := "$(WASI_SDK)/share/wasi-sysroot"
CC := "$(WASI_SDK)/bin/clang --sysroot=$(WASI_SYSROOT)"
AR := "$(WASI_SDK)/bin/llvm-ar"
CC_WASM32_WASI := "$(WASI_SDK)/bin/clang"
LIBSQLITE3_FLAGS := "-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_SHARED_CACHE -D_LARGEFILE64_SOURCE"
RUSTFLAGS := "-Clink-arg=-L$(CLANG_LIB_WASI) -Clink-arg=-lclang_rt.builtins-wasm32 -Clink-arg=--export-table -Clink-arg=--export=malloc -Clink-arg=--export=free"
OPENSSL_DIR := "/opt/openssl-wasm32-wasi/precompiled"

init:
	rustup target add wasm32-wasi

wasix:
	clear
	cargo update
	OPENSSL_NO_VENDOR=1 OPENSSL_STATIC=1 OPENSSL_DIR=$(OPENSSL_DIR) CC=$(CC) AR=$(AR) CC_WASM32_WASI=$(CC_WASM32_WASI) LIBSQLITE3_FLAGS=$(LIBSQLITE3_FLAGS) RUSTFLAGS=$(RUSTFLAGS) cargo wasix build

Current Output

   Compiling tonic v0.8.3 (https://github.com/dangeross/tonic.git?branch=v0.8.3#fdbad2be)
error[E0271]: expected `F` to be a future that resolves to `()`, but it resolves to `<F as Future>::Output`
  --> /Users/rosssavage/.cargo/git/checkouts/tonic-30e39279ef91dd73/fdbad2b/tonic/src/transport/service/executor.rs:25:43
   |
25 |         wasm_bindgen_futures::spawn_local(fut);
   |         --------------------------------- ^^^ expected `()`, found associated type
   |         |
   |         required by a bound introduced by this call
   |
   = note:    expected unit type `()`
           found associated type `<F as futures_core::Future>::Output`
   = help: consider constraining the associated type `<F as futures_core::Future>::Output` to `()`
   = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
note: required by a bound in `wasm_bindgen_futures::spawn_local`
  --> /Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasm-bindgen-futures-0.4.38/src/lib.rs:82:15
   |
80 | pub fn spawn_local<F>(future: F)
   |        ----------- required by a bound in this function
81 | where
82 |     F: Future<Output = ()> + 'static,
   |               ^^^^^^^^^^^ required by this bound in `spawn_local`

error[E0308]: mismatched types
   --> /Users/rosssavage/.cargo/git/checkouts/tonic-30e39279ef91dd73/fdbad2b/tonic/src/transport/service/tls.rs:139:51
    |
139 |                 builder.with_client_cert_verifier(AllowAnyAuthenticatedClient::new(roots))
    |                         ------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Arc<dyn ClientCertVerifier>`, found `AllowAnyAuthenticatedClient`
    |                         |
    |                         arguments to this method are incorrect
    |
    = note: expected struct `Arc<(dyn ClientCertVerifier + 'static)>`
               found struct `AllowAnyAuthenticatedClient`
note: method defined here
   --> /Users/rosssavage/.cargo/git/checkouts/rustls-6b40dec7685053f9/984fba1/rustls/src/server/builder.rs:17:12
    |
17  |     pub fn with_client_cert_verifier(
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^

Some errors have detailed explanations: E0271, E0308.
For more information about an error, try `rustc --explain E0271`.
error: could not compile `tonic` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
make: *** [build] Error 101

@dangeross
Copy link
Collaborator Author

dangeross commented Dec 14, 2023

Current WASIX Progress
Patching the following dependencies:

[patch.crates-io]
sct = { git = "https://github.com/dangeross/sct", branch = "v0.7.0" }
h2 = { git = "https://github.com/wasix-org/h2" }
rustls = { git = "https://github.com/dangeross/rustls.git", branch = "v0.21.5" }
rustls-native-certs = { git = "https://github.com/wasix-org/rustls-native-certs.git" }
rustls-webpki = { git ="https://github.com/dangeross/webpki.git", branch = "v0.101.0" }
socket2 = { git = "https://github.com/wasix-org/socket2.git", branch = "v0.4.9" }
reqwest = { git = "https://github.com/dangeross/reqwest.git" }
ring = { git = "https://github.com/dangeross/ring.git", branch = "wasix" }
tokio = { git = "https://github.com/wasix-org/tokio.git", branch = "epoll" }
tokio-rustls = { git = "https://github.com/dangeross/tokio-rustls.git" }
hyper = { git ="https://github.com/wasix-org/hyper.git", branch = "v0.14.27" }
hyper-rustls = { git = "https://github.com/dangeross/hyper-rustls.git", branch = "wasix" }
tonic = { git ="https://github.com/dangeross/tonic.git", branch = "v0.8.3" }

Several libraries are still not building

  • openssl-sys
  • secp256k1-sys
  • rcgen
  • libsqlite3-sys
  • rustls
  • tonic
  • breez-sdk-core

openssl-sys issue
Fixed by installing openssl-wasm32-wasi locally. This is a prebuilt openssl library targeting wasm32-wasi.

git clone --recursive https://github.com/doramatadora/openssl-wasm32-wasi

then build with the following env vars set:

 OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 cargo wasix build

secp256k1-sys issue
Superceded by libsqlite3-sys issue
Turn out it was a clang issue, XCode's bundled clang doesn't support wasm targets. Install the correct one with brewbrew.

brew install llvm

then build with the following env vars set:

AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang

libsqlite3-sys issue
This was resolved by installing the wasi-sdk locally, then using this as the clang source and adding the sysroot.

export WASI_VERSION=20
export WASI_VERSION_FULL=${WASI_VERSION}.0
curl -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
tar xvf wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
mv wasi-sdk-${WASI_VERSION_FULL}-macos wasi-sdk

rustls issue
This is due to inconsistent versions that are supported by wasix and tonic. Forked the tonic repo, bumped rustls version and added client feature to support wasm32 targets.

rcgen issue
Causes by inconsistent port of ring for wasix. As a result of forking/fixing, several other repos also needed to be forked.

tonic issue
Doesn't support compilation to wasm32. Patched a client feature set into tonic based on hyperium/tonic#693. Might have to use tonic-ws-transport to support gRPC tunnelling over WebSocket.

Current build command
make wasix

WASI_SDK := "/opt/wasi-sdk"
CLANG_LIB_WASI := "$(WASI_SDK)/lib/clang/16/lib/wasi"
WASI_SYSROOT := "$(WASI_SDK)/share/wasi-sysroot"
CC := "$(WASI_SDK)/bin/clang --sysroot=$(WASI_SYSROOT)"
AR := "$(WASI_SDK)/bin/llvm-ar"
CC_WASM32_WASI := "$(WASI_SDK)/bin/clang"
LIBSQLITE3_FLAGS := "-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_SHARED_CACHE -D_LARGEFILE64_SOURCE"
RUSTFLAGS := "-Clink-arg=-L$(CLANG_LIB_WASI) -Clink-arg=-lclang_rt.builtins-wasm32 -Clink-arg=--export-table -Clink-arg=--export=malloc -Clink-arg=--export=free"
OPENSSL_DIR := "/opt/openssl-wasm32-wasi/precompiled"

init:
	rustup target add wasm32-wasi

wasix:
	clear
	cargo update
	OPENSSL_NO_VENDOR=1 OPENSSL_STATIC=1 OPENSSL_DIR=$(OPENSSL_DIR) CC=$(CC) AR=$(AR) CC_WASM32_WASI=$(CC_WASM32_WASI) LIBSQLITE3_FLAGS=$(LIBSQLITE3_FLAGS) RUSTFLAGS=$(RUSTFLAGS) cargo wasix build

Current Output

   Compiling vls-protocol-signer v0.10.0 (https://gitlab.com/cdecker/vls?tag=snapshot-20230920#b8d42d68)
error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1166:22
     |
1166 |           tokio::spawn(async move {
     |  ______________________^
1167 | |             signer_api.node_api.start_signer(shutdown_receiver).await;
1168 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = ()>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1167:13
     |
1167 |             signer_api.node_api.start_signer(shutdown_receiver).await;
     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = ()>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1191:22
     |
1191 |           tokio::spawn(async move {
     |  ______________________^
1192 | |             let mut events_stream = cloned.backup_watcher.subscribe_events();
1193 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1194 | |             loop {
...    |
1210 | |             }
1211 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<std::string::String, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:402:46
     |
402  |                   let claim_tx_broadcast_res = self
     |  ______________________________________________^
403  | |                     .chain_service
404  | |                     .broadcast_transaction(serialize(&claim_tx))
     | |________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<std::string::String, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1191:22
     |
1191 |           tokio::spawn(async move {
     |  ______________________^
1192 | |             let mut events_stream = cloned.backup_watcher.subscribe_events();
1193 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1194 | |             loop {
...    |
1210 | |             }
1211 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<models::ReceivePaymentResponse, ReceivePaymentError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_in/swap.rs:408:27
     |
408  |               let invoice = self
     |  ___________________________^
409  | |                 .payment_receiver
410  | |                 .receive_payment(ReceivePaymentRequest {
411  | |                     amount_msat: swap_info.confirmed_sats * 1000,
...    |
417  | |                     cltv: None,
418  | |                 })
     | |__________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<models::ReceivePaymentResponse, ReceivePaymentError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1191:22
     |
1191 |           tokio::spawn(async move {
     |  ______________________^
1192 | |             let mut events_stream = cloned.backup_watcher.subscribe_events();
1193 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1194 | |             loop {
...    |
1210 | |             }
1211 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<(), anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_in/swap.rs:442:9
     |
442  |         self.swapper_api.complete_swap(payreq.clone()).await
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<(), anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1191:22
     |
1191 |           tokio::spawn(async move {
     |  ______________________^
1192 | |             let mut events_stream = cloned.backup_watcher.subscribe_events();
1193 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1194 | |             loop {
...    |
1210 | |             }
1211 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<OnchainTx>, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:295:37
     |
295  |                   let confirmed_txs = self
     |  _____________________________________^
296  | |                     .chain_service
297  | |                     .address_transactions(lockup_addr.to_string())
     | |__________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<OnchainTx>, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1191:22
     |
1191 |           tokio::spawn(async move {
     |  ______________________^
1192 | |             let mut events_stream = cloned.backup_watcher.subscribe_events();
1193 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1194 | |             loop {
...    |
1210 | |             }
1211 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<BoltzApiReverseSwapStatus, ReverseSwapError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:497:31
     |
497  |                   None => match self
     |  _______________________________^
498  | |                     .reverse_swap_service_api
499  | |                     .get_boltz_status(rsi.id.clone())
     | |_____________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<BoltzApiReverseSwapStatus, ReverseSwapError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1191:22
     |
1191 |           tokio::spawn(async move {
     |  ______________________^
1192 | |             let mut events_stream = cloned.backup_watcher.subscribe_events();
1193 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1194 | |             loop {
...    |
1210 | |             }
1211 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<u32, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:513:40
     |
513  |                     let block_height = self.chain_service.current_tip().await?;
     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<u32, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Streaming<IncomingPayment>, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1222:42
     |
1222 |                 let invoice_stream_res = cloned.node_api.stream_incoming_payments().await;
     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Streaming<IncomingPayment>, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<std::string::String, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:868:27
     |
868  |         let node_pubkey = self.node_api.start().await?;
     |                           ^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<std::string::String, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<models::SyncResponse, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:873:25
     |
873  |           let new_data = &self
     |  _________________________^
874  | |             .node_api
875  | |             .pull_changed(since_timestamp, balance_changed)
     | |___________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<models::SyncResponse, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<std::string::String>, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:893:26
     |
893  |             let backup = self.node_api.static_backup().await?;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<std::string::String>, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<lsp::LspInformation>, SdkError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:924:20
     |
924  |         let lsps = self.lsp_api.list_lsps(node_pubkey).await?;
     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<lsp::LspInformation>, SdkError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<(), NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:941:21
     |
941  | /                     self.node_api
942  | |                         .connect_peer(node_id.clone(), address.clone())
     | |_______________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<(), NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<Outspend>, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1435:33
     |
1435 |                   let outspends = self
     |  _________________________________^
1436 | |                     .chain_service
1437 | |                     .transaction_outspends(channel.funding_txid.clone())
     | |________________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<Outspend>, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<std::string::String, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:402:46
     |
402  |                   let claim_tx_broadcast_res = self
     |  ______________________________________________^
403  | |                     .chain_service
404  | |                     .broadcast_transaction(serialize(&claim_tx))
     | |________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<std::string::String, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<models::ReceivePaymentResponse, ReceivePaymentError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_in/swap.rs:408:27
     |
408  |               let invoice = self
     |  ___________________________^
409  | |                 .payment_receiver
410  | |                 .receive_payment(ReceivePaymentRequest {
411  | |                     amount_msat: swap_info.confirmed_sats * 1000,
...    |
417  | |                     cltv: None,
418  | |                 })
     | |__________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<models::ReceivePaymentResponse, ReceivePaymentError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<(), anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_in/swap.rs:442:9
     |
442  |         self.swapper_api.complete_swap(payreq.clone()).await
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<(), anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<OnchainTx>, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:295:37
     |
295  |                   let confirmed_txs = self
     |  _____________________________________^
296  | |                     .chain_service
297  | |                     .address_transactions(lockup_addr.to_string())
     | |__________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<OnchainTx>, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<BoltzApiReverseSwapStatus, ReverseSwapError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:497:31
     |
497  |                   None => match self
     |  _______________________________^
498  | |                     .reverse_swap_service_api
499  | |                     .get_boltz_status(rsi.id.clone())
     | |_____________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<BoltzApiReverseSwapStatus, ReverseSwapError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1216:22
     |
1216 |           tokio::spawn(async move {
     |  ______________________^
1217 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1218 | |             loop {
1219 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1269 | |             }
1270 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<u32, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:513:40
     |
513  |                     let block_height = self.chain_service.current_tip().await?;
     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<u32, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<u32, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1322:33
     |
1322 |                   let tip_res = cloned.chain_service.current_tip().await;
     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<u32, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<std::string::String, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:868:27
     |
868  |         let node_pubkey = self.node_api.start().await?;
     |                           ^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<std::string::String, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<models::SyncResponse, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:873:25
     |
873  |           let new_data = &self
     |  _________________________^
874  | |             .node_api
875  | |             .pull_changed(since_timestamp, balance_changed)
     | |___________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<models::SyncResponse, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<std::string::String>, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:893:26
     |
893  |             let backup = self.node_api.static_backup().await?;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<std::string::String>, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<lsp::LspInformation>, SdkError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:924:20
     |
924  |         let lsps = self.lsp_api.list_lsps(node_pubkey).await?;
     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<lsp::LspInformation>, SdkError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<(), NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:941:21
     |
941  | /                     self.node_api
942  | |                         .connect_peer(node_id.clone(), address.clone())
     | |_______________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<(), NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<std::string::String, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:402:46
     |
402  |                   let claim_tx_broadcast_res = self
     |  ______________________________________________^
403  | |                     .chain_service
404  | |                     .broadcast_transaction(serialize(&claim_tx))
     | |________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<std::string::String, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<Outspend>, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1435:33
     |
1435 |                   let outspends = self
     |  _________________________________^
1436 | |                     .chain_service
1437 | |                     .transaction_outspends(channel.funding_txid.clone())
     | |________________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<Outspend>, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<models::ReceivePaymentResponse, ReceivePaymentError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_in/swap.rs:408:27
     |
408  |               let invoice = self
     |  ___________________________^
409  | |                 .payment_receiver
410  | |                 .receive_payment(ReceivePaymentRequest {
411  | |                     amount_msat: swap_info.confirmed_sats * 1000,
...    |
417  | |                     cltv: None,
418  | |                 })
     | |__________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<models::ReceivePaymentResponse, ReceivePaymentError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<(), anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_in/swap.rs:442:9
     |
442  |         self.swapper_api.complete_swap(payreq.clone()).await
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<(), anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Vec<OnchainTx>, anyhow::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:295:37
     |
295  |                   let confirmed_txs = self
     |  _____________________________________^
296  | |                     .chain_service
297  | |                     .address_transactions(lockup_addr.to_string())
     | |__________________________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Vec<OnchainTx>, anyhow::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1315:22
     |
1315 |           tokio::spawn(async move {
     |  ______________________^
1316 | |             let mut current_block: u32 = 0;
1317 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1318 | |             let mut interval = tokio::time::interval(Duration::from_secs(30));
...    |
1343 | |             }
1344 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<BoltzApiReverseSwapStatus, ReverseSwapError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/swap_out/reverseswap.rs:497:31
     |
497  |                   None => match self
     |  _______________________________^
498  | |                     .reverse_swap_service_api
499  | |                     .get_boltz_status(rsi.id.clone())
     | |_____________________________________________________^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<BoltzApiReverseSwapStatus, ReverseSwapError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1275:22
     |
1275 |           tokio::spawn(async move {
     |  ______________________^
1276 | |             let mut shutdown_receiver = cloned.shutdown_receiver.clone();
1277 | |             loop {
1278 | |                 if shutdown_receiver.has_changed().map_or(true, |c| c) {
...    |
1309 | |             }
1310 | |         });
     | |_________^ future created by async block is not `Send`
     |
     = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Streaming<gl_client::pb::LogEntry>, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
    --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/breez_services.rs:1281:38
     |
1281 |                 let log_stream_res = cloned.node_api.stream_log_messages().await;
     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Streaming<gl_client::pb::LogEntry>, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
    --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
     |
125  |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
     |            ----- required by a bound in this function
126  |     where
127  |         T: Future + Send + 'static,
     |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
   --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/lsps0/transport.rs:84:22
    |
84  |           tokio::spawn(async move {
    |  ______________________^
85  | |             loop {
86  | |                 let mut cancel = cancel.clone();
87  | |                 if cancel.has_changed().map_or(true, |c| c) {
...   |
129 | |             }
130 | |         });
    | |_________^ future created by async block is not `Send`
    |
    = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<Pin<Box<dyn futures::Stream<Item = Result<models::CustomMessage, anyhow::Error>> + std::marker::Send>>, NodeError>>`
note: future is not `Send` as it awaits another future which is not `Send`
   --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/lsps0/transport.rs:92:40
    |
92  |                 let mut stream = match cloned.node.stream_custom_messages().await {
    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<Pin<Box<dyn futures::Stream<Item = Result<models::CustomMessage, anyhow::Error>> + std::marker::Send>>, NodeError>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
   --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
    |
125 |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
    |            ----- required by a bound in this function
126 |     where
127 |         T: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: future cannot be sent between threads safely
   --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/lsps0/transport.rs:84:22
    |
84  |           tokio::spawn(async move {
    |  ______________________^
85  | |             loop {
86  | |                 let mut cancel = cancel.clone();
87  | |                 if cancel.has_changed().map_or(true, |c| c) {
...   |
129 | |             }
130 | |         });
    | |_________^ future created by async block is not `Send`
    |
    = help: the trait `std::marker::Send` is not implemented for `dyn futures::Future<Output = Result<(), lsps0::error::Error>>`
note: future is not `Send` as it awaits another future which is not `Send`
   --> /Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-core/src/lsps0/transport.rs:162:27
    |
162 |                     match tx.send(params).await {
    |                           ^^^^^^^^^^^^^^^ await occurs here on type `Pin<Box<dyn futures::Future<Output = Result<(), lsps0::error::Error>>>>`, which is not `Send`
note: required by a bound in `tokio::spawn`
   --> /Users/rosssavage/.cargo/git/checkouts/tokio-2eb71367495b4da5/2be2588/tokio/src/task/spawn.rs:127:21
    |
125 |     pub fn spawn<T>(future: T) -> JoinHandle<T::Output>
    |            ----- required by a bound in this function
126 |     where
127 |         T: Future + Send + 'static,
    |                     ^^^^ required by this bound in `spawn`

error: could not compile `breez-sdk-core` (lib) due to 35 previous errors
make: *** [build] Error 101

@dangeross
Copy link
Collaborator Author

Current WASIX Progress
Patching the following dependencies:

[patch.crates-io]
sct = { git = "https://github.com/dangeross/sct", branch = "v0.7.0" }
h2 = { git = "https://github.com/wasix-org/h2" }
rustls = { git = "https://github.com/dangeross/rustls.git", branch = "v0.21.5" }
rustls-native-certs = { git = "https://github.com/wasix-org/rustls-native-certs.git" }
rustls-webpki = { git ="https://github.com/dangeross/webpki.git", branch = "v0.101.0" }
socket2 = { git = "https://github.com/wasix-org/socket2.git", branch = "v0.4.9" }
reqwest = { git = "https://github.com/dangeross/reqwest.git" }
ring = { git = "https://github.com/dangeross/ring.git", branch = "wasix" }
tokio = { git = "https://github.com/wasix-org/tokio.git", branch = "epoll" }
tokio-rustls = { git = "https://github.com/dangeross/tokio-rustls.git" }
hyper = { git ="https://github.com/wasix-org/hyper.git", branch = "v0.14.27" }
hyper-rustls = { git = "https://github.com/dangeross/hyper-rustls.git", branch = "wasix" }
tonic = { git ="https://github.com/dangeross/tonic.git", branch = "v0.8.3" }

Several libraries are still not building

  • openssl-sys
  • secp256k1-sys
  • rcgen
  • libsqlite3-sys
  • rustls
  • tonic
  • breez-sdk-core

openssl-sys issue
Fixed by installing openssl-wasm32-wasi locally. This is a prebuilt openssl library targeting wasm32-wasi.

git clone --recursive https://github.com/doramatadora/openssl-wasm32-wasi

then build with the following env vars set:

 OPENSSL_NO_VENDOR=1 OPENSSL_DIR=/Users/rosssavage/Source/Projects/openssl-wasm32-wasi/precompiled OPENSSL_STATIC=1 cargo wasix build

secp256k1-sys issue
Superceded by libsqlite3-sys issue
Turn out it was a clang issue, XCode's bundled clang doesn't support wasm targets. Install the correct one with brewbrew.

brew install llvm

then build with the following env vars set:

AR=/usr/local/opt/llvm/bin/llvm-ar CC=/usr/local/opt/llvm/bin/clang

libsqlite3-sys issue
This was resolved by installing the wasi-sdk locally, then using this as the clang source and adding the sysroot.

export WASI_VERSION=20
export WASI_VERSION_FULL=${WASI_VERSION}.0
curl -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
tar xvf wasi-sdk-${WASI_VERSION_FULL}-macos.tar.gz
mv wasi-sdk-${WASI_VERSION_FULL}-macos wasi-sdk

rustls issue
This is due to inconsistent versions that are supported by wasix and tonic. Forked the tonic repo, bumped rustls version and added client feature to support wasm32 targets.

rcgen issue
Causes by inconsistent port of ring for wasix. As a result of forking/fixing, several other repos also needed to be forked.

tonic issue
Doesn't support compilation to wasm32. Patched a client feature set into tonic based on hyperium/tonic#693. Might have to use tonic-ws-transport to support gRPC tunnelling over WebSocket.

breez-sdk-core issues

  • future created by async block is not Send: Replace tokio::spawn with wasm_bindgen_futures::spawn_local for wasm32

Current build command
make wasix

WASI_SDK := "/opt/wasi-sdk"
CLANG_LIB_WASI := "$(WASI_SDK)/lib/clang/16/lib/wasi"
WASI_SYSROOT := "$(WASI_SDK)/share/wasi-sysroot"
CC := "$(WASI_SDK)/bin/clang --sysroot=$(WASI_SYSROOT)"
AR := "$(WASI_SDK)/bin/llvm-ar"
CC_WASM32_WASI := "$(WASI_SDK)/bin/clang"
LIBSQLITE3_FLAGS := "-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_SHARED_CACHE -D_LARGEFILE64_SOURCE"
RUSTFLAGS := "-Clink-arg=-L$(CLANG_LIB_WASI) -Clink-arg=-lclang_rt.builtins-wasm32 -Clink-arg=--export-table -Clink-arg=--export=malloc -Clink-arg=--export=free"
OPENSSL_DIR := "/opt/openssl-wasm32-wasi/precompiled"

init:
	rustup target add wasm32-wasi

wasix:
	clear
	cargo update
	OPENSSL_NO_VENDOR=1 OPENSSL_STATIC=1 OPENSSL_DIR=$(OPENSSL_DIR) CC=$(CC) AR=$(AR) CC_WASM32_WASI=$(CC_WASM32_WASI) LIBSQLITE3_FLAGS=$(LIBSQLITE3_FLAGS) RUSTFLAGS=$(RUSTFLAGS) cargo wasix build

Current Output

   Compiling vls-persist v0.10.0 (https://gitlab.com/cdecker/vls?tag=snapshot-20230920#b8d42d68)
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/x86_64-apple-darwin/bin:/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/x86_64-apple-darwin/bin/self-contained:/Users/rosssavage/.rvm/gems/ruby-3.0.0/bin:/Users/rosssavage/.rvm/gems/ruby-3.0.0@global/bin:/Users/rosssavage/.rvm/rubies/ruby-3.0.0/bin:/usr/local/opt/qt@5/bin:/Users/rosssavage/Developer/Library/flutter/bin:/usr/local/opt/[email protected]/bin:/usr/local/Cellar/openjdk@11/11.0.12/libexec/openjdk.jdk/Contents/Home/bin:/Users/rosssavage/.pyenv/shims:/usr/local/opt/[email protected]/libexec/bin:/Users/rosssavage/.go/bin:/Users/rosssavage/.serverless/bin:/Users/rosssavage/.nvm/versions/node/v14.19.0/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin:/Users/rosssavage/.rvm/gems/ruby-3.0.0/bin:/Users/rosssavage/.rvm/gems/ruby-3.0.0@global/bin:/Users/rosssavage/.rvm/rubies/ruby-3.0.0/bin:/usr/local/opt/qt@5/bin:/Users/rosssavage/Developer/Library/flutter/bin:/usr/local/opt/[email protected]/bin:/usr/local/opt/[email protected]/libexec/bin:/Users/rosssavage/.go/bin:/Users/rosssavage/.serverless/bin:/Users/rosssavage/.nvm/versions/node/v14.19.0/bin:/Users/rosssavage/.cargo/bin:/Users/rosssavage/Library/Android/sdk/tools:/Users/rosssavage/Library/Android/sdk/platform-tools:/Users/rosssavage/.rvm/bin:/Users/rosssavage/Library/Android/sdk/tools:/Users/rosssavage/Library/Android/sdk/platform-tools" VSLANG="1033" "rust-lld" "-flavor" "wasm" "--rsp-quoting=posix" "--shared-memory" "--max-memory=4294967296" "--import-memory" "--export" "__externref_drop_slice" "--export" "__externref_heap_live_count" "--export" "__externref_table_alloc" "--export" "__externref_table_dealloc" "--export" "__wbindgen_exn_store" "--export" "__wbindgen_free" "--export" "__wbindgen_malloc" "--export" "__wbindgen_realloc" "--export" "rustsecp256k1_v0_6_1_context_create" "--export" "rustsecp256k1_v0_6_1_context_destroy" "--export" "rustsecp256k1_v0_6_1_default_error_callback_fn" "--export" "rustsecp256k1_v0_6_1_default_illegal_callback_fn" "--export" "ring_core_dev_bn_mul_mont" "--export=__heap_base" "--export=__stack_pointer" "--export=__data_end" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--fatal-warnings" "--no-demangle" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.10f3birmhlxzasjz.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.10z1fu6az9hdszr5.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.12crojivr7vf7kup.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.131kd4d70g7p0gpf.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.135bzo6958rz6ofy.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.13eb3qkyki4lyil9.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.14kt5dvawu15o0d7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.15d9hwoq07qgro0a.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.15m56pdlk81aknfc.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.16t4hacvcs3pqwd3.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.17oodj7g5ymfatzr.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.17usfko6qpxbug75.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1873hqq91ftgzt0i.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.18q8elnl4gf1uj02.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.18qqpv90vljeuok9.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1aa8jj87wtjelydt.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1apxxkbaj9ju9nhf.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1bpn8i29qi12ni9y.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1bvfe5o3cosg4km0.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1bwq80qixeafbf5d.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1c0gohzjx4ods94a.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1c3yzf2fjinx4gi3.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1etp5t2puazcpg0g.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1ey6mkg7sgwc6sru.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1fbmibhh1h87nwy7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1gg8eyavo8fc050p.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1gknck9uqopowyyo.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1gmiy4rp6jxviu1c.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1h27j9747tjwqway.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1ihieo9uroz1j4sr.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1lriz0i8i7yiwi6n.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1onvqfk2xfe5fq2n.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1otybqvlv5fyqk0c.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1p5e7x653nvfu0et.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1p6lpvcnw6v94d39.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1qhjk1u1yfwqkjvp.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1qkh3dzrxndngj6b.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1r19804nefidptl5.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1rederzyfptb6e9a.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1s26fbcbd4omvq6x.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1s4ygm8wxfk8y6d8.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1skcvdpmclaxdvst.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1tvcqi1yail8dczn.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1txabsl4uo8y0rkj.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1x3mhof18i908m18.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1xqja0nr6aop5wjv.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1xto79yvvhys8w6e.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1y4nopi2qr7hlcau.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1z05dgu79i5qzmuy.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1z0kdmz7xzjkbywj.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1z93z3c7zxg5p4vl.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1zbxkgt0xsle8cso.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.1zg7qo67jislj68h.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.20fqmk4c5oabqhzm.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.23g14zjjulp18wi8.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.23n2us2nhp43d1im.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.23oory5fdsc1uo85.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.264wllfj3g1fmpd2.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.26a1u2um7fjlvgwk.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.26avx0yrgs1byvbf.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.26v5vll6cak8eqy3.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.27bnelc7x3jlenmb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.28cycqymrointwvv.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.28rcmd6ll112jrhf.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2aecqucthoysalj1.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2au8hvvpsi4f3m5n.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2auhnmuhglq7efwx.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2cqak1abu4pjc0we.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2d9u81sbo7mlrter.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2eeuu5xmi8i8qcd.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2elg02bbulvaer2.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2f7exbvkr3x8mxjf.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2f9ieuvxpovj37e6.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2fxte147i9w4u5un.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2g3r1skh57b3en8b.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2hdb9cjhczr7cz2n.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2hv3z0le1medj87b.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2imyajbvf9hnjxiv.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2isrv7f6vl8y8tgr.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2lqxmsesu007x84k.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2n3nas5k1wtdzkcw.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2n3wuerk4ke9o99v.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2p31xp9hk17gykh7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2qj98cyykfqe0f50.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2qmv1y3qm7j7pd1j.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2rx0s8hz9oqlwtwy.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2t3k58o2lut2dtas.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2tj3zpzw2no8ngzb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2tr9m1le5nyvebn1.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2tud6lstj3w4qzka.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2tzdis94gj46x560.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2vy1tdn1ln5zkt69.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2w6ir3hkae77j7rp.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2wd3ql4wz6phxz56.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2woc77hn7lk59xf3.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2xiqty0cuf06pie5.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2xm35gdc5u0pe1qt.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2y2w3lelinz2pbex.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2yh3lulqq32c1amn.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2z2qec5bz1jlfn20.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.2zltye0pq37jy38f.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.30qoj2mgr227is5h.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.30r1sh35y4h1a873.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.30re4jx54wrac3oc.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.31df773ppa8m6b01.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.31yrslizbwodc4dr.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.31zw5p73wcsm87lg.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.329e2oi90gb0v77.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.32aakgoxe6p0x3as.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.34mq6wj90ao9gxbi.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.35m22miqp8sndtlo.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.35v3tldx81xix0xw.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.363l45jcjifdmqjb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.36eev82ptwu44xqa.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.37kftv88zr73x5o7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3836obvechhgio8b.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.38hy1cm7md8t1ifk.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.39oyh8b89wqrd0in.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3av3j0nzyz8lvbe8.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3awzxvpok4o6jz5j.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3b2i7ypjsqlp1hri.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3d38qrqybqkujogt.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3difhomjqspi9f4s.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3dv5tt9y4zpm9jo2.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3exjxjhn55m07q24.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3fc53brr67nci388.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3h2sfh7vepjj7oul.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3hcr7xem3e7msf9u.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3ikie8pyp441z22i.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3ip75ljz8nqw4ajd.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3j8jmhxzlxqy4jq6.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3kny2oo8j2qrrxjz.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3lr6sqst70w0xb5f.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3n42x7baj8f4r0gi.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3n5gw4mvpge0eqiq.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3nwwgr1br8ae63n7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3o78mo7hmrmn7ls7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3ohrpzc10vea3zek.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3ou33k14c9wbayaq.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3qrdwye1av4kb79w.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3qzsihjg1zlbeivd.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3r39rn7zjgcetgud.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3rxioatdj4aihjxr.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3s4v2x1pfw29235w.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3w1xc3qktrh8huv8.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3w3xzfed0sywtxu3.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3wf8flw9t7yn6nnj.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3xu64vas9trlthfd.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3yrwi2k5afi5bjbb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3zuvsbl0fu293umb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.40m2gbc9418ugzd6.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.437733ufgkanastt.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.441am2aru5fbj9v5.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.44xzfzao3fzwy4z0.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.450de3r2cjsw6ut5.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.46hu91zm6q39z0r.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.478klk1ldm4o2q50.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.47j04eesgddu39ho.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.487j4my3vkefekul.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.48oa0i1czdrbpznl.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.48tl29a8ql794x1z.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.49rr0px2uml9e1u3.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4a7ahxq07e8hi1l5.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4aqrhoccomu97mio.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4ax4h9hk51nbtlow.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4bjsdxu7xzmbwkcz.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4cv35dvu4ccww4r9.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4dfaahokoouwgx9n.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4f2nxdkijml56p8t.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4f9vx59mv7bxowbq.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4ft4yshcja1e1ftq.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4gf7asgmij11sw8f.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4izq7898ejg8n3p4.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4jnn5w9e2nklrsll.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4nhw70u8lx01qs1j.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4ozs9z680njlat4o.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4p2gj0eaz9skwd7t.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4pbbpcaeeqwu8b0b.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4ptomjf9wzc11nom.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4qb2rsysgo2konig.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4tg9rud0g4bgf3mb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4tit67f8r4a0u3zn.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4vwk3nv3ikwz73qa.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4x5d7rp7ix284fnz.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4xicwt0c0yo8jjxh.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4zilf35fj0gc6dp8.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.4zyl4mngyv1e385g.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.50c0ov8s3i217hec.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.50fuoo2au8mrhgse.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.51cab4mjer0t0rj6.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.52ug1iqt4r7gpjvs.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.53p969pl7x2cockd.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.55dhtgbjadgclwe5.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.566v5qcyjzdfxg4l.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.572ugnwf0y117ko0.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.579t7ifw7alye77o.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.57k71h4vfyuemzq3.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.57rkrjf6ojmzyzqm.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.59ihnzrzb14lwy85.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.59qoscclhl9ecohh.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5a5dpf5npn19djyi.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5aocwdgu4h2noavi.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5bhoqodrzn8gsdmv.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5c70volvifu8a423.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5cawcdkh0x7125ib.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5ckkhmt9ywumnz06.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5clup03jtg7a3nt1.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5dwvqbb4o9m6e2wr.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5ehwls2rpal5ciqz.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5fo9qlou7txnsw9a.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5fxqdpm2hbo5x7jy.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.5m2ikk5todkh590.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.6esf82zj7hurzqs.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.6gc6qtoa96agdx9.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.6itfksk5z3a0dvb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.6vd8e5ubsm1d2t7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.7d41qdyl49wglom.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.8ybujwntwv819gc.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.b05wnxlkrojueot.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.d08cn1e6z08fz5a.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.d1b4s9bcenafgwm.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.dwpnzjj9y7yl299.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.eaa9di3t4u9sfzb.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.em48muxgpkg1oat.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.epqg1c1oh4v36i4.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.exm5vqle0mqjznj.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.gkefkco5k701bks.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.gv73ydqltz9kssg.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.h0cs1zd4dipusya.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.hnrmlxdrk5ggix7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.j5vb042wc84690j.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.kft4ho0acptqrii.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.lfvmwqtsobwgzkr.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.lrz54uwkc9g7pi8.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.mejmwkycyt5gymi.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.o148r02ilscq8oe.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.o5dpj8tse2xxtjc.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.on0dxnbxo8ao19y.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.oz14mfqsu5crbry.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.pdxqfjqv3frk0px.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.pgm1nxtgdkoqa06.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.qia6sctde46bb4k.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.qsgq3i34wpeds8b.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.rturb9hh44or6ox.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.sojg1ij42fqbrx2.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.uajh6sh74h1rmy8.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.ux7ncwkqfl10v0s.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.vrjof2lg4166ya7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.w428arixpwi44rq.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.waj28gypb972ynm.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.wvq3dqmgg2riw48.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.x4y1105mh0kdth4.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.yq1xgszczz8kioh.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.yrm6ukz7iplkqh7.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.zhtcumxu26l3r3c.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.zthlqwrjd325363.rcgu.o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.3hx1srdwc98sjikj.rcgu.o" "-L" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps" "-L" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/debug/deps" "-L" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/build/bitcoinconsensus-b1bed90a0a3be9e1/out" "-L" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/build/secp256k1-sys-0f4c340fdcba23e2/out" "-L" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/build/secp256k1-sys-5d08d27480ce7a38/out" "-L" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/build/secp256k1-sys-ed07e03e8f851ef1/out" "-L" "/Users/rosssavage/.cargo/git/checkouts/ring-c5c3bc3c2ef7d8b6/b4d62f7/wasm-libs" "-L" "/Users/rosssavage/.cargo/git/checkouts/ring-c5c3bc3c2ef7d8b6/b4d62f7/wasm-libs" "-L" "/opt/openssl-wasm32-wasi/precompiled/lib" "-L" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/build/libsqlite3-sys-a09f89e7b82a62c2/out" "-L" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libcbc-c35ee58b2a352f98.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libquerystring-f43e3420a65dc5b8.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libstrum-5d8dfa7b715dc563.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libzbase32-bed56ddb8a1f03df.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libenv_logger-ef078ff511759b64.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtermcolor-304d672c62eb227a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libis_terminal-23afad501d6b1eb8.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhumantime-31ce1c4ca66139d7.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libconst_format-64fa0ac77656ba9a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librusqlite_migration-1512d25b3d25d7b6.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librusqlite-ace737f8dfc09dfc.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfallible_streaming_iterator-fbf93c01e2827df7.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfallible_iterator-c7cd24d74db6c45a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhashlink-d267c017ff61ac69.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhashbrown-a29b61ceb5f694f0.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libahash-0e6428d93e8cf8db.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libzerocopy-c4bf313336fb529a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liballocator_api2-e7acf1fc46c03276.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblibsqlite3_sys-6d4db176fa521d51.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libripemd-06e0f50073262f1c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libserde_with-8c9420152b986912.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbip21-319a06af5139a671.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpercent_encoding_rfc3986-8aa4f484708aae24.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libgl_client-c99b201a73b04f50.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librcgen-2b6e695ac9850593.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libx509_parser-1df41dbb62f312f1.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libdata_encoding-24fcbb89c628f437.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liboid_registry-608cf1d2388d02c9.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libder_parser-9b745d294bd46795.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libnum_bigint-d5487588469996c0.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libnum_integer-e4f7b32131234552.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libasn1_rs-2999f98b239e3cd2.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librusticata_macros-75c2f67628c5e24a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libnom-83ec5a990c8f510d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpem-158ad64eade1cc39.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libyasna-52d6bf51b3f6ce9a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libvls_persist-d09a3a460dddf30a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libuuid-dba8bee2c110fcbd.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtime-45365335b9cd37a4.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtime_core-ba30b087f87a4fd7.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libderanged-f94e772d2879c6e5.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpowerfmt-c08500fecb1e81c2.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libchacha20poly1305-76a470e800de061e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libchacha20-89972ca32ca16ced.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpoly1305-36cb6ea04efc8efa.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsha256-c2ed052ca6600e47.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblightning_invoice-1f99d36d55267848.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblightning-f7be69f3b4148b36.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libreqwest-bd8aae703e2e3f91.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhyper_rustls-8f4dcea39cbb0f6b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librustls_native_certs-ed4274b521a6b36b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhyper_tls-6960529bc9e374f5.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libserde_urlencoded-9381a3d7483eccca.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libipnet-9942a51f2c9c8b14.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtokio_native_tls-961a5b6e88c2328d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libencoding_rs-0fc764eb0cbbf279.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libnative_tls-cec6dcdd5cc071fe.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libopenssl_probe-b03fb4bbcefb4414.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libopenssl-0612d6d03e07cb2d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libforeign_types-d2db2ed39ce081e8.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libforeign_types_shared-f9d90cd25e22c831.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libopenssl_sys-f47a01a66c351b64.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liburl-7048ded20acfdb9a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libidna-9cd4a81ffaf47637.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libunicode_bidi-83efc81d1702d4b6.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libform_urlencoded-4eae6a98f5fbccdb.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libmockall-2c28688d96d99324.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpredicates_tree-2752bdb3ce7e982a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtermtree-45c843f3b18ccd65.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpredicates-006374939f16529e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libdifflib-ba3844b9809a8c39.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libnormalize_line_endings-9206a964aee4c9b9.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfloat_cmp-2a3c12a5a2783349.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpredicates_core-83df843143c91991.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfragile-844e4ad935b186c4.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libdowncast-1ea4f7231c9a6d57.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libvls_protocol_signer-a4c537b977f126a9.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbit_vec-5ca97909b03d489e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libvls_protocol-28f3cbcf0a495ad3.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libas_any-7e1a05bfd6add64b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libcln_grpc-fd678d9eb831ac5f.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblightning_signer-4ad619127981684c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhashbrown-9aa33216334059e5.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libahash-a4c84853de10edc0.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libitertools-f1f41ebab0f2e0d7.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libeither-f798291e928e0dfd.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbacktrace-232dabe425578717.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librustc_demangle-18794734ec3fc14c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libserde_with-fd28bca7f0a40827.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpush_decoder-c066327eed222580.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtxoo-ce84650808f4569f.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libserde_bolt-742bfef37892946c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libchunked_buffer-26dd3cc263d61391.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblightning_invoice-caa8a51a2f1d7dcc.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblightning-8925bae371ad1b8f.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libregex-d53264c3b178ac09.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libregex_automata-7a9012579689b0bf.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libaho_corasick-7e78b59f535c9321.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libregex_syntax-9b1951fa7d1c4e9b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhex-c4f5b81666c7b774.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtonic-82fb028763524a0d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwebpki_roots-37d11698fc8be318.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwebpki-615084909e801889.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libaxum-d5269e0de8d1d50d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libmatchit-57bdd3b4992f58cd.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbitflags-013e3410903520cd.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsync_wrapper-fc54d9ba4df44e73.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libaxum_core-e4c5bf4ee64ac692.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libmime-704c968b41dd0a63.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwasm_bindgen_futures-c7ed1f350155b7ed.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhyper_timeout-74d7f102b50b7c42.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtokio_io_timeout-45c9fa12527ce372.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbase64-18d81ebe31078895.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libasync_stream-fcc1e5744b41c32b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpercent_encoding-6aabcb95bd2825ce.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librustls_native_certs-373bdafcb7223217.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librustls_pemfile-c8b4a69a81514111.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbase64-5d5f502284d53409.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtokio_stream-f45d4e60e3d1e586.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtokio_rustls-3c9eb1d2cf8504a3.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librustls-9ed3003d5ce50e34.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsct-5919f923a510c18a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwebpki-269cdfd1e6202baa.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libring-9b820a9440537f3d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libuntrusted-7a0a6782a098c32c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhyper-5139101322e73e10.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwant-bb326b601f30750d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtry_lock-234fa6b04a13a33d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhttparse-53fe12c3f5aa62d0.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libh2-31de15b9b58725a9.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtokio_util-4ebde3a1bca7019d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhttpdate-fd4fde1ab2e35c54.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtower-ef14a3056cb6d92d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libindexmap-aa82fb271f9668d0.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhashbrown-92e12965bdac0433.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtokio_util-2b1edc4b15f49814.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtower_layer-d57511648bf0b06d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libprost-4f53367abea78185.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpin_project-196d6557de2d5cec.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtracing-9786b0947b85d802.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtracing_core-66df92e6d6c7fe7f.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtower_service-d42557ab017e027b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhttp_body-74ef515d31ec9813.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhttp-12c9672a1375bd2c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfnv-d35030e12c649fec.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures-bf997c79e68468ef.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures_executor-c203e94b14c4b8a6.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures_util-4a96889960ea02ff.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures_io-e80d8e32c71340af.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libslab-fdc33401804015f9.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures_channel-7f8ccc528e3cbb23.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures_sink-3f734b050583ce18.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures_task-12ab5eb62015aa36.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpin_utils-c2d71a99737ead00.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfutures_core-33de785eba83d223.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbitcoin-5e5484f7b772e4e1.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbitcoinconsensus-6cccfc77e722d0c0.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbech32-84fc46c4d046514c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsecp256k1-137b56ba2615d0d6.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsecp256k1_sys-044e787bd0bd12fe.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbitcoin_hashes-c17973d28237d00a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbip39-e84aa653a30a54a4.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpbkdf2-d16943312c2d053d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libunicode_normalization-cfa848395b4ee7a2.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtinyvec-8bc4dfc09c688389.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtinyvec_macros-bc962c1a869140eb.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librustc_hash-14eb18f51759e3ee.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libthiserror-2eaeb522864f77ff.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtokio-febe3b0b9379bcb8.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libnum_cpus-6eff5e62a2c2c8bf.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsocket2-e87ccba6da40aa7c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libmemchr-b771d0dfa861388e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbytes-03809780956323f5.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libmio-eb3795ab1aa8b5e2.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblibc-d77147ed1758c2ab.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwasix-a9834d3fb1769909.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpin_project_lite-65f8118fed69d8a9.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libparking_lot-31955defcdbc5411.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libparking_lot_core-88d82146500164b5.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblock_api-48d844b1b72919f5.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtempfile-acdead4894cecd96.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libfastrand-b4bc107d38942fa0.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librustix-f7274c212a8a0b9c.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbitflags-59f769fcefd1907b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liberrno-81d35b4a0bf50268.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblibc-28f720478fd06a4a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libminiz_oxide-c8bcd0b5a28e6861.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libadler-ab7d4d2eff996cbe.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libecies-8940403df0bb99bd.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsha2-3c71d15ea7590980.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhkdf-aee170bf83929c83.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libhmac-da51f397c5efb7eb.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libdigest-1c5ec8e8d4a1d376.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libblock_buffer-720c45bb048ca09d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libaes_gcm-e75fe7aa6b488d7f.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libctr-edc6ad0a8571c0e2.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libghash-b7037cd131a712c3.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libpolyval-dda308a563bd8b13.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libopaque_debug-af9d093342043ead.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libuniversal_hash-02753c29ad537d57.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libaes-9869307120b2ff85.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libcipher-4dc4b9a1c71fde6b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libzeroize-3daa18052421f184.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libinout-e808d334018b01da.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libblock_padding-34bbbf31bc9efee2.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libaead-289cabf6cea900d2.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libcrypto_common-24cb6185642f471d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libparking_lot-c02b66fd78de4cbd.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libparking_lot_core-80383ca27bc4fd78.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsmallvec-ffb786bb527e821a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblock_api-1ab6ba446d6cf062.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libscopeguard-71fe2d875e583e18.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libonce_cell-5eae8aa179c53bc8.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblibsecp256k1-9003946a4f1cc313.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librand-9fd04dd57ddbe442.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librand_chacha-5b6f2aa7b58ed707.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libppv_lite86-b1d4db3117e68be4.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/librand_core-1e62cf38cf912c36.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libgetrandom-379e354d95fb05be.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwasi-8843244f88408bad.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libarrayref-de765983d23c7535.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblibsecp256k1_core-2216a9f4a90b982a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libcrunchy-5e7ff87406bfc018.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libsubtle-6f928086adaf9779.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libdigest-92df1fda2ca2ba2e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libgeneric_array-0cf17a10efc5b84b.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libtypenum-f45a6c7e4feb60a7.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libflutter_rust_bridge-6888dee50bbfec9e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libconsole_error_panic_hook-bc493b290bce4b29.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libbytemuck-04090401520cfe6e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblazy_static-bab3509857e31452.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libchrono-5da1ddb7e46c046e.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libnum_traits-6baea63ca0bde66d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libanyhow-e1c5b9f80229d0d8.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libweb_sys-a50790c99e3c6241.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libjs_sys-803f9b96309129fc.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libwasm_bindgen-d1cd2afa81d75a0a.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libcfg_if-7eea5601461b4136.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libserde_json-595438034f76a6f7.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libryu-ad32b439536f71a9.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libitoa-7fd1dfe903a8776d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/libserde-f62bf14ea68e288d.rlib" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblog-83ca58d8bd0b0325.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libstd-6bd0dbc0c544c638.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libpanic_abort-437217e130fc656b.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libwasix-5df0defe3d6d1296.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libwasi-7488d6b38f06cece.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/librustc_demangle-1a8309890de8e974.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libstd_detect-0a2b791421df69a6.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libhashbrown-0a935690cd6d61e2.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/librustc_std_workspace_alloc-432bfac31f385408.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libminiz_oxide-b495a4c14ccc9d12.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libadler-6328190c36ea5a78.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libunwind-7b23a4fc34c0f7e8.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libcfg_if-d935929c28c3b51c.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/liblibc-9ad6c82cc48be597.rlib" "-l" "c" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/liballoc-de5bc4298ac31659.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/librustc_std_workspace_core-657691caa1ffd3bf.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libcore-7dc28e987eb361e1.rlib" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libcompiler_builtins-7baa57537a698707.rlib" "-l" "stdc++" "-L" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib" "-L" "/Users/rosssavage/Library/Application Support/cargo-wasix/toolchains/x86_64-apple-darwin_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/self-contained" "-o" "/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/breez_sdk_core.wasm" "--gc-sections" "--no-entry" "-O0" "-L/opt/wasi-sdk/lib/clang/16/lib/wasi" "-lclang_rt.builtins-wasm32" "--export-table" "--export=malloc" "--export=free"
  = note: rust-lld: error: unable to find library -lstdc++
          

error: could not compile `breez-sdk-core` (lib) due to 1 previous error
make: *** [build] Error 101

@dangeross
Copy link
Collaborator Author

I setup a Github CI job running on ubuntu-22.04 to build WASIX to see if the build issues were related to my local environment. It seems to be failing with the same error. Next option is to track down which dependency is pulling in stdc++

Compiling strum v0.25.0
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/opt/hostedtoolcache/protoc/v23.4/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" VSLANG="1033" "rust-lld" "-flavor" "wasm" "--rsp-quoting=posix" "--shared-memory" "--max-memory=4294967296" "--import-memory" "--export" "__externref_drop_slice" "--export" "__externref_heap_live_count" "--export" "__externref_table_alloc" "--export" "__externref_table_dealloc" "--export" "__wbindgen_exn_store" "--export" "__wbindgen_free" "--export" "__wbindgen_malloc" "--export" "__wbindgen_realloc" "--export" "rustsecp256k1_v0_6_1_context_create" "--export" "rustsecp256k1_v0_6_1_context_destroy" "--export" "rustsecp256k1_v0_6_1_default_error_callback_fn" "--export" "rustsecp256k1_v0_6_1_default_illegal_callback_fn" "--export" "ring_core_dev_bn_mul_mont" "--export=__heap_base" "--export=__stack_pointer" "--export=__data_end" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--fatal-warnings" "--no-demangle" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.00.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.01.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.02.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.03.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.04.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.05.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.06.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.07.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.08.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.09.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.10.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.11.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.12.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.13.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.14.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.breez_sdk_core.e64eb18d93dfbaa2-cgu.15.rcgu.o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.1jy547jzg1yptxao.rcgu.o" "-L" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps" "-L" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/release/deps" "-L" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/build/bitcoinconsensus-7c6779e183f3a93e/out" "-L" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/build/secp256k1-sys-a879081fefad546b/out" "-L" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/build/secp256k1-sys-ebebdd9af33bb4d1/out" "-L" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/build/secp256k1-sys-bfc4fb77d6c24f4c/out" "-L" "/home/runner/.cargo/git/checkouts/ring-c5c3bc3c2ef7d8b6/b4d62f7/wasm-libs" "-L" "/home/runner/.cargo/git/checkouts/ring-c5c3bc3c2ef7d8b6/b4d62f7/wasm-libs" "-L" "/opt/openssl-wasm32-wasi/precompiled/lib" "-L" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/build/libsqlite3-sys-12f3399936d21c13/out" "-L" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libcbc-9d769296a65d935a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libquerystring-0290000366fc15be.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libstrum-9f8a7bdbb4e741a3.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libzbase32-e61bd4816ba53f83.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libenv_logger-d0691aa908ad6cec.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtermcolor-f3d243d2204201c3.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libis_terminal-6000af09fb136be6.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhumantime-3c3ebd86d3a29a46.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libconst_format-2f2557e065588e34.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librusqlite_migration-092ff3148bce7317.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librusqlite-02811c0765e2fb40.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfallible_streaming_iterator-f88c4ce4d2010945.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfallible_iterator-3d4e6715b89b2f1c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhashlink-2db664eae4a57145.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhashbrown-b78410d9661e05ac.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libahash-19f7b2fcb71dd53c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libzerocopy-7d9c4e1302dd516d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liballocator_api2-0d365f0[611](https://github.com/breez/breez-sdk/actions/runs/7395080743/job/20117569553#step:9:612)f809af.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblibsqlite3_sys-c535e7b57cb904f8.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libripemd-60ef88f47aa1581a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libserde_with-c1246a18a57c589a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbip21-00ae1439f8e1ba8f.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpercent_encoding_rfc3986-027d6ecec184ec1b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libgl_client-86cf6bee5837d327.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librcgen-234ba701f77a4bbc.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libx509_parser-e20f1b8abab23838.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libdata_encoding-0bd757581e032ebd.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liboid_registry-daf8b8230d3d74fa.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libder_parser-a1169dee4da6da8c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libnum_bigint-3e3e692cf6339c1b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libnum_integer-8e3738db8f383511.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libasn1_rs-08ed31b5abb12422.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librusticata_macros-72ba062e73eea59d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libnom-942d8dbeeb84afbc.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpem-911be59e73c4f031.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libyasna-76c2a8a3797f706b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libvls_persist-b034da7233c35871.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libuuid-904fe1e23b3d1cb6.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtime-e62e52dde7e0cd1d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtime_core-95e03d3e28677f99.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libderanged-1934b51fdd574af6.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpowerfmt-6658fd7b4ca3e741.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libchacha20poly1305-5967f56bc0e2c973.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libchacha20-60d00384df4709a6.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpoly1305-de80faf4d23a06f7.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsha256-17c7bd048777b32e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblightning_invoice-4efceb07ad0cf92a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblightning-697dd6d294cc84ee.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libreqwest-942d63d0df5aa2cb.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhyper_rustls-ab4eb383603e3727.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librustls_native_certs-70d0cae972b41d1a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhyper_tls-035a715a25c284c1.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libserde_urlencoded-e54aaed991c6044c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libipnet-527d1ce16641cbdd.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtokio_native_tls-8c5aa95390eab197.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libencoding_rs-a88358cb7f790eec.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libnative_tls-9886eb743921e4e1.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libopenssl_probe-fc762468e7e89aca.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libopenssl-cd5087c1a22908ee.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libforeign_types-32997ce2372d071d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libforeign_types_shared-fee6b1c89ee92778.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libopenssl_sys-767f7ce122951b02.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liburl-9909887f78e41a1a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libidna-8b9c0072cf0ad866.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libunicode_bidi-eace228f5a2340a3.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libform_urlencoded-88b79ac4d30d2936.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libmockall-51b5684d847c7e03.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpredicates_tree-0ef827e6731dd3df.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtermtree-28a295faa1729f3c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpredicates-43f45d316db37e84.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libdifflib-524f6ab972264793.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libnormalize_line_endings-c9071a028085d4a5.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfloat_cmp-586cdc5b40e48b81.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpredicates_core-c13dbf9d8f232a07.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfragile-a8ffd6791c4e1fb0.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libdowncast-7e9b62fa82162b9e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libvls_protocol_signer-9e5d0c178b10d54d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbit_vec-4edf81cfeaf33661.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libvls_protocol-68d4e073f0601e15.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libas_any-7ff4bc685a73dbfb.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libcln_grpc-a73e7855446786f3.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblightning_signer-4d1391abc96a003b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhashbrown-c702b3cbd9ec55c4.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libahash-bd013b85011433ec.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libitertools-f0aa2753eb4fc7ab.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libeither-021c131f521d5ac0.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libserde_with-6d5e1c791bf33cc5.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpush_decoder-3cc88dc9124c96ec.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtxoo-4d62c82d0d4033e7.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libserde_bolt-36939aac21f24b89.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libchunked_buffer-4cc06c5d1fc236d4.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblightning_invoice-462af1f31cc4740d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblightning-e0899db1ef51b639.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libregex-666b1a403a65c8e2.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libregex_automata-9ba55a16d5cb343e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libaho_corasick-77638e387bf3d39e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libregex_syntax-474d8002464b348a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhex-8e3c598fd069ab9e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtonic-7260347dbc3536b4.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwebpki_roots-1dc0f4109d3b56bc.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwebpki-226b74f1fcd54a55.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libaxum-35fe2d786c8d295e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libmatchit-305f8d1db4f2dd73.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbitflags-b4fc39e1f8ec729f.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsync_wrapper-14030c719f704d8b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libaxum_core-6e3624ae868c7378.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libmime-c6e689dd5b9caa3c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwasm_bindgen_futures-9b6326825aed4396.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhyper_timeout-e300d3c35fd56c43.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtokio_io_timeout-5f9fef9c235ae53f.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbase64-aaea68bbe6c70700.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libasync_stream-18d28123d99464c0.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpercent_encoding-e7537f56bf855edb.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librustls_native_certs-c0b4c89d9f9d6b3b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librustls_pemfile-cf9745d3197e3e44.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbase64-6c455b5475781504.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtokio_stream-6e2eccf5829b9933.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtokio_rustls-cdb0ea21f6dafa09.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librustls-85d1208bf4ee157a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsct-5bd1d67a4d06a087.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwebpki-c3860ca9f4c4d0c9.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libring-f69ddff83232cfef.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libuntrusted-dd20299d3014ade0.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhyper-7602f46bca595147.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwant-38557534954521ed.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtry_lock-77209ac9bb6c7d4b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhttparse-26372d3777f590a6.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libh2-66651899491f0b01.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtokio_util-032a2676ec482441.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhttpdate-5214baf8e0ebf813.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtower-ece03d9b609ca929.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libindexmap-fbdda66f5871096e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhashbrown-ff2c7aadcff6c58e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtokio_util-de53e6f4ffd938b6.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtower_layer-0a72bb60[614](https://github.com/breez/breez-sdk/actions/runs/7395080743/job/20117569553#step:9:615)166bb.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libprost-d89225ab99da3b1d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpin_project-c0baa6dbeb01867a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtracing-93512f5d7117f10e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtracing_core-8b78ecf4fb099b50.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtower_service-415c0de1b7d94f92.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhttp_body-b7dbd24e9adfa34f.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhttp-2d3f5f0c92952f67.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfnv-82311f23abbe2d83.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures-4054d27dcdb4ad3a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures_executor-572ba3927691f7d2.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures_util-8714e9aa06722778.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures_io-9c147b25ce29b92c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libslab-ebfe553638e0ff10.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures_channel-c8dcf9cafce1c28d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures_sink-2eba3f4b91e4561d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures_task-ef533fa1b397d88d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpin_utils-cb9e63ec0a116d8f.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfutures_core-3b4af321abf171bf.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbitcoin-2d22657f800a0816.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbitcoinconsensus-b680ef3e39488411.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbech32-def54c7d333949b3.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsecp256k1-95deb0d50c834ac9.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsecp256k1_sys-efc30b096ea047e4.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbitcoin_hashes-4ce59229a8b131e4.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbip39-f46b64256623df6b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpbkdf2-6c46078cfbb565db.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libunicode_normalization-f965f85c4e00191a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtinyvec-57983cbdb6c98c6d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtinyvec_macros-5b6b2de1604a6d7a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librustc_hash-add245830d076e5d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libthiserror-07cb78c1fc072d41.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtokio-6f8fa8a807e9e49c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libnum_cpus-5b2d904fa7e04ca0.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsocket2-0a70a1ab044aa57c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libmemchr-c622b42cde036077.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbytes-e454e3785d382a6b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libmio-d2364805ff115ca3.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblibc-1727ae5a99e62b33.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwasix-b7145acd450e2b7e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpin_project_lite-39276191a603dd36.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libparking_lot-f1d804ee54c41e59.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libparking_lot_core-17ece1594243845a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblock_api-8b8be47399dc618a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtempfile-a14a94a26752e8ba.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libfastrand-8a748605c04a8b82.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librustix-91ec30f189ce6145.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbitflags-e666d2fb4c529a4c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liberrno-0ec30fbdc5b1e181.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblibc-dc0ae5f64ee8d606.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libminiz_oxide-f43ac54e8bc9981e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libadler-0525a7f6c07078a8.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libecies-5075316678c1bc78.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsha2-ef73cb861fadb099.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhkdf-97f6875896e71189.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libhmac-872d42bffeb27063.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libdigest-1ebe86cddef1fa1c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libblock_buffer-5bfde564e9ca491e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libaes_gcm-700c82913cc10059.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libctr-0c5a3df16fc1e681.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libghash-02a1f42a3b275d9b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libpolyval-4e3f26f23e149447.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libopaque_debug-6560c0efac875d4e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libuniversal_hash-7829d60d1a7faf35.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libaes-6210f37d19790891.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libcipher-d8c16a67ee40e99c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libzeroize-c74522644d1e8762.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libinout-0a6d7ce43178d3b1.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libblock_padding-16b25e334f7c9fe7.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libaead-f046081f8b83870d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libcrypto_common-ec5a561c91eeb445.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libparking_lot-2fc989a2171f4b3c.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libparking_lot_core-02f4adce63d1ff7a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsmallvec-41221688c1912ee7.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblock_api-d069cda8fd703d08.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libscopeguard-74f7a8c6e8c93795.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libonce_cell-3f49c84a7c307bc1.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblibsecp256k1-f0a08cdd1f0af90e.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librand-172e45e72e7a4810.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librand_chacha-5206c75e4cf168e9.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libppv_lite86-1089cbabfedd1587.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librand_core-a4407d56b80252fa.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libgetrandom-3d7bafd76426ef34.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwasi-da5cd0e86b676700.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libarrayref-4f71b11eb70c3177.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblibsecp256k1_core-de252c20dea0133b.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libcrunchy-030908e0fd042e4a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libsubtle-75ad6ee95a9517f4.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libdigest-d4195dd5c8be04bd.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libgeneric_array-a5e657c5212a0f5a.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libtypenum-9546f8f2696d21e4.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libflutter_rust_bridge-2b4fc1066df75441.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libconsole_error_panic_hook-a7412be926593cda.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbytemuck-2f99e0c05773d468.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libbacktrace-e430aeeef1714998.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/librustc_demangle-fadcf9240c8b1d04.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libanyhow-2facf3010c41b739.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblazy_static-c903297f811754e0.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libchrono-2b64fc9233105f2d.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libnum_traits-668f4c56f2e7ed6f.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libweb_sys-bb3a84a44b70b857.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libjs_sys-f5b70bf4d2654567.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libwasm_bindgen-e12dacc2565a1098.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libcfg_if-e0018895ec73b055.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libserde_json-a95c466d10b789fc.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libryu-3a812ce8081124bf.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libitoa-74e2deddbb8547b3.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/libserde-457df15bd3fdddf9.rlib" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/liblog-7559df86981ebda6.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libstd-1f9b8a353943fa1f.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libpanic_abort-75ef988286fae556.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libwasix-83017c469cbe4bce.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libwasi-3932ef20f3c22035.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/librustc_demangle-4c2e2d5f0cac8d83.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libstd_detect-ab5d0b071386356a.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libhashbrown-72a218bfb3f5d26d.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/librustc_std_workspace_alloc-967d3913d48094c7.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libminiz_oxide-c7ec5a5d3813a0cb.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libadler-0735e3e742d5a7d4.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libunwind-701d1bbba4b62129.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libcfg_if-3647ddb56973ce5c.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/liblibc-7ba26942107558ba.rlib" "-l" "c" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/liballoc-f8801a58b3ae91c0.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/librustc_std_workspace_core-283e125518309211.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libcore-14b5c853e50f3313.rlib" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/libcompiler_builtins-c9fe86c5a73e25cb.rlib" "-l" "stdc++" "-L" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib" "-L" "/home/runner/.local/share/cargo-wasix/toolchains/x86_64-unknown-linux-gnu_v2023-11-01.1/rust/lib/rustlib/wasm32-wasmer-wasi/lib/self-contained" "-o" "/home/runner/work/breez-sdk/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.wasm" "--gc-sections" "--no-entry" "-O3"
  = note: rust-lld: error: unable to find library -lstdc++
          

error: could not compile `breez-sdk-core` (lib) due to previous error
Error: Process completed with exit code 101.

@ok300
Copy link
Contributor

ok300 commented Jan 5, 2024

Maybe related? WebAssembly/wasi-sdk#276

@dangeross
Copy link
Collaborator Author

dangeross commented Jan 10, 2024

Maybe time to start having features. Maybe "std" / "no-std" features to select dependency features correctly.

     Running `/Users/rosssavage/.rustup/toolchains/wasix/bin/rustc --crate-name bitcoinconsensus --edition=2018 
/Users/rosssavage/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitcoinconsensus-0.20.2-0.5.0/src/lib.rs --error-
format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=159 --crate-type lib --
emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C 
metadata=6753706781a5c611 -C extra-filename=-6753706781a5c611 --out-dir /Users/rosssavage/Source/Projects/breez-
sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps --target wasm32-wasmer-wasi -L 
dependency=/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps -L 
dependency=/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/debug/deps --extern 
libc=/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-wasi/debug/deps/liblibc-
a5e5a7183fa6d2f7.rmeta --cap-lints allow -Clink-arg=-L/opt/wasi-sdk/lib/clang/16/lib/wasi -Clink-arg=-lclang_rt.builtins-
wasm32 -Clink-arg=--export-table -Clink-arg=--export=malloc -Clink-arg=--export=free -L 
native=/Users/rosssavage/Source/Projects/breez-sdk/libs/sdk-wasm/target/wasm32-wasmer-
wasi/debug/build/bitcoinconsensus-dd3c4aa28fb3ba49/out -l static=bitcoinconsensus -l stdc++`

@dangeross
Copy link
Collaborator Author

Seems that no matter if you build for release or dev, the dev-dependencies are compiled. This was causing the above error, where the bitcoinconsensus dev-dependency is being compiled and failing because of linking stdc++

To fix this I've forked the rust-bitcoinconsensus dependency and updated the build config to use the WASI-SDK compiler and link in the wasi-sysroot for stdc++

    let target_os = env::var("CARGO_CFG_TARGET_OS").expect("CARGO_CFG_TARGET_OS");
    let target_feature = env::var("CARGO_CFG_TARGET_FEATURE");
    if target_os.starts_with("wasi") {
        let wasi_sdk = env::var("WASI_SDK").unwrap_or_else(|_| "/opt/wasi-sdk".to_owned());
        assert!(std::path::Path::new(&wasi_sdk).exists(), "WASI SDK not found at {}", wasi_sdk);
        base_config
            .std("c++17")
            .compiler(format!("{wasi_sdk}/bin/clang++"))
            //.flag("-fno-exceptions")
            .cpp_set_stdlib("c++");
        let wasi_sysroot_lib = match target_feature {
            Ok(target_feature) if target_feature.contains("atomics") => {
                "wasm32-wasi-threads"
            }
            _ => "wasm32-wasi",
        };
        println!("cargo:rustc-link-search={wasi_sdk}/share/wasi-sysroot/lib/{wasi_sysroot_lib}");
        println!("cargo:rustc-link-lib=c++abi");
    } else {
        let tool = base_config.get_compiler();
        if tool.is_like_msvc() {
            base_config.flag("/std:c++14").flag("/wd4100");
        } else if tool.is_like_clang() || tool.is_like_gnu() {
            base_config.flag("-std=c++11").flag("-Wno-unused-parameter");
        }
    }

@dangeross
Copy link
Collaborator Author

dangeross commented Jan 16, 2024

Next error is related to rusqlite

  = note: rust-lld: error: --shared-memory is disallowed by sqlite3.o because it was not compiled with 'atomics' or 'bulk-memory' features.
          

error: could not compile `breez-sdk-core` (lib) due to 1 previous error

Maybe not the best solution, but I read to add -Clink-arg=--no-check-features to avoid this
https://stackoverflow.com/questions/70180309/how-to-link-wasi-libc-with-shared-memory-flag

@dangeross
Copy link
Collaborator Author

    Finished release [optimized] target(s) in 2m 33s
info: Post-processing WebAssembly files
  Processing /Users/rosssavage/Source/Projects/breez-sdk-review/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.rustc.wasm
  Optimizing with wasm-opt
     Running "/Users/rosssavage/Library/Caches/cargo-wasix/0.1.23/wasm-opt/bin/wasm-opt" "/Users/rosssavage/Source/Projects/breez-sdk-review/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/.tmpFoD01q/input.wasm" "-O3" "-o" "/Users/rosssavage/Source/Projects/breez-sdk-review/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/deps/breez_sdk_core.wasi.wasm" "--enable-bulk-memory" "--enable-threads" "--enable-reference-types" "--no-validation" "--asyncify" "--debuginfo"
  Processing /Users/rosssavage/Source/Projects/breez-sdk-review/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/breez_sdk_wasm.rustc.wasm
  Optimizing with wasm-opt
     Running "/Users/rosssavage/Library/Caches/cargo-wasix/0.1.23/wasm-opt/bin/wasm-opt" "/Users/rosssavage/Source/Projects/breez-sdk-review/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/.tmp5JIvw0/input.wasm" "-O3" "-o" "/Users/rosssavage/Source/Projects/breez-sdk-review/libs/sdk-wasm/target/wasm32-wasmer-wasi/release/breez_sdk_wasm.wasi.wasm" "--enable-bulk-memory" "--enable-threads" "--enable-reference-types" "--no-validation" "--asyncify" "--debuginfo"

😮

rosssavage@Reykjavik sdk-wasm % ls target/wasm32-wasmer-wasi/release/
breez_sdk_wasm.d                breez_sdk_wasm.wasi.wasm        build                           examples                        libbreez_sdk_wasm.d
breez_sdk_wasm.rustc.wasm       breez_sdk_wasm.wasm             deps                            incremental                     libbreez_sdk_wasm.rlib

@dangeross
Copy link
Collaborator Author

dangeross commented Feb 10, 2024

We were having issues compiling WASM using a WAI (WebAssembly Interface) to expose an ABI exporting (and importing) SDK functions usable in javascript. This is because the WAI-bindgen is written for WASI, a single-threaded (non-atomic) architecture. I started to explore making changes to the cargo-wasix subcommand used to build WASIX, but even through I was removing the atomics feature flags, the WASIX (wasmXX-wasmer-wasi) rust toolchain is written in such a way to only compile in multi-threaded/atomic mode. I then started working on the WASIX fork of Rust to change the toolchain so that WASIX can be compiled single-threaded/non-atomic.

Using these forks of rust and cargo-wasix to change the wasmXX-wasmer-wasi toolchain I was able to produce a wasm file with a simple interface for mnemonic_to_seed:

Type: wasm
Size: 738.8 KB
Imports:
  Functions:
    "wasix_32v1"."getcwd": [I32, I32] -> [I32]
    "wasi_snapshot_preview1"."fd_write": [I32, I32, I32, I32] -> [I32]
    "wasi_snapshot_preview1"."environ_get": [I32, I32] -> [I32]
    "wasi_snapshot_preview1"."environ_sizes_get": [I32, I32] -> [I32]
    "wasi_snapshot_preview1"."fd_close": [I32] -> [I32]
    "wasi_snapshot_preview1"."fd_seek": [I32, I64, I32, I32] -> [I32]
    "wasi_snapshot_preview1"."proc_exit": [I32] -> []
  Memories:
  Tables:
  Globals:
Exports:
  Functions:
    "mnemonic-to-seed": [I32, I32] -> [I32]
    "ring_core_dev_bn_mul_mont": [I32, I32, I32, I32, I32, I32] -> []
    "rustsecp256k1_v0_6_1_context_create": [I32] -> [I32]
    "rustsecp256k1_v0_6_1_context_destroy": [I32] -> []
    "rustsecp256k1_v0_6_1_default_illegal_callback_fn": [I32, I32] -> []
    "rustsecp256k1_v0_6_1_default_error_callback_fn": [I32, I32] -> []
    "__externref_table_alloc": [] -> [I32]
    "__externref_table_dealloc": [I32] -> []
    "__externref_drop_slice": [I32, I32] -> []
    "__externref_heap_live_count": [] -> [I32]
    "__wbindgen_exn_store": [I32] -> []
    "__wbindgen_malloc": [I32, I32] -> [I32]
    "__wbindgen_realloc": [I32, I32, I32, I32] -> [I32]
    "__wbindgen_free": [I32, I32, I32] -> []
    "canonical_abi_realloc": [I32, I32, I32, I32] -> [I32]
    "canonical_abi_free": [I32, I32, I32] -> []
    "asyncify_start_unwind": [I32] -> []
    "asyncify_stop_unwind": [] -> []
    "asyncify_start_rewind": [I32] -> []
    "asyncify_stop_rewind": [] -> []
    "asyncify_get_state": [] -> [I32]
  Memories:
    "memory": not shared (22 pages..)
  Tables:
  Globals:
    "__stack_pointer": I32 (mutable)
    "__heap_base": I32 (constant)
    "__data_end": I32 (constant)

@roeierez
Copy link
Member

🥇 Wow Ross! This is quite a milestone you got here.

@dangeross
Copy link
Collaborator Author

@dangeross
Copy link
Collaborator Author

dangeross commented Oct 29, 2024

grpc-web-proxy Blockstream/greenlight#536

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants