UNPKG

@transia/xrpl

Version:

A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser

53 lines 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateNFTokenCreateOffer = exports.NFTokenCreateOfferFlags = void 0; const errors_1 = require("../../errors"); const utils_1 = require("../utils"); const common_1 = require("./common"); var NFTokenCreateOfferFlags; (function (NFTokenCreateOfferFlags) { NFTokenCreateOfferFlags[NFTokenCreateOfferFlags["tfSellNFToken"] = 1] = "tfSellNFToken"; })(NFTokenCreateOfferFlags || (exports.NFTokenCreateOfferFlags = NFTokenCreateOfferFlags = {})); function validateNFTokenSellOfferCases(tx) { if (tx.Owner != null) { throw new errors_1.ValidationError('NFTokenCreateOffer: Owner must not be present for sell offers'); } } function validateNFTokenBuyOfferCases(tx) { if (tx.Owner == null) { throw new errors_1.ValidationError('NFTokenCreateOffer: Owner must be present for buy offers'); } if ((0, common_1.parseAmountValue)(tx.Amount) <= 0) { throw new errors_1.ValidationError('NFTokenCreateOffer: Amount must be greater than 0 for buy offers'); } } function validateNFTokenCreateOffer(tx) { var _a, _b; (0, common_1.validateBaseTransaction)(tx); if (tx.Account === tx.Owner) { throw new errors_1.ValidationError('NFTokenCreateOffer: Owner and Account must not be equal'); } if (tx.Account === tx.Destination) { throw new errors_1.ValidationError('NFTokenCreateOffer: Destination and Account must not be equal'); } (0, common_1.validateOptionalField)(tx, 'Destination', common_1.isAccount); (0, common_1.validateOptionalField)(tx, 'Owner', common_1.isAccount); if (tx.NFTokenID == null) { throw new errors_1.ValidationError('NFTokenCreateOffer: missing field NFTokenID'); } if (!(0, common_1.isAmount)(tx.Amount)) { throw new errors_1.ValidationError('NFTokenCreateOffer: invalid Amount'); } const flags = ((_a = tx.Flags) !== null && _a !== void 0 ? _a : 0); const isTfSellNFToken = typeof flags === 'number' ? (0, utils_1.isFlagEnabled)(flags, NFTokenCreateOfferFlags.tfSellNFToken) : ((_b = flags.tfSellNFToken) !== null && _b !== void 0 ? _b : false); if (isTfSellNFToken) { validateNFTokenSellOfferCases(tx); } else { validateNFTokenBuyOfferCases(tx); } } exports.validateNFTokenCreateOffer = validateNFTokenCreateOffer; //# sourceMappingURL=NFTokenCreateOffer.js.map