@pioneer-platform/zapper-client 8.3.8 → 8.3.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/lib/index.js +88 -32
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -81,16 +81,19 @@ module.exports = {
|
|
|
81
81
|
},
|
|
82
82
|
};
|
|
83
83
|
var get_portfolio = function (address) {
|
|
84
|
+
var _a, _b;
|
|
84
85
|
return __awaiter(this, void 0, void 0, function () {
|
|
85
|
-
var tag,
|
|
86
|
-
return __generator(this, function (
|
|
87
|
-
switch (
|
|
86
|
+
var tag, output_1, appsResponse, apps, totalBalanceUSDApp_1, i, app, j, product, k, asset, l, token, balance, tokensResponse, totalBalanceUsdTokens_1, tokens, limit, allTokens, cursor, url, response, tokens, error_1, nftResponse, nftUsdNetWorth, totalNetWorth, e_1;
|
|
87
|
+
return __generator(this, function (_c) {
|
|
88
|
+
switch (_c.label) {
|
|
88
89
|
case 0:
|
|
89
90
|
tag = TAG + " | get_portfolio | ";
|
|
90
|
-
|
|
91
|
+
_c.label = 1;
|
|
91
92
|
case 1:
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
_c.trys.push([1, 11, , 12]);
|
|
94
|
+
output_1 = {
|
|
95
|
+
balances: []
|
|
96
|
+
};
|
|
94
97
|
return [4 /*yield*/, Axios.get("https://api.zapper.xyz/v2/balances/apps?addresses%5B%5D=".concat(address), {
|
|
95
98
|
headers: {
|
|
96
99
|
accept: "*/*",
|
|
@@ -98,13 +101,49 @@ var get_portfolio = function (address) {
|
|
|
98
101
|
},
|
|
99
102
|
})];
|
|
100
103
|
case 2:
|
|
101
|
-
appsResponse =
|
|
104
|
+
appsResponse = _c.sent();
|
|
102
105
|
log.info(tag, "appsResponse: ", appsResponse.data);
|
|
103
106
|
apps = appsResponse.data;
|
|
104
107
|
totalBalanceUSDApp_1 = 0;
|
|
105
108
|
apps.forEach(function (app) {
|
|
106
109
|
totalBalanceUSDApp_1 += app.balanceUSD;
|
|
107
110
|
});
|
|
111
|
+
for (i = 0; i < apps.length; i++) {
|
|
112
|
+
app = apps[i];
|
|
113
|
+
for (j = 0; j < app.products.length; j++) {
|
|
114
|
+
product = app.products[j];
|
|
115
|
+
log.info(tag, "product: ", product);
|
|
116
|
+
for (k = 0; k < product.assets.length; k++) {
|
|
117
|
+
asset = product.assets[k];
|
|
118
|
+
log.info(tag, "asset: ", asset);
|
|
119
|
+
for (l = 0; l < asset.tokens.length; l++) {
|
|
120
|
+
token = asset.tokens[l];
|
|
121
|
+
balance = {};
|
|
122
|
+
balance.pubkey = app.address;
|
|
123
|
+
balance.balance = token === null || token === void 0 ? void 0 : token.balance.toString();
|
|
124
|
+
balance.chain = app.network;
|
|
125
|
+
balance.networkId = pioneer_caip_1.evmCaips[app.network].split('/')[0];
|
|
126
|
+
if (token.type !== 'base-token' && token.address !== '0x0000000000000000000000000000000000000000') {
|
|
127
|
+
balance.caip = balance.networkId + "/erc20:" + token.address;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
balance.caip = balance.networkId + 'slip44:60';
|
|
131
|
+
}
|
|
132
|
+
balance.metaType = token.metaType || product.metaType;
|
|
133
|
+
balance.name = asset.displayProps.label;
|
|
134
|
+
balance.appId = app.appId;
|
|
135
|
+
balance.icon = asset.displayProps.images[0];
|
|
136
|
+
balance.display = asset.displayProps.images;
|
|
137
|
+
balance.groupId = asset.groupId;
|
|
138
|
+
balance.symbol = token.symbol;
|
|
139
|
+
balance.ticker = token.symbol;
|
|
140
|
+
balance.priceUsd = ((_a = token === null || token === void 0 ? void 0 : token.price) === null || _a === void 0 ? void 0 : _a.toString()) || '0';
|
|
141
|
+
balance.valueUsd = ((_b = token === null || token === void 0 ? void 0 : token.balanceUSD) === null || _b === void 0 ? void 0 : _b.toString()) || '0';
|
|
142
|
+
output_1.balances.push(balance);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
108
147
|
return [4 /*yield*/, Axios.get("https://api.zapper.xyz/v2/balances/tokens?addresses%5B%5D=".concat(address), {
|
|
109
148
|
headers: {
|
|
110
149
|
accept: "*/*",
|
|
@@ -112,46 +151,63 @@ var get_portfolio = function (address) {
|
|
|
112
151
|
},
|
|
113
152
|
})];
|
|
114
153
|
case 3:
|
|
115
|
-
tokensResponse =
|
|
154
|
+
tokensResponse = _c.sent();
|
|
155
|
+
console.log("tokensResponse: ", tokensResponse.data);
|
|
116
156
|
if (tokensResponse.data && tokensResponse.data[address.toLowerCase()]) {
|
|
117
157
|
tokens = tokensResponse.data;
|
|
118
158
|
totalBalanceUsdTokens_1 = 0;
|
|
119
159
|
tokens = tokens[address.toLowerCase()];
|
|
120
|
-
|
|
160
|
+
output_1.tokens = tokens;
|
|
121
161
|
log.info(tag, "tokens: ", tokens.length);
|
|
122
162
|
if (tokens) {
|
|
123
163
|
tokens.forEach(function (token) {
|
|
124
164
|
log.debug(tag, "token: ", token);
|
|
125
165
|
var network = token.network;
|
|
126
|
-
log.debug(tag, "network: ",
|
|
166
|
+
log.debug(tag, "network: ", network);
|
|
127
167
|
var caip = pioneer_caip_1.evmCaips[network];
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
168
|
+
if (caip) {
|
|
169
|
+
token.networkId = caip.split('/')[0];
|
|
170
|
+
if (token.token.address !== '0x0000000000000000000000000000000000000000') {
|
|
171
|
+
token.assetCaip = token.networkId + "/erc20:" + token.token.address;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
token.assetCaip = caip;
|
|
175
|
+
}
|
|
176
|
+
var balance = {
|
|
177
|
+
balance: token.token.balance.toString(),
|
|
178
|
+
networkId: token.networkId,
|
|
179
|
+
chain: token.network,
|
|
180
|
+
caip: token.assetCaip,
|
|
181
|
+
type: 'erc20',
|
|
182
|
+
name: token.token.name,
|
|
183
|
+
symbol: token.token.symbol,
|
|
184
|
+
ticker: token.token.symbol,
|
|
185
|
+
decimals: token.token.decimals,
|
|
186
|
+
priceUsd: token.token.price,
|
|
187
|
+
valueUsd: token.token.balanceUSD.toString(),
|
|
188
|
+
};
|
|
189
|
+
output_1.balances.push(balance);
|
|
190
|
+
log.debug(tag, "token.balanceUSD: ", token.token.balanceUSD);
|
|
191
|
+
totalBalanceUsdTokens_1 += token.token.balanceUSD;
|
|
133
192
|
}
|
|
134
193
|
else {
|
|
135
|
-
|
|
194
|
+
log.error(tag, "No caip found for network: ", network);
|
|
136
195
|
}
|
|
137
|
-
log.debug(tag, "token.balanceUSD: ", token.token.balanceUSD);
|
|
138
|
-
totalBalanceUsdTokens_1 += token.token.balanceUSD;
|
|
139
196
|
});
|
|
140
197
|
}
|
|
141
198
|
}
|
|
142
199
|
else {
|
|
143
|
-
output.tokens = [];
|
|
144
200
|
totalBalanceUsdTokens_1 = 0;
|
|
145
201
|
}
|
|
146
202
|
limit = 100;
|
|
147
203
|
allTokens = [];
|
|
148
204
|
cursor = null;
|
|
149
|
-
|
|
205
|
+
_c.label = 4;
|
|
150
206
|
case 4:
|
|
151
207
|
if (!true) return [3 /*break*/, 9];
|
|
152
|
-
|
|
208
|
+
_c.label = 5;
|
|
153
209
|
case 5:
|
|
154
|
-
|
|
210
|
+
_c.trys.push([5, 7, , 8]);
|
|
155
211
|
url = "https://api.zapper.xyz/v2/nft/user/tokens?userAddress=".concat(address, "&limit=").concat(limit);
|
|
156
212
|
if (cursor) {
|
|
157
213
|
url += "&cursor=".concat(cursor);
|
|
@@ -163,7 +219,7 @@ var get_portfolio = function (address) {
|
|
|
163
219
|
},
|
|
164
220
|
})];
|
|
165
221
|
case 6:
|
|
166
|
-
response =
|
|
222
|
+
response = _c.sent();
|
|
167
223
|
tokens = response.data;
|
|
168
224
|
//console.log("tokens: ",tokens)
|
|
169
225
|
allTokens = allTokens.concat(tokens.items);
|
|
@@ -173,12 +229,12 @@ var get_portfolio = function (address) {
|
|
|
173
229
|
}
|
|
174
230
|
return [3 /*break*/, 8];
|
|
175
231
|
case 7:
|
|
176
|
-
error_1 =
|
|
232
|
+
error_1 = _c.sent();
|
|
177
233
|
console.error(error_1);
|
|
178
234
|
return [3 /*break*/, 8];
|
|
179
235
|
case 8: return [3 /*break*/, 4];
|
|
180
236
|
case 9:
|
|
181
|
-
|
|
237
|
+
output_1.nfts = allTokens;
|
|
182
238
|
return [4 /*yield*/, Axios.get("https://api.zapper.xyz/v2/nft/balances/net-worth?addresses%5B%5D=".concat(address), {
|
|
183
239
|
headers: {
|
|
184
240
|
accept: "*/*",
|
|
@@ -186,17 +242,17 @@ var get_portfolio = function (address) {
|
|
|
186
242
|
},
|
|
187
243
|
})];
|
|
188
244
|
case 10:
|
|
189
|
-
nftResponse =
|
|
245
|
+
nftResponse = _c.sent();
|
|
190
246
|
nftUsdNetWorth = nftResponse.data;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
247
|
+
output_1.nftUsdNetWorth = nftUsdNetWorth;
|
|
248
|
+
output_1.totalBalanceUsdTokens = totalBalanceUsdTokens_1;
|
|
249
|
+
output_1.totalBalanceUSDApp = totalBalanceUSDApp_1;
|
|
194
250
|
totalNetWorth = totalBalanceUSDApp_1 + totalBalanceUsdTokens_1 + parseFloat(nftUsdNetWorth[address.toLowerCase()]);
|
|
195
251
|
//console.log("totalNetWorth: ",totalNetWorth);
|
|
196
|
-
|
|
197
|
-
return [2 /*return*/,
|
|
252
|
+
output_1.totalNetWorth = totalNetWorth;
|
|
253
|
+
return [2 /*return*/, output_1];
|
|
198
254
|
case 11:
|
|
199
|
-
e_1 =
|
|
255
|
+
e_1 = _c.sent();
|
|
200
256
|
console.error(tag, "e: ", e_1);
|
|
201
257
|
return [3 /*break*/, 12];
|
|
202
258
|
case 12: return [2 /*return*/];
|