UNPKG

@protokol/nft-exchange-crypto

Version:

Transaction Builders For Exchange NFT Transaction Types

114 lines 4.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NFTAuctionTransaction = void 0; const crypto_1 = require("@arkecosystem/crypto"); const core_nft_crypto_1 = require("@protokol/core-nft-crypto"); const utils_1 = require("@protokol/utils"); const bytebuffer_1 = __importDefault(require("bytebuffer")); const defaults_1 = require("../defaults"); const enums_1 = require("../enums"); class NFTAuctionTransaction extends core_nft_crypto_1.AbstractNFTTransaction { static getAssetSchema() { return { type: "object", required: ["nftAuction"], properties: { nftAuction: { type: "object", required: ["nftIds", "startAmount", "expiration"], properties: { nftIds: { type: "array", minItems: defaults_1.defaults.nftAuction.minItems, maxItems: defaults_1.defaults.nftAuction.maxItems, uniqueItems: true, items: { $ref: "transactionId", }, }, startAmount: { bignumber: { minimum: 1 }, }, expiration: { type: "object", required: ["blockHeight"], properties: { blockHeight: { type: "integer", minimum: 1, }, }, }, }, }, }, }; } serialize() { var _a; const { data } = this; utils_1.Asserts.assert.defined((_a = data.asset) === null || _a === void 0 ? void 0 : _a.nftAuction); const nftAuctionAsset = data.asset.nftAuction; const buffer = new bytebuffer_1.default(32 * nftAuctionAsset.nftIds.length + 8 + 8, true); buffer.writeByte(nftAuctionAsset.nftIds.length); for (const nftId of nftAuctionAsset.nftIds) { buffer.append(nftId, "hex"); } buffer.writeUint64(nftAuctionAsset.startAmount.toString()); buffer.writeUint32(nftAuctionAsset.expiration.blockHeight); return buffer; } deserialize(buf) { const { data } = this; const numberOfNfts = buf.readUint8(); const nftIds = []; for (let i = 0; i < numberOfNfts; i++) { nftIds.push(buf.readBytes(32).toString("hex")); } const nftAuction = { nftIds, startAmount: crypto_1.Utils.BigNumber.make(buf.readUint64().toString()), expiration: { blockHeight: buf.readUint32(), }, }; data.asset = { nftAuction, }; } } exports.NFTAuctionTransaction = NFTAuctionTransaction; Object.defineProperty(NFTAuctionTransaction, "typeGroup", { enumerable: true, configurable: true, writable: true, value: enums_1.NFTExchangeTransactionsTypeGroup }); Object.defineProperty(NFTAuctionTransaction, "type", { enumerable: true, configurable: true, writable: true, value: enums_1.NFTTransactionTypes.NFTAuction }); Object.defineProperty(NFTAuctionTransaction, "key", { enumerable: true, configurable: true, writable: true, value: "NFTAuction" }); Object.defineProperty(NFTAuctionTransaction, "version", { enumerable: true, configurable: true, writable: true, value: enums_1.NFTExchangeTransactionVersion }); Object.defineProperty(NFTAuctionTransaction, "defaultStaticFee", { enumerable: true, configurable: true, writable: true, value: crypto_1.Utils.BigNumber.make(enums_1.NFTStaticFees.NFTAuction) }); //# sourceMappingURL=nft-auction.js.map