emblem-vault-sdk 1.7.8 → 1.7.10
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 +134 -16
- package/dist/index.js +113 -3
- package/dist/utils.js +21 -13
- package/docs/bundle.js +134 -16
- package/package.json +1 -1
- package/src/index.ts +107 -4
- package/src/utils.ts +22 -15
- package/types/index.d.ts +4 -1
package/dist/bundle.js
CHANGED
|
@@ -709310,7 +709310,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
709310
709310
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
709311
709311
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
709312
709312
|
const utils_1 = require("./utils");
|
|
709313
|
-
const SDK_VERSION = '1.7.
|
|
709313
|
+
const SDK_VERSION = '1.7.10';
|
|
709314
709314
|
class EmblemVaultSDK {
|
|
709315
709315
|
constructor(apiKey, baseUrl) {
|
|
709316
709316
|
this.apiKey = apiKey;
|
|
@@ -709367,9 +709367,9 @@ class EmblemVaultSDK {
|
|
|
709367
709367
|
return data;
|
|
709368
709368
|
});
|
|
709369
709369
|
}
|
|
709370
|
-
fetchCuratedContractByName(name) {
|
|
709370
|
+
fetchCuratedContractByName(name, contracts = false) {
|
|
709371
709371
|
return __awaiter(this, void 0, void 0, function* () {
|
|
709372
|
-
|
|
709372
|
+
!contracts ? contracts = yield this.fetchCuratedContracts() : null;
|
|
709373
709373
|
let contract = contracts.find((contract) => contract.name === name);
|
|
709374
709374
|
return contract || null;
|
|
709375
709375
|
});
|
|
@@ -709411,6 +709411,116 @@ class EmblemVaultSDK {
|
|
|
709411
709411
|
return vaults;
|
|
709412
709412
|
});
|
|
709413
709413
|
}
|
|
709414
|
+
generateJumpReport(address, hideUnMintable = false) {
|
|
709415
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
709416
|
+
let vaultType = "unclaimed";
|
|
709417
|
+
let curated = yield this.fetchCuratedContracts();
|
|
709418
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
709419
|
+
try {
|
|
709420
|
+
let map = {};
|
|
709421
|
+
let vaults = yield this.fetchVaultsOfType(vaultType, address);
|
|
709422
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
709423
|
+
let item = vaults[vaultIndex];
|
|
709424
|
+
let balances = item.ownership.balances || [];
|
|
709425
|
+
if (item.targetContract) {
|
|
709426
|
+
let vaultTargetContract = yield this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
709427
|
+
let to = [];
|
|
709428
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
709429
|
+
let contract = curated[contractIndex];
|
|
709430
|
+
let allowed = contract.allowed(balances, vaultTargetContract);
|
|
709431
|
+
if (allowed && vaultTargetContract.name != contract.name) {
|
|
709432
|
+
to.push(contract.name);
|
|
709433
|
+
}
|
|
709434
|
+
}
|
|
709435
|
+
if (!hideUnMintable || to.length > 0) {
|
|
709436
|
+
map[item.tokenId] = { from: item.targetContract.name, to: to };
|
|
709437
|
+
}
|
|
709438
|
+
}
|
|
709439
|
+
else if (!hideUnMintable) {
|
|
709440
|
+
map[item.tokenId] = { from: "legacy", to: [] };
|
|
709441
|
+
}
|
|
709442
|
+
}
|
|
709443
|
+
// Resolve the promise with the map
|
|
709444
|
+
resolve(map);
|
|
709445
|
+
}
|
|
709446
|
+
catch (error) {
|
|
709447
|
+
// Reject the promise in case of any error
|
|
709448
|
+
reject(error);
|
|
709449
|
+
}
|
|
709450
|
+
}));
|
|
709451
|
+
});
|
|
709452
|
+
}
|
|
709453
|
+
generateMintReport(address, hideUnMintable = false) {
|
|
709454
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
709455
|
+
let vaults = yield this.fetchVaultsOfType("created", address);
|
|
709456
|
+
let curated = yield this.fetchCuratedContracts();
|
|
709457
|
+
let map = {};
|
|
709458
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
709459
|
+
try {
|
|
709460
|
+
vaults.forEach((vault) => __awaiter(this, void 0, void 0, function* () {
|
|
709461
|
+
if (vault.targetContract) {
|
|
709462
|
+
let targetVault = yield this.fetchCuratedContractByName(vault.targetContract.name, curated);
|
|
709463
|
+
let balance = vault.balances && vault.balances.length > 0 ? vault.balances : [];
|
|
709464
|
+
let allowed = targetVault.allowed(balance, targetVault);
|
|
709465
|
+
if (allowed || !hideUnMintable) {
|
|
709466
|
+
map[vault.tokenId] = { to: vault.targetContract.name, mintable: allowed };
|
|
709467
|
+
}
|
|
709468
|
+
}
|
|
709469
|
+
else {
|
|
709470
|
+
if (!hideUnMintable) {
|
|
709471
|
+
map[vault.tokenId] = { to: "legacy", mintable: false };
|
|
709472
|
+
}
|
|
709473
|
+
}
|
|
709474
|
+
}));
|
|
709475
|
+
// Resolve the promise with the map
|
|
709476
|
+
resolve(map);
|
|
709477
|
+
}
|
|
709478
|
+
catch (error) {
|
|
709479
|
+
// Reject the promise in case of any error
|
|
709480
|
+
reject(error);
|
|
709481
|
+
}
|
|
709482
|
+
}));
|
|
709483
|
+
});
|
|
709484
|
+
}
|
|
709485
|
+
generateMigrateReport(address, hideUnMintable = false) {
|
|
709486
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
709487
|
+
let vaultType = "unclaimed";
|
|
709488
|
+
let curated = yield this.fetchCuratedContracts();
|
|
709489
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
709490
|
+
try {
|
|
709491
|
+
let map = {};
|
|
709492
|
+
let vaults = yield this.fetchVaultsOfType(vaultType, address);
|
|
709493
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
709494
|
+
let item = vaults[vaultIndex];
|
|
709495
|
+
let balances = item.ownership.balances || [];
|
|
709496
|
+
if (!item.targetContract) {
|
|
709497
|
+
// let vaultTargetContract: any = await this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
709498
|
+
let to = [];
|
|
709499
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
709500
|
+
let contract = curated[contractIndex];
|
|
709501
|
+
let allowed = contract.allowed(balances, contract);
|
|
709502
|
+
if (allowed) {
|
|
709503
|
+
to.push(contract.name);
|
|
709504
|
+
}
|
|
709505
|
+
}
|
|
709506
|
+
if (!hideUnMintable || to.length > 0) {
|
|
709507
|
+
map[item.tokenId] = { from: "legacy", to: to };
|
|
709508
|
+
}
|
|
709509
|
+
}
|
|
709510
|
+
else if (!hideUnMintable) {
|
|
709511
|
+
map[item.tokenId] = { from: item.targetContract.name, to: [] };
|
|
709512
|
+
}
|
|
709513
|
+
}
|
|
709514
|
+
// Resolve the promise with the map
|
|
709515
|
+
resolve(map);
|
|
709516
|
+
}
|
|
709517
|
+
catch (error) {
|
|
709518
|
+
// Reject the promise in case of any error
|
|
709519
|
+
reject(error);
|
|
709520
|
+
}
|
|
709521
|
+
}));
|
|
709522
|
+
});
|
|
709523
|
+
}
|
|
709414
709524
|
// ** Web3 **
|
|
709415
709525
|
//
|
|
709416
709526
|
// Function to load web3 dynamically and attach it to the window object
|
|
@@ -709732,17 +709842,21 @@ function generateTemplate(record) {
|
|
|
709732
709842
|
var _a;
|
|
709733
709843
|
let allowed = false;
|
|
709734
709844
|
if (recordName == "Cursed Ordinal") {
|
|
709735
|
-
allowed = data ? data[0].content_type != "application/json" : false;
|
|
709845
|
+
allowed = data && data.length > 0 ? data[0].content_type != "application/json" && data[0].coin == "cursedordinalsbtc" : false;
|
|
709846
|
+
}
|
|
709847
|
+
else if (recordName == "BitcoinOrdinals") {
|
|
709848
|
+
data = _this.filterNativeBalances({ balances: data }, _this);
|
|
709849
|
+
allowed = data && data.length > 0 && data[0].coin == _this.collectionChain.toLowerCase();
|
|
709736
709850
|
}
|
|
709737
709851
|
else if (recordName == "Ethscription") {
|
|
709738
|
-
allowed = data ? true : false;
|
|
709852
|
+
allowed = data && data.length > 0 && data[0].coin == recordName.toLowerCase() ? true : false;
|
|
709739
709853
|
}
|
|
709740
709854
|
else if (recordName == "$OXBT" || recordName == "$ORDI") {
|
|
709741
|
-
if (data[0].balance == balanceQty) {
|
|
709855
|
+
if (data && data.length > 0 && data[0].balance == balanceQty) {
|
|
709742
709856
|
msgCallback ? msgCallback("") : null;
|
|
709743
709857
|
allowed = true;
|
|
709744
709858
|
}
|
|
709745
|
-
else if (data[0].balance != balanceQty && msgCallback) {
|
|
709859
|
+
else if (data && data.length > 0 && data[0].balance != balanceQty && msgCallback) {
|
|
709746
709860
|
msgCallback ? msgCallback(`Load vault with exactly ${balanceQty} ${recordName}`) : null;
|
|
709747
709861
|
allowed = false;
|
|
709748
709862
|
}
|
|
@@ -709750,33 +709864,37 @@ function generateTemplate(record) {
|
|
|
709750
709864
|
else if (recordName == "Counterparty") {
|
|
709751
709865
|
let facts = [
|
|
709752
709866
|
{ eval: record.nativeAssets.includes((_a = data[0]) === null || _a === void 0 ? void 0 : _a.coin), msg: `Vaults should only contain assets native to ${recordName}` },
|
|
709753
|
-
{ eval: data.length == 1, msg: `Vaults should only contain a single item` }
|
|
709867
|
+
{ eval: data.length == 1, msg: `Vaults should only contain a single item` },
|
|
709868
|
+
// { eval: data[0].projectName && data[0].projectName == recordName, msg: `Vaults should only contain a single item` }
|
|
709754
709869
|
];
|
|
709755
709870
|
allowed = (0, exports.evaluateFacts)(allowed, facts, msgCallback);
|
|
709756
709871
|
}
|
|
709757
709872
|
else if (recordName == "Stamps") {
|
|
709758
|
-
allowed = record.nativeAssets.includes(data[0].coin) && (recordName.toLowerCase() == data[0].project.toLowerCase() || data[0].project.toLowerCase() == "stampunks");
|
|
709873
|
+
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");
|
|
709759
709874
|
}
|
|
709760
709875
|
else if (recordName == "EmblemOpen") {
|
|
709761
|
-
allowed = data ? true : false;
|
|
709876
|
+
allowed = data && data.length > 0 ? true : false;
|
|
709762
709877
|
}
|
|
709763
709878
|
else if (recordName == "Bells") {
|
|
709764
|
-
allowed = data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance);
|
|
709879
|
+
allowed = data && data.length > 0 && data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance);
|
|
709765
709880
|
}
|
|
709766
709881
|
else if (recordName == "Namecoin") {
|
|
709767
|
-
allowed = data && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
709882
|
+
allowed = data && data.length > 0 && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
709768
709883
|
}
|
|
709769
709884
|
else if (recordName == "Embels") {
|
|
709770
|
-
allowed =
|
|
709885
|
+
allowed = _this.name.toLowerCase() == recordName.toLowerCase();
|
|
709886
|
+
if (allowed && data && data.length > 0 && data[0].coin) {
|
|
709887
|
+
allowed = _this.nativeAssets.includes(data[0].coin);
|
|
709888
|
+
}
|
|
709771
709889
|
}
|
|
709772
709890
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "protocol") {
|
|
709773
|
-
allowed = data && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase();
|
|
709891
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project && data[0].project == recordName;
|
|
709774
709892
|
}
|
|
709775
709893
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "collection") {
|
|
709776
|
-
allowed = data && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project ==
|
|
709894
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project == recordName;
|
|
709777
709895
|
}
|
|
709778
709896
|
else { // XCP
|
|
709779
|
-
allowed = data[0].project == _this.name && data[0].balance == 1;
|
|
709897
|
+
allowed = data && data.length > 0 && data[0].project == _this.name && data[0].balance == 1;
|
|
709780
709898
|
}
|
|
709781
709899
|
return allowed;
|
|
709782
709900
|
},
|
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.10';
|
|
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
|
@@ -212,17 +212,21 @@ function generateTemplate(record) {
|
|
|
212
212
|
var _a;
|
|
213
213
|
let allowed = false;
|
|
214
214
|
if (recordName == "Cursed Ordinal") {
|
|
215
|
-
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();
|
|
216
220
|
}
|
|
217
221
|
else if (recordName == "Ethscription") {
|
|
218
|
-
allowed = data ? true : false;
|
|
222
|
+
allowed = data && data.length > 0 && data[0].coin == recordName.toLowerCase() ? true : false;
|
|
219
223
|
}
|
|
220
224
|
else if (recordName == "$OXBT" || recordName == "$ORDI") {
|
|
221
|
-
if (data[0].balance == balanceQty) {
|
|
225
|
+
if (data && data.length > 0 && data[0].balance == balanceQty) {
|
|
222
226
|
msgCallback ? msgCallback("") : null;
|
|
223
227
|
allowed = true;
|
|
224
228
|
}
|
|
225
|
-
else if (data[0].balance != balanceQty && msgCallback) {
|
|
229
|
+
else if (data && data.length > 0 && data[0].balance != balanceQty && msgCallback) {
|
|
226
230
|
msgCallback ? msgCallback(`Load vault with exactly ${balanceQty} ${recordName}`) : null;
|
|
227
231
|
allowed = false;
|
|
228
232
|
}
|
|
@@ -230,33 +234,37 @@ function generateTemplate(record) {
|
|
|
230
234
|
else if (recordName == "Counterparty") {
|
|
231
235
|
let facts = [
|
|
232
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}` },
|
|
233
|
-
{ 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` }
|
|
234
239
|
];
|
|
235
240
|
allowed = (0, exports.evaluateFacts)(allowed, facts, msgCallback);
|
|
236
241
|
}
|
|
237
242
|
else if (recordName == "Stamps") {
|
|
238
|
-
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");
|
|
239
244
|
}
|
|
240
245
|
else if (recordName == "EmblemOpen") {
|
|
241
|
-
allowed = data ? true : false;
|
|
246
|
+
allowed = data && data.length > 0 ? true : false;
|
|
242
247
|
}
|
|
243
248
|
else if (recordName == "Bells") {
|
|
244
|
-
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);
|
|
245
250
|
}
|
|
246
251
|
else if (recordName == "Namecoin") {
|
|
247
|
-
allowed = data && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
252
|
+
allowed = data && data.length > 0 && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
248
253
|
}
|
|
249
254
|
else if (recordName == "Embels") {
|
|
250
|
-
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
|
+
}
|
|
251
259
|
}
|
|
252
260
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "protocol") {
|
|
253
|
-
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;
|
|
254
262
|
}
|
|
255
263
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "collection") {
|
|
256
|
-
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;
|
|
257
265
|
}
|
|
258
266
|
else { // XCP
|
|
259
|
-
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;
|
|
260
268
|
}
|
|
261
269
|
return allowed;
|
|
262
270
|
},
|
package/docs/bundle.js
CHANGED
|
@@ -709310,7 +709310,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
709310
709310
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
709311
709311
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
709312
709312
|
const utils_1 = require("./utils");
|
|
709313
|
-
const SDK_VERSION = '1.7.
|
|
709313
|
+
const SDK_VERSION = '1.7.10';
|
|
709314
709314
|
class EmblemVaultSDK {
|
|
709315
709315
|
constructor(apiKey, baseUrl) {
|
|
709316
709316
|
this.apiKey = apiKey;
|
|
@@ -709367,9 +709367,9 @@ class EmblemVaultSDK {
|
|
|
709367
709367
|
return data;
|
|
709368
709368
|
});
|
|
709369
709369
|
}
|
|
709370
|
-
fetchCuratedContractByName(name) {
|
|
709370
|
+
fetchCuratedContractByName(name, contracts = false) {
|
|
709371
709371
|
return __awaiter(this, void 0, void 0, function* () {
|
|
709372
|
-
|
|
709372
|
+
!contracts ? contracts = yield this.fetchCuratedContracts() : null;
|
|
709373
709373
|
let contract = contracts.find((contract) => contract.name === name);
|
|
709374
709374
|
return contract || null;
|
|
709375
709375
|
});
|
|
@@ -709411,6 +709411,116 @@ class EmblemVaultSDK {
|
|
|
709411
709411
|
return vaults;
|
|
709412
709412
|
});
|
|
709413
709413
|
}
|
|
709414
|
+
generateJumpReport(address, hideUnMintable = false) {
|
|
709415
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
709416
|
+
let vaultType = "unclaimed";
|
|
709417
|
+
let curated = yield this.fetchCuratedContracts();
|
|
709418
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
709419
|
+
try {
|
|
709420
|
+
let map = {};
|
|
709421
|
+
let vaults = yield this.fetchVaultsOfType(vaultType, address);
|
|
709422
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
709423
|
+
let item = vaults[vaultIndex];
|
|
709424
|
+
let balances = item.ownership.balances || [];
|
|
709425
|
+
if (item.targetContract) {
|
|
709426
|
+
let vaultTargetContract = yield this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
709427
|
+
let to = [];
|
|
709428
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
709429
|
+
let contract = curated[contractIndex];
|
|
709430
|
+
let allowed = contract.allowed(balances, vaultTargetContract);
|
|
709431
|
+
if (allowed && vaultTargetContract.name != contract.name) {
|
|
709432
|
+
to.push(contract.name);
|
|
709433
|
+
}
|
|
709434
|
+
}
|
|
709435
|
+
if (!hideUnMintable || to.length > 0) {
|
|
709436
|
+
map[item.tokenId] = { from: item.targetContract.name, to: to };
|
|
709437
|
+
}
|
|
709438
|
+
}
|
|
709439
|
+
else if (!hideUnMintable) {
|
|
709440
|
+
map[item.tokenId] = { from: "legacy", to: [] };
|
|
709441
|
+
}
|
|
709442
|
+
}
|
|
709443
|
+
// Resolve the promise with the map
|
|
709444
|
+
resolve(map);
|
|
709445
|
+
}
|
|
709446
|
+
catch (error) {
|
|
709447
|
+
// Reject the promise in case of any error
|
|
709448
|
+
reject(error);
|
|
709449
|
+
}
|
|
709450
|
+
}));
|
|
709451
|
+
});
|
|
709452
|
+
}
|
|
709453
|
+
generateMintReport(address, hideUnMintable = false) {
|
|
709454
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
709455
|
+
let vaults = yield this.fetchVaultsOfType("created", address);
|
|
709456
|
+
let curated = yield this.fetchCuratedContracts();
|
|
709457
|
+
let map = {};
|
|
709458
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
709459
|
+
try {
|
|
709460
|
+
vaults.forEach((vault) => __awaiter(this, void 0, void 0, function* () {
|
|
709461
|
+
if (vault.targetContract) {
|
|
709462
|
+
let targetVault = yield this.fetchCuratedContractByName(vault.targetContract.name, curated);
|
|
709463
|
+
let balance = vault.balances && vault.balances.length > 0 ? vault.balances : [];
|
|
709464
|
+
let allowed = targetVault.allowed(balance, targetVault);
|
|
709465
|
+
if (allowed || !hideUnMintable) {
|
|
709466
|
+
map[vault.tokenId] = { to: vault.targetContract.name, mintable: allowed };
|
|
709467
|
+
}
|
|
709468
|
+
}
|
|
709469
|
+
else {
|
|
709470
|
+
if (!hideUnMintable) {
|
|
709471
|
+
map[vault.tokenId] = { to: "legacy", mintable: false };
|
|
709472
|
+
}
|
|
709473
|
+
}
|
|
709474
|
+
}));
|
|
709475
|
+
// Resolve the promise with the map
|
|
709476
|
+
resolve(map);
|
|
709477
|
+
}
|
|
709478
|
+
catch (error) {
|
|
709479
|
+
// Reject the promise in case of any error
|
|
709480
|
+
reject(error);
|
|
709481
|
+
}
|
|
709482
|
+
}));
|
|
709483
|
+
});
|
|
709484
|
+
}
|
|
709485
|
+
generateMigrateReport(address, hideUnMintable = false) {
|
|
709486
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
709487
|
+
let vaultType = "unclaimed";
|
|
709488
|
+
let curated = yield this.fetchCuratedContracts();
|
|
709489
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
709490
|
+
try {
|
|
709491
|
+
let map = {};
|
|
709492
|
+
let vaults = yield this.fetchVaultsOfType(vaultType, address);
|
|
709493
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
709494
|
+
let item = vaults[vaultIndex];
|
|
709495
|
+
let balances = item.ownership.balances || [];
|
|
709496
|
+
if (!item.targetContract) {
|
|
709497
|
+
// let vaultTargetContract: any = await this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
709498
|
+
let to = [];
|
|
709499
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
709500
|
+
let contract = curated[contractIndex];
|
|
709501
|
+
let allowed = contract.allowed(balances, contract);
|
|
709502
|
+
if (allowed) {
|
|
709503
|
+
to.push(contract.name);
|
|
709504
|
+
}
|
|
709505
|
+
}
|
|
709506
|
+
if (!hideUnMintable || to.length > 0) {
|
|
709507
|
+
map[item.tokenId] = { from: "legacy", to: to };
|
|
709508
|
+
}
|
|
709509
|
+
}
|
|
709510
|
+
else if (!hideUnMintable) {
|
|
709511
|
+
map[item.tokenId] = { from: item.targetContract.name, to: [] };
|
|
709512
|
+
}
|
|
709513
|
+
}
|
|
709514
|
+
// Resolve the promise with the map
|
|
709515
|
+
resolve(map);
|
|
709516
|
+
}
|
|
709517
|
+
catch (error) {
|
|
709518
|
+
// Reject the promise in case of any error
|
|
709519
|
+
reject(error);
|
|
709520
|
+
}
|
|
709521
|
+
}));
|
|
709522
|
+
});
|
|
709523
|
+
}
|
|
709414
709524
|
// ** Web3 **
|
|
709415
709525
|
//
|
|
709416
709526
|
// Function to load web3 dynamically and attach it to the window object
|
|
@@ -709732,17 +709842,21 @@ function generateTemplate(record) {
|
|
|
709732
709842
|
var _a;
|
|
709733
709843
|
let allowed = false;
|
|
709734
709844
|
if (recordName == "Cursed Ordinal") {
|
|
709735
|
-
allowed = data ? data[0].content_type != "application/json" : false;
|
|
709845
|
+
allowed = data && data.length > 0 ? data[0].content_type != "application/json" && data[0].coin == "cursedordinalsbtc" : false;
|
|
709846
|
+
}
|
|
709847
|
+
else if (recordName == "BitcoinOrdinals") {
|
|
709848
|
+
data = _this.filterNativeBalances({ balances: data }, _this);
|
|
709849
|
+
allowed = data && data.length > 0 && data[0].coin == _this.collectionChain.toLowerCase();
|
|
709736
709850
|
}
|
|
709737
709851
|
else if (recordName == "Ethscription") {
|
|
709738
|
-
allowed = data ? true : false;
|
|
709852
|
+
allowed = data && data.length > 0 && data[0].coin == recordName.toLowerCase() ? true : false;
|
|
709739
709853
|
}
|
|
709740
709854
|
else if (recordName == "$OXBT" || recordName == "$ORDI") {
|
|
709741
|
-
if (data[0].balance == balanceQty) {
|
|
709855
|
+
if (data && data.length > 0 && data[0].balance == balanceQty) {
|
|
709742
709856
|
msgCallback ? msgCallback("") : null;
|
|
709743
709857
|
allowed = true;
|
|
709744
709858
|
}
|
|
709745
|
-
else if (data[0].balance != balanceQty && msgCallback) {
|
|
709859
|
+
else if (data && data.length > 0 && data[0].balance != balanceQty && msgCallback) {
|
|
709746
709860
|
msgCallback ? msgCallback(`Load vault with exactly ${balanceQty} ${recordName}`) : null;
|
|
709747
709861
|
allowed = false;
|
|
709748
709862
|
}
|
|
@@ -709750,33 +709864,37 @@ function generateTemplate(record) {
|
|
|
709750
709864
|
else if (recordName == "Counterparty") {
|
|
709751
709865
|
let facts = [
|
|
709752
709866
|
{ eval: record.nativeAssets.includes((_a = data[0]) === null || _a === void 0 ? void 0 : _a.coin), msg: `Vaults should only contain assets native to ${recordName}` },
|
|
709753
|
-
{ eval: data.length == 1, msg: `Vaults should only contain a single item` }
|
|
709867
|
+
{ eval: data.length == 1, msg: `Vaults should only contain a single item` },
|
|
709868
|
+
// { eval: data[0].projectName && data[0].projectName == recordName, msg: `Vaults should only contain a single item` }
|
|
709754
709869
|
];
|
|
709755
709870
|
allowed = (0, exports.evaluateFacts)(allowed, facts, msgCallback);
|
|
709756
709871
|
}
|
|
709757
709872
|
else if (recordName == "Stamps") {
|
|
709758
|
-
allowed = record.nativeAssets.includes(data[0].coin) && (recordName.toLowerCase() == data[0].project.toLowerCase() || data[0].project.toLowerCase() == "stampunks");
|
|
709873
|
+
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");
|
|
709759
709874
|
}
|
|
709760
709875
|
else if (recordName == "EmblemOpen") {
|
|
709761
|
-
allowed = data ? true : false;
|
|
709876
|
+
allowed = data && data.length > 0 ? true : false;
|
|
709762
709877
|
}
|
|
709763
709878
|
else if (recordName == "Bells") {
|
|
709764
|
-
allowed = data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance);
|
|
709879
|
+
allowed = data && data.length > 0 && data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance);
|
|
709765
709880
|
}
|
|
709766
709881
|
else if (recordName == "Namecoin") {
|
|
709767
|
-
allowed = data && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
709882
|
+
allowed = data && data.length > 0 && record.nativeAssets.includes(data[0].coin) ? true : false;
|
|
709768
709883
|
}
|
|
709769
709884
|
else if (recordName == "Embels") {
|
|
709770
|
-
allowed =
|
|
709885
|
+
allowed = _this.name.toLowerCase() == recordName.toLowerCase();
|
|
709886
|
+
if (allowed && data && data.length > 0 && data[0].coin) {
|
|
709887
|
+
allowed = _this.nativeAssets.includes(data[0].coin);
|
|
709888
|
+
}
|
|
709771
709889
|
}
|
|
709772
709890
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "protocol") {
|
|
709773
|
-
allowed = data && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase();
|
|
709891
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project && data[0].project == recordName;
|
|
709774
709892
|
}
|
|
709775
709893
|
else if (_this.vaultCollectionType && _this.vaultCollectionType == "collection") {
|
|
709776
|
-
allowed = data && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project ==
|
|
709894
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project == recordName;
|
|
709777
709895
|
}
|
|
709778
709896
|
else { // XCP
|
|
709779
|
-
allowed = data[0].project == _this.name && data[0].balance == 1;
|
|
709897
|
+
allowed = data && data.length > 0 && data[0].project == _this.name && data[0].balance == 1;
|
|
709780
709898
|
}
|
|
709781
709899
|
return allowed;
|
|
709782
709900
|
},
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -65,8 +65,8 @@ class EmblemVaultSDK {
|
|
|
65
65
|
return data
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
async fetchCuratedContractByName(name: string): Promise<Collection | null> {
|
|
69
|
-
|
|
68
|
+
async fetchCuratedContractByName(name: string, contracts: any = false): Promise<Collection | null> {
|
|
69
|
+
!contracts ? contracts = await this.fetchCuratedContracts(): null
|
|
70
70
|
let contract = contracts.find((contract: Collection) => contract.name === name);
|
|
71
71
|
return contract || null;
|
|
72
72
|
}
|
|
@@ -97,6 +97,111 @@ class EmblemVaultSDK {
|
|
|
97
97
|
return vaults;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
async generateJumpReport(address: string, hideUnMintable: boolean = false) {
|
|
101
|
+
let vaultType = "unclaimed"
|
|
102
|
+
let curated = await this.fetchCuratedContracts();
|
|
103
|
+
return new Promise(async (resolve, reject) => {
|
|
104
|
+
try {
|
|
105
|
+
let map: { [key: string]: any } = {};
|
|
106
|
+
let vaults = await this.fetchVaultsOfType(vaultType, address);
|
|
107
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
108
|
+
let item = vaults[vaultIndex];
|
|
109
|
+
let balances = item.ownership.balances || [];
|
|
110
|
+
if (item.targetContract) {
|
|
111
|
+
let vaultTargetContract: any = await this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
112
|
+
let to = [];
|
|
113
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
114
|
+
let contract: any = curated[contractIndex];
|
|
115
|
+
let allowed = contract.allowed(balances, vaultTargetContract);
|
|
116
|
+
if (allowed && vaultTargetContract.name != contract.name) {
|
|
117
|
+
to.push(contract.name);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (!hideUnMintable || to.length > 0) {
|
|
121
|
+
map[item.tokenId] = { from: item.targetContract.name, to: to };
|
|
122
|
+
}
|
|
123
|
+
} else if (!hideUnMintable) {
|
|
124
|
+
map[item.tokenId] = { from: "legacy", to: [] };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Resolve the promise with the map
|
|
129
|
+
resolve(map);
|
|
130
|
+
} catch (error) {
|
|
131
|
+
// Reject the promise in case of any error
|
|
132
|
+
reject(error);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async generateMintReport(address: string, hideUnMintable: boolean = false) {
|
|
138
|
+
let vaults = await this.fetchVaultsOfType("created", address)
|
|
139
|
+
let curated = await this.fetchCuratedContracts();
|
|
140
|
+
let map: { [key: string]: any } = {};
|
|
141
|
+
return new Promise(async (resolve, reject) => {
|
|
142
|
+
try {
|
|
143
|
+
vaults.forEach(async (vault: any) => {
|
|
144
|
+
if (vault.targetContract) {
|
|
145
|
+
let targetVault: any = await this.fetchCuratedContractByName(vault.targetContract.name, curated);
|
|
146
|
+
let balance = vault.balances && vault.balances.length > 0 ? vault.balances : []
|
|
147
|
+
let allowed = targetVault.allowed(balance, targetVault)
|
|
148
|
+
if (allowed || !hideUnMintable) {
|
|
149
|
+
map[vault.tokenId] = { to: vault.targetContract.name, mintable: allowed};
|
|
150
|
+
}
|
|
151
|
+
} else {
|
|
152
|
+
if (!hideUnMintable) {
|
|
153
|
+
map[vault.tokenId] = { to: "legacy", mintable: false };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
// Resolve the promise with the map
|
|
158
|
+
resolve(map);
|
|
159
|
+
} catch (error) {
|
|
160
|
+
// Reject the promise in case of any error
|
|
161
|
+
reject(error);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
async generateMigrateReport(address: string, hideUnMintable: boolean = false) {
|
|
167
|
+
let vaultType = "unclaimed"
|
|
168
|
+
let curated = await this.fetchCuratedContracts();
|
|
169
|
+
return new Promise(async (resolve, reject) => {
|
|
170
|
+
try {
|
|
171
|
+
let map: { [key: string]: any } = {};
|
|
172
|
+
let vaults = await this.fetchVaultsOfType(vaultType, address);
|
|
173
|
+
for (let vaultIndex = 0; vaultIndex < vaults.length; vaultIndex++) {
|
|
174
|
+
let item = vaults[vaultIndex];
|
|
175
|
+
let balances = item.ownership.balances || [];
|
|
176
|
+
if (!item.targetContract) {
|
|
177
|
+
// let vaultTargetContract: any = await this.fetchCuratedContractByName(item.targetContract.name, curated);
|
|
178
|
+
let to = [];
|
|
179
|
+
for (let contractIndex = 0; contractIndex < curated.length; contractIndex++) {
|
|
180
|
+
let contract: any = curated[contractIndex];
|
|
181
|
+
let allowed = contract.allowed(balances, contract);
|
|
182
|
+
if (allowed) {
|
|
183
|
+
to.push(contract.name);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (!hideUnMintable || to.length > 0) {
|
|
187
|
+
map[item.tokenId] = { from: "legacy", to: to };
|
|
188
|
+
}
|
|
189
|
+
} else if (!hideUnMintable) {
|
|
190
|
+
map[item.tokenId] = { from: item.targetContract.name, to: [] };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Resolve the promise with the map
|
|
195
|
+
resolve(map);
|
|
196
|
+
} catch (error) {
|
|
197
|
+
// Reject the promise in case of any error
|
|
198
|
+
reject(error);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
100
205
|
// ** Web3 **
|
|
101
206
|
//
|
|
102
207
|
// Function to load web3 dynamically and attach it to the window object
|
|
@@ -174,8 +279,6 @@ class EmblemVaultSDK {
|
|
|
174
279
|
async contentTypeReport(url: string) {
|
|
175
280
|
return await checkContentType(url)
|
|
176
281
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
282
|
}
|
|
180
283
|
|
|
181
284
|
declare global {
|
package/src/utils.ts
CHANGED
|
@@ -194,39 +194,46 @@ export function generateTemplate(record: any) {
|
|
|
194
194
|
allowed: (data: any[], _this: any, msgCallback: any = null) => {
|
|
195
195
|
let allowed = false
|
|
196
196
|
if (recordName == "Cursed Ordinal") {
|
|
197
|
-
allowed = data ? data[0].content_type != "application/json" : false
|
|
197
|
+
allowed = data && data.length > 0 ? data[0].content_type != "application/json" && data[0].coin == "cursedordinalsbtc" : false
|
|
198
|
+
} else if (recordName == "BitcoinOrdinals") {
|
|
199
|
+
data = _this.filterNativeBalances({balances: data}, _this)
|
|
200
|
+
allowed = data && data.length > 0 && data[0].coin == _this.collectionChain.toLowerCase()
|
|
198
201
|
} else if (recordName == "Ethscription") {
|
|
199
|
-
allowed = data ? true : false
|
|
202
|
+
allowed = data && data.length > 0 && data[0].coin == recordName.toLowerCase()? true : false
|
|
200
203
|
} else if (recordName == "$OXBT" || recordName == "$ORDI") {
|
|
201
|
-
if (data[0].balance == balanceQty) {
|
|
204
|
+
if (data && data.length > 0 && data[0].balance == balanceQty) {
|
|
202
205
|
msgCallback ? msgCallback("") : null
|
|
203
206
|
allowed = true
|
|
204
|
-
} else if (data[0].balance != balanceQty && msgCallback) {
|
|
207
|
+
} else if (data && data.length > 0 && data[0].balance != balanceQty && msgCallback) {
|
|
205
208
|
msgCallback ? msgCallback(`Load vault with exactly ${balanceQty} ${recordName}`) : null
|
|
206
209
|
allowed = false
|
|
207
210
|
}
|
|
208
211
|
} else if (recordName == "Counterparty") {
|
|
209
212
|
let facts = [
|
|
210
213
|
{ eval: record.nativeAssets.includes(data[0]?.coin), msg: `Vaults should only contain assets native to ${recordName}` },
|
|
211
|
-
{ eval: data.length == 1, msg: `Vaults should only contain a single item` }
|
|
214
|
+
{ eval: data.length == 1, msg: `Vaults should only contain a single item` },
|
|
215
|
+
// { eval: data[0].projectName && data[0].projectName == recordName, msg: `Vaults should only contain a single item` }
|
|
212
216
|
]
|
|
213
217
|
allowed = evaluateFacts(allowed, facts, msgCallback)
|
|
214
218
|
} else if (recordName == "Stamps") {
|
|
215
|
-
allowed = record.nativeAssets.includes(data[0].coin) && (recordName.toLowerCase() == data[0].project.toLowerCase() || data[0].project.toLowerCase() == "stampunks")
|
|
219
|
+
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")
|
|
216
220
|
} else if (recordName == "EmblemOpen") {
|
|
217
|
-
allowed = data ? true : false
|
|
221
|
+
allowed = data && data.length > 0 ? true : false
|
|
218
222
|
} else if (recordName == "Bells") {
|
|
219
|
-
allowed = data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance)
|
|
223
|
+
allowed = data && data.length > 0 && data[0].name == "Bel" && data[0].balance > 0 && Number.isInteger(data[0].balance)
|
|
220
224
|
} else if (recordName == "Namecoin") {
|
|
221
|
-
allowed = data && record.nativeAssets.includes(data[0].coin) ? true: false
|
|
222
|
-
} else if (recordName == "Embels"){
|
|
223
|
-
allowed =
|
|
224
|
-
|
|
225
|
-
|
|
225
|
+
allowed = data && data.length > 0 && record.nativeAssets.includes(data[0].coin) ? true: false
|
|
226
|
+
} else if (recordName == "Embels") {
|
|
227
|
+
allowed = _this.name.toLowerCase() == recordName.toLowerCase()
|
|
228
|
+
if (allowed && data && data.length > 0 && data[0].coin) {
|
|
229
|
+
allowed = _this.nativeAssets.includes(data[0].coin)
|
|
230
|
+
}
|
|
231
|
+
} else if (_this.vaultCollectionType && _this.vaultCollectionType == "protocol") {
|
|
232
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project && data[0].project == recordName
|
|
226
233
|
} else if (_this.vaultCollectionType && _this.vaultCollectionType == "collection" ) {
|
|
227
|
-
allowed = data && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project ==
|
|
234
|
+
allowed = data && data.length > 0 && data[0].coin.toLowerCase() == _this.collectionChain.toLowerCase() && data[0].project == recordName
|
|
228
235
|
} else { // XCP
|
|
229
|
-
allowed = data[0].project == _this.name && data[0].balance == 1;
|
|
236
|
+
allowed = data && data.length > 0 && data[0].project == _this.name && data[0].balance == 1;
|
|
230
237
|
}
|
|
231
238
|
return allowed
|
|
232
239
|
},
|
package/types/index.d.ts
CHANGED
|
@@ -9,10 +9,13 @@ declare class EmblemVaultSDK {
|
|
|
9
9
|
getAllAssetMetadata(): any[];
|
|
10
10
|
getAllProjects(): any[];
|
|
11
11
|
fetchCuratedContracts(hideUnMintable?: boolean, overrideFunc?: Function | boolean): Promise<CuratedCollectionsResponse>;
|
|
12
|
-
fetchCuratedContractByName(name: string): Promise<Collection | null>;
|
|
12
|
+
fetchCuratedContractByName(name: string, contracts?: any): Promise<Collection | null>;
|
|
13
13
|
createCuratedVault(template: any, callback?: any): Promise<Vault>;
|
|
14
14
|
fetchMetadata(tokenId: string, callback?: any): Promise<MetaData>;
|
|
15
15
|
fetchVaultsOfType(vaultType: string, address: string): Promise<any>;
|
|
16
|
+
generateJumpReport(address: string, hideUnMintable?: boolean): Promise<unknown>;
|
|
17
|
+
generateMintReport(address: string, hideUnMintable?: boolean): Promise<unknown>;
|
|
18
|
+
generateMigrateReport(address: string, hideUnMintable?: boolean): Promise<unknown>;
|
|
16
19
|
loadWeb3(): Promise<any | undefined>;
|
|
17
20
|
performMintChain(web3: any, tokenId: string, collectionName: string, callback?: any): Promise<{
|
|
18
21
|
mintResponse: any;
|