@defillama/sdk 2.3.125 → 3.0.1
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/build/abi/convertResults.js +42 -45
- package/build/abi/index.d.ts +1 -1
- package/build/abi/index.js +7 -7
- package/build/abi/multicall.js +8 -7
- package/build/abi/rpcCall.js +6 -6
- package/build/api.d.ts +2 -2
- package/build/api.js +7 -3
- package/build/computeTVL/blocks.js +3 -3
- package/build/computeTVL/humanizeNumber.js +1 -1
- package/build/computeTVL/prices.d.ts +1 -1
- package/build/computeTVL/prices.js +5 -5
- package/build/erc20/index.js +4 -4
- package/build/eth/index.js +4 -4
- package/build/general.d.ts +1 -1
- package/build/generalUtil.d.ts +7 -4
- package/build/generalUtil.js +53 -16
- package/build/index.js +5 -1
- package/build/types.d.ts +3 -3
- package/build/util/debugLog.d.ts +2 -0
- package/build/util/debugLog.js +14 -0
- package/build/util/index.d.ts +0 -9
- package/build/util/index.js +29 -55
- package/package.json +6 -13
- package/LICENSE +0 -661
- package/build/cdp/index.d.ts +0 -29
- package/build/cdp/index.js +0 -124
- package/build/cli.d.ts +0 -2
- package/build/cli.js +0 -95
- package/build/computeTVL/index.d.ts +0 -59
- package/build/computeTVL/index.js +0 -375
|
@@ -1,56 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
+
if (ar || !(i in from)) {
|
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
+
ar[i] = from[i];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
4
21
|
};
|
|
5
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
23
|
var bignumber_1 = require("@ethersproject/bignumber");
|
|
7
|
-
|
|
8
|
-
|
|
24
|
+
function isNumberOrBigNumber(value) {
|
|
25
|
+
return bignumber_1.BigNumber.isBigNumber(value) || typeof value === "number";
|
|
26
|
+
}
|
|
27
|
+
function stringifyBigNumbers(result) {
|
|
28
|
+
var final = __assign({}, result);
|
|
29
|
+
if (Array.isArray(result))
|
|
30
|
+
final = __spreadArray([], result, true);
|
|
9
31
|
Object.keys(result).forEach(function (key) {
|
|
10
|
-
|
|
11
|
-
final[key] =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (typeof final[key] === "object") {
|
|
17
|
-
stringifyBigNumbers(result[key], final[key]);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
catch (e) {
|
|
21
|
-
console.log(e);
|
|
22
|
-
}
|
|
32
|
+
if (isNumberOrBigNumber(result[key]))
|
|
33
|
+
final[key] = result[key].toString();
|
|
34
|
+
else if (typeof result[key] === "object")
|
|
35
|
+
final[key] = stringifyBigNumbers(result[key]);
|
|
36
|
+
else
|
|
37
|
+
final[key] = result[key];
|
|
23
38
|
});
|
|
24
|
-
|
|
25
|
-
function containsNamedResults(obj) {
|
|
26
|
-
return Object.keys(obj).some(function (key) { return isNaN(Number(key)); }); // Are there any non-numeric keys?
|
|
39
|
+
return final;
|
|
27
40
|
}
|
|
28
41
|
function default_1(results) {
|
|
29
|
-
|
|
42
|
+
var response;
|
|
43
|
+
if (typeof results === "string" || typeof results === "boolean")
|
|
30
44
|
return results;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
convertedResults = results.toString();
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
stringifyBigNumbers(results, convertedResults);
|
|
42
|
-
}
|
|
43
|
-
if (results instanceof Array) {
|
|
44
|
-
if (results.length === 1) {
|
|
45
|
-
return convertedResults[0];
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
// Some calls return the extra __length__ parameter (I think when some results are named)
|
|
49
|
-
if (containsNamedResults(convertedResults)) {
|
|
50
|
-
convertedResults["__length__"] = results.length;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return convertedResults;
|
|
45
|
+
if (isNumberOrBigNumber(results))
|
|
46
|
+
return results.toString();
|
|
47
|
+
response = stringifyBigNumbers(results);
|
|
48
|
+
if (response instanceof Array)
|
|
49
|
+
if (response.length === 1)
|
|
50
|
+
return response[0];
|
|
51
|
+
return response;
|
|
55
52
|
}
|
|
56
53
|
exports.default = default_1;
|
package/build/abi/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Address } from "../types";
|
|
2
2
|
import { Chain } from "../general";
|
|
3
|
-
|
|
3
|
+
type CallParams = string | number | (string | number)[] | undefined;
|
|
4
4
|
export declare function call(params: {
|
|
5
5
|
target: Address;
|
|
6
6
|
abi: string | any;
|
package/build/abi/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
29
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
30
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
31
|
switch (op[0]) {
|
|
@@ -57,6 +57,7 @@ var general_1 = require("../general");
|
|
|
57
57
|
var multicall_1 = __importDefault(require("./multicall"));
|
|
58
58
|
var convertResults_1 = __importDefault(require("./convertResults"));
|
|
59
59
|
var promise_pool_1 = require("@supercharge/promise-pool");
|
|
60
|
+
var debugLog_1 = require("../util/debugLog");
|
|
60
61
|
function resolveABI(providedAbi) {
|
|
61
62
|
var abi = providedAbi;
|
|
62
63
|
if (typeof abi === "string") {
|
|
@@ -91,7 +92,7 @@ function call(params) {
|
|
|
91
92
|
contractInterface = new ethers_1.ethers.utils.Interface([abi]);
|
|
92
93
|
functionABI = ethers_1.ethers.utils.FunctionFragment.from(abi);
|
|
93
94
|
callData = contractInterface.encodeFunctionData(functionABI, callParams);
|
|
94
|
-
return [4 /*yield*/, general_1.getProvider(params.chain).call({
|
|
95
|
+
return [4 /*yield*/, (0, general_1.getProvider)(params.chain).call({
|
|
95
96
|
to: params.target,
|
|
96
97
|
data: callData,
|
|
97
98
|
}, (_a = params.block) !== null && _a !== void 0 ? _a : "latest")];
|
|
@@ -99,7 +100,7 @@ function call(params) {
|
|
|
99
100
|
result = _b.sent();
|
|
100
101
|
decodedResult = contractInterface.decodeFunctionResult(functionABI, result);
|
|
101
102
|
return [2 /*return*/, {
|
|
102
|
-
output: convertResults_1.default(decodedResult),
|
|
103
|
+
output: (0, convertResults_1.default)(decodedResult),
|
|
103
104
|
}];
|
|
104
105
|
}
|
|
105
106
|
});
|
|
@@ -132,7 +133,7 @@ function multiCall(params) {
|
|
|
132
133
|
.process(function (calls, i) { return __awaiter(_this, void 0, void 0, function () {
|
|
133
134
|
var _a;
|
|
134
135
|
return __generator(this, function (_b) {
|
|
135
|
-
return [2 /*return*/, multicall_1.default(abi, calls, (_a = params.chain) !== null && _a !== void 0 ? _a : "ethereum", params.block).then(function (calls) { return [calls, i]; })];
|
|
136
|
+
return [2 /*return*/, (0, multicall_1.default)(abi, calls, (_a = params.chain) !== null && _a !== void 0 ? _a : "ethereum", params.block).then(function (calls) { return [calls, i]; })];
|
|
136
137
|
});
|
|
137
138
|
}); })];
|
|
138
139
|
case 1:
|
|
@@ -149,9 +150,8 @@ function multiCall(params) {
|
|
|
149
150
|
return c;
|
|
150
151
|
}));
|
|
151
152
|
failedQueries = flatResults.filter(function (r) { return !r.success; });
|
|
152
|
-
if (failedQueries.length
|
|
153
|
-
|
|
154
|
-
}
|
|
153
|
+
if (failedQueries.length)
|
|
154
|
+
(0, debugLog_1.debugLog)("Failed multicalls:", failedQueries.map(function (r) { return r.input; }));
|
|
155
155
|
if (!(params.requery === true && flatResults.some(function (r) { return !r.success; }))) return [3 /*break*/, 3];
|
|
156
156
|
failed = flatResults.map(function (r, i) { return [r, i]; }).filter(function (r) { return !r[0].success; });
|
|
157
157
|
return [4 /*yield*/, multiCall({
|
package/build/abi/multicall.js
CHANGED
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -82,7 +82,7 @@ function makeMultiCall(functionABI, calls, chain, block) {
|
|
|
82
82
|
return [2 /*return*/, returnValues.map(function (values, index) {
|
|
83
83
|
var output;
|
|
84
84
|
try {
|
|
85
|
-
output = convertResults_1.default(contractInterface.decodeFunctionResult(fd, values));
|
|
85
|
+
output = (0, convertResults_1.default)(contractInterface.decodeFunctionResult(fd, values));
|
|
86
86
|
}
|
|
87
87
|
catch (e) {
|
|
88
88
|
output = null;
|
|
@@ -131,7 +131,7 @@ function executeCalls(contractCalls, chain, block) {
|
|
|
131
131
|
to: address,
|
|
132
132
|
data: callData,
|
|
133
133
|
};
|
|
134
|
-
return [4 /*yield*/, rpcCall_1.call(general_1.getProvider(chain), tx, block !== null && block !== void 0 ? block : "latest", chain)];
|
|
134
|
+
return [4 /*yield*/, (0, rpcCall_1.call)((0, general_1.getProvider)(chain), tx, block !== null && block !== void 0 ? block : "latest", chain)];
|
|
135
135
|
case 4:
|
|
136
136
|
returnData = _b.sent();
|
|
137
137
|
_a = ethers_1.ethers.utils.defaultAbiCoder.decode(["uint256", "bytes[]"], returnData), blockNumber = _a[0], returnValues = _a[1];
|
|
@@ -150,7 +150,7 @@ function executeCalls(contractCalls, chain, block) {
|
|
|
150
150
|
switch (_b.label) {
|
|
151
151
|
case 0:
|
|
152
152
|
_b.trys.push([0, 2, , 3]);
|
|
153
|
-
return [4 /*yield*/, rpcCall_1.call(general_1.getProvider(chain), { to: to, data: data }, block !== null && block !== void 0 ? block : "latest", chain)];
|
|
153
|
+
return [4 /*yield*/, (0, rpcCall_1.call)((0, general_1.getProvider)(chain), { to: to, data: data }, block !== null && block !== void 0 ? block : "latest", chain)];
|
|
154
154
|
case 1: return [2 /*return*/, _b.sent()];
|
|
155
155
|
case 2:
|
|
156
156
|
e_2 = _b.sent();
|
|
@@ -172,12 +172,12 @@ function multicallAddressOrThrow(chain) {
|
|
|
172
172
|
var network, address, msg;
|
|
173
173
|
return __generator(this, function (_a) {
|
|
174
174
|
switch (_a.label) {
|
|
175
|
-
case 0: return [4 /*yield*/, general_1.getProvider(chain).getNetwork()];
|
|
175
|
+
case 0: return [4 /*yield*/, (0, general_1.getProvider)(chain).getNetwork()];
|
|
176
176
|
case 1:
|
|
177
177
|
network = _a.sent();
|
|
178
178
|
address = multicallAddress(network.chainId);
|
|
179
179
|
if (address === null) {
|
|
180
|
-
msg = "multicall is not available on the network "
|
|
180
|
+
msg = "multicall is not available on the network ".concat(network.chainId);
|
|
181
181
|
console.error(msg);
|
|
182
182
|
throw new Error(msg);
|
|
183
183
|
}
|
|
@@ -191,7 +191,7 @@ function networkSupportsMulticall(chain) {
|
|
|
191
191
|
var network, address;
|
|
192
192
|
return __generator(this, function (_a) {
|
|
193
193
|
switch (_a.label) {
|
|
194
|
-
case 0: return [4 /*yield*/, general_1.getProvider(chain).network];
|
|
194
|
+
case 0: return [4 /*yield*/, (0, general_1.getProvider)(chain).network];
|
|
195
195
|
case 1:
|
|
196
196
|
network = _a.sent();
|
|
197
197
|
address = multicallAddress(network.chainId);
|
|
@@ -283,6 +283,7 @@ function multicallAddress(chainId) {
|
|
|
283
283
|
case 1231: // ultron
|
|
284
284
|
case 2152: // findora
|
|
285
285
|
case 50: // xdc
|
|
286
|
+
case 52: // csc
|
|
286
287
|
return "0x18fA376d92511Dd04090566AB6144847c03557d8";
|
|
287
288
|
case 2222:
|
|
288
289
|
return "0x30A62aA52Fa099C4B227869EB6aeaDEda054d121"; // kava
|
package/build/abi/rpcCall.js
CHANGED
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -38,7 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.call = void 0;
|
|
40
40
|
var events_1 = require("events");
|
|
41
|
-
var
|
|
41
|
+
var debugLog_1 = require("../util/debugLog");
|
|
42
42
|
var maxParallelCalls = !!process.env.LLAMA_SDK_MAX_PARALLEL ? +process.env.LLAMA_SDK_MAX_PARALLEL : 100;
|
|
43
43
|
var COUNTERS = {};
|
|
44
44
|
var emitter = new events_1.EventEmitter();
|
|
@@ -61,20 +61,20 @@ function call(provider, data, block, chain) {
|
|
|
61
61
|
chain = 'noChain';
|
|
62
62
|
counter = getChainCounter(chain);
|
|
63
63
|
currentId = counter.requestCount++;
|
|
64
|
-
eventId = chain
|
|
64
|
+
eventId = "".concat(chain, "-").concat(currentId);
|
|
65
65
|
if (!(counter.activeWorkers > maxParallelCalls)) return [3 /*break*/, 2];
|
|
66
66
|
counter.queue.push(eventId);
|
|
67
|
-
return [4 /*yield*/, events_1.once(emitter, eventId)];
|
|
67
|
+
return [4 /*yield*/, (0, events_1.once)(emitter, eventId)];
|
|
68
68
|
case 1:
|
|
69
69
|
_a.sent();
|
|
70
70
|
_a.label = 2;
|
|
71
71
|
case 2:
|
|
72
72
|
counter.activeWorkers++;
|
|
73
|
-
if (
|
|
73
|
+
if (debugLog_1.DEBUG_ENABLED) {
|
|
74
74
|
showEveryX = counter.queue.length > 100 ? 50 : 10 // show log fewer times if lot more are queued up
|
|
75
75
|
;
|
|
76
76
|
if (currentId % showEveryX === 0)
|
|
77
|
-
console.log("chain: "
|
|
77
|
+
console.log("chain: ".concat(chain, " request #: ").concat(currentId, " queue: ").concat(counter.queue.length, " active requests: ").concat(counter.activeWorkers));
|
|
78
78
|
}
|
|
79
79
|
_a.label = 3;
|
|
80
80
|
case 3:
|
package/build/api.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export * as util from "./util";
|
|
2
2
|
export * as eth from "./eth";
|
|
3
3
|
export * as erc20 from "./erc20";
|
|
4
|
-
export * as cdp from "./cdp";
|
|
5
4
|
export * as abi from "./abi";
|
|
6
|
-
import { setProvider } from "./general";
|
|
5
|
+
import { setProvider, getProvider } from "./general";
|
|
7
6
|
declare const config: {
|
|
8
7
|
setProvider: typeof setProvider;
|
|
8
|
+
getProvider: typeof getProvider;
|
|
9
9
|
};
|
|
10
10
|
export { config };
|
package/build/api.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -19,14 +23,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
21
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.config = exports.abi = exports.
|
|
26
|
+
exports.config = exports.abi = exports.erc20 = exports.eth = exports.util = void 0;
|
|
23
27
|
exports.util = __importStar(require("./util"));
|
|
24
28
|
exports.eth = __importStar(require("./eth"));
|
|
25
29
|
exports.erc20 = __importStar(require("./erc20"));
|
|
26
|
-
exports.cdp = __importStar(require("./cdp"));
|
|
27
30
|
exports.abi = __importStar(require("./abi"));
|
|
28
31
|
var general_1 = require("./general");
|
|
29
32
|
var config = {
|
|
30
33
|
setProvider: general_1.setProvider,
|
|
34
|
+
getProvider: general_1.getProvider,
|
|
31
35
|
};
|
|
32
36
|
exports.config = config;
|
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -127,7 +127,7 @@ function getBlock(chain, timestamp) {
|
|
|
127
127
|
return __generator(this, function (_a) {
|
|
128
128
|
switch (_a.label) {
|
|
129
129
|
case 0:
|
|
130
|
-
provider = general_1.getProvider("ethereum");
|
|
130
|
+
provider = (0, general_1.getProvider)("ethereum");
|
|
131
131
|
return [4 /*yield*/, provider.getBlockNumber()];
|
|
132
132
|
case 1:
|
|
133
133
|
lastBlockNumber = _a.sent();
|
|
@@ -149,7 +149,7 @@ function getBlock(chain, timestamp) {
|
|
|
149
149
|
_a.label = 2;
|
|
150
150
|
case 2:
|
|
151
151
|
_a.trys.push([2, 4, , 5]);
|
|
152
|
-
return [4 /*yield*/, index_1.lookupBlock(timestamp, { chain: chain, })];
|
|
152
|
+
return [4 /*yield*/, (0, index_1.lookupBlock)(timestamp, { chain: chain, })];
|
|
153
153
|
case 3:
|
|
154
154
|
block = _a.sent();
|
|
155
155
|
return [2 /*return*/, block];
|
|
@@ -10,7 +10,7 @@ function humanizeNumber(amount) {
|
|
|
10
10
|
for (var _i = 0, quantifiers_1 = quantifiers; _i < quantifiers_1.length; _i++) {
|
|
11
11
|
var _a = quantifiers_1[_i], denominator = _a[0], letter = _a[1];
|
|
12
12
|
if (amount > denominator) {
|
|
13
|
-
return (amount / denominator).toFixed(2)
|
|
13
|
+
return "".concat((amount / denominator).toFixed(2), " ").concat(letter);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
return amount.toString();
|
|
@@ -3,7 +3,7 @@ export interface TokenPrices {
|
|
|
3
3
|
usd: number;
|
|
4
4
|
} | undefined;
|
|
5
5
|
}
|
|
6
|
-
export
|
|
6
|
+
export type GetCoingeckoLog = () => Promise<any>;
|
|
7
7
|
export declare function makeCoingeckoCall(url: string, coingeckoMaxRetries: number, getCoingeckoLock: GetCoingeckoLog): Promise<any>;
|
|
8
8
|
export declare function getTokenPrices(originalIds: string[], url: string, knownTokenPrices: TokenPrices, getCoingeckoLock: GetCoingeckoLog, coingeckoMaxRetries: number, prefix?: string): Promise<TokenPrices>;
|
|
9
9
|
export declare function getHistoricalTokenPrices(ids: string[], url: string, timestamp: number, getCoingeckoLock: GetCoingeckoLog, coingeckoMaxRetries: number): Promise<TokenPrices>;
|
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -42,7 +42,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
42
42
|
exports.getHistoricalTokenPrices = exports.getTokenPrices = exports.makeCoingeckoCall = void 0;
|
|
43
43
|
var node_fetch_1 = __importDefault(require("node-fetch"));
|
|
44
44
|
function fetchJson(url) {
|
|
45
|
-
return node_fetch_1.default(url).then(function (res) { return res.json(); });
|
|
45
|
+
return (0, node_fetch_1.default)(url).then(function (res) { return res.json(); });
|
|
46
46
|
}
|
|
47
47
|
function makeCoingeckoCall(url, coingeckoMaxRetries, getCoingeckoLock) {
|
|
48
48
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -100,9 +100,9 @@ function getTokenPrices(originalIds, url, knownTokenPrices, getCoingeckoLock, co
|
|
|
100
100
|
_a.label = 1;
|
|
101
101
|
case 1:
|
|
102
102
|
if (!(i < newIds.length)) return [3 /*break*/, 4];
|
|
103
|
-
return [4 /*yield*/, makeCoingeckoCall("https://api.coingecko.com/api/"
|
|
103
|
+
return [4 /*yield*/, makeCoingeckoCall("https://api.coingecko.com/api/".concat(url, "=").concat(newIds
|
|
104
104
|
.slice(i, i + 100)
|
|
105
|
-
.join(",")
|
|
105
|
+
.join(","), "&vs_currencies=usd"), coingeckoMaxRetries, getCoingeckoLock)];
|
|
106
106
|
case 2:
|
|
107
107
|
tempTokenPrices = _a.sent();
|
|
108
108
|
Object.assign(tokenPrices, tempTokenPrices);
|
|
@@ -133,7 +133,7 @@ function getHistoricalTokenPrices(ids, url, timestamp, getCoingeckoLock, coingec
|
|
|
133
133
|
case 1:
|
|
134
134
|
if (!(_i < ids_1.length)) return [3 /*break*/, 4];
|
|
135
135
|
id = ids_1[_i];
|
|
136
|
-
return [4 /*yield*/, makeCoingeckoCall(url
|
|
136
|
+
return [4 /*yield*/, makeCoingeckoCall("".concat(url, "/").concat(id.toLowerCase(), "/market_chart/range?vs_currency=usd&from=").concat(timestamp - secondsPerHalfDay, "&to=").concat(timestamp + secondsPerHalfDay), coingeckoMaxRetries, getCoingeckoLock)];
|
|
137
137
|
case 2:
|
|
138
138
|
range = _d.sent();
|
|
139
139
|
if (range.error === undefined && ((_a = range.prices) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
package/build/erc20/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -46,7 +46,7 @@ var abi = [
|
|
|
46
46
|
"function symbol() view returns (string)",
|
|
47
47
|
];
|
|
48
48
|
function getContract(address, chain) {
|
|
49
|
-
return new ethers_1.ethers.Contract(address, abi, general_1.getProvider(chain));
|
|
49
|
+
return new ethers_1.ethers.Contract(address, abi, (0, general_1.getProvider)(chain));
|
|
50
50
|
}
|
|
51
51
|
function info(tokenAddress, chain) {
|
|
52
52
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -116,7 +116,7 @@ function totalSupply(params) {
|
|
|
116
116
|
case 1:
|
|
117
117
|
supply = _b.sent();
|
|
118
118
|
return [2 /*return*/, {
|
|
119
|
-
output: general_1.handleDecimals(supply, params.decimals),
|
|
119
|
+
output: (0, general_1.handleDecimals)(supply, params.decimals),
|
|
120
120
|
}];
|
|
121
121
|
}
|
|
122
122
|
});
|
|
@@ -135,7 +135,7 @@ function balanceOf(params) {
|
|
|
135
135
|
case 1:
|
|
136
136
|
balance = _b.sent();
|
|
137
137
|
return [2 /*return*/, {
|
|
138
|
-
output: general_1.handleDecimals(balance, params.decimals),
|
|
138
|
+
output: (0, general_1.handleDecimals)(balance, params.decimals),
|
|
139
139
|
}];
|
|
140
140
|
}
|
|
141
141
|
});
|
package/build/eth/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -43,11 +43,11 @@ function getBalance(params) {
|
|
|
43
43
|
var balance;
|
|
44
44
|
return __generator(this, function (_a) {
|
|
45
45
|
switch (_a.label) {
|
|
46
|
-
case 0: return [4 /*yield*/, general_1.getProvider(params.chain).getBalance(params.target, params.block)];
|
|
46
|
+
case 0: return [4 /*yield*/, (0, general_1.getProvider)(params.chain).getBalance(params.target, params.block)];
|
|
47
47
|
case 1:
|
|
48
48
|
balance = _a.sent();
|
|
49
49
|
return [2 /*return*/, {
|
|
50
|
-
output: general_1.handleDecimals(balance, params.decimals),
|
|
50
|
+
output: (0, general_1.handleDecimals)(balance, params.decimals),
|
|
51
51
|
}];
|
|
52
52
|
}
|
|
53
53
|
});
|
|
@@ -73,7 +73,7 @@ function getBalances(params) {
|
|
|
73
73
|
target: target
|
|
74
74
|
};
|
|
75
75
|
_a = general_1.handleDecimals;
|
|
76
|
-
return [4 /*yield*/, general_1.getProvider(params.chain).getBalance(target, params.block)];
|
|
76
|
+
return [4 /*yield*/, (0, general_1.getProvider)(params.chain).getBalance(target, params.block)];
|
|
77
77
|
case 1: return [2 /*return*/, (_b.balance = _a.apply(void 0, [_c.sent(), params.decimals]),
|
|
78
78
|
_b)];
|
|
79
79
|
}
|
package/build/general.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ethers, BigNumber } from "ethers";
|
|
|
2
2
|
export declare const providers: {
|
|
3
3
|
[chain: string]: ethers.providers.BaseProvider;
|
|
4
4
|
};
|
|
5
|
-
export
|
|
5
|
+
export type Chain = "ethereum" | "bsc" | "polygon" | "heco" | "fantom" | "rsk" | "tomochain" | "xdai" | "avax" | "wan" | "iotex" | "harmony" | "thundercore" | "okexchain" | "optimism" | "arbitrum" | "kcc" | "celo" | "moonriver" | "shiden" | "palm" | "energyweb" | "energi" | "songbird" | "hpb" | "gochain" | "ethereumclassic" | "xdaiarb" | "kardia" | "fuse" | "smartbch" | "elastos" | "hoo" | "fusion" | "aurora" | "ronin" | "boba" | "cronos" | "polis" | "zyx" | "telos" | "metis" | "ubiq" | "velas" | "callisto" | "csc" | "nahmii" | "liquidchain" | "meter" | "theta" | "oasis" | "syscoin" | "moonbeam" | "curio" | "astar" | "godwoken" | "evmos" | "conflux" | "milkomeda" | "milkomeda_a1" | "dfk" | "bittorrent" | "findora" | "candle" | "lachain" | "reichain" | "rei" | "clv" | "echelon" | "multivac" | "sx" | "karura_evm" | "nova" | "ontology_evm" | "jfin" | "bitkub" | "bitgert" | "canto" | "dogechain" | "posi" | "arbitrum_nova" | "ultron" | "tombchain" | "vision" | "ethpow" | "functionx" | "cube" | "xdc" | "step" | "kekchain" | "muuchain";
|
|
6
6
|
export declare function getProvider(chain?: Chain): ethers.providers.BaseProvider;
|
|
7
7
|
export declare const TEN: ethers.BigNumber;
|
|
8
8
|
export declare function handleDecimals(num: BigNumber, decimals?: number): string;
|
package/build/generalUtil.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BigNumber } from "ethers";
|
|
2
|
+
import * as blocks from "./computeTVL/blocks";
|
|
3
|
+
import * as humanizeNumber from "./computeTVL/humanizeNumber";
|
|
2
4
|
import type { Balances, StringNumber, Address } from "./types";
|
|
3
5
|
export declare function sumMultiBalanceOf(balances: Balances, results: {
|
|
4
6
|
ethCallCount?: number;
|
|
@@ -11,9 +13,10 @@ export declare function sumMultiBalanceOf(balances: Balances, results: {
|
|
|
11
13
|
};
|
|
12
14
|
}[];
|
|
13
15
|
}, allCallsMustBeSuccessful?: boolean, transformAddress?: (addr: string) => string): void;
|
|
14
|
-
export declare function sumSingleBalance(balances: Balances, token: string, balance: string | number): void;
|
|
15
|
-
declare
|
|
16
|
+
export declare function sumSingleBalance(balances: Balances, token: string, balance: string | number | BigNumber, chain?: string): void;
|
|
17
|
+
export declare function mergeBalances(balances: Balances, balancesToMerge: Balances): void;
|
|
18
|
+
type ChainBlocks = {
|
|
16
19
|
[chain: string]: number;
|
|
17
20
|
};
|
|
18
21
|
export declare function sumChainTvls(chainTvls: Array<(timestamp: number, ethBlock: number, chainBlocks: ChainBlocks) => Promise<Balances>>): (timestamp: number, ethBlock: number, chainBlocks: ChainBlocks) => Promise<{}>;
|
|
19
|
-
export {
|
|
22
|
+
export { blocks, humanizeNumber, };
|
package/build/generalUtil.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -14,7 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
37
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
38
|
function step(op) {
|
|
16
39
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
40
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
41
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
42
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
43
|
switch (op[0]) {
|
|
@@ -35,14 +58,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
58
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
59
|
}
|
|
37
60
|
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.
|
|
62
|
+
exports.humanizeNumber = exports.blocks = exports.sumChainTvls = exports.mergeBalances = exports.sumSingleBalance = exports.sumMultiBalanceOf = void 0;
|
|
43
63
|
var ethers_1 = require("ethers");
|
|
44
|
-
var
|
|
45
|
-
exports.
|
|
64
|
+
var blocks = __importStar(require("./computeTVL/blocks"));
|
|
65
|
+
exports.blocks = blocks;
|
|
66
|
+
var humanizeNumber = __importStar(require("./computeTVL/humanizeNumber"));
|
|
67
|
+
exports.humanizeNumber = humanizeNumber;
|
|
46
68
|
// We ignore `sum` as it's never used (only in some SDK wrapper code)
|
|
47
69
|
function sumMultiBalanceOf(balances, results, allCallsMustBeSuccessful, transformAddress) {
|
|
48
70
|
if (allCallsMustBeSuccessful === void 0) { allCallsMustBeSuccessful = true; }
|
|
@@ -66,18 +88,32 @@ function sumMultiBalanceOf(balances, results, allCallsMustBeSuccessful, transfor
|
|
|
66
88
|
});
|
|
67
89
|
}
|
|
68
90
|
exports.sumMultiBalanceOf = sumMultiBalanceOf;
|
|
69
|
-
function sumSingleBalance(balances, token, balance) {
|
|
70
|
-
|
|
91
|
+
function sumSingleBalance(balances, token, balance, chain) {
|
|
92
|
+
if (chain)
|
|
93
|
+
token = "".concat(chain, ":").concat(token);
|
|
94
|
+
if (typeof balance === 'object') {
|
|
95
|
+
if (typeof balance.toString === 'function')
|
|
96
|
+
balance = balance.toString();
|
|
97
|
+
else
|
|
98
|
+
throw new Error('Invalid balance value:' + balance);
|
|
99
|
+
}
|
|
71
100
|
if (typeof balance === 'number') {
|
|
72
|
-
var prevBalance = (
|
|
73
|
-
if (typeof prevBalance !== 'number')
|
|
74
|
-
throw new Error("Trying to merge token balance and coingecko amount for "
|
|
75
|
-
|
|
76
|
-
|
|
101
|
+
var prevBalance = +(balances.hasOwnProperty(token) ? balances[token] : 0);
|
|
102
|
+
if (typeof prevBalance !== 'number' || isNaN(prevBalance))
|
|
103
|
+
throw new Error("Trying to merge token balance and coingecko amount for ".concat(token, " current balance: ").concat(balance, " previous balance: ").concat(balances[token]));
|
|
104
|
+
var value = prevBalance + balance;
|
|
105
|
+
isValidNumber(value);
|
|
106
|
+
balances[token] = value;
|
|
77
107
|
}
|
|
78
108
|
else {
|
|
79
|
-
var prevBalance = ethers_1.BigNumber.from((
|
|
80
|
-
|
|
109
|
+
var prevBalance = ethers_1.BigNumber.from(balances.hasOwnProperty(token) ? balances[token] : '0');
|
|
110
|
+
var value = prevBalance.add(ethers_1.BigNumber.from(balance)).toString();
|
|
111
|
+
isValidNumber(+value);
|
|
112
|
+
balances[token] = value;
|
|
113
|
+
}
|
|
114
|
+
function isValidNumber(value) {
|
|
115
|
+
if (isNaN(value))
|
|
116
|
+
throw new Error("Invalid balance: ".concat(balance));
|
|
81
117
|
}
|
|
82
118
|
}
|
|
83
119
|
exports.sumSingleBalance = sumSingleBalance;
|
|
@@ -86,6 +122,7 @@ function mergeBalances(balances, balancesToMerge) {
|
|
|
86
122
|
sumSingleBalance(balances, balance[0], balance[1]);
|
|
87
123
|
});
|
|
88
124
|
}
|
|
125
|
+
exports.mergeBalances = mergeBalances;
|
|
89
126
|
function sumChainTvls(chainTvls) {
|
|
90
127
|
var _this = this;
|
|
91
128
|
return function (timestamp, ethBlock, chainBlocks) { return __awaiter(_this, void 0, void 0, function () {
|
package/build/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|