UNPKG

@bithomp/xrpl-api

Version:

A Bithomp JavaScript/TypeScript library for interacting with the XRP Ledger

111 lines (110 loc) 4.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseTransaction = exports.parseTransactionType = void 0; const common_1 = require("../../common"); const parse_outcome_1 = __importDefault(require("../parse_outcome")); const settings_1 = __importDefault(require("./settings")); const account_delete_1 = __importDefault(require("./account-delete")); const check_cancel_1 = __importDefault(require("./check-cancel")); const check_cash_1 = __importDefault(require("./check-cash")); const check_create_1 = __importDefault(require("./check-create")); const deposit_preauth_1 = __importDefault(require("./deposit-preauth")); const escrow_cancellation_1 = __importDefault(require("./escrow-cancellation")); const escrow_creation_1 = __importDefault(require("./escrow-creation")); const escrow_execution_1 = __importDefault(require("./escrow-execution")); const cancellation_1 = __importDefault(require("./cancellation")); const order_1 = __importDefault(require("./order")); const payment_1 = __importDefault(require("./payment")); const payment_channel_claim_1 = __importDefault(require("./payment-channel-claim")); const payment_channel_create_1 = __importDefault(require("./payment-channel-create")); const payment_channel_fund_1 = __importDefault(require("./payment-channel-fund")); const ticket_create_1 = __importDefault(require("./ticket-create")); const trustline_1 = __importDefault(require("./trustline")); const account_nfts_1 = require("../../../models/account_nfts"); const amendment_1 = __importDefault(require("./amendment")); const fee_update_1 = __importDefault(require("./fee-update")); const transactionTypeToType = { AccountSet: 'settings', AccountDelete: 'accountDelete', CheckCancel: 'checkCancel', CheckCash: 'checkCash', CheckCreate: 'checkCreate', DepositPreauth: 'depositPreauth', EscrowCancel: 'escrowCancellation', EscrowCreate: 'escrowCreation', EscrowFinish: 'escrowExecution', OfferCancel: 'orderCancellation', OfferCreate: 'order', Payment: 'payment', PaymentChannelClaim: 'paymentChannelClaim', PaymentChannelCreate: 'paymentChannelCreate', PaymentChannelFund: 'paymentChannelFund', SetRegularKey: 'settings', SignerListSet: 'settings', TicketCreate: 'ticketCreate', TrustSet: 'trustline', NFTokenBurn: 'nftokenBurn', NFTokenMint: 'nftokenMint', NFTokenCancelOffer: 'nftokenCancelOffer', NFTokenCreateOffer: 'nftokenCreateOffer', NFTokenAcceptOffer: 'nftokenAcceptOffer', EnableAmendment: 'amendment', SetFee: 'feeUpdate' }; function parseTransactionType(type) { return transactionTypeToType[type] || null; } exports.parseTransactionType = parseTransactionType; const parserTypeFunc = { settings: settings_1.default, accountDelete: account_delete_1.default, checkCancel: check_cancel_1.default, checkCash: check_cash_1.default, checkCreate: check_create_1.default, depositPreauth: deposit_preauth_1.default, escrowCancellation: escrow_cancellation_1.default, escrowCreation: escrow_creation_1.default, escrowExecution: escrow_execution_1.default, orderCancellation: cancellation_1.default, order: order_1.default, payment: payment_1.default, paymentChannelClaim: payment_channel_claim_1.default, paymentChannelCreate: payment_channel_create_1.default, paymentChannelFund: payment_channel_fund_1.default, ticketCreate: ticket_create_1.default, trustline: trustline_1.default, nftokenBurn: account_nfts_1.parseNFTokenBurn, nftokenMint: account_nfts_1.parseNFTokenMint, nftokenCancelOffer: account_nfts_1.parseNFTokenCancelOffer, nftokenCreateOffer: account_nfts_1.parseNFTokenCreateOffer, nftokenAcceptOffer: account_nfts_1.parseNFTokenAcceptOffer, amendment: amendment_1.default, feeUpdate: fee_update_1.default }; function parseTransaction(tx, includeRawTransaction) { const type = parseTransactionType(tx.TransactionType); const parser = parserTypeFunc[type]; const specification = parser ? parser(tx) : { UNAVAILABLE: 'Unrecognized transaction type.', SEE_RAW_TRANSACTION: 'Since this type is unrecognized, `rawTransaction` is included in this response.' }; if (!parser) { includeRawTransaction = true; } const outcome = (0, parse_outcome_1.default)(tx); return (0, common_1.removeUndefined)({ type: type, address: tx.Account, sequence: tx.Sequence, id: tx.hash, specification: (0, common_1.removeUndefined)(specification), outcome: outcome ? (0, common_1.removeUndefined)(outcome) : undefined, rawTransaction: includeRawTransaction ? JSON.stringify(tx) : undefined }); } exports.parseTransaction = parseTransaction;