summaryrefslogtreecommitdiff
path: root/impls/monero.ts/src/transaction_history.ts
diff options
context:
space:
mode:
authorcyan <cyjan@mrcyjanek.net>2024-09-19 10:59:07 +0200
committerGitHub <noreply@github.com>2024-09-19 10:59:07 +0200
commitd1940944943cd79ce1f2b2080456dd28bec5c36f (patch)
tree8a2a29c5de6cec47ccefff3472f38a8ecb9fb8af /impls/monero.ts/src/transaction_history.ts
parent0b91e91d19d4a11d753f9bdda56398bcfcdb4260 (diff)
feat: deno ffi bindings (#40)
* initial ts commit * monero.ts improvements * test on latest, build on debian:bookworm * feat: upstream changes to bindings * chore: update checksums * feat: allow manually loading dylib * chore: add readme * fix: free strings after being read to prevent potential memory leaks * fix: load dylib * fix: checksum checks segfaulting because of freeing const variables --------- Co-authored-by: Mateusz Franik <47059999+Im-Beast@users.noreply.github.com> Co-authored-by: Im-Beast <franik.mateusz@gmail.com>
Diffstat (limited to 'impls/monero.ts/src/transaction_history.ts')
-rw-r--r--impls/monero.ts/src/transaction_history.ts38
1 files changed, 38 insertions, 0 deletions
diff --git a/impls/monero.ts/src/transaction_history.ts b/impls/monero.ts/src/transaction_history.ts
new file mode 100644
index 0000000..cc76fc2
--- /dev/null
+++ b/impls/monero.ts/src/transaction_history.ts
@@ -0,0 +1,38 @@
+import { dylib } from "./bindings.ts";
+import { TransactionInfo, TransactionInfoPtr } from "./transaction_info.ts";
+import { CString } from "./utils.ts";
+
+export type TransactionHistoryPtr = Deno.PointerObject<"transactionHistory">;
+
+export class TransactionHistory {
+ #txHistoryPtr: TransactionHistoryPtr;
+
+ constructor(txHistoryPtr: TransactionHistoryPtr) {
+ this.#txHistoryPtr = txHistoryPtr;
+ }
+
+ async count(): Promise<number> {
+ return await dylib.symbols.MONERO_TransactionHistory_count(this.#txHistoryPtr);
+ }
+
+ async transaction(index: number): Promise<TransactionInfo> {
+ return new TransactionInfo(
+ (await dylib.symbols.MONERO_TransactionHistory_transaction(
+ this.#txHistoryPtr,
+ index,
+ )) as TransactionInfoPtr,
+ );
+ }
+
+ async refresh(): Promise<void> {
+ await dylib.symbols.MONERO_TransactionHistory_refresh(this.#txHistoryPtr);
+ }
+
+ async setTxNote(transactionId: string, note: string): Promise<void> {
+ await dylib.symbols.MONERO_TransactionHistory_setTxNote(
+ this.#txHistoryPtr,
+ CString(transactionId),
+ CString(note),
+ );
+ }
+}