Skip to content

Commit 31a5cf1

Browse files
committed
list_transactions ffi bindings
1 parent 54ac62b commit 31a5cf1

File tree

10 files changed

+111
-8
lines changed

10 files changed

+111
-8
lines changed

bindings/lni_nodejs/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,4 +167,5 @@ export declare class PhoenixdNode {
167167
getInfo(): Promise<NodeInfo>
168168
makeInvoice(params: PhoenixdMakeInvoiceParams): Promise<Transaction>
169169
lookupInvoice(paymentHash: string): Promise<Transaction>
170+
listTransactions(params: ListTransactionsParams): Promise<Array<Transaction>>
170171
}

bindings/lni_nodejs/main.mjs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,13 @@ console.log('Invoice:', invoice)
2020

2121
const lookupInvoice = await node.lookupInvoice(config.test_hash)
2222
console.log('lookupInvoice:', lookupInvoice)
23+
24+
const txns = await node.listTransactions({
25+
from: 0,
26+
until: 0,
27+
limit: 10,
28+
offset: 0,
29+
unpaid: false,
30+
invoiceType: 'all',
31+
})
32+
console.log('Transactions:', txns)

bindings/lni_nodejs/src/phoenixd.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,22 @@ impl PhoenixdNode {
6868
.map_err(|e| napi::Error::from_reason(e.to_string()))?;
6969
Ok(txn)
7070
}
71+
72+
#[napi]
73+
pub async fn list_transactions(&self, params: lni::phoenixd::lib::ListTransactionsParams) -> napi::Result<Vec<lni::Transaction>> {
74+
let txns = lni::phoenixd::api::list_transactions(
75+
self.inner.url.clone(),
76+
self.inner.password.clone(),
77+
params.from,
78+
params.until,
79+
params.limit,
80+
params.offset,
81+
params.unpaid,
82+
params.invoice_type,
83+
)
84+
.map_err(|e| napi::Error::from_reason(e.to_string()))?;
85+
Ok(txns)
86+
}
7187
}
7288

7389
#[cfg(test)]

bindings/lni_react_native/LniFramework.xcframework/Info.plist

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<key>BinaryPath</key>
99
<string>liblni_uniffi.a</string>
1010
<key>LibraryIdentifier</key>
11-
<string>ios-arm64</string>
11+
<string>ios-arm64-simulator</string>
1212
<key>LibraryPath</key>
1313
<string>liblni_uniffi.a</string>
1414
<key>SupportedArchitectures</key>
@@ -17,12 +17,14 @@
1717
</array>
1818
<key>SupportedPlatform</key>
1919
<string>ios</string>
20+
<key>SupportedPlatformVariant</key>
21+
<string>simulator</string>
2022
</dict>
2123
<dict>
2224
<key>BinaryPath</key>
2325
<string>liblni_uniffi.a</string>
2426
<key>LibraryIdentifier</key>
25-
<string>ios-arm64-simulator</string>
27+
<string>ios-arm64</string>
2628
<key>LibraryPath</key>
2729
<string>liblni_uniffi.a</string>
2830
<key>SupportedArchitectures</key>
@@ -31,8 +33,6 @@
3133
</array>
3234
<key>SupportedPlatform</key>
3335
<string>ios</string>
34-
<key>SupportedPlatformVariant</key>
35-
<string>simulator</string>
3636
</dict>
3737
</array>
3838
<key>CFBundlePackageType</key>

