@pioneer-platform/zapper-client 8.3.7 → 8.3.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/lib/index.js +72 -24
- 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,44 @@ 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
|
+
balance.caip = balance.networkId + "/erc20:" + token.address;
|
|
127
|
+
balance.metaType = token.metaType || product.metaType;
|
|
128
|
+
balance.name = asset.displayProps.label;
|
|
129
|
+
balance.appId = app.appId;
|
|
130
|
+
balance.icon = asset.displayProps.images[0];
|
|
131
|
+
balance.display = asset.displayProps.images;
|
|
132
|
+
balance.groupId = asset.groupId;
|
|
133
|
+
balance.symbol = token.symbol;
|
|
134
|
+
balance.ticker = token.symbol;
|
|
135
|
+
balance.priceUsd = ((_a = token === null || token === void 0 ? void 0 : token.price) === null || _a === void 0 ? void 0 : _a.toString()) || '0';
|
|
136
|
+
balance.valueUsd = ((_b = token === null || token === void 0 ? void 0 : token.balanceUSD) === null || _b === void 0 ? void 0 : _b.toString()) || '0';
|
|
137
|
+
output_1.balances.push(balance);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
108
142
|
return [4 /*yield*/, Axios.get("https://api.zapper.xyz/v2/balances/tokens?addresses%5B%5D=".concat(address), {
|
|
109
143
|
headers: {
|
|
110
144
|
accept: "*/*",
|
|
@@ -112,12 +146,13 @@ var get_portfolio = function (address) {
|
|
|
112
146
|
},
|
|
113
147
|
})];
|
|
114
148
|
case 3:
|
|
115
|
-
tokensResponse =
|
|
149
|
+
tokensResponse = _c.sent();
|
|
150
|
+
console.log("tokensResponse: ", tokensResponse.data);
|
|
116
151
|
if (tokensResponse.data && tokensResponse.data[address.toLowerCase()]) {
|
|
117
152
|
tokens = tokensResponse.data;
|
|
118
153
|
totalBalanceUsdTokens_1 = 0;
|
|
119
154
|
tokens = tokens[address.toLowerCase()];
|
|
120
|
-
|
|
155
|
+
output_1.tokens = tokens;
|
|
121
156
|
log.info(tag, "tokens: ", tokens.length);
|
|
122
157
|
if (tokens) {
|
|
123
158
|
tokens.forEach(function (token) {
|
|
@@ -129,29 +164,42 @@ var get_portfolio = function (address) {
|
|
|
129
164
|
throw Error("no caip for network: " + network);
|
|
130
165
|
token.networkId = caip.split('/')[0];
|
|
131
166
|
if (token.token.address !== '0x0000000000000000000000000000000000000000') {
|
|
132
|
-
token.assetCaip =
|
|
167
|
+
token.assetCaip = token.networkId + "/erc20:" + token.token.address;
|
|
133
168
|
}
|
|
134
169
|
else {
|
|
135
170
|
token.assetCaip = caip;
|
|
136
171
|
}
|
|
172
|
+
var balance = {
|
|
173
|
+
balance: token.token.balance.toString(),
|
|
174
|
+
networkId: token.networkId,
|
|
175
|
+
chain: token.network,
|
|
176
|
+
caip: token.assetCaip,
|
|
177
|
+
type: 'erc20',
|
|
178
|
+
name: token.token.name,
|
|
179
|
+
symbol: token.token.symbol,
|
|
180
|
+
ticker: token.token.symbol,
|
|
181
|
+
decimals: token.token.decimals,
|
|
182
|
+
priceUsd: token.token.price,
|
|
183
|
+
valueUsd: token.token.balanceUSD.toString(),
|
|
184
|
+
};
|
|
185
|
+
output_1.balances.push(balance);
|
|
137
186
|
log.debug(tag, "token.balanceUSD: ", token.token.balanceUSD);
|
|
138
187
|
totalBalanceUsdTokens_1 += token.token.balanceUSD;
|
|
139
188
|
});
|
|
140
189
|
}
|
|
141
190
|
}
|
|
142
191
|
else {
|
|
143
|
-
output.tokens = [];
|
|
144
192
|
totalBalanceUsdTokens_1 = 0;
|
|
145
193
|
}
|
|
146
194
|
limit = 100;
|
|
147
195
|
allTokens = [];
|
|
148
196
|
cursor = null;
|
|
149
|
-
|
|
197
|
+
_c.label = 4;
|
|
150
198
|
case 4:
|
|
151
199
|
if (!true) return [3 /*break*/, 9];
|
|
152
|
-
|
|
200
|
+
_c.label = 5;
|
|
153
201
|
case 5:
|
|
154
|
-
|
|
202
|
+
_c.trys.push([5, 7, , 8]);
|
|
155
203
|
url = "https://api.zapper.xyz/v2/nft/user/tokens?userAddress=".concat(address, "&limit=").concat(limit);
|
|
156
204
|
if (cursor) {
|
|
157
205
|
url += "&cursor=".concat(cursor);
|
|
@@ -163,7 +211,7 @@ var get_portfolio = function (address) {
|
|
|
163
211
|
},
|
|
164
212
|
})];
|
|
165
213
|
case 6:
|
|
166
|
-
response =
|
|
214
|
+
response = _c.sent();
|
|
167
215
|
tokens = response.data;
|
|
168
216
|
//console.log("tokens: ",tokens)
|
|
169
217
|
allTokens = allTokens.concat(tokens.items);
|
|
@@ -173,12 +221,12 @@ var get_portfolio = function (address) {
|
|
|
173
221
|
}
|
|
174
222
|
return [3 /*break*/, 8];
|
|
175
223
|
case 7:
|
|
176
|
-
error_1 =
|
|
224
|
+
error_1 = _c.sent();
|
|
177
225
|
console.error(error_1);
|
|
178
226
|
return [3 /*break*/, 8];
|
|
179
227
|
case 8: return [3 /*break*/, 4];
|
|
180
228
|
case 9:
|
|
181
|
-
|
|
229
|
+
output_1.nfts = allTokens;
|
|
182
230
|
return [4 /*yield*/, Axios.get("https://api.zapper.xyz/v2/nft/balances/net-worth?addresses%5B%5D=".concat(address), {
|
|
183
231
|
headers: {
|
|
184
232
|
accept: "*/*",
|
|
@@ -186,17 +234,17 @@ var get_portfolio = function (address) {
|
|
|
186
234
|
},
|
|
187
235
|
})];
|
|
188
236
|
case 10:
|
|
189
|
-
nftResponse =
|
|
237
|
+
nftResponse = _c.sent();
|
|
190
238
|
nftUsdNetWorth = nftResponse.data;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
239
|
+
output_1.nftUsdNetWorth = nftUsdNetWorth;
|
|
240
|
+
output_1.totalBalanceUsdTokens = totalBalanceUsdTokens_1;
|
|
241
|
+
output_1.totalBalanceUSDApp = totalBalanceUSDApp_1;
|
|
194
242
|
totalNetWorth = totalBalanceUSDApp_1 + totalBalanceUsdTokens_1 + parseFloat(nftUsdNetWorth[address.toLowerCase()]);
|
|
195
243
|
//console.log("totalNetWorth: ",totalNetWorth);
|
|
196
|
-
|
|
197
|
-
return [2 /*return*/,
|
|
244
|
+
output_1.totalNetWorth = totalNetWorth;
|
|
245
|
+
return [2 /*return*/, output_1];
|
|
198
246
|
case 11:
|
|
199
|
-
e_1 =
|
|
247
|
+
e_1 = _c.sent();
|
|
200
248
|
console.error(tag, "e: ", e_1);
|
|
201
249
|
return [3 /*break*/, 12];
|
|
202
250
|
case 12: return [2 /*return*/];
|