UNPKG

aftermath-ts-sdk

Version:
116 lines (115 loc) 3.92 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.NftsApiCasting = void 0; const helpers_1 = require("../utils/helpers"); class NftsApiCasting { } exports.NftsApiCasting = NftsApiCasting; _a = NftsApiCasting; // ========================================================================= // Public Methods // ========================================================================= // ========================================================================= // Objects // ========================================================================= NftsApiCasting.nftsFromSuiObjects = (objects) => { const nfts = objects.filter((object) => { var _b; return (_b = object.data) === null || _b === void 0 ? void 0 : _b.display; }); return nfts .map((nft) => _a.nftFromSuiObject(nft)) .filter((nft) => Object.keys(nft.display.suggested).length > 0 || Object.keys(nft.display.other).length > 0); }; NftsApiCasting.nftFromSuiObject = (object) => { const info = _a.nftInfoFromSuiObject(object); const displayFields = helpers_1.Helpers.getObjectDisplay(object); const display = _a.nftDisplayFromDisplayFields(displayFields); return { info, display, }; }; NftsApiCasting.kioskOwnerCapFromSuiObject = (object) => { const fields = helpers_1.Helpers.getObjectFields(object); const objectId = helpers_1.Helpers.getObjectId(object); const objectType = helpers_1.Helpers.getObjectType(object); return { objectId, objectType, kioskObjectId: helpers_1.Helpers.addLeadingZeroesToType(fields.for), }; }; NftsApiCasting.kioskOwnerCapFromPersonalKioskCapSuiObject = (object) => { const fields = helpers_1.Helpers.getObjectFields(object); const objectId = helpers_1.Helpers.getObjectId(object); const objectType = helpers_1.Helpers.getObjectType(object); return { objectId, objectType, kioskObjectId: helpers_1.Helpers.addLeadingZeroesToType(fields.cap.fields.for), }; }; // ========================================================================= // Private Methods // ========================================================================= // ========================================================================= // Objects // ========================================================================= NftsApiCasting.nftInfoFromSuiObject = (object) => { const objectType = helpers_1.Helpers.getObjectType(object); const objectId = helpers_1.Helpers.getObjectId(object); if (!objectId || !objectType) throw new Error("unable to obtain object info from sui object response"); return { objectId, objectType, }; }; NftsApiCasting.nftDisplayFromDisplayFields = (displayFields) => { const fields = displayFields.data; if (fields === null || fields === undefined || displayFields.error !== null) return { suggested: {}, other: {}, }; const suggestedFields = [ { onChain: "name", offChain: "name", }, { onChain: "link", offChain: "link", }, { onChain: "image_url", offChain: "imageUrl", }, { onChain: "description", offChain: "description", }, { onChain: "project_url", offChain: "projectUrl", }, { onChain: "creator", offChain: "creator", }, ]; let suggested = {}; let other = helpers_1.Helpers.deepCopy(fields); for (const field of suggestedFields) { if (!(field.onChain in other)) continue; suggested[field.offChain] = other[field.onChain]; delete other[field.onChain]; } return { suggested, other, }; };