emblem-vault-sdk 1.7.7 → 1.7.9
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 +139 -51
- package/dist/index.js +113 -3
- package/dist/utils.js +21 -14
- package/docs/bundle.js +139 -51
- package/package.json +5 -3
- package/src/index.ts +107 -2
- package/src/utils.ts +22 -16
- package/tests/EmblemVaultSdk.test.ts +5 -4
- package/types/index.d.ts +4 -1
package/dist/index.js
CHANGED
|
@@ -34,7 +34,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
36
36
|
const utils_1 = require("./utils");
|
|
37
|
-
const SDK_VERSION = '1.7.
|
|
37
|
+
const SDK_VERSION = '1.7.9';
|
|
38
38
|
class EmblemVaultSDK {
|
|
39
39
|
constructor(apiKey, baseUrl) {
|
|
40
40
|
this.apiKey = apiKey;
|
|
@@ -91,9 +91,9 @@ class EmblemVaultSDK {
|
|
|
91
91
|
return data;
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
|
-
fetchCuratedContractByName(name) {
|
|
94
|
+
fetchCuratedContractByName(name, contracts = false) {
|
|
95
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
|
|
96
|
+
!contracts ? contracts = yield this.fetchCuratedContracts() : null;
|
|
97
97
|
let contract = contracts.find((contract) => contract.name === name);
|
|
98
98
|
return contract || null;
|
|
99
99
|
});
|
|
@@ -135,6 +135,116 @@ class EmblemVaultSDK {
|
|
|
135
135
|
return vaults;
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
|
+
generateJumpReport(address, hideUnMintable = false) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
let vaultType = "unclaimed";
|
|
141
|
+
let curated = yield this.fetchCuratedContracts();
|
|
142
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
143
|
+
try {
|
|
144
|
+
let map = {};
|
|
145
|
+
let vaults = yield this.fetchVaultsOfType(vaultType, address);
|
|
146
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
147
|
+
let item = vaults[vaultIndex];
|
|
148
|
+
let balances = item.ownership.balances || [];
|
|
149
|
+
if (item.targetContract) {
|
|
150
|
+
let vaultTargetContract = yield this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
151
|
+
let to = [];
|
|
152
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
153
|
+
let contract = curated[contractIndex];
|
|
154
|
+
let allowed = contract.allowed(balances, vaultTargetContract);
|
|
155
|
+
if (allowed && vaultTargetContract.name != contract.name) {
|
|
156
|
+
to.push(contract.name);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (!hideUnMintable || to.length > 0) {
|
|
160
|
+
map[item.tokenId] = { from: item.targetContract.name, to: to };
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else if (!hideUnMintable) {
|
|
164
|
+
map[item.tokenId] = { from: "legacy", to: [] };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Resolve the promise with the map
|
|
168
|
+
resolve(map);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
// Reject the promise in case of any error
|
|
172
|
+
reject(error);
|
|
173
|
+
}
|
|
174
|
+
}));
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
generateMintReport(address, hideUnMintable = false) {
|
|
178
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
179
|
+
let vaults = yield this.fetchVaultsOfType("created", address);
|
|
180
|
+
let curated = yield this.fetchCuratedContracts();
|
|
181
|
+
let map = {};
|
|
182
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
183
|
+
try {
|
|
184
|
+
vaults.forEach((vault) => __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
if (vault.targetContract) {
|
|
186
|
+
let targetVault = yield this.fetchCuratedContractByName(vault.targetContract.name, curated);
|
|
187
|
+
let balance = vault.balances && vault.balances.length > 0 ? vault.balances : [];
|
|
188
|
+
let allowed = targetVault.allowed(balance, targetVault);
|
|
189
|
+
if (allowed || !hideUnMintable) {
|
|
190
|
+
map[vault.tokenId] = { to: vault.targetContract.name, mintable: allowed };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
if (!hideUnMintable) {
|
|
195
|
+
map[vault.tokenId] = { to: "legacy", mintable: false };
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}));
|
|
199
|
+
// Resolve the promise with the map
|
|
200
|
+
resolve(map);
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
// Reject the promise in case of any error
|
|
204
|
+
reject(error);
|
|
205
|
+
}
|
|
206
|
+
}));
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
generateMigrateReport(address, hideUnMintable = false) {
|
|
210
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
let vaultType = "unclaimed";
|
|
212
|
+
let curated = yield this.fetchCuratedContracts();
|
|
213
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
214
|
+
try {
|
|
215
|
+
let map = {};
|
|
216
|
+
let vaults = yield this.fetchVaultsOfType(vaultType, address);
|
|
217
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
218
|
+
let item = vaults[vaultIndex];
|
|
219
|
+
let balances = item.ownership.balances || [];
|
|
220
|
+
if (!item.targetContract) {
|
|
221
|
+
// let vaultTargetContract: any = await this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
222
|
+
let to = [];
|
|
223
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
224
|
+
let contract = curated[contractIndex];
|
|
225
|
+
let allowed = contract.allowed(balances, contract);
|
|
226
|
+
if (allowed) {
|
|
227
|
+
to.push(contract.name);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (!hideUnMintable || to.length > 0) {
|
|
231
|
+
map[item.tokenId] = { from: "legacy", to: to };
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
else if (!hideUnMintable) {
|
|
235
|
+
map[item.tokenId] = { from: item.targetContract.name, to: [] };
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// Resolve the promise with the map
|
|
239
|
+
resolve(map);
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
// Reject the promise in case of any error
|
|
243
|
+
reject(error);
|
|
244
|
+
}
|
|
245
|
+
}));
|
|
246
|
+
});
|
|
247
|
+
}
|
|
138
248
|
// ** Web3 **
|
|
139
249
|
//
|
|
140
250
|
// Function to load web3 dynamically and attach it to the window object
|
package/dist/utils.js
CHANGED
|
@@ -49,7 +49,6 @@ const metadataAllProjects = (projects) => projects.reduce((unique, item) => {
|
|
|
49
49
|
}, []);
|
|
50
50
|
exports.metadataAllProjects = metadataAllProjects;
|
|
51
51
|
const fetchData = (url, apiKey, method = 'GET', body = null) => __awaiter(void 0, void 0, void 0, function* () {
|
|
52
|
-
const fetch = typeof window !== 'undefined' && typeof window.fetch === 'function' ? window.fetch : require('node-fetch');
|
|
53
52
|
const options = {
|
|
54
53
|
method: method,
|
|
55
54
|
headers: { 'x-api-key': apiKey },
|
|
@@ -213,17 +212,21 @@ function generateTemplate(record) {
|
|
|
213
212
|
var _a;
|
|
214
213
|
let allowed = false;
|
|
215
214
|
if (recordName == "Cursed Ordinal") {
|
|
216
|
-
allowed = data ? data[0].content_type != "application/json" : false;
|
|
215
|
+
allowed = data && data.length > 0 ? data[0].content_type != "application/json" && data[0].coin == "cursedordinalsbtc" : false;
|
|
216
|
+
}
|
|
217
|
+
else if (recordName == "BitcoinOrdinals") {
|
|
218
|
+
data = _this.filterNativeBalances({ balances: data }, _this);
|
|
219
|
+
allowed = data && data.length > 0 && data[0].coin == _this.collectionChain.toLowerCase();
|
|
217
220
|
}
|
|
218
221
|
else if (recordName == "Ethscription") {
|
|
219
|
-
allowed = data ? true : false;
|
|
222
|
+
allowed = data && data.length > 0 && data[0].coin == recordName.toLowerCase() ? true : false;
|
|
220
223
|
}
|
|
221
224
|
else if (recordName == "$OXBT" || recordName == "$ORDI") {
|
|
222
|
-
if (data[0].balance == balanceQty) {
|
|
225
|
+
if (data && data.length > 0 && data[0].balance == balanceQty) {
|
|
223
226
|
msgCallback ? msgCallback("") : null;
|
|
224
227
|
allowed = true;
|
|
225
228
|
}
|
|
226
|
-
else if (data[0].balance != balanceQty && msgCallback) {
|
|
229
|
+
else if (data && data.length > 0 && data[0].balance != balanceQty && msgCallback) {
|
|
227
230
|
msgCallback ? msgCallback(`Load vault with exactly ${balanceQty} ${recordName}`) : null;
|
|
228
231
|
allowed = false;
|
|
229
232
|
}
|
|
@@ -231,33 +234,37 @@ function generateTemplate(record) {
|
|
|
231
234
|
else if (recordName == "Counterparty") {
|
|
232
235
|
let facts = [
|
|
233
236
|
{ eval: record.nativeAssets.includes((_a = data[0]) === null || _a === void 0 ? void 0 : _a.coin), msg: `Vaults should only contain assets native to ${recordName}` },
|
|
234
|
-
{ eval: data.length == 1, msg: `Vaults should only contain a single item` }
|
|
237
|
+
{ eval: data.length == 1, msg: `Vaults should only contain a single item` },
|
|
238
|
+
// { eval: data[0].projectName && data[0].projectName == recordName, msg: `Vaults should only contain a single item` }
|
|
235
239
|
];
|
|
236
240
|
allowed = (0, exports.evaluateFacts)(allowed, facts, msgCallback);
|
|
237
241
|
}
|
|
238
242
|
else if (recordName == "Stamps") {
|
|
239
|
-
allowed = record.nativeAssets.includes(data[0].coin) && (recordName.toLowerCase() == data[0].project.toLowerCase() || data[0].project.toLowerCase() == "stampunks");
|
|
243
|
+
allowed = data && data.length > 0 && data[0].project && record.nativeAssets.includes(data[0].coin) && (recordName.toLowerCase() == data[0].project.toLowerCase() || data[0].project.toLowerCase() == "stampunks");
|
|
240
244
|
}
|
|
241
245
|
else if (recordName == "EmblemOpen") {
|
|
242
|
-
allowed = data ? true : false;
|
|
246
|
+
allowed = data && data.length > 0 ? true : false;
|
|
243
247
|
}
|
|
244
248
|
else if (recordName == "Bells") {
|
|
245
|
-
allowed = data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance);
|
|
249
|
+
allowed = data && data.length > 0 && data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance);
|
|
246
250
|
}
|
|
247
251
|
else if (recordName == "Namecoin") {
|
|
248
|
-
allowed = data && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
252
|
+
allowed = data && data.length > 0 && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
249
253
|
}
|
|
250
254
|
else if (recordName == "Embels") {
|
|
251
|
-
allowed =
|
|
255
|
+
allowed = _this.name.toLowerCase() == recordName.toLowerCase();
|
|
256
|
+
if (allowed && data && data.length > 0 && data[0].coin) {
|
|
257
|
+
allowed = _this.nativeAssets.includes(data[0].coin);
|
|
258
|
+
}
|
|
252
259
|
}
|
|
253
260
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "protocol") {
|
|
254
|
-
allowed = data && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase();
|
|
261
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project && data[0].project == recordName;
|
|
255
262
|
}
|
|
256
263
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "collection") {
|
|
257
|
-
allowed = data && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project ==
|
|
264
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project == recordName;
|
|
258
265
|
}
|
|
259
266
|
else { // XCP
|
|
260
|
-
allowed = data[0].project == _this.name && data[0].balance == 1;
|
|
267
|
+
allowed = data && data.length > 0 && data[0].project == _this.name && data[0].balance == 1;
|
|
261
268
|
}
|
|
262
269
|
return allowed;
|
|
263
270
|
},
|