Skip to content

Commit

Permalink
Merge commit '14d5bc9c271340abd43f16600964fa0db49fcdc1' into v0.5.0
Browse files Browse the repository at this point in the history
* commit '14d5bc9c271340abd43f16600964fa0db49fcdc1':
  Remove 32bit support (#575)
  Add precision validation for Moonpay call (#576)
  • Loading branch information
roeierez committed Nov 20, 2024
2 parents 59d400e + 14d5bc9 commit 77c44b1
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 67 deletions.
29 changes: 0 additions & 29 deletions .github/workflows/build-bindings-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@ jobs:
matrix:
target: [
aarch64-linux-android,
armv7-linux-androideabi,
i686-linux-android,
x86_64-linux-android,
]
steps:
Expand Down Expand Up @@ -70,11 +68,6 @@ jobs:
cp lib/target/${{ matrix.target }}/release/libbreez_sdk_liquid_bindings.so dist
- name: Copy libc++_shared
if: ${{ matrix.target == 'armv7-linux-androideabi'}}
run: cp $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so dist

- name: Copy libc++_shared
if: ${{ matrix.target != 'armv7-linux-androideabi'}}
run: cp $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/${{ matrix.target }}/libc++_shared.so dist

- name: Archive release
Expand All @@ -92,16 +85,6 @@ jobs:
with:
name: bindings-aarch64-linux-android
path: arm64-v8a

- uses: actions/download-artifact@v4
with:
name: bindings-armv7-linux-androideabi
path: armeabi-v7a

- uses: actions/download-artifact@v4
with:
name: bindings-i686-linux-android
path: x86

- uses: actions/download-artifact@v4
with:
Expand All @@ -122,8 +105,6 @@ jobs:
matrix:
target: [
aarch64-linux-android,
armv7-linux-androideabi,
i686-linux-android,
x86_64-linux-android,
]
steps:
Expand All @@ -147,16 +128,6 @@ jobs:
with:
name: bindings-aarch64-linux-android
path: arm64-v8a

- uses: actions/download-artifact@v4
with:
name: bindings-armv7-linux-androideabi
path: armeabi-v7a

- uses: actions/download-artifact@v4
with:
name: bindings-i686-linux-android
path: x86

- uses: actions/download-artifact@v4
with:
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/build-bindings-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ jobs:
matrix:
target: [
x86_64-pc-windows-msvc,
i686-pc-windows-msvc,
]
steps:
- name: checkout
Expand Down Expand Up @@ -74,7 +73,6 @@ jobs:
matrix:
target: [
x86_64-pc-windows-msvc,
i686-pc-windows-msvc,
]
steps:
- name: Build dummy windows ${{ matrix.target }}
Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/publish-csharp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,6 @@ jobs:
name: bindings-x86_64-pc-windows-msvc
path: lib/bindings/langs/csharp/src/runtimes/win-x64/native

- uses: actions/download-artifact@v4
with:
name: bindings-i686-pc-windows-msvc
path: lib/bindings/langs/csharp/src/runtimes/win-x86/native

- name: Update package version
if: ${{ inputs.package-version }}
working-directory: lib/bindings/langs/csharp/src
Expand Down
10 changes: 0 additions & 10 deletions .github/workflows/publish-golang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,6 @@ jobs:
name: bindings-golang
path: breez_sdk_liquid

- uses: actions/download-artifact@v4
with:
name: bindings-i686-linux-android
path: breez_sdk_liquid/lib/android-386

- uses: actions/download-artifact@v4
with:
name: bindings-armv7-linux-androideabi
path: breez_sdk_liquid/lib/android-aarch

- uses: actions/download-artifact@v4
with:
name: bindings-aarch64-linux-android
Expand Down
6 changes: 0 additions & 6 deletions .github/workflows/publish-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,12 +150,6 @@ jobs:
name: bindings-x86_64-pc-windows-msvc
path: lib/bindings/langs/python/src/breez_sdk_liquid

- uses: actions/download-artifact@v4
if: matrix.arch == 'win32'
with:
name: bindings-i686-pc-windows-msvc
path: lib/bindings/langs/python/src/breez_sdk_liquid

- uses: actions/download-artifact@v4
with:
name: bindings-python
Expand Down
12 changes: 2 additions & 10 deletions lib/bindings/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ init:
rustup target add aarch64-apple-ios x86_64-apple-ios
rustup target add aarch64-apple-darwin x86_64-apple-darwin
rustup target add aarch64-apple-ios-sim
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
rustup target add aarch64-linux-android x86_64-linux-android
rustup target add aarch64-unknown-linux-gnu x86_64-unknown-linux-gnu
@if [ $$(uname) == "Darwin" ] ; then cargo install cargo-lipo ; fi
cargo install cbindgen
Expand All @@ -36,21 +36,13 @@ all: bindings-swift bindings-android python-darwin react-native

## Android
.PHONY: android
android: aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
android: aarch64-linux-android x86_64-linux-android
cargo run --features=uniffi/cli --bin uniffi-bindgen generate src/breez_sdk_liquid.udl --no-format --language kotlin -o ffi/kotlin

aarch64-linux-android: $(SOURCES) ndk-home
cargo ndk -t aarch64-linux-android -o ffi/kotlin/jniLibs build --release
cp -a $(ANDROID_NDK_HOME)/toolchains/llvm/prebuilt/$(OS_NAME)-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so ffi/kotlin/jniLibs/arm64-v8a/

armv7-linux-androideabi: $(SOURCES) ndk-home
cargo ndk -t armv7-linux-androideabi -o ffi/kotlin/jniLibs build --release
cp -a $(ANDROID_NDK_HOME)/toolchains/llvm/prebuilt/$(OS_NAME)-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so ffi/kotlin/jniLibs/armeabi-v7a/

i686-linux-android: $(SOURCES) ndk-home
cargo ndk -t i686-linux-android -o ffi/kotlin/jniLibs build --release
cp -a $(ANDROID_NDK_HOME)/toolchains/llvm/prebuilt/$(OS_NAME)-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so ffi/kotlin/jniLibs/x86/

x86_64-linux-android: $(SOURCES) ndk-home
cargo ndk -t x86_64-linux-android -o ffi/kotlin/jniLibs build --release
cp -a $(ANDROID_NDK_HOME)/toolchains/llvm/prebuilt/$(OS_NAME)-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so ffi/kotlin/jniLibs/x86_64/
Expand Down
6 changes: 6 additions & 0 deletions lib/core/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,12 @@ impl PaymentError {
}
}

pub(crate) fn invalid_network(err: &str) -> Self {
Self::InvalidNetwork {
err: err.to_string(),
}
}

pub(crate) fn receive_error(err: &str) -> Self {
Self::ReceiveError {
err: err.to_string(),
Expand Down
21 changes: 16 additions & 5 deletions lib/core/src/sdk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2097,6 +2097,19 @@ impl LiquidSdk {
Ok(())
}

fn validate_buy_bitcoin(&self, amount_sat: u64) -> Result<(), PaymentError> {
ensure_sdk!(
self.config.network == LiquidNetwork::Mainnet,
PaymentError::invalid_network("Can only buy bitcoin on Mainnet")
);
// The Moonpay API defines BTC amounts as having precision = 5, so only 5 decimals are considered
ensure_sdk!(
amount_sat % 1_000 == 0,
PaymentError::generic("Can only buy sat amounts that are multiples of 1000")
);
Ok(())
}

/// Prepares to buy Bitcoin via a chain swap.
///
/// # Arguments
Expand All @@ -2108,11 +2121,7 @@ impl LiquidSdk {
&self,
req: &PrepareBuyBitcoinRequest,
) -> Result<PrepareBuyBitcoinResponse, PaymentError> {
if self.config.network != LiquidNetwork::Mainnet {
return Err(PaymentError::InvalidNetwork {
err: "Can only buy bitcoin on Mainnet".to_string(),
});
}
self.validate_buy_bitcoin(req.amount_sat)?;

let res = self
.prepare_receive_payment(&PrepareReceiveRequest {
Expand Down Expand Up @@ -2145,6 +2154,8 @@ impl LiquidSdk {
/// * `prepare_response` - the [PrepareBuyBitcoinResponse] from calling [LiquidSdk::prepare_buy_bitcoin]
/// * `redirect_url` - the optional redirect URL the provider should redirect to after purchase
pub async fn buy_bitcoin(&self, req: &BuyBitcoinRequest) -> Result<String, PaymentError> {
self.validate_buy_bitcoin(req.prepare_response.amount_sat)?;

let swap = self
.create_receive_chain_swap(
req.prepare_response.amount_sat,
Expand Down

0 comments on commit 77c44b1

Please sign in to comment.