bindings/lni_react_native/cpp/generated/lni.cpp

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ void *uniffi_lni_uniffi_fn_constructor_phoenixdnode_new(
108108
RustBuffer config, RustCallStatus *uniffi_out_err);
109109
/*handle*/ uint64_t
110110
uniffi_lni_uniffi_fn_method_phoenixdnode_get_info(void *ptr);
111+
/*handle*/ uint64_t uniffi_lni_uniffi_fn_method_phoenixdnode_lookup_invoice(
112+
void *ptr, RustBuffer payment_hash);
111113
/*handle*/ uint64_t
112114
uniffi_lni_uniffi_fn_method_phoenixdnode_make_invoice(void *ptr,
113115
RustBuffer params);
@@ -238,6 +240,7 @@ void ffi_lni_uniffi_rust_future_free_void(
238240
void ffi_lni_uniffi_rust_future_complete_void(
239241
/*handle*/ uint64_t handle, RustCallStatus *uniffi_out_err);
240242
uint16_t uniffi_lni_uniffi_checksum_method_phoenixdnode_get_info();
243+
uint16_t uniffi_lni_uniffi_checksum_method_phoenixdnode_lookup_invoice();
241244
uint16_t uniffi_lni_uniffi_checksum_method_phoenixdnode_make_invoice();
242245
uint16_t uniffi_lni_uniffi_checksum_constructor_phoenixdnode_new();
243246
uint32_t ffi_lni_uniffi_uniffi_contract_version();
@@ -1602,6 +1605,18 @@ NativeLni::NativeLni(jsi::Runtime &rt,
16021605
return this->cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_get_info(
16031606
rt, thisVal, args, count);
16041607
});
1608+
props["uniffi_lni_uniffi_fn_method_phoenixdnode_lookup_invoice"] =
1609+
jsi::Function::createFromHostFunction(
1610+
rt,
1611+
jsi::PropNameID::forAscii(
1612+
rt, "uniffi_lni_uniffi_fn_method_phoenixdnode_lookup_invoice"),
1613+
2,
1614+
[this](jsi::Runtime &rt, const jsi::Value &thisVal,
1615+
const jsi::Value *args, size_t count) -> jsi::Value {
1616+
return this
1617+
->cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_lookup_invoice(
1618+
rt, thisVal, args, count);
1619+
});
16051620
props["uniffi_lni_uniffi_fn_method_phoenixdnode_make_invoice"] =
16061621
jsi::Function::createFromHostFunction(
16071622
rt,
@@ -2174,6 +2189,19 @@ NativeLni::NativeLni(jsi::Runtime &rt,
21742189
->cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_get_info(
21752190
rt, thisVal, args, count);
21762191
});
2192+
props["uniffi_lni_uniffi_checksum_method_phoenixdnode_lookup_invoice"] =
2193+
jsi::Function::createFromHostFunction(
2194+
rt,
2195+
jsi::PropNameID::forAscii(
2196+
rt,
2197+
"uniffi_lni_uniffi_checksum_method_phoenixdnode_lookup_invoice"),
2198+
0,
2199+
[this](jsi::Runtime &rt, const jsi::Value &thisVal,
2200+
const jsi::Value *args, size_t count) -> jsi::Value {
2201+
return this
2202+
->cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_lookup_invoice(
2203+
rt, thisVal, args, count);
2204+
});
21772205
props["uniffi_lni_uniffi_checksum_method_phoenixdnode_make_invoice"] =
21782206
jsi::Function::createFromHostFunction(
21792207
rt,
@@ -2347,6 +2375,17 @@ jsi::Value NativeLni::cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_get_info(
23472375
return uniffi_jsi::Bridging</*handle*/ uint64_t>::toJs(rt, callInvoker,
23482376
value);
23492377
}
2378+
jsi::Value
2379+
NativeLni::cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_lookup_invoice(
2380+
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
2381+
size_t count) {
2382+
auto value = uniffi_lni_uniffi_fn_method_phoenixdnode_lookup_invoice(
2383+
uniffi_jsi::Bridging<void *>::fromJs(rt, callInvoker, args[0]),
2384+
uniffi::lni::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[1]));
2385+
2386+
return uniffi_jsi::Bridging</*handle*/ uint64_t>::toJs(rt, callInvoker,
2387+
value);
2388+
}
23502389
jsi::Value NativeLni::cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_make_invoice(
23512390
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
23522391
size_t count) {
@@ -2951,6 +2990,14 @@ NativeLni::cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_get_info(
29512990
return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
29522991
}
29532992
jsi::Value
2993+
NativeLni::cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_lookup_invoice(
2994+
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
2995+
size_t count) {
2996+
auto value = uniffi_lni_uniffi_checksum_method_phoenixdnode_lookup_invoice();
2997+
2998+
return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
2999+
}
3000+
jsi::Value
29543001
NativeLni::cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_make_invoice(
29553002
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
29563003
size_t count) {

bindings/lni_react_native/cpp/generated/lni.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ class NativeLni : public jsi::HostObject {
4040
jsi::Value cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_get_info(
4141
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
4242
size_t count);
43+
jsi::Value cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_lookup_invoice(
44+
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
45+
size_t count);
4346
jsi::Value cpp_uniffi_lni_uniffi_fn_method_phoenixdnode_make_invoice(
4447
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
4548
size_t count);
@@ -226,6 +229,9 @@ class NativeLni : public jsi::HostObject {
226229
jsi::Value cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_get_info(
227230
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
228231
size_t count);
232+
jsi::Value cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_lookup_invoice(
233+
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
234+
size_t count);
229235
jsi::Value cpp_uniffi_lni_uniffi_checksum_method_phoenixdnode_make_invoice(
230236
jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args,
231237
size_t count);

bindings/lni_react_native/example/src/App.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { useEffect, useState } from 'react';
22
import { Text, View, StyleSheet } from 'react-native';
33
import { PhoenixdNode, InvoiceType } from '../../src';
4-
import { PHOENIXD_URL, PHOENIXD_PASSWORD } from '@env';
4+
import {
5+
PHOENIXD_URL,
6+
PHOENIXD_PASSWORD,
7+
PHOENIXD_TEST_PAYMENT_HASH,
8+
} from '@env';
59

610
export default function App() {
711
const [offer, setOffer] = useState<string>('');
812
const [pubKey, setPubKey] = useState<string>('');
9-
const [config, setConfig] = useState<string>('');
13+
const [invoice, setInvoice] = useState<string | number>('');
1014

1115
const main = async () => {
1216
try {
@@ -26,6 +30,11 @@ export default function App() {
2630
expiry: undefined,
2731
});
2832
setOffer(offerResp.invoice);
33+
34+
const lookupInvoice = await node.lookupInvoice(
35+
PHOENIXD_TEST_PAYMENT_HASH
36+
);
37+
setInvoice(Number(lookupInvoice.amount));
2938
} catch (e) {
3039
console.error('Error', e);
3140
}
@@ -45,6 +54,8 @@ export default function App() {
4554
<Text />
4655
<Text>Offer: {offer}</Text>
4756
<Text />
57+
<Text>Lookup Invoice Amt: {invoice}</Text>
58+
<Text />
4859
</View>
4960
);
5061
}

bindings/lni_uniffi/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use lni::phoenixd::{PhoenixdConfig, PhoenixdNode, PhoenixdMakeInvoiceParams};
1+
use lni::phoenixd::{PhoenixdConfig, PhoenixdNode, PhoenixdMakeInvoiceParams, ListTransactionsParams};
22
use lni::phoenixd::api::{InfoResponse};
33

44
pub use lni::{ApiError, Result};

bindings/lni_uniffi/src/lni.udl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ interface PhoenixdNode {
1111

1212
[Throws=ApiError, Async]
1313
Transaction lookup_invoice(string payment_hash);
14+
15+
[Throws=ApiError, Async]
16+
sequence<Transaction> list_transactions(ListTransactionsParams params);
1417
};
1518

1619

@@ -179,4 +182,13 @@ dictionary PaymentFailedEventProperties {
179182
enum InvoiceType {
180183
"Bolt11",
181184
"Bolt12",
185+
};
186+
187+
dictionary ListTransactionsParams {
188+
i64 from;
189+
i64 until;
190+
i64 limit;
191+
i64 offset;
192+
boolean unpaid;
193+
string invoice_type;
182194
};

crates/lni/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pub type Result<T> = std::result::Result<T, ApiError>;
2424
pub mod phoenixd {
2525
pub mod lib;
2626
pub mod api;
27-
pub use lib::{PhoenixdConfig, PhoenixdNode, PhoenixdMakeInvoiceParams};
27+
pub use lib::{PhoenixdConfig, PhoenixdNode, PhoenixdMakeInvoiceParams, ListTransactionsParams};
2828
}
2929

3030
pub mod types;

0 commit comments

Comments
 (0)