UNPKG

test-ic-wallet-middleware-icrc

Version:
51 lines (50 loc) 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IndexWrapper = void 0; const ledger_icrc_1 = require("@dfinity/ledger-icrc"); const icrcIndexError_1 = require("../../../errors/icrcIndexError"); class IndexWrapper { icrcIndexCanister; constructor(icrcIndexCanister) { this.icrcIndexCanister = icrcIndexCanister; } static create(address) { const icrcLedgerCanister = IndexWrapper.getIcrcIndexCanister(address); return new IndexWrapper(icrcLedgerCanister); } async getTransactions(principal, subAccountId, pageInfo) { try { const startItem = this.getStartItem(pageInfo.nextPageKey); const result = await this.icrcIndexCanister.getTransactions({ max_results: BigInt(pageInfo.take), start: startItem, account: { owner: principal, subaccount: subAccountId.toUint8Array() } }); return result.transactions; } catch (e) { throw new icrcIndexError_1.IcrcIndexError("get.transactions", e.message); } } getStartItem(nextPageKey) { return nextPageKey ? BigInt(nextPageKey) : undefined; } static getIcrcIndexCanister(ledgerAddress) { try { const result = ledger_icrc_1.IcrcIndexCanister.create({ canisterId: ledgerAddress, }); return result; } catch (e) { if (e.message && e.message.toString().indexOf("Canister ID is required") > -1) { throw e; } throw e; } } } exports.IndexWrapper = IndexWrapper;