aftermath-ts-sdk
Version:
Aftermath TypeScript SDK
125 lines (124 loc) • 7.15 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NftsApi = void 0;
const utils_1 = require("../utils");
class NftsApi {
constructor(Provider) {
this.Provider = Provider;
// =========================================================================
// Public Methods
// =========================================================================
// =========================================================================
// Fetching
// =========================================================================
// =========================================================================
// Nft Objects
// =========================================================================
this.fetchOwnedNfts = (inputs) => __awaiter(this, void 0, void 0, function* () {
const objects = yield this.Provider.Objects().fetchOwnedObjects(Object.assign(Object.assign({}, inputs), { options: {
// NOTE: do we need all of this ?
showContent: true,
showOwner: true,
showType: true,
showDisplay: true,
} }));
return utils_1.Casting.nfts.nftsFromSuiObjects(objects);
});
this.fetchNfts = (inputs) => __awaiter(this, void 0, void 0, function* () {
const objects = yield this.Provider.Objects().fetchObjectBatch(Object.assign(Object.assign({}, inputs), { options: {
// NOTE: do we need all of this ?
showContent: true,
showOwner: true,
showType: true,
showDisplay: true,
} }));
return utils_1.Casting.nfts.nftsFromSuiObjects(objects);
});
// =========================================================================
// Kiosk Objects
// =========================================================================
this.fetchOwnedKioskOwnerCaps = (inputs) => __awaiter(this, void 0, void 0, function* () {
const { walletAddress } = inputs;
const [kioskOwnerCaps, personalKioskOwnerCaps] = yield Promise.all([
this.Provider.Objects().fetchCastObjectsOwnedByAddressOfType({
walletAddress,
objectType: "0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::KioskOwnerCap",
objectFromSuiObjectResponse: utils_1.Casting.nfts.kioskOwnerCapFromSuiObject,
}),
this.Provider.Objects().fetchCastObjectsOwnedByAddressOfType({
walletAddress,
objectType: this.objectTypes.personalKioskCap,
objectFromSuiObjectResponse: utils_1.Casting.nfts.kioskOwnerCapFromPersonalKioskCapSuiObject,
}),
]);
return [...kioskOwnerCaps, ...personalKioskOwnerCaps];
});
this.fetchNftsInKiosk = (inputs) => __awaiter(this, void 0, void 0, function* () {
const { kioskObjectId } = inputs;
return this.Provider.DynamicFields().fetchCastAllDynamicFieldsOfType({
parentObjectId: kioskObjectId,
objectsFromObjectIds: (objectIds) => this.fetchNfts({ objectIds }),
});
});
this.fetchKioskOwnerCaps = (inputs) => __awaiter(this, void 0, void 0, function* () {
const { kioskOwnerCapIds } = inputs;
return this.Provider.Objects().fetchCastObjectBatch({
objectIds: kioskOwnerCapIds,
objectFromSuiObjectResponse: (response) => {
var _a, _b;
return ((_a = response.data) === null || _a === void 0 ? void 0 : _a.type) &&
utils_1.Helpers.addLeadingZeroesToType((_b = response.data) === null || _b === void 0 ? void 0 : _b.type) ===
this.objectTypes.personalKioskCap
? utils_1.Casting.nfts.kioskOwnerCapFromPersonalKioskCapSuiObject(response)
: utils_1.Casting.nfts.kioskOwnerCapFromSuiObject(response);
},
});
});
this.fetchKiosks = (inputs) => __awaiter(this, void 0, void 0, function* () {
const { kioskOwnerCaps } = inputs;
const nfts = yield Promise.all(kioskOwnerCaps.map((kioskOwnerCap) => this.fetchNftsInKiosk({
kioskObjectId: kioskOwnerCap.kioskObjectId,
})));
return kioskOwnerCaps.map((kioskOwnerCap, index) => ({
objectId: kioskOwnerCap.kioskObjectId,
objectType: "0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Kiosk",
kioskOwnerCapId: kioskOwnerCap.objectId,
nfts: nfts[index],
isPersonal: kioskOwnerCap.objectType === this.objectTypes.personalKioskCap,
}));
});
this.fetchKiosksFromOwnerCaps = (inputs) => __awaiter(this, void 0, void 0, function* () {
const kioskOwnerCaps = yield this.fetchKioskOwnerCaps(inputs);
return this.fetchKiosks({ kioskOwnerCaps });
});
this.fetchOwnedKiosks = (inputs) => __awaiter(this, void 0, void 0, function* () {
const kioskOwnerCaps = yield this.fetchOwnedKioskOwnerCaps(inputs);
const nfts = yield Promise.all(kioskOwnerCaps.map((kioskOwnerCap) => this.fetchNftsInKiosk({
kioskObjectId: kioskOwnerCap.kioskObjectId,
})));
return kioskOwnerCaps.map((kioskOwnerCap, index) => ({
objectId: kioskOwnerCap.kioskObjectId,
objectType: "0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Kiosk",
kioskOwnerCapId: kioskOwnerCap.objectId,
nfts: nfts[index],
isPersonal: kioskOwnerCap.objectType === this.objectTypes.personalKioskCap,
}));
});
if (!this.Provider.addresses.nfts)
throw new Error("not all required addresses have been set in provider");
this.addresses = this.Provider.addresses.nfts;
this.objectTypes = {
personalKioskCap: `${this.addresses.packages.mystenTransferPolicy}::personal_kiosk::PersonalKioskCap`,
};
}
}
exports.NftsApi = NftsApi;