PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/xrpl/dist/npm/models/transactions
Просмотр файла: transaction.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.validate = void 0;
const errors_1 = require("../../errors");
const utils_1 = require("../utils");
const flags_1 = require("../utils/flags");
const accountDelete_1 = require("./accountDelete");
const accountSet_1 = require("./accountSet");
const AMMBid_1 = require("./AMMBid");
const AMMCreate_1 = require("./AMMCreate");
const AMMDelete_1 = require("./AMMDelete");
const AMMDeposit_1 = require("./AMMDeposit");
const AMMVote_1 = require("./AMMVote");
const AMMWithdraw_1 = require("./AMMWithdraw");
const checkCancel_1 = require("./checkCancel");
const checkCash_1 = require("./checkCash");
const checkCreate_1 = require("./checkCreate");
const clawback_1 = require("./clawback");
const common_1 = require("./common");
const depositPreauth_1 = require("./depositPreauth");
const DIDDelete_1 = require("./DIDDelete");
const DIDSet_1 = require("./DIDSet");
const escrowCancel_1 = require("./escrowCancel");
const escrowCreate_1 = require("./escrowCreate");
const escrowFinish_1 = require("./escrowFinish");
const NFTokenAcceptOffer_1 = require("./NFTokenAcceptOffer");
const NFTokenBurn_1 = require("./NFTokenBurn");
const NFTokenCancelOffer_1 = require("./NFTokenCancelOffer");
const NFTokenCreateOffer_1 = require("./NFTokenCreateOffer");
const NFTokenMint_1 = require("./NFTokenMint");
const offerCancel_1 = require("./offerCancel");
const offerCreate_1 = require("./offerCreate");
const oracleDelete_1 = require("./oracleDelete");
const oracleSet_1 = require("./oracleSet");
const payment_1 = require("./payment");
const paymentChannelClaim_1 = require("./paymentChannelClaim");
const paymentChannelCreate_1 = require("./paymentChannelCreate");
const paymentChannelFund_1 = require("./paymentChannelFund");
const setRegularKey_1 = require("./setRegularKey");
const signerListSet_1 = require("./signerListSet");
const ticketCreate_1 = require("./ticketCreate");
const trustSet_1 = require("./trustSet");
const XChainAccountCreateCommit_1 = require("./XChainAccountCreateCommit");
const XChainAddAccountCreateAttestation_1 = require("./XChainAddAccountCreateAttestation");
const XChainAddClaimAttestation_1 = require("./XChainAddClaimAttestation");
const XChainClaim_1 = require("./XChainClaim");
const XChainCommit_1 = require("./XChainCommit");
const XChainCreateBridge_1 = require("./XChainCreateBridge");
const XChainCreateClaimID_1 = require("./XChainCreateClaimID");
const XChainModifyBridge_1 = require("./XChainModifyBridge");
function validate(transaction) {
const tx = Object.assign({}, transaction);
if (tx.TransactionType == null) {
throw new errors_1.ValidationError('Object does not have a `TransactionType`');
}
if (typeof tx.TransactionType !== 'string') {
throw new errors_1.ValidationError("Object's `TransactionType` is not a string");
}
if (tx.Memos != null && typeof tx.Memos !== 'object') {
throw new errors_1.ValidationError('Memo must be array');
}
if (tx.Memos != null) {
;
tx.Memos.forEach((memo) => {
if ((memo === null || memo === void 0 ? void 0 : memo.Memo) == null) {
throw new errors_1.ValidationError('Memo data must be in a `Memo` field');
}
if (memo.Memo.MemoData) {
if (!(0, utils_1.isHex)(memo.Memo.MemoData)) {
throw new errors_1.ValidationError('MemoData field must be a hex value');
}
}
if (memo.Memo.MemoType) {
if (!(0, utils_1.isHex)(memo.Memo.MemoType)) {
throw new errors_1.ValidationError('MemoType field must be a hex value');
}
}
if (memo.Memo.MemoFormat) {
if (!(0, utils_1.isHex)(memo.Memo.MemoFormat)) {
throw new errors_1.ValidationError('MemoFormat field must be a hex value');
}
}
});
}
Object.keys(tx).forEach((key) => {
const standard_currency_code_len = 3;
if (tx[key] && (0, common_1.isIssuedCurrency)(tx[key])) {
const txCurrency = tx[key].currency;
if (txCurrency.length === standard_currency_code_len &&
txCurrency.toUpperCase() === 'XRP') {
throw new errors_1.ValidationError(`Cannot have an issued currency with a similar standard code to XRP (received '${txCurrency}'). XRP is not an issued currency.`);
}
}
});
(0, flags_1.setTransactionFlagsToNumber)(tx);
switch (tx.TransactionType) {
case 'AMMBid':
(0, AMMBid_1.validateAMMBid)(tx);
break;
case 'AMMCreate':
(0, AMMCreate_1.validateAMMCreate)(tx);
break;
case 'AMMDelete':
(0, AMMDelete_1.validateAMMDelete)(tx);
break;
case 'AMMDeposit':
(0, AMMDeposit_1.validateAMMDeposit)(tx);
break;
case 'AMMVote':
(0, AMMVote_1.validateAMMVote)(tx);
break;
case 'AMMWithdraw':
(0, AMMWithdraw_1.validateAMMWithdraw)(tx);
break;
case 'AccountDelete':
(0, accountDelete_1.validateAccountDelete)(tx);
break;
case 'AccountSet':
(0, accountSet_1.validateAccountSet)(tx);
break;
case 'CheckCancel':
(0, checkCancel_1.validateCheckCancel)(tx);
break;
case 'CheckCash':
(0, checkCash_1.validateCheckCash)(tx);
break;
case 'CheckCreate':
(0, checkCreate_1.validateCheckCreate)(tx);
break;
case 'Clawback':
(0, clawback_1.validateClawback)(tx);
break;
case 'DIDDelete':
(0, DIDDelete_1.validateDIDDelete)(tx);
break;
case 'DIDSet':
(0, DIDSet_1.validateDIDSet)(tx);
break;
case 'DepositPreauth':
(0, depositPreauth_1.validateDepositPreauth)(tx);
break;
case 'EscrowCancel':
(0, escrowCancel_1.validateEscrowCancel)(tx);
break;
case 'EscrowCreate':
(0, escrowCreate_1.validateEscrowCreate)(tx);
break;
case 'EscrowFinish':
(0, escrowFinish_1.validateEscrowFinish)(tx);
break;
case 'NFTokenAcceptOffer':
(0, NFTokenAcceptOffer_1.validateNFTokenAcceptOffer)(tx);
break;
case 'NFTokenBurn':
(0, NFTokenBurn_1.validateNFTokenBurn)(tx);
break;
case 'NFTokenCancelOffer':
(0, NFTokenCancelOffer_1.validateNFTokenCancelOffer)(tx);
break;
case 'NFTokenCreateOffer':
(0, NFTokenCreateOffer_1.validateNFTokenCreateOffer)(tx);
break;
case 'NFTokenMint':
(0, NFTokenMint_1.validateNFTokenMint)(tx);
break;
case 'OfferCancel':
(0, offerCancel_1.validateOfferCancel)(tx);
break;
case 'OfferCreate':
(0, offerCreate_1.validateOfferCreate)(tx);
break;
case 'OracleDelete':
(0, oracleDelete_1.validateOracleDelete)(tx);
break;
case 'OracleSet':
(0, oracleSet_1.validateOracleSet)(tx);
break;
case 'Payment':
(0, payment_1.validatePayment)(tx);
break;
case 'PaymentChannelClaim':
(0, paymentChannelClaim_1.validatePaymentChannelClaim)(tx);
break;
case 'PaymentChannelCreate':
(0, paymentChannelCreate_1.validatePaymentChannelCreate)(tx);
break;
case 'PaymentChannelFund':
(0, paymentChannelFund_1.validatePaymentChannelFund)(tx);
break;
case 'SetRegularKey':
(0, setRegularKey_1.validateSetRegularKey)(tx);
break;
case 'SignerListSet':
(0, signerListSet_1.validateSignerListSet)(tx);
break;
case 'TicketCreate':
(0, ticketCreate_1.validateTicketCreate)(tx);
break;
case 'TrustSet':
(0, trustSet_1.validateTrustSet)(tx);
break;
case 'XChainAccountCreateCommit':
(0, XChainAccountCreateCommit_1.validateXChainAccountCreateCommit)(tx);
break;
case 'XChainAddAccountCreateAttestation':
(0, XChainAddAccountCreateAttestation_1.validateXChainAddAccountCreateAttestation)(tx);
break;
case 'XChainAddClaimAttestation':
(0, XChainAddClaimAttestation_1.validateXChainAddClaimAttestation)(tx);
break;
case 'XChainClaim':
(0, XChainClaim_1.validateXChainClaim)(tx);
break;
case 'XChainCommit':
(0, XChainCommit_1.validateXChainCommit)(tx);
break;
case 'XChainCreateBridge':
(0, XChainCreateBridge_1.validateXChainCreateBridge)(tx);
break;
case 'XChainCreateClaimID':
(0, XChainCreateClaimID_1.validateXChainCreateClaimID)(tx);
break;
case 'XChainModifyBridge':
(0, XChainModifyBridge_1.validateXChainModifyBridge)(tx);
break;
default:
throw new errors_1.ValidationError(`Invalid field TransactionType: ${tx.TransactionType}`);
}
}
exports.validate = validate;
//# sourceMappingURL=transaction.js.mapВыполнить команду
Для локальной разработки. Не используйте в интернете!