@bithomp/xrpl-api
Version:
A Bithomp JavaScript/TypeScript library for interacting with the XRP Ledger
220 lines (219 loc) • 11.3 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.parserTypeFunc = void 0;
exports.parseTransactionType = parseTransactionType;
exports.parseTransaction = parseTransaction;
const common_1 = require("../common");
const account_1 = require("./ledger/account");
const outcome_1 = require("./outcome");
const unrecognized_1 = __importDefault(require("./specification/unrecognized"));
const settings_1 = __importDefault(require("./specification/settings"));
const account_delete_1 = __importDefault(require("./specification/account-delete"));
const check_cancel_1 = __importDefault(require("./specification/check-cancel"));
const check_cash_1 = __importDefault(require("./specification/check-cash"));
const check_create_1 = __importDefault(require("./specification/check-create"));
const deposit_preauth_1 = __importDefault(require("./specification/deposit-preauth"));
const escrow_cancel_1 = __importDefault(require("./specification/escrow-cancel"));
const escrow_create_1 = __importDefault(require("./specification/escrow-create"));
const escrow_finish_1 = __importDefault(require("./specification/escrow-finish"));
const offer_cancel_1 = __importDefault(require("./specification/offer-cancel"));
const offer_create_1 = __importDefault(require("./specification/offer-create"));
const payment_1 = __importDefault(require("./specification/payment"));
const payment_channel_claim_1 = __importDefault(require("./specification/payment-channel-claim"));
const payment_channel_create_1 = __importDefault(require("./specification/payment-channel-create"));
const payment_channel_fund_1 = __importDefault(require("./specification/payment-channel-fund"));
const ticket_create_1 = __importDefault(require("./specification/ticket-create"));
const trust_set_1 = __importDefault(require("./specification/trust-set"));
const nftoken_burn_1 = __importDefault(require("./specification/nftoken-burn"));
const nftoken_mint_1 = __importDefault(require("./specification/nftoken-mint"));
const nftoken_modify_1 = __importDefault(require("./specification/nftoken-modify"));
const nftoken_cancel_offer_1 = __importDefault(require("./specification/nftoken-cancel-offer"));
const nftoken_create_offer_1 = __importDefault(require("./specification/nftoken-create-offer"));
const nftoken_accept_offer_1 = __importDefault(require("./specification/nftoken-accept-offer"));
const uritoken_burn_1 = __importDefault(require("./specification/uritoken-burn"));
const uritoken_buy_1 = __importDefault(require("./specification/uritoken-buy"));
const uritoken_cancel_sell_offer_1 = __importDefault(require("./specification/uritoken-cancel-sell-offer"));
const uritoken_create_sell_offer_1 = __importDefault(require("./specification/uritoken-create-sell-offer"));
const uritoken_mint_1 = __importDefault(require("./specification/uritoken-mint"));
const import_1 = __importDefault(require("./specification/import"));
const invoke_1 = __importDefault(require("./specification/invoke"));
const unl_report_1 = __importDefault(require("./specification/unl-report"));
const remit_1 = __importDefault(require("./specification/remit"));
const clawback_1 = __importDefault(require("./specification/clawback"));
const amm_bid_1 = __importDefault(require("./specification/amm-bid"));
const amm_create_1 = __importDefault(require("./specification/amm-create"));
const amm_delete_1 = __importDefault(require("./specification/amm-delete"));
const amm_deposit_1 = __importDefault(require("./specification/amm-deposit"));
const amm_withdraw_1 = __importDefault(require("./specification/amm-withdraw"));
const amm_vote_1 = __importDefault(require("./specification/amm-vote"));
const amm_clawback_1 = __importDefault(require("./specification/amm-clawback"));
const did_set_1 = __importDefault(require("./specification/did-set"));
const did_delete_1 = __importDefault(require("./specification/did-delete"));
const oracle_set_1 = __importDefault(require("./specification/oracle-set"));
const oracle_delete_1 = __importDefault(require("./specification/oracle-delete"));
const mptoken_issuance_create_1 = __importDefault(require("./specification/mptoken-issuance-create"));
const mptoken_authorize_1 = __importDefault(require("./specification/mptoken-authorize"));
const mptoken_issuance_set_1 = __importDefault(require("./specification/mptoken-issuance-set"));
const mptoken_issuance_destroy_1 = __importDefault(require("./specification/mptoken-issuance-destroy"));
const delegate_set_1 = __importDefault(require("./specification/delegate-set"));
const set_remarks_1 = __importDefault(require("./specification/set-remarks"));
const credential_create_1 = __importDefault(require("./specification/credential-create"));
const credential_accept_1 = __importDefault(require("./specification/credential-accept"));
const credential_delete_1 = __importDefault(require("./specification/credential-delete"));
const genesis_mint_1 = __importDefault(require("./specification/genesis-mint"));
const batch_1 = __importDefault(require("./specification/batch"));
const amendment_1 = __importDefault(require("./specification/amendment"));
const fee_update_1 = __importDefault(require("./specification/fee-update"));
const unl_modify_1 = __importDefault(require("./specification/unl-modify"));
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",
NFTokenModify: "NFTokenModify",
NFTokenCancelOffer: "nftokenCancelOffer",
NFTokenCreateOffer: "nftokenCreateOffer",
NFTokenAcceptOffer: "nftokenAcceptOffer",
URITokenMint: "uritokenMint",
URITokenBurn: "uritokenBurn",
URITokenCreateSellOffer: "uritokenCreateSellOffer",
URITokenCancelSellOffer: "uritokenCancelSellOffer",
URITokenBuy: "uritokenBuy",
Import: "import",
Invoke: "invoke",
UNLReport: "unlReport",
Remit: "remit",
Clawback: "clawback",
AMMBid: "ammBid",
AMMCreate: "ammCreate",
AMMDelete: "ammDelete",
AMMDeposit: "ammDeposit",
AMMWithdraw: "ammWithdraw",
AMMVote: "ammVote",
AMMClawback: "AMMClawback",
DIDSet: "didSet",
DIDDelete: "didDelete",
OracleSet: "oracleSet",
OracleDelete: "oracleDelete",
MPTokenIssuanceCreate: "MPTokenIssuanceCreate",
MPTokenAuthorize: "MPTokenAuthorize",
MPTokenIssuanceSet: "MPTokenIssuanceSet",
MPTokenIssuanceDestroy: "MPTokenIssuanceDestroy",
CredentialCreate: "CredentialCreate",
CredentialAccept: "CredentialAccept",
CredentialDelete: "CredentialDelete",
DelegateSet: "DelegateSet",
SetRemarks: "SetRemarks",
GenesisMint: "genesisMint",
Batch: "Batch",
EnableAmendment: "amendment",
SetFee: "feeUpdate",
UNLModify: "UNLModify",
};
function parseTransactionType(type) {
return transactionTypeToType[type] || type;
}
exports.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_cancel_1.default,
escrowCreation: escrow_create_1.default,
escrowExecution: escrow_finish_1.default,
orderCancellation: offer_cancel_1.default,
order: offer_create_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: trust_set_1.default,
nftokenBurn: nftoken_burn_1.default,
nftokenMint: nftoken_mint_1.default,
NFTokenModify: nftoken_modify_1.default,
nftokenCancelOffer: nftoken_cancel_offer_1.default,
nftokenCreateOffer: nftoken_create_offer_1.default,
nftokenAcceptOffer: nftoken_accept_offer_1.default,
uritokenBurn: uritoken_burn_1.default,
uritokenBuy: uritoken_buy_1.default,
uritokenCreateSellOffer: uritoken_create_sell_offer_1.default,
uritokenCancelSellOffer: uritoken_cancel_sell_offer_1.default,
uritokenMint: uritoken_mint_1.default,
import: import_1.default,
invoke: invoke_1.default,
unlReport: unl_report_1.default,
remit: remit_1.default,
clawback: clawback_1.default,
ammBid: amm_bid_1.default,
ammCreate: amm_create_1.default,
ammDelete: amm_delete_1.default,
ammDeposit: amm_deposit_1.default,
ammWithdraw: amm_withdraw_1.default,
ammVote: amm_vote_1.default,
AMMClawback: amm_clawback_1.default,
didSet: did_set_1.default,
didDelete: did_delete_1.default,
oracleSet: oracle_set_1.default,
oracleDelete: oracle_delete_1.default,
MPTokenIssuanceCreate: mptoken_issuance_create_1.default,
MPTokenAuthorize: mptoken_authorize_1.default,
MPTokenIssuanceSet: mptoken_issuance_set_1.default,
MPTokenIssuanceDestroy: mptoken_issuance_destroy_1.default,
CredentialCreate: credential_create_1.default,
CredentialAccept: credential_accept_1.default,
CredentialDelete: credential_delete_1.default,
DelegateSet: delegate_set_1.default,
SetRemarks: set_remarks_1.default,
genesisMint: genesis_mint_1.default,
Batch: batch_1.default,
amendment: amendment_1.default,
feeUpdate: fee_update_1.default,
UNLModify: unl_modify_1.default,
};
function parseTransaction(tx, includeRawTransaction, nativeCurrency, definitions) {
let universalTx = tx;
if (universalTx.tx_json) {
universalTx = { ...universalTx, ...universalTx.tx_json };
}
const type = parseTransactionType(universalTx.TransactionType);
const parser = exports.parserTypeFunc[type];
const specification = parser ? parser(universalTx, nativeCurrency, definitions) : (0, unrecognized_1.default)(universalTx);
if (!parser && includeRawTransaction !== false) {
includeRawTransaction = true;
}
const outcome = (0, outcome_1.parseOutcome)(universalTx, nativeCurrency, definitions);
return (0, common_1.removeUndefined)({
type,
address: (0, account_1.parseAccount)(universalTx.Account),
sequence: universalTx.Sequence,
ticketSequence: universalTx.TicketSequence,
id: universalTx.hash,
ctid: universalTx.ctid,
specification: (0, common_1.removeUndefined)(specification),
outcome: outcome ? (0, common_1.removeUndefined)(outcome) : undefined,
rawTransaction: includeRawTransaction ? JSON.stringify(tx) : undefined,
});
}