From fd7bb6ae1c27ffe5d41f3a818ee9034d9bb76138 Mon Sep 17 00:00:00 2001 From: Mateusz Franik <47059999+Im-Beast@users.noreply.github.com> Date: Wed, 16 Oct 2024 07:55:11 +0200 Subject: feat: wownero typescript bindings, regression tests (#71) * regression tests * ci: move regression_check to full_check workflow, reuse artifact build * feat: support wownero in monero.ts bindings * ci: test wownero regressions as well * extract wownero-cli as wownero * actually load wownero when specified * fix: commitUR not being a symbol in wownero --- impls/monero.ts/src/pending_transaction.ts | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'impls/monero.ts/src/pending_transaction.ts') diff --git a/impls/monero.ts/src/pending_transaction.ts b/impls/monero.ts/src/pending_transaction.ts index cf48721..169332f 100644 --- a/impls/monero.ts/src/pending_transaction.ts +++ b/impls/monero.ts/src/pending_transaction.ts @@ -1,5 +1,4 @@ -import { dylib } from "./bindings.ts"; -import { CString, readCString, type Sanitizer } from "./utils.ts"; +import { CString, getSymbol, readCString, type Sanitizer } from "./utils.ts"; export type PendingTransactionPtr = Deno.PointerObject<"transactionInfo">; @@ -13,13 +12,13 @@ export class PendingTransaction { } async status(): Promise { - return await dylib.symbols.MONERO_PendingTransaction_status(this.#pendingTxPtr); + return await getSymbol("PendingTransaction_status")(this.#pendingTxPtr); } async errorString(): Promise { if (!await this.status()) return null; - const error = await dylib.symbols.MONERO_PendingTransaction_errorString(this.#pendingTxPtr); + const error = await getSymbol("PendingTransaction_errorString")(this.#pendingTxPtr); if (!error) return null; return await readCString(error) || null; @@ -34,7 +33,7 @@ export class PendingTransaction { } async commit(fileName: string, overwrite: boolean, sanitize = true): Promise { - const bool = await dylib.symbols.MONERO_PendingTransaction_commit( + const bool = await getSymbol("PendingTransaction_commit")( this.#pendingTxPtr, CString(fileName), overwrite, @@ -44,29 +43,36 @@ export class PendingTransaction { } async commitUR(maxFragmentLength: number): Promise { - const result = await dylib.symbols.MONERO_PendingTransaction_commitUR( + const commitUR = getSymbol("PendingTransaction_commitUR"); + + if (!commitUR) { + return null; + } + + const result = await commitUR( this.#pendingTxPtr, maxFragmentLength, ); + if (!result) return null; await this.throwIfError(); return await readCString(result) || null; } async amount(): Promise { - return await dylib.symbols.MONERO_PendingTransaction_amount(this.#pendingTxPtr); + return await getSymbol("PendingTransaction_amount")(this.#pendingTxPtr); } async dust(): Promise { - return await dylib.symbols.MONERO_PendingTransaction_dust(this.#pendingTxPtr); + return await getSymbol("PendingTransaction_dust")(this.#pendingTxPtr); } async fee(): Promise { - return await dylib.symbols.MONERO_PendingTransaction_fee(this.#pendingTxPtr); + return await getSymbol("PendingTransaction_fee")(this.#pendingTxPtr); } async txid(separator: string, sanitize = true): Promise { - const result = await dylib.symbols.MONERO_PendingTransaction_txid( + const result = await getSymbol("PendingTransaction_txid")( this.#pendingTxPtr, CString(separator), ); @@ -76,6 +82,6 @@ export class PendingTransaction { } async txCount(): Promise { - return await dylib.symbols.MONERO_PendingTransaction_txCount(this.#pendingTxPtr); + return await getSymbol("PendingTransaction_txCount")(this.#pendingTxPtr); } } -- cgit v1.2.3