@defillama/sdk 2.3.21 → 2.3.25
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/LICENSE +661 -661
- package/README.md +16 -16
- package/build/abi/cachedABIs.d.ts +4 -4
- package/build/abi/cachedABIs.js +70 -70
- package/build/abi/convertResults.d.ts +2 -2
- package/build/abi/convertResults.js +56 -56
- package/build/abi/index.d.ts +25 -25
- package/build/abi/index.js +166 -166
- package/build/abi/index.test.d.ts +1 -1
- package/build/abi/index.test.js +651 -651
- package/build/abi/multicall.d.ts +13 -13
- package/build/abi/multicall.js +210 -210
- package/build/api.d.ts +10 -10
- package/build/api.js +32 -32
- package/build/cdp/compoundTokens.d.ts +68 -68
- package/build/cdp/compoundTokens.js +69 -69
- package/build/cdp/index.d.ts +29 -29
- package/build/cdp/index.js +124 -124
- package/build/cdp/index.test.d.ts +1 -1
- package/build/cdp/index.test.js +82 -82
- package/build/cdp/makerTokens.d.ts +10 -10
- package/build/cdp/makerTokens.js +244 -244
- package/build/cli.d.ts +2 -2
- package/build/cli.js +95 -95
- package/build/computeTVL/blocks.d.ts +15 -15
- package/build/computeTVL/blocks.js +136 -136
- package/build/computeTVL/blocks.test.d.ts +1 -1
- package/build/computeTVL/blocks.test.js +56 -56
- package/build/computeTVL/humanizeNumber.d.ts +1 -1
- package/build/computeTVL/humanizeNumber.js +18 -18
- package/build/computeTVL/index.d.ts +50 -49
- package/build/computeTVL/index.js +371 -353
- package/build/computeTVL/index.test.d.ts +1 -1
- package/build/computeTVL/index.test.js +107 -107
- package/build/computeTVL/prices.d.ts +9 -9
- package/build/computeTVL/prices.js +163 -163
- package/build/erc20/index.d.ts +31 -31
- package/build/erc20/index.js +144 -144
- package/build/erc20/index.test.d.ts +1 -1
- package/build/erc20/index.test.js +124 -124
- package/build/eth/index.d.ts +21 -21
- package/build/eth/index.js +90 -90
- package/build/eth/index.test.d.ts +1 -1
- package/build/eth/index.test.js +122 -122
- package/build/general.d.ts +7 -7
- package/build/general.js +88 -88
- package/build/general.test.d.ts +1 -1
- package/build/general.test.js +73 -73
- package/build/generalUtil.d.ts +19 -19
- package/build/generalUtil.js +117 -117
- package/build/generalUtil.test.d.ts +1 -1
- package/build/generalUtil.test.js +59 -59
- package/build/index.d.ts +2 -2
- package/build/index.js +24 -24
- package/build/index.test.js +69 -69
- package/build/types.d.ts +5 -5
- package/build/types.js +2 -2
- package/build/util/index.d.ts +57 -57
- package/build/util/index.js +351 -351
- package/build/util/index.test.d.ts +1 -1
- package/build/util/index.test.js +314 -314
- package/build/util/tokenList.d.ts +14 -14
- package/build/util/tokenList.js +3631 -3631
- package/package.json +41 -41
package/build/eth/index.js
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
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
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.getBalances = exports.getBalance = void 0;
|
|
40
|
-
var general_1 = require("../general");
|
|
41
|
-
function getBalance(params) {
|
|
42
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
-
var balance;
|
|
44
|
-
return __generator(this, function (_a) {
|
|
45
|
-
switch (_a.label) {
|
|
46
|
-
case 0: return [4 /*yield*/, general_1.getProvider(params.chain).getBalance(params.target, params.block)];
|
|
47
|
-
case 1:
|
|
48
|
-
balance = _a.sent();
|
|
49
|
-
return [2 /*return*/, {
|
|
50
|
-
output: general_1.handleDecimals(balance, params.decimals),
|
|
51
|
-
}];
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
exports.getBalance = getBalance;
|
|
57
|
-
// TODO: Optimize this? (not sure if worth it tho, barely any adapters use it)
|
|
58
|
-
function getBalances(params) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
60
|
-
var balances;
|
|
61
|
-
var _a;
|
|
62
|
-
var _this = this;
|
|
63
|
-
return __generator(this, function (_b) {
|
|
64
|
-
switch (_b.label) {
|
|
65
|
-
case 0:
|
|
66
|
-
balances = params.targets.map(function (target) { return __awaiter(_this, void 0, void 0, function () {
|
|
67
|
-
var _a;
|
|
68
|
-
var _b;
|
|
69
|
-
return __generator(this, function (_c) {
|
|
70
|
-
switch (_c.label) {
|
|
71
|
-
case 0:
|
|
72
|
-
_b = {
|
|
73
|
-
target: target
|
|
74
|
-
};
|
|
75
|
-
_a = general_1.handleDecimals;
|
|
76
|
-
return [4 /*yield*/, general_1.getProvider(params.chain).getBalance(target, params.block)];
|
|
77
|
-
case 1: return [2 /*return*/, (_b.balance = _a.apply(void 0, [_c.sent(), params.decimals]),
|
|
78
|
-
_b)];
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}); });
|
|
82
|
-
_a = {};
|
|
83
|
-
return [4 /*yield*/, Promise.all(balances)];
|
|
84
|
-
case 1: return [2 /*return*/, (_a.output = _b.sent(),
|
|
85
|
-
_a)];
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
exports.getBalances = getBalances;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
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
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getBalances = exports.getBalance = void 0;
|
|
40
|
+
var general_1 = require("../general");
|
|
41
|
+
function getBalance(params) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var balance;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0: return [4 /*yield*/, general_1.getProvider(params.chain).getBalance(params.target, params.block)];
|
|
47
|
+
case 1:
|
|
48
|
+
balance = _a.sent();
|
|
49
|
+
return [2 /*return*/, {
|
|
50
|
+
output: general_1.handleDecimals(balance, params.decimals),
|
|
51
|
+
}];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
exports.getBalance = getBalance;
|
|
57
|
+
// TODO: Optimize this? (not sure if worth it tho, barely any adapters use it)
|
|
58
|
+
function getBalances(params) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
60
|
+
var balances;
|
|
61
|
+
var _a;
|
|
62
|
+
var _this = this;
|
|
63
|
+
return __generator(this, function (_b) {
|
|
64
|
+
switch (_b.label) {
|
|
65
|
+
case 0:
|
|
66
|
+
balances = params.targets.map(function (target) { return __awaiter(_this, void 0, void 0, function () {
|
|
67
|
+
var _a;
|
|
68
|
+
var _b;
|
|
69
|
+
return __generator(this, function (_c) {
|
|
70
|
+
switch (_c.label) {
|
|
71
|
+
case 0:
|
|
72
|
+
_b = {
|
|
73
|
+
target: target
|
|
74
|
+
};
|
|
75
|
+
_a = general_1.handleDecimals;
|
|
76
|
+
return [4 /*yield*/, general_1.getProvider(params.chain).getBalance(target, params.block)];
|
|
77
|
+
case 1: return [2 /*return*/, (_b.balance = _a.apply(void 0, [_c.sent(), params.decimals]),
|
|
78
|
+
_b)];
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}); });
|
|
82
|
+
_a = {};
|
|
83
|
+
return [4 /*yield*/, Promise.all(balances)];
|
|
84
|
+
case 1: return [2 /*return*/, (_a.output = _b.sent(),
|
|
85
|
+
_a)];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
exports.getBalances = getBalances;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
package/build/eth/index.test.js
CHANGED
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
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
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var index_1 = require("./index");
|
|
40
|
-
test("getBalance", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
-
var _a;
|
|
42
|
-
return __generator(this, function (_b) {
|
|
43
|
-
switch (_b.label) {
|
|
44
|
-
case 0:
|
|
45
|
-
_a = expect;
|
|
46
|
-
return [4 /*yield*/, index_1.getBalance({
|
|
47
|
-
target: "0xd5524179cB7AE012f5B642C1D6D700Bbaa76B96b",
|
|
48
|
-
block: 9424627,
|
|
49
|
-
})];
|
|
50
|
-
case 1:
|
|
51
|
-
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
52
|
-
output: "2694789147548299731168",
|
|
53
|
-
});
|
|
54
|
-
return [2 /*return*/];
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}); });
|
|
58
|
-
test("getBalance on all chains", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
59
|
-
var chains;
|
|
60
|
-
return __generator(this, function (_a) {
|
|
61
|
-
switch (_a.label) {
|
|
62
|
-
case 0:
|
|
63
|
-
chains = [
|
|
64
|
-
"ethereum",
|
|
65
|
-
"bsc",
|
|
66
|
-
"polygon",
|
|
67
|
-
"heco",
|
|
68
|
-
"fantom",
|
|
69
|
-
"rsk",
|
|
70
|
-
"tomochain",
|
|
71
|
-
];
|
|
72
|
-
return [4 /*yield*/, Promise.all(chains.map(function (chain) { return __awaiter(void 0, void 0, void 0, function () {
|
|
73
|
-
var ethOwned;
|
|
74
|
-
return __generator(this, function (_a) {
|
|
75
|
-
switch (_a.label) {
|
|
76
|
-
case 0: return [4 /*yield*/, index_1.getBalance({
|
|
77
|
-
target: "0x0000000000000000000000000000000000000000",
|
|
78
|
-
chain: chain,
|
|
79
|
-
})];
|
|
80
|
-
case 1:
|
|
81
|
-
ethOwned = _a.sent();
|
|
82
|
-
expect(ethOwned.output).toBeDefined();
|
|
83
|
-
return [2 /*return*/];
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}); }))];
|
|
87
|
-
case 1:
|
|
88
|
-
_a.sent();
|
|
89
|
-
return [2 /*return*/];
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}); });
|
|
93
|
-
test("getBalances", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
94
|
-
var _a;
|
|
95
|
-
return __generator(this, function (_b) {
|
|
96
|
-
switch (_b.label) {
|
|
97
|
-
case 0:
|
|
98
|
-
_a = expect;
|
|
99
|
-
return [4 /*yield*/, index_1.getBalances({
|
|
100
|
-
targets: [
|
|
101
|
-
"0xd5524179cB7AE012f5B642C1D6D700Bbaa76B96b",
|
|
102
|
-
"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359",
|
|
103
|
-
],
|
|
104
|
-
block: 9424627,
|
|
105
|
-
})];
|
|
106
|
-
case 1:
|
|
107
|
-
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
108
|
-
output: [
|
|
109
|
-
{
|
|
110
|
-
target: "0xd5524179cB7AE012f5B642C1D6D700Bbaa76B96b",
|
|
111
|
-
balance: "2694789147548299731168",
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
target: "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359",
|
|
115
|
-
balance: "0",
|
|
116
|
-
},
|
|
117
|
-
],
|
|
118
|
-
});
|
|
119
|
-
return [2 /*return*/];
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}); });
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
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
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var index_1 = require("./index");
|
|
40
|
+
test("getBalance", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
+
var _a;
|
|
42
|
+
return __generator(this, function (_b) {
|
|
43
|
+
switch (_b.label) {
|
|
44
|
+
case 0:
|
|
45
|
+
_a = expect;
|
|
46
|
+
return [4 /*yield*/, index_1.getBalance({
|
|
47
|
+
target: "0xd5524179cB7AE012f5B642C1D6D700Bbaa76B96b",
|
|
48
|
+
block: 9424627,
|
|
49
|
+
})];
|
|
50
|
+
case 1:
|
|
51
|
+
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
52
|
+
output: "2694789147548299731168",
|
|
53
|
+
});
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}); });
|
|
58
|
+
test("getBalance on all chains", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
59
|
+
var chains;
|
|
60
|
+
return __generator(this, function (_a) {
|
|
61
|
+
switch (_a.label) {
|
|
62
|
+
case 0:
|
|
63
|
+
chains = [
|
|
64
|
+
"ethereum",
|
|
65
|
+
"bsc",
|
|
66
|
+
"polygon",
|
|
67
|
+
"heco",
|
|
68
|
+
"fantom",
|
|
69
|
+
"rsk",
|
|
70
|
+
"tomochain",
|
|
71
|
+
];
|
|
72
|
+
return [4 /*yield*/, Promise.all(chains.map(function (chain) { return __awaiter(void 0, void 0, void 0, function () {
|
|
73
|
+
var ethOwned;
|
|
74
|
+
return __generator(this, function (_a) {
|
|
75
|
+
switch (_a.label) {
|
|
76
|
+
case 0: return [4 /*yield*/, index_1.getBalance({
|
|
77
|
+
target: "0x0000000000000000000000000000000000000000",
|
|
78
|
+
chain: chain,
|
|
79
|
+
})];
|
|
80
|
+
case 1:
|
|
81
|
+
ethOwned = _a.sent();
|
|
82
|
+
expect(ethOwned.output).toBeDefined();
|
|
83
|
+
return [2 /*return*/];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}); }))];
|
|
87
|
+
case 1:
|
|
88
|
+
_a.sent();
|
|
89
|
+
return [2 /*return*/];
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}); });
|
|
93
|
+
test("getBalances", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
94
|
+
var _a;
|
|
95
|
+
return __generator(this, function (_b) {
|
|
96
|
+
switch (_b.label) {
|
|
97
|
+
case 0:
|
|
98
|
+
_a = expect;
|
|
99
|
+
return [4 /*yield*/, index_1.getBalances({
|
|
100
|
+
targets: [
|
|
101
|
+
"0xd5524179cB7AE012f5B642C1D6D700Bbaa76B96b",
|
|
102
|
+
"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359",
|
|
103
|
+
],
|
|
104
|
+
block: 9424627,
|
|
105
|
+
})];
|
|
106
|
+
case 1:
|
|
107
|
+
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
108
|
+
output: [
|
|
109
|
+
{
|
|
110
|
+
target: "0xd5524179cB7AE012f5B642C1D6D700Bbaa76B96b",
|
|
111
|
+
balance: "2694789147548299731168",
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
target: "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359",
|
|
115
|
+
balance: "0",
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
});
|
|
119
|
+
return [2 /*return*/];
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}); });
|
package/build/general.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ethers, BigNumber } from "ethers";
|
|
2
|
-
export declare type Chain = "ethereum" | "bsc" | "polygon" | "heco" | "fantom" | "rsk" | "tomochain" | "xdai" | "avax" | "wan" | "iotex" | "harmony" | "thundercore" | "okexchain" | "optimism" | "arbitrum" | "energyweb" | "songbird" | "hpb" | "gochain" | "ethclassic" | "xdaiarb" | "kardia" | "fuse" | "smartbch" | "elastos" | "hoo" | "fusion" | "aurora" | "ronin" | "boba" | "cronos" | "polis" | "zyx" | "telos";
|
|
3
|
-
export declare function getProvider(chain?: Chain): ethers.providers.BaseProvider;
|
|
4
|
-
export declare const TEN: ethers.BigNumber;
|
|
5
|
-
export declare function handleDecimals(num: BigNumber, decimals?: number): string;
|
|
6
|
-
export declare const ETHER_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
7
|
-
export declare function setProvider(chain: Chain, provider: ethers.providers.BaseProvider): void;
|
|
1
|
+
import { ethers, BigNumber } from "ethers";
|
|
2
|
+
export declare type Chain = "ethereum" | "bsc" | "polygon" | "heco" | "fantom" | "rsk" | "tomochain" | "xdai" | "avax" | "wan" | "iotex" | "harmony" | "thundercore" | "okexchain" | "optimism" | "arbitrum" | "energyweb" | "songbird" | "hpb" | "gochain" | "ethclassic" | "xdaiarb" | "kardia" | "fuse" | "smartbch" | "elastos" | "hoo" | "fusion" | "aurora" | "ronin" | "boba" | "cronos" | "polis" | "zyx" | "telos";
|
|
3
|
+
export declare function getProvider(chain?: Chain): ethers.providers.BaseProvider;
|
|
4
|
+
export declare const TEN: ethers.BigNumber;
|
|
5
|
+
export declare function handleDecimals(num: BigNumber, decimals?: number): string;
|
|
6
|
+
export declare const ETHER_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
7
|
+
export declare function setProvider(chain: Chain, provider: ethers.providers.BaseProvider): void;
|
package/build/general.js
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setProvider = exports.ETHER_ADDRESS = exports.handleDecimals = exports.TEN = exports.getProvider = void 0;
|
|
4
|
-
var ethers_1 = require("ethers");
|
|
5
|
-
function createProvider(name, defaultRpc, chainId) {
|
|
6
|
-
var _a, _b, _c;
|
|
7
|
-
if (process.env.HISTORICAL) {
|
|
8
|
-
if (chainId === 1) {
|
|
9
|
-
console.log("RPC providers set to historical, only the first RPC provider will be used");
|
|
10
|
-
}
|
|
11
|
-
return new ethers_1.ethers.providers.StaticJsonRpcProvider((_b = (_a = process.env[name.toUpperCase() + "_RPC"]) === null || _a === void 0 ? void 0 : _a.split(',')[0]) !== null && _b !== void 0 ? _b : defaultRpc, {
|
|
12
|
-
name: name,
|
|
13
|
-
chainId: chainId,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return new ethers_1.ethers.providers.FallbackProvider(((_c = process.env[name.toUpperCase() + "_RPC"]) !== null && _c !== void 0 ? _c : defaultRpc).split(',').map(function (url, i) { return ({
|
|
18
|
-
provider: new ethers_1.ethers.providers.StaticJsonRpcProvider(url, {
|
|
19
|
-
name: name,
|
|
20
|
-
chainId: chainId,
|
|
21
|
-
}),
|
|
22
|
-
priority: i
|
|
23
|
-
}); }), 1);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
var providers = {
|
|
27
|
-
// https://ethereumnodes.com/
|
|
28
|
-
ethereum: createProvider("ethereum", "https://eth-mainnet.gateway.pokt.network/v1/5f3453978e354ab992c4da79,https://cloudflare-eth.com/,https://main-light.eth.linkpool.io/,https://api.mycryptoapi.com/eth", 1),
|
|
29
|
-
bsc: createProvider("bsc", "https://bsc-dataseed.binance.org/,https://bsc-dataseed1.defibit.io/,https://bsc-dataseed1.ninicoin.io/,https://bsc-dataseed2.defibit.io/,https://bsc-dataseed2.ninicoin.io/", 56),
|
|
30
|
-
polygon: createProvider("polygon", "https://polygon-rpc.com/,https://rpc-mainnet.maticvigil.com/", 137),
|
|
31
|
-
heco: createProvider("heco", "https://http-mainnet.hecochain.com,https://http-mainnet-node.huobichain.com,https://pub001.hg.network/rpc", 128),
|
|
32
|
-
fantom: createProvider("fantom", "https://rpc.ftm.tools/,https://rpcapi.fantom.network", 250),
|
|
33
|
-
rsk: createProvider("rsk", "https://public-node.rsk.co", 30),
|
|
34
|
-
tomochain: createProvider("tomochain", "https://rpc.tomochain.com", 88),
|
|
35
|
-
xdai: createProvider("xdai", "https://rpc.xdaichain.com/,https://xdai.poanetwork.dev,https://dai.poa.network,https://xdai-archive.blockscout.com", 100),
|
|
36
|
-
avax: createProvider("avax", "https://api.avax.network/ext/bc/C/rpc", 43114),
|
|
37
|
-
wan: createProvider("wan", "https://gwan-ssl.wandevs.org:56891", 888),
|
|
38
|
-
harmony: createProvider("harmony", "https://api.harmony.one,https://api.s0.t.hmny.io", 1666600000),
|
|
39
|
-
thundercore: createProvider("thundercore", "https://mainnet-rpc.thundercore.com", 108),
|
|
40
|
-
okexchain: createProvider("okexchain", "https://exchainrpc.okex.org", 66),
|
|
41
|
-
optimism: createProvider("optimism", "https://mainnet.optimism.io/", 10),
|
|
42
|
-
arbitrum: createProvider("arbitrum", "https://arb1.arbitrum.io/rpc", 42161),
|
|
43
|
-
kcc: createProvider("kcc", "https://rpc-mainnet.kcc.network", 321),
|
|
44
|
-
celo: createProvider("celo", "https://forno.celo.org", 42220),
|
|
45
|
-
iotex: createProvider("iotex", "https://babel-api.mainnet.iotex.io", 4689),
|
|
46
|
-
moonriver: createProvider("moonriver", "https://rpc.moonriver.moonbeam.network/", 1285),
|
|
47
|
-
shiden: createProvider("shiden", "https://rpc.shiden.astar.network:8545/", 336),
|
|
48
|
-
palm: createProvider("palm", "https://palm-mainnet.infura.io/v3/3a961d6501e54add9a41aa53f15de99b", 11297108109),
|
|
49
|
-
energyweb: createProvider("energyweb", "https://rpc.energyweb.org", 246),
|
|
50
|
-
songbird: createProvider("songbird", "https://songbird.towolabs.com/rpc", 19),
|
|
51
|
-
hpb: createProvider("hpb", "https://hpbnode.com", 269),
|
|
52
|
-
gochain: createProvider("gochain", "https://rpc.gochain.io", 60),
|
|
53
|
-
ethclassic: createProvider("ethclassic", "https://blockscout.com/etc/mainnet/api/eth-rpc,https://www.ethercluster.com/etc", 61),
|
|
54
|
-
xdaiarb: createProvider("xdaiarb", "https://arbitrum.xdaichain.com", 200),
|
|
55
|
-
kardia: createProvider("kardia", "https://rpc.kardiachain.io/", 0),
|
|
56
|
-
fuse: createProvider("fuse", "https://rpc.fuse.io", 122),
|
|
57
|
-
smartbch: createProvider("smartbch", "https://smartbch.fountainhead.cash/mainnet", 10000),
|
|
58
|
-
elastos: createProvider("elastos", "https://api.elastos.io/eth,https://api.trinity-tech.cn/eth", 20),
|
|
59
|
-
hoo: createProvider("hoo", "https://http-mainnet.hoosmartchain.com", 70),
|
|
60
|
-
fusion: createProvider("fusion", "https://mainnet.anyswap.exchange,https://mainway.freemoon.xyz/gate", 32659),
|
|
61
|
-
aurora: createProvider("aurora", "https://mainnet.aurora.dev", 1313161554),
|
|
62
|
-
ronin: createProvider("ronin", "https://api.roninchain.com/rpc", 2020),
|
|
63
|
-
boba: createProvider("boba", "https://mainnet.boba.network/", 288),
|
|
64
|
-
cronos: createProvider("cronos", "https://evm-cronos.crypto.org/", 25),
|
|
65
|
-
polis: createProvider("polis", "https://rpc.polis.tech", 333999),
|
|
66
|
-
zyx: createProvider("zyx", "https://rpc-1.zyx.network/,https://rpc-2.zyx.network/,https://rpc-3.zyx.network/,https://rpc-5.zyx.network/", 55),
|
|
67
|
-
telos: createProvider("telos", "https://mainnet.telos.net/evm/,https://rpc1.eu.telos.net/evm/,https://rpc1.us.telos.net/evm", 40),
|
|
68
|
-
};
|
|
69
|
-
function getProvider(chain) {
|
|
70
|
-
if (chain === void 0) { chain = "ethereum"; }
|
|
71
|
-
return providers[chain];
|
|
72
|
-
}
|
|
73
|
-
exports.getProvider = getProvider;
|
|
74
|
-
exports.TEN = ethers_1.BigNumber.from(10);
|
|
75
|
-
function handleDecimals(num, decimals) {
|
|
76
|
-
if (decimals === undefined) {
|
|
77
|
-
return num.toString();
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
return num.div(exports.TEN.pow(decimals)).toString();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.handleDecimals = handleDecimals;
|
|
84
|
-
exports.ETHER_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
85
|
-
function setProvider(chain, provider) {
|
|
86
|
-
providers[chain] = provider;
|
|
87
|
-
}
|
|
88
|
-
exports.setProvider = setProvider;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setProvider = exports.ETHER_ADDRESS = exports.handleDecimals = exports.TEN = exports.getProvider = void 0;
|
|
4
|
+
var ethers_1 = require("ethers");
|
|
5
|
+
function createProvider(name, defaultRpc, chainId) {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
if (process.env.HISTORICAL) {
|
|
8
|
+
if (chainId === 1) {
|
|
9
|
+
console.log("RPC providers set to historical, only the first RPC provider will be used");
|
|
10
|
+
}
|
|
11
|
+
return new ethers_1.ethers.providers.StaticJsonRpcProvider((_b = (_a = process.env[name.toUpperCase() + "_RPC"]) === null || _a === void 0 ? void 0 : _a.split(',')[0]) !== null && _b !== void 0 ? _b : defaultRpc, {
|
|
12
|
+
name: name,
|
|
13
|
+
chainId: chainId,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return new ethers_1.ethers.providers.FallbackProvider(((_c = process.env[name.toUpperCase() + "_RPC"]) !== null && _c !== void 0 ? _c : defaultRpc).split(',').map(function (url, i) { return ({
|
|
18
|
+
provider: new ethers_1.ethers.providers.StaticJsonRpcProvider(url, {
|
|
19
|
+
name: name,
|
|
20
|
+
chainId: chainId,
|
|
21
|
+
}),
|
|
22
|
+
priority: i
|
|
23
|
+
}); }), 1);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
var providers = {
|
|
27
|
+
// https://ethereumnodes.com/
|
|
28
|
+
ethereum: createProvider("ethereum", "https://eth-mainnet.gateway.pokt.network/v1/5f3453978e354ab992c4da79,https://cloudflare-eth.com/,https://main-light.eth.linkpool.io/,https://api.mycryptoapi.com/eth", 1),
|
|
29
|
+
bsc: createProvider("bsc", "https://bsc-dataseed.binance.org/,https://bsc-dataseed1.defibit.io/,https://bsc-dataseed1.ninicoin.io/,https://bsc-dataseed2.defibit.io/,https://bsc-dataseed2.ninicoin.io/", 56),
|
|
30
|
+
polygon: createProvider("polygon", "https://polygon-rpc.com/,https://rpc-mainnet.maticvigil.com/", 137),
|
|
31
|
+
heco: createProvider("heco", "https://http-mainnet.hecochain.com,https://http-mainnet-node.huobichain.com,https://pub001.hg.network/rpc", 128),
|
|
32
|
+
fantom: createProvider("fantom", "https://rpc.ftm.tools/,https://rpcapi.fantom.network", 250),
|
|
33
|
+
rsk: createProvider("rsk", "https://public-node.rsk.co", 30),
|
|
34
|
+
tomochain: createProvider("tomochain", "https://rpc.tomochain.com", 88),
|
|
35
|
+
xdai: createProvider("xdai", "https://rpc.xdaichain.com/,https://xdai.poanetwork.dev,https://dai.poa.network,https://xdai-archive.blockscout.com", 100),
|
|
36
|
+
avax: createProvider("avax", "https://api.avax.network/ext/bc/C/rpc", 43114),
|
|
37
|
+
wan: createProvider("wan", "https://gwan-ssl.wandevs.org:56891", 888),
|
|
38
|
+
harmony: createProvider("harmony", "https://api.harmony.one,https://api.s0.t.hmny.io", 1666600000),
|
|
39
|
+
thundercore: createProvider("thundercore", "https://mainnet-rpc.thundercore.com", 108),
|
|
40
|
+
okexchain: createProvider("okexchain", "https://exchainrpc.okex.org", 66),
|
|
41
|
+
optimism: createProvider("optimism", "https://mainnet.optimism.io/", 10),
|
|
42
|
+
arbitrum: createProvider("arbitrum", "https://arb1.arbitrum.io/rpc", 42161),
|
|
43
|
+
kcc: createProvider("kcc", "https://rpc-mainnet.kcc.network", 321),
|
|
44
|
+
celo: createProvider("celo", "https://forno.celo.org", 42220),
|
|
45
|
+
iotex: createProvider("iotex", "https://babel-api.mainnet.iotex.io", 4689),
|
|
46
|
+
moonriver: createProvider("moonriver", "https://rpc.moonriver.moonbeam.network/", 1285),
|
|
47
|
+
shiden: createProvider("shiden", "https://rpc.shiden.astar.network:8545/", 336),
|
|
48
|
+
palm: createProvider("palm", "https://palm-mainnet.infura.io/v3/3a961d6501e54add9a41aa53f15de99b", 11297108109),
|
|
49
|
+
energyweb: createProvider("energyweb", "https://rpc.energyweb.org", 246),
|
|
50
|
+
songbird: createProvider("songbird", "https://songbird.towolabs.com/rpc", 19),
|
|
51
|
+
hpb: createProvider("hpb", "https://hpbnode.com", 269),
|
|
52
|
+
gochain: createProvider("gochain", "https://rpc.gochain.io", 60),
|
|
53
|
+
ethclassic: createProvider("ethclassic", "https://blockscout.com/etc/mainnet/api/eth-rpc,https://www.ethercluster.com/etc", 61),
|
|
54
|
+
xdaiarb: createProvider("xdaiarb", "https://arbitrum.xdaichain.com", 200),
|
|
55
|
+
kardia: createProvider("kardia", "https://rpc.kardiachain.io/", 0),
|
|
56
|
+
fuse: createProvider("fuse", "https://rpc.fuse.io", 122),
|
|
57
|
+
smartbch: createProvider("smartbch", "https://smartbch.fountainhead.cash/mainnet", 10000),
|
|
58
|
+
elastos: createProvider("elastos", "https://api.elastos.io/eth,https://api.trinity-tech.cn/eth", 20),
|
|
59
|
+
hoo: createProvider("hoo", "https://http-mainnet.hoosmartchain.com", 70),
|
|
60
|
+
fusion: createProvider("fusion", "https://mainnet.anyswap.exchange,https://mainway.freemoon.xyz/gate", 32659),
|
|
61
|
+
aurora: createProvider("aurora", "https://mainnet.aurora.dev", 1313161554),
|
|
62
|
+
ronin: createProvider("ronin", "https://api.roninchain.com/rpc", 2020),
|
|
63
|
+
boba: createProvider("boba", "https://mainnet.boba.network/", 288),
|
|
64
|
+
cronos: createProvider("cronos", "https://evm-cronos.crypto.org/", 25),
|
|
65
|
+
polis: createProvider("polis", "https://rpc.polis.tech", 333999),
|
|
66
|
+
zyx: createProvider("zyx", "https://rpc-1.zyx.network/,https://rpc-2.zyx.network/,https://rpc-3.zyx.network/,https://rpc-5.zyx.network/", 55),
|
|
67
|
+
telos: createProvider("telos", "https://mainnet.telos.net/evm/,https://rpc1.eu.telos.net/evm/,https://rpc1.us.telos.net/evm", 40),
|
|
68
|
+
};
|
|
69
|
+
function getProvider(chain) {
|
|
70
|
+
if (chain === void 0) { chain = "ethereum"; }
|
|
71
|
+
return providers[chain];
|
|
72
|
+
}
|
|
73
|
+
exports.getProvider = getProvider;
|
|
74
|
+
exports.TEN = ethers_1.BigNumber.from(10);
|
|
75
|
+
function handleDecimals(num, decimals) {
|
|
76
|
+
if (decimals === undefined) {
|
|
77
|
+
return num.toString();
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return num.div(exports.TEN.pow(decimals)).toString();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.handleDecimals = handleDecimals;
|
|
84
|
+
exports.ETHER_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
85
|
+
function setProvider(chain, provider) {
|
|
86
|
+
providers[chain] = provider;
|
|
87
|
+
}
|
|
88
|
+
exports.setProvider = setProvider;
|