emblem-vault-sdk 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +38 -12
- package/docs/bundle.js +38 -12
- package/docs/index.html +54 -11
- package/package.json +3 -2
- package/readme.md +24 -0
- package/src/index.ts +20 -1
- package/src/utils.ts +13 -1
package/dist/bundle.js
CHANGED
|
@@ -684189,7 +684189,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
684189
684189
|
};
|
|
684190
684190
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
684191
684191
|
const utils_1 = require("./utils");
|
|
684192
|
-
const SDK_VERSION = '1.
|
|
684192
|
+
const SDK_VERSION = '1.3.0';
|
|
684193
684193
|
class EmblemVaultSDK {
|
|
684194
684194
|
constructor(apiKey, baseUrl) {
|
|
684195
684195
|
this.apiKey = apiKey;
|
|
@@ -684203,6 +684203,23 @@ class EmblemVaultSDK {
|
|
|
684203
684203
|
generateUploadUrl() {
|
|
684204
684204
|
// Implementation goes here
|
|
684205
684205
|
}
|
|
684206
|
+
// ** Asset Metadata **
|
|
684207
|
+
//
|
|
684208
|
+
getAssetMetadata(projectName, strict = false) {
|
|
684209
|
+
(0, utils_1.genericGuard)(projectName, "string", "projectName");
|
|
684210
|
+
const NFT_DATA_ARR = (0, utils_1.metadataObj2Arr)(utils_1.NFT_DATA);
|
|
684211
|
+
let filtered = strict ?
|
|
684212
|
+
NFT_DATA_ARR.filter(item => item.projectName === projectName) :
|
|
684213
|
+
NFT_DATA_ARR.filter(item => item.projectName.toLowerCase() === projectName.toLowerCase());
|
|
684214
|
+
return filtered;
|
|
684215
|
+
}
|
|
684216
|
+
getAllProjects() {
|
|
684217
|
+
const NFT_DATA_ARR = (0, utils_1.metadataObj2Arr)(utils_1.NFT_DATA);
|
|
684218
|
+
const projects = (0, utils_1.metadataAllProjects)(NFT_DATA_ARR);
|
|
684219
|
+
return projects;
|
|
684220
|
+
}
|
|
684221
|
+
// ** Curated **
|
|
684222
|
+
//
|
|
684206
684223
|
fetchCuratedContracts(hideUnMintable = false) {
|
|
684207
684224
|
return __awaiter(this, void 0, void 0, function* () {
|
|
684208
684225
|
let url = `${this.baseUrl}/curated`;
|
|
@@ -684266,9 +684283,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
684266
684283
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
684267
684284
|
};
|
|
684268
684285
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
684269
|
-
exports.COIN_TO_NETWORK = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.evaluateFacts = exports.pad = void 0;
|
|
684286
|
+
exports.COIN_TO_NETWORK = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
684270
684287
|
const metadata_json_1 = __importDefault(require("./curated/metadata.json"));
|
|
684271
|
-
|
|
684288
|
+
exports.NFT_DATA = metadata_json_1.default;
|
|
684272
684289
|
const pad = (num, size) => {
|
|
684273
684290
|
if (!num)
|
|
684274
684291
|
return null;
|
|
@@ -684292,6 +684309,15 @@ const evaluateFacts = (allowed, facts, msgCallback) => {
|
|
|
684292
684309
|
return allowed;
|
|
684293
684310
|
};
|
|
684294
684311
|
exports.evaluateFacts = evaluateFacts;
|
|
684312
|
+
const metadataObj2Arr = (data) => Object.keys(data).map(key => (Object.assign(Object.assign({}, data[key]), { assetName: key })));
|
|
684313
|
+
exports.metadataObj2Arr = metadataObj2Arr;
|
|
684314
|
+
const metadataAllProjects = (projects) => projects.reduce((unique, item) => {
|
|
684315
|
+
if (!unique.includes(item.projectName)) {
|
|
684316
|
+
unique.push(item.projectName);
|
|
684317
|
+
}
|
|
684318
|
+
return unique;
|
|
684319
|
+
}, []);
|
|
684320
|
+
exports.metadataAllProjects = metadataAllProjects;
|
|
684295
684321
|
const fetchData = (url, apiKey, method = 'GET', body = null) => __awaiter(void 0, void 0, void 0, function* () {
|
|
684296
684322
|
const fetch = typeof window !== 'undefined' && typeof window.fetch === 'function' ? window.fetch : require('node-fetch');
|
|
684297
684323
|
const options = {
|
|
@@ -684325,28 +684351,28 @@ function generateAttributeTemplate(record) {
|
|
|
684325
684351
|
"trait_type": "Series",
|
|
684326
684352
|
"value": (metadata) => {
|
|
684327
684353
|
var _a, _b;
|
|
684328
|
-
return (_b = (0, exports.pad)((_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.series, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684354
|
+
return (_b = (0, exports.pad)((_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.series, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684329
684355
|
}
|
|
684330
684356
|
},
|
|
684331
684357
|
{
|
|
684332
684358
|
"trait_type": "Card",
|
|
684333
684359
|
"value": (metadata) => {
|
|
684334
684360
|
var _a, _b;
|
|
684335
|
-
return (_b = (0, exports.pad)((_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.order, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684361
|
+
return (_b = (0, exports.pad)((_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.order, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684336
684362
|
}
|
|
684337
684363
|
},
|
|
684338
684364
|
{
|
|
684339
684365
|
"trait_type": "Total Supply",
|
|
684340
684366
|
"value": (metadata) => {
|
|
684341
684367
|
var _a, _b, _c, _d;
|
|
684342
|
-
return (_d = (0, exports.pad)(((_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.remaining) || ((_c = (_b = NFT_DATA[metadata.targetAsset.name]) === null || _b === void 0 ? void 0 : _b.raw) === null || _c === void 0 ? void 0 : _c.supply), 2)) === null || _d === void 0 ? void 0 : _d.toString();
|
|
684368
|
+
return (_d = (0, exports.pad)(((_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.remaining) || ((_c = (_b = exports.NFT_DATA[metadata.targetAsset.name]) === null || _b === void 0 ? void 0 : _b.raw) === null || _c === void 0 ? void 0 : _c.supply), 2)) === null || _d === void 0 ? void 0 : _d.toString();
|
|
684343
684369
|
}
|
|
684344
684370
|
},
|
|
684345
684371
|
{
|
|
684346
684372
|
"trait_type": "Artist",
|
|
684347
684373
|
"value": (metadata) => {
|
|
684348
684374
|
var _a, _b, _c;
|
|
684349
|
-
return (_c = (0, exports.pad)((_b = (_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.artist.name, 2)) === null || _c === void 0 ? void 0 : _c.toString();
|
|
684375
|
+
return (_c = (0, exports.pad)((_b = (_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.artist.name, 2)) === null || _c === void 0 ? void 0 : _c.toString();
|
|
684350
684376
|
}
|
|
684351
684377
|
}
|
|
684352
684378
|
];
|
|
@@ -684354,9 +684380,9 @@ function generateAttributeTemplate(record) {
|
|
|
684354
684380
|
template.push({
|
|
684355
684381
|
"trait_type": "Year",
|
|
684356
684382
|
"value": (metadata) => {
|
|
684357
|
-
return (NFT_DATA[metadata.targetAsset.name].series < 10 ? '2016' :
|
|
684358
|
-
NFT_DATA[metadata.targetAsset.name].series > 9 &&
|
|
684359
|
-
NFT_DATA[metadata.targetAsset.name].series < 31 ? '2017' :
|
|
684383
|
+
return (exports.NFT_DATA[metadata.targetAsset.name].series < 10 ? '2016' :
|
|
684384
|
+
exports.NFT_DATA[metadata.targetAsset.name].series > 9 &&
|
|
684385
|
+
exports.NFT_DATA[metadata.targetAsset.name].series < 31 ? '2017' :
|
|
684360
684386
|
'2018');
|
|
684361
684387
|
}
|
|
684362
684388
|
});
|
|
@@ -684532,7 +684558,7 @@ function generateTemplate(record) {
|
|
|
684532
684558
|
allowedName = asset ? true : false;
|
|
684533
684559
|
}
|
|
684534
684560
|
else { // XCP
|
|
684535
|
-
let curatedItemFound = NFT_DATA[asset];
|
|
684561
|
+
let curatedItemFound = exports.NFT_DATA[asset];
|
|
684536
684562
|
allowedName = asset && curatedItemFound ? true : false;
|
|
684537
684563
|
}
|
|
684538
684564
|
return allowedName;
|
|
@@ -684603,7 +684629,7 @@ function generateTemplate(record) {
|
|
|
684603
684629
|
}
|
|
684604
684630
|
}
|
|
684605
684631
|
// handle xcp image urls
|
|
684606
|
-
let assetInformation = NFT_DATA[nameAndImage.name] ? NFT_DATA[nameAndImage.name] : false;
|
|
684632
|
+
let assetInformation = exports.NFT_DATA[nameAndImage.name] ? exports.NFT_DATA[nameAndImage.name] : false;
|
|
684607
684633
|
if (assetInformation) {
|
|
684608
684634
|
if (assetInformation.image) {
|
|
684609
684635
|
nameAndImage.image = assetInformation.image;
|
package/docs/bundle.js
CHANGED
|
@@ -684189,7 +684189,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
684189
684189
|
};
|
|
684190
684190
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
684191
684191
|
const utils_1 = require("./utils");
|
|
684192
|
-
const SDK_VERSION = '1.
|
|
684192
|
+
const SDK_VERSION = '1.3.0';
|
|
684193
684193
|
class EmblemVaultSDK {
|
|
684194
684194
|
constructor(apiKey, baseUrl) {
|
|
684195
684195
|
this.apiKey = apiKey;
|
|
@@ -684203,6 +684203,23 @@ class EmblemVaultSDK {
|
|
|
684203
684203
|
generateUploadUrl() {
|
|
684204
684204
|
// Implementation goes here
|
|
684205
684205
|
}
|
|
684206
|
+
// ** Asset Metadata **
|
|
684207
|
+
//
|
|
684208
|
+
getAssetMetadata(projectName, strict = false) {
|
|
684209
|
+
(0, utils_1.genericGuard)(projectName, "string", "projectName");
|
|
684210
|
+
const NFT_DATA_ARR = (0, utils_1.metadataObj2Arr)(utils_1.NFT_DATA);
|
|
684211
|
+
let filtered = strict ?
|
|
684212
|
+
NFT_DATA_ARR.filter(item => item.projectName === projectName) :
|
|
684213
|
+
NFT_DATA_ARR.filter(item => item.projectName.toLowerCase() === projectName.toLowerCase());
|
|
684214
|
+
return filtered;
|
|
684215
|
+
}
|
|
684216
|
+
getAllProjects() {
|
|
684217
|
+
const NFT_DATA_ARR = (0, utils_1.metadataObj2Arr)(utils_1.NFT_DATA);
|
|
684218
|
+
const projects = (0, utils_1.metadataAllProjects)(NFT_DATA_ARR);
|
|
684219
|
+
return projects;
|
|
684220
|
+
}
|
|
684221
|
+
// ** Curated **
|
|
684222
|
+
//
|
|
684206
684223
|
fetchCuratedContracts(hideUnMintable = false) {
|
|
684207
684224
|
return __awaiter(this, void 0, void 0, function* () {
|
|
684208
684225
|
let url = `${this.baseUrl}/curated`;
|
|
@@ -684266,9 +684283,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
684266
684283
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
684267
684284
|
};
|
|
684268
684285
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
684269
|
-
exports.COIN_TO_NETWORK = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.evaluateFacts = exports.pad = void 0;
|
|
684286
|
+
exports.COIN_TO_NETWORK = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
684270
684287
|
const metadata_json_1 = __importDefault(require("./curated/metadata.json"));
|
|
684271
|
-
|
|
684288
|
+
exports.NFT_DATA = metadata_json_1.default;
|
|
684272
684289
|
const pad = (num, size) => {
|
|
684273
684290
|
if (!num)
|
|
684274
684291
|
return null;
|
|
@@ -684292,6 +684309,15 @@ const evaluateFacts = (allowed, facts, msgCallback) => {
|
|
|
684292
684309
|
return allowed;
|
|
684293
684310
|
};
|
|
684294
684311
|
exports.evaluateFacts = evaluateFacts;
|
|
684312
|
+
const metadataObj2Arr = (data) => Object.keys(data).map(key => (Object.assign(Object.assign({}, data[key]), { assetName: key })));
|
|
684313
|
+
exports.metadataObj2Arr = metadataObj2Arr;
|
|
684314
|
+
const metadataAllProjects = (projects) => projects.reduce((unique, item) => {
|
|
684315
|
+
if (!unique.includes(item.projectName)) {
|
|
684316
|
+
unique.push(item.projectName);
|
|
684317
|
+
}
|
|
684318
|
+
return unique;
|
|
684319
|
+
}, []);
|
|
684320
|
+
exports.metadataAllProjects = metadataAllProjects;
|
|
684295
684321
|
const fetchData = (url, apiKey, method = 'GET', body = null) => __awaiter(void 0, void 0, void 0, function* () {
|
|
684296
684322
|
const fetch = typeof window !== 'undefined' && typeof window.fetch === 'function' ? window.fetch : require('node-fetch');
|
|
684297
684323
|
const options = {
|
|
@@ -684325,28 +684351,28 @@ function generateAttributeTemplate(record) {
|
|
|
684325
684351
|
"trait_type": "Series",
|
|
684326
684352
|
"value": (metadata) => {
|
|
684327
684353
|
var _a, _b;
|
|
684328
|
-
return (_b = (0, exports.pad)((_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.series, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684354
|
+
return (_b = (0, exports.pad)((_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.series, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684329
684355
|
}
|
|
684330
684356
|
},
|
|
684331
684357
|
{
|
|
684332
684358
|
"trait_type": "Card",
|
|
684333
684359
|
"value": (metadata) => {
|
|
684334
684360
|
var _a, _b;
|
|
684335
|
-
return (_b = (0, exports.pad)((_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.order, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684361
|
+
return (_b = (0, exports.pad)((_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.order, 2)) === null || _b === void 0 ? void 0 : _b.toString();
|
|
684336
684362
|
}
|
|
684337
684363
|
},
|
|
684338
684364
|
{
|
|
684339
684365
|
"trait_type": "Total Supply",
|
|
684340
684366
|
"value": (metadata) => {
|
|
684341
684367
|
var _a, _b, _c, _d;
|
|
684342
|
-
return (_d = (0, exports.pad)(((_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.remaining) || ((_c = (_b = NFT_DATA[metadata.targetAsset.name]) === null || _b === void 0 ? void 0 : _b.raw) === null || _c === void 0 ? void 0 : _c.supply), 2)) === null || _d === void 0 ? void 0 : _d.toString();
|
|
684368
|
+
return (_d = (0, exports.pad)(((_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.remaining) || ((_c = (_b = exports.NFT_DATA[metadata.targetAsset.name]) === null || _b === void 0 ? void 0 : _b.raw) === null || _c === void 0 ? void 0 : _c.supply), 2)) === null || _d === void 0 ? void 0 : _d.toString();
|
|
684343
684369
|
}
|
|
684344
684370
|
},
|
|
684345
684371
|
{
|
|
684346
684372
|
"trait_type": "Artist",
|
|
684347
684373
|
"value": (metadata) => {
|
|
684348
684374
|
var _a, _b, _c;
|
|
684349
|
-
return (_c = (0, exports.pad)((_b = (_a = NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.artist.name, 2)) === null || _c === void 0 ? void 0 : _c.toString();
|
|
684375
|
+
return (_c = (0, exports.pad)((_b = (_a = exports.NFT_DATA[metadata.targetAsset.name]) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.artist.name, 2)) === null || _c === void 0 ? void 0 : _c.toString();
|
|
684350
684376
|
}
|
|
684351
684377
|
}
|
|
684352
684378
|
];
|
|
@@ -684354,9 +684380,9 @@ function generateAttributeTemplate(record) {
|
|
|
684354
684380
|
template.push({
|
|
684355
684381
|
"trait_type": "Year",
|
|
684356
684382
|
"value": (metadata) => {
|
|
684357
|
-
return (NFT_DATA[metadata.targetAsset.name].series < 10 ? '2016' :
|
|
684358
|
-
NFT_DATA[metadata.targetAsset.name].series > 9 &&
|
|
684359
|
-
NFT_DATA[metadata.targetAsset.name].series < 31 ? '2017' :
|
|
684383
|
+
return (exports.NFT_DATA[metadata.targetAsset.name].series < 10 ? '2016' :
|
|
684384
|
+
exports.NFT_DATA[metadata.targetAsset.name].series > 9 &&
|
|
684385
|
+
exports.NFT_DATA[metadata.targetAsset.name].series < 31 ? '2017' :
|
|
684360
684386
|
'2018');
|
|
684361
684387
|
}
|
|
684362
684388
|
});
|
|
@@ -684532,7 +684558,7 @@ function generateTemplate(record) {
|
|
|
684532
684558
|
allowedName = asset ? true : false;
|
|
684533
684559
|
}
|
|
684534
684560
|
else { // XCP
|
|
684535
|
-
let curatedItemFound = NFT_DATA[asset];
|
|
684561
|
+
let curatedItemFound = exports.NFT_DATA[asset];
|
|
684536
684562
|
allowedName = asset && curatedItemFound ? true : false;
|
|
684537
684563
|
}
|
|
684538
684564
|
return allowedName;
|
|
@@ -684603,7 +684629,7 @@ function generateTemplate(record) {
|
|
|
684603
684629
|
}
|
|
684604
684630
|
}
|
|
684605
684631
|
// handle xcp image urls
|
|
684606
|
-
let assetInformation = NFT_DATA[nameAndImage.name] ? NFT_DATA[nameAndImage.name] : false;
|
|
684632
|
+
let assetInformation = exports.NFT_DATA[nameAndImage.name] ? exports.NFT_DATA[nameAndImage.name] : false;
|
|
684607
684633
|
if (assetInformation) {
|
|
684608
684634
|
if (assetInformation.image) {
|
|
684609
684635
|
nameAndImage.image = assetInformation.image;
|
package/docs/index.html
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
selectElement().removeChild(selectElement().firstChild);
|
|
30
30
|
}
|
|
31
31
|
const defaultOptionElement = document.createElement('option');
|
|
32
|
-
defaultOptionElement.value = '
|
|
32
|
+
defaultOptionElement.value = '-1';
|
|
33
33
|
defaultOptionElement.text = 'Select contract';
|
|
34
34
|
selectElement().appendChild(defaultOptionElement);
|
|
35
35
|
curatedContracts.forEach((contract, index) => {
|
|
@@ -42,6 +42,29 @@
|
|
|
42
42
|
});
|
|
43
43
|
selectElement().style.display = 'block';
|
|
44
44
|
}
|
|
45
|
+
|
|
46
|
+
function generateAssetDropdown(curatedContract) {
|
|
47
|
+
const selectElement = function () { return document.getElementById('vaultAssetSelect') }
|
|
48
|
+
// let hide = document.getElementById('hideNotMintableCheckbox').checked
|
|
49
|
+
while (selectElement().firstChild) {
|
|
50
|
+
selectElement().removeChild(selectElement().firstChild);
|
|
51
|
+
}
|
|
52
|
+
const defaultOptionElement = document.createElement('option');
|
|
53
|
+
defaultOptionElement.value = '0';
|
|
54
|
+
defaultOptionElement.text = 'Select asset';
|
|
55
|
+
selectElement().appendChild(defaultOptionElement);
|
|
56
|
+
let assets = sdk.getAssetMetadata(curatedContract.name)
|
|
57
|
+
window.assets = assets
|
|
58
|
+
assets.forEach((contract, index) => {
|
|
59
|
+
// if (!hide || (hide && contract.mintable)) {
|
|
60
|
+
const optionElement = document.createElement('option');
|
|
61
|
+
optionElement.value = index.toString();
|
|
62
|
+
optionElement.text = assets[index].assetName;
|
|
63
|
+
selectElement().appendChild(optionElement);
|
|
64
|
+
// }
|
|
65
|
+
});
|
|
66
|
+
selectElement().style.display = 'block';
|
|
67
|
+
}
|
|
45
68
|
|
|
46
69
|
async function createVault() {
|
|
47
70
|
document.getElementById('vaultDetails').display = 'none';
|
|
@@ -51,8 +74,7 @@
|
|
|
51
74
|
console.log("--------- Vault Details ---------");
|
|
52
75
|
console.log(vault)
|
|
53
76
|
document.getElementById('tokenId').value = vault.tokenId;
|
|
54
|
-
await getMetadata();
|
|
55
|
-
|
|
77
|
+
await getMetadata();
|
|
56
78
|
}
|
|
57
79
|
|
|
58
80
|
async function createMultipleVaults(index = 0, vaultCount = document.getElementById('vaultCount').value) {
|
|
@@ -72,16 +94,33 @@
|
|
|
72
94
|
function selectContract(index) {
|
|
73
95
|
let contract = window.curatedContracts[index];
|
|
74
96
|
let template = contract.generateCreateTemplate(contract)
|
|
97
|
+
template.toAddress = document.getElementById('ethAddress').value;
|
|
98
|
+
template.fromAddress = document.getElementById('ethAddress').value;
|
|
99
|
+
window.contract = contract;
|
|
100
|
+
window.template = template;
|
|
101
|
+
|
|
75
102
|
console.log("--------- Contract Details ---------");
|
|
76
103
|
console.log(contract);
|
|
77
104
|
console.log("---------- Create Template ----------");
|
|
78
105
|
console.log(template);
|
|
106
|
+
console.log("--------- Populated Template ---------");
|
|
107
|
+
console.log(template);
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
if (contract.loadTypes.includes('select')) {
|
|
111
|
+
generateAssetDropdown(contract);
|
|
112
|
+
} else {
|
|
113
|
+
document.getElementById('vaultAssetSelect').style.display = 'none';
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function selectAsset(index) {
|
|
118
|
+
console.log("--------- Asset Details ---------");
|
|
119
|
+
console.log(window.assets[index]);
|
|
120
|
+
template.targetAsset.name = window.assets[index].assetName;
|
|
121
|
+
template.targetAsset.image = window.assets[index].image;
|
|
79
122
|
console.log("--------- Populated Template ---------");
|
|
80
|
-
template.toAddress = document.getElementById('ethAddress').value;
|
|
81
|
-
template.fromAddress = document.getElementById('ethAddress').value;
|
|
82
123
|
console.log(template);
|
|
83
|
-
window.contract = contract;
|
|
84
|
-
window.template = template;
|
|
85
124
|
}
|
|
86
125
|
|
|
87
126
|
async function getMetadata() {
|
|
@@ -111,9 +150,12 @@
|
|
|
111
150
|
}
|
|
112
151
|
|
|
113
152
|
document.body.addEventListener('change', (event) => {
|
|
114
|
-
if (event.target.
|
|
153
|
+
if (event.target.id === 'contractSelect' && event.target.value != '-1') {
|
|
115
154
|
selectContract(event.target.value);
|
|
116
155
|
}
|
|
156
|
+
if (event.target.id === 'vaultAssetSelect' && event.target.value != '-1') {
|
|
157
|
+
selectAsset(event.target.value);
|
|
158
|
+
}
|
|
117
159
|
});
|
|
118
160
|
</script>
|
|
119
161
|
|
|
@@ -124,10 +166,11 @@
|
|
|
124
166
|
<label for="hideNotMintableCheckbox">Hide Not Mintable</label>
|
|
125
167
|
|
|
126
168
|
<select id="contractSelect" style="display: none;"></select>
|
|
127
|
-
<input type="number" id="vaultCount" min="1" value="1">
|
|
128
|
-
<button id="createButton" onclick="createMultipleVaults()">Create Multiple</button>
|
|
129
169
|
|
|
130
|
-
<
|
|
170
|
+
<select id="vaultAssetSelect" style="display: none;"></select>
|
|
171
|
+
|
|
172
|
+
<input type="number" id="vaultCount" min="1" value="1">
|
|
173
|
+
<button id="createButton" onclick="createMultipleVaults()">Create</button>
|
|
131
174
|
|
|
132
175
|
<hr>
|
|
133
176
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "emblem-vault-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"test:all": "npm run test:node && npm run test:browser",
|
|
14
14
|
"build": "tsc && npm run postbuild",
|
|
15
15
|
"postbuild": "node ./script/version.js",
|
|
16
|
-
"bundle": "npm run build && browserify build/index.js -o dist/bundle.js && cp dist/bundle.js docs/bundle.js"
|
|
16
|
+
"bundle": "npm run build && browserify build/index.js -o dist/bundle.js && cp dist/bundle.js docs/bundle.js",
|
|
17
|
+
"watch": "onchange 'src/*.ts' -- npm run bundle"
|
|
17
18
|
},
|
|
18
19
|
"keywords": [],
|
|
19
20
|
"author": "",
|
package/readme.md
CHANGED
|
@@ -47,6 +47,30 @@ const TEST_ADDRESS = "0x9dE9ffB62c159A10cbcC19BdAc7962e9C19a1baa"
|
|
|
47
47
|
sdk.fetchVaultsOfType("created", TEST_ADDRESS).then(vaults => {
|
|
48
48
|
console.log(vaults);
|
|
49
49
|
});
|
|
50
|
+
|
|
51
|
+
// Get all projects that contain Asset Metadata
|
|
52
|
+
projects = sdk.getAllProjects()
|
|
53
|
+
// [
|
|
54
|
+
// "Emblem Test",
|
|
55
|
+
// "Age of Chains",
|
|
56
|
+
// "Age of Rust",
|
|
57
|
+
// "..."
|
|
58
|
+
// ]
|
|
59
|
+
|
|
60
|
+
// Get asset metadata
|
|
61
|
+
const projectName = projects[1]; // valid item from getAllProjects() above
|
|
62
|
+
assets = sdk.getAssetMetadata(projectName)
|
|
63
|
+
console.log(assets)
|
|
64
|
+
// [
|
|
65
|
+
// {
|
|
66
|
+
// "image":"ELECTRUMCARD.jpg",
|
|
67
|
+
// "projectName":"Age of Chains",
|
|
68
|
+
// "projectLogo":"age-of-chains.jpg",
|
|
69
|
+
// "projectSite":"https://www.ageofchains.com/",
|
|
70
|
+
// "assetName":"ELECTRUMCARD"
|
|
71
|
+
// },...
|
|
72
|
+
// ]
|
|
73
|
+
|
|
50
74
|
```
|
|
51
75
|
|
|
52
76
|
## Simple Html Demo
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Collection, CuratedCollectionsResponse, MetaData, Vault } from './types';
|
|
2
|
-
import { COIN_TO_NETWORK, evaluateFacts, fetchData, generateTemplate, genericGuard, pad, templateGuard } from './utils';
|
|
2
|
+
import { COIN_TO_NETWORK, NFT_DATA, evaluateFacts, fetchData, generateTemplate, genericGuard, metadataAllProjects, metadataObj2Arr, pad, templateGuard } from './utils';
|
|
3
3
|
|
|
4
4
|
const SDK_VERSION = '__SDK_VERSION__';
|
|
5
5
|
class EmblemVaultSDK {
|
|
@@ -18,6 +18,25 @@ class EmblemVaultSDK {
|
|
|
18
18
|
// Implementation goes here
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
// ** Asset Metadata **
|
|
22
|
+
//
|
|
23
|
+
getAssetMetadata(projectName: string, strict: boolean = false) {
|
|
24
|
+
genericGuard(projectName, "string", "projectName");
|
|
25
|
+
const NFT_DATA_ARR = metadataObj2Arr(NFT_DATA)
|
|
26
|
+
let filtered = strict ?
|
|
27
|
+
NFT_DATA_ARR.filter(item => item.projectName === projectName) :
|
|
28
|
+
NFT_DATA_ARR.filter(item => item.projectName.toLowerCase() === projectName.toLowerCase());
|
|
29
|
+
return filtered
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
getAllProjects() {
|
|
33
|
+
const NFT_DATA_ARR = metadataObj2Arr(NFT_DATA)
|
|
34
|
+
const projects = metadataAllProjects(NFT_DATA_ARR)
|
|
35
|
+
return projects
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// ** Curated **
|
|
39
|
+
//
|
|
21
40
|
async fetchCuratedContracts(hideUnMintable: boolean = false): Promise<CuratedCollectionsResponse> {
|
|
22
41
|
let url = `${this.baseUrl}/curated`;
|
|
23
42
|
let data = await fetchData(url, this.apiKey);
|
package/src/utils.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MetaData } from "./types";
|
|
2
2
|
import metadataJson from './curated/metadata.json';
|
|
3
|
-
const NFT_DATA: any = metadataJson
|
|
3
|
+
export const NFT_DATA: any = metadataJson
|
|
4
4
|
|
|
5
5
|
export const pad = (num: string | any[], size: number) => {
|
|
6
6
|
if (!num) return null;
|
|
@@ -23,6 +23,18 @@ export const evaluateFacts = (allowed: boolean, facts: { eval: any; msg: string
|
|
|
23
23
|
return allowed
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
export const metadataObj2Arr = (data: any) => Object.keys(data).map(key => ({
|
|
27
|
+
...data[key],
|
|
28
|
+
assetName: key
|
|
29
|
+
}));
|
|
30
|
+
|
|
31
|
+
export const metadataAllProjects = (projects: any[]) => projects.reduce((unique: any[], item: any) => {
|
|
32
|
+
if (!unique.includes(item.projectName)) {
|
|
33
|
+
unique.push(item.projectName);
|
|
34
|
+
}
|
|
35
|
+
return unique;
|
|
36
|
+
}, []);
|
|
37
|
+
|
|
26
38
|
export const fetchData = async (url: string, apiKey: string, method: string = 'GET', body: any = null) => {
|
|
27
39
|
const fetch = typeof window !== 'undefined' && typeof window.fetch === 'function' ? window.fetch : require('node-fetch');
|
|
28
40
|
const options: any = {
|