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/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.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
- let contracts = yield this.fetchCuratedContracts();
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 = true;
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 == _this.name;
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
  },