Skip to content

Commit

Permalink
Generate bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
danielgranhao committed Feb 4, 2025
1 parent 027997c commit 3163572
Show file tree
Hide file tree
Showing 9 changed files with 682 additions and 54 deletions.
6 changes: 6 additions & 0 deletions libs/sdk-bindings/src/breez_sdk.udl
Original file line number Diff line number Diff line change
Expand Up @@ -744,12 +744,18 @@ interface InputType {
Bolt11(LNInvoice invoice);
NodeId(string node_id);
Url(string url);
Bip353Address(ResolvedBip353 resolved_bip353);
LnUrlPay(LnUrlPayRequestData data);
LnUrlWithdraw(LnUrlWithdrawRequestData data);
LnUrlAuth(LnUrlAuthRequestData data);
LnUrlError(LnUrlErrorData data);
};

[Enum]
interface ResolvedBip353 {
LnUrlPay(string bip353_address, LnUrlPayRequestData request_data);
};

enum BuyBitcoinProvider {
"Moonpay",
};
Expand Down
20 changes: 0 additions & 20 deletions libs/sdk-core/src/binding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -174,32 +174,12 @@ pub enum _InputType {

#[frb(mirror(ResolvedBip353))]
pub enum _ResolvedBip353 {
Bolt12Offer {
bip353_address: String,
offer: LNOffer,
},
LnUrlPay {
bip353_address: String,
request_data: LnUrlPayRequestData,
},
}

#[frb(mirror(LNOffer))]
pub struct _LNOffer {
/// String representation of the Bolt12 offer
pub offer: String,
pub chains: Vec<String>,
/// If set, it represents the minimum amount that an invoice must have to be valid for this offer
pub min_amount: Option<Amount>,
pub description: Option<String>,
/// Epoch time from which an invoice should no longer be requested. If None, the offer does not expire.
pub absolute_expiry: Option<u64>,
pub issuer: Option<String>,
/// The public key used by the recipient to sign invoices.
pub signing_pubkey: Option<String>,
pub paths: Vec<LnOfferBlindedPath>,
}

#[frb(mirror(LnOfferBlindedPath))]
pub struct _LnOfferBlindedPath {
/// For each blinded hop, we store the node ID (pubkey as hex).
Expand Down
56 changes: 48 additions & 8 deletions libs/sdk-core/src/bridge_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -942,6 +942,9 @@ pub struct mirror_Network(Network);
#[derive(Clone)]
pub struct mirror_Rate(Rate);

#[derive(Clone)]
pub struct mirror_ResolvedBip353(ResolvedBip353);

#[derive(Clone)]
pub struct mirror_RouteHint(RouteHint);

Expand Down Expand Up @@ -997,6 +1000,9 @@ const _: fn() = || {
let _: CurrencyInfo = FiatCurrency.info;
}
match None::<InputType>.unwrap() {
InputType::Bip353Address { resolved_bip353 } => {
let _: ResolvedBip353 = resolved_bip353;
}
InputType::BitcoinAddress { address } => {
let _: BitcoinAddressData = address;
}
Expand Down Expand Up @@ -1120,6 +1126,15 @@ const _: fn() = || {
let _: String = Rate.coin;
let _: f64 = Rate.value;
}
match None::<ResolvedBip353>.unwrap() {
ResolvedBip353::LnUrlPay {
bip353_address,
request_data,
} => {
let _: String = bip353_address;
let _: LnUrlPayRequestData = request_data;
}
}
{
let RouteHint = None::<RouteHint>.unwrap();
let _: Vec<RouteHintHop> = RouteHint.hops;
Expand Down Expand Up @@ -1598,23 +1613,26 @@ impl rust2dart::IntoIntoDart<HealthCheckStatus> for HealthCheckStatus {
impl support::IntoDart for mirror_InputType {
fn into_dart(self) -> support::DartAbi {
match self.0 {
InputType::Bip353Address { resolved_bip353 } => {
vec![0.into_dart(), resolved_bip353.into_into_dart().into_dart()]
}
InputType::BitcoinAddress { address } => {
vec![0.into_dart(), address.into_into_dart().into_dart()]
vec![1.into_dart(), address.into_into_dart().into_dart()]
}
InputType::Bolt11 { invoice } => {
vec![1.into_dart(), invoice.into_into_dart().into_dart()]
vec![2.into_dart(), invoice.into_into_dart().into_dart()]
}
InputType::NodeId { node_id } => {
vec![2.into_dart(), node_id.into_into_dart().into_dart()]
vec![3.into_dart(), node_id.into_into_dart().into_dart()]
}
InputType::Url { url } => vec![3.into_dart(), url.into_into_dart().into_dart()],
InputType::LnUrlPay { data } => vec![4.into_dart(), data.into_into_dart().into_dart()],
InputType::Url { url } => vec![4.into_dart(), url.into_into_dart().into_dart()],
InputType::LnUrlPay { data } => vec![5.into_dart(), data.into_into_dart().into_dart()],
InputType::LnUrlWithdraw { data } => {
vec![5.into_dart(), data.into_into_dart().into_dart()]
vec![6.into_dart(), data.into_into_dart().into_dart()]
}
InputType::LnUrlAuth { data } => vec![6.into_dart(), data.into_into_dart().into_dart()],
InputType::LnUrlAuth { data } => vec![7.into_dart(), data.into_into_dart().into_dart()],
InputType::LnUrlError { data } => {
vec![7.into_dart(), data.into_into_dart().into_dart()]
vec![8.into_dart(), data.into_into_dart().into_dart()]
}
}
.into_dart()
Expand Down Expand Up @@ -2354,6 +2372,28 @@ impl rust2dart::IntoIntoDart<RefundResponse> for RefundResponse {
}
}

impl support::IntoDart for mirror_ResolvedBip353 {
fn into_dart(self) -> support::DartAbi {
match self.0 {
ResolvedBip353::LnUrlPay {
bip353_address,
request_data,
} => vec![
0.into_dart(),
bip353_address.into_into_dart().into_dart(),
request_data.into_into_dart().into_dart(),
],
}
.into_dart()
}
}
impl support::IntoDartExceptPrimitive for mirror_ResolvedBip353 {}
impl rust2dart::IntoIntoDart<mirror_ResolvedBip353> for ResolvedBip353 {
fn into_into_dart(self) -> mirror_ResolvedBip353 {
mirror_ResolvedBip353(self)
}
}

impl support::IntoDart for ReverseSwapInfo {
fn into_dart(self) -> support::DartAbi {
vec![
Expand Down
45 changes: 38 additions & 7 deletions libs/sdk-flutter/lib/bridge_generated.dart
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,9 @@ enum HealthCheckStatus {

@freezed
sealed class InputType with _$InputType {
const factory InputType.bip353Address({
required ResolvedBip353 resolvedBip353,
}) = InputType_Bip353Address;
const factory InputType.bitcoinAddress({
required BitcoinAddressData address,
}) = InputType_BitcoinAddress;
Expand Down Expand Up @@ -1553,6 +1556,14 @@ class ReportPaymentFailureDetails {
});
}

@freezed
sealed class ResolvedBip353 with _$ResolvedBip353 {
const factory ResolvedBip353.lnUrlPay({
required String bip353Address,
required LnUrlPayRequestData requestData,
}) = ResolvedBip353_LnUrlPay;
}

class ReverseSwapFeesRequest {
/// Amount to be sent
final int? sendAmountSat;
Expand Down Expand Up @@ -3173,6 +3184,10 @@ class BreezSdkCoreImpl implements BreezSdkCore {
return _wire2api_payment_failed_data(raw);
}

ResolvedBip353 _wire2api_box_autoadd_resolved_bip_353(dynamic raw) {
return _wire2api_resolved_bip_353(raw);
}

ReverseSwapInfo _wire2api_box_autoadd_reverse_swap_info(dynamic raw) {
return _wire2api_reverse_swap_info(raw);
}
Expand Down Expand Up @@ -3360,34 +3375,38 @@ class BreezSdkCoreImpl implements BreezSdkCore {
InputType _wire2api_input_type(dynamic raw) {
switch (raw[0]) {
case 0:
return InputType_Bip353Address(
resolvedBip353: _wire2api_box_autoadd_resolved_bip_353(raw[1]),
);
case 1:
return InputType_BitcoinAddress(
address: _wire2api_box_autoadd_bitcoin_address_data(raw[1]),
);
case 1:
case 2:
return InputType_Bolt11(
invoice: _wire2api_box_autoadd_ln_invoice(raw[1]),
);
case 2:
case 3:
return InputType_NodeId(
nodeId: _wire2api_String(raw[1]),
);
case 3:
case 4:
return InputType_Url(
url: _wire2api_String(raw[1]),
);
case 4:
case 5:
return InputType_LnUrlPay(
data: _wire2api_box_autoadd_ln_url_pay_request_data(raw[1]),
);
case 5:
case 6:
return InputType_LnUrlWithdraw(
data: _wire2api_box_autoadd_ln_url_withdraw_request_data(raw[1]),
);
case 6:
case 7:
return InputType_LnUrlAuth(
data: _wire2api_box_autoadd_ln_url_auth_request_data(raw[1]),
);
case 7:
case 8:
return InputType_LnUrlError(
data: _wire2api_box_autoadd_ln_url_error_data(raw[1]),
);
Expand Down Expand Up @@ -3958,6 +3977,18 @@ class BreezSdkCoreImpl implements BreezSdkCore {
);
}

ResolvedBip353 _wire2api_resolved_bip_353(dynamic raw) {
switch (raw[0]) {
case 0:
return ResolvedBip353_LnUrlPay(
bip353Address: _wire2api_String(raw[1]),
requestData: _wire2api_box_autoadd_ln_url_pay_request_data(raw[2]),
);
default:
throw Exception("unreachable");
}
}

ReverseSwapInfo _wire2api_reverse_swap_info(dynamic raw) {
final arr = raw as List<dynamic>;
if (arr.length != 6) throw Exception('unexpected arr length: expect 6 but see ${arr.length}');
Expand Down
Loading

0 comments on commit 3163572

Please sign in to comment.