@apillon/sdk
Version:
▶◀ Apillon SDK for NodeJS ▶◀
67 lines • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Nft = void 0;
const apillon_1 = require("../../lib/apillon");
const apillon_api_1 = require("../../lib/apillon-api");
const common_1 = require("../../lib/common");
const nft_collection_1 = require("./nft-collection");
class Nft extends apillon_1.ApillonModule {
constructor() {
super(...arguments);
/**
* API url for collections.
*/
this.API_PREFIX = '/nfts/collections';
}
/**
* @param uuid Unique collection identifier.
* @returns An empty instance of NftCollection
*/
collection(uuid) {
return new nft_collection_1.NftCollection(uuid, null);
}
/**
* Lists all nft collections available.
* @param {ICollectionFilters} params Filter for listing collections.
* @returns Array of NftCollection.
*/
async listCollections(params) {
const url = (0, common_1.constructUrlWithQueryParams)(this.API_PREFIX, params);
const data = await apillon_api_1.ApillonApi.get(url);
return Object.assign(Object.assign({}, data), { items: data.items.map((nft) => new nft_collection_1.NftCollection(nft.collectionUuid, nft)) });
}
/**
* Deploys a new EVM NftCollection smart contract.
* @param data NFT collection data.
* @returns A NftCollection instance.
*/
async create(data) {
return await this.createNft(data, 'evm');
}
/**
* Deploys a new Substrate NftCollection smart contract.
* @param data NFT collection data.
* @returns A NftCollection instance.
*/
async createSubstrate(data) {
return await this.createNft(data, 'substrate');
}
/**
* Deploys a new Unique NftCollection smart contract.
* @param data NFT collection data.
* @returns A NftCollection instance.
*/
async createUnique(data) {
return await this.createNft(data, 'unique');
}
async createNft(data, type) {
// If not drop, set drop properties to default 0
if (!data.drop) {
data.dropStart = data.dropPrice = data.dropReserve = 0;
}
const response = await apillon_api_1.ApillonApi.post(`${this.API_PREFIX}/${type}`, data);
return new nft_collection_1.NftCollection(response.collectionUuid, response);
}
}
exports.Nft = Nft;
//# sourceMappingURL=nft.js.map