@defillama/sdk 5.0.6 → 5.0.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.
@@ -42,6 +42,7 @@ var debugLog_1 = require("./debugLog");
42
42
  var r2_1 = require("./r2");
43
43
  var zlib_1 = require("zlib");
44
44
  var util_1 = require("util");
45
+ var env_1 = require("./env");
45
46
  var brotliOptions = (_a = {},
46
47
  _a[zlib_1.constants.BROTLI_PARAM_MODE] = zlib_1.constants.BROTLI_MODE_TEXT,
47
48
  _a[zlib_1.constants.BROTLI_PARAM_QUALITY] = zlib_1.constants.BROTLI_MAX_QUALITY,
@@ -58,7 +59,8 @@ var path = require('path');
58
59
  var foldersCreated = {};
59
60
  exports.currentVersion = 'zlib-1.0';
60
61
  function getCacheRootFolder() {
61
- return path.join(process.env.TVL_LOCAL_CACHE_ROOT_FOLDER || path.join(__dirname, 'local_cache'), exports.currentVersion);
62
+ var defaultCacheRootFolder = path.join(__dirname, 'local_cache');
63
+ return path.join((0, env_1.getEnvCacheFolder)(defaultCacheRootFolder), exports.currentVersion);
62
64
  }
63
65
  function getFilePath(file) {
64
66
  return path.join(getCacheRootFolder(), file);
@@ -152,10 +154,11 @@ exports.readCache = readCache;
152
154
  function writeCache(file, data, options) {
153
155
  if (options === void 0) { options = {}; }
154
156
  return __awaiter(this, void 0, void 0, function () {
155
- var fileData, _a, _b, _c, filePath;
157
+ var fileData, _a, _b, _c, filePath, error_4;
156
158
  return __generator(this, function (_d) {
157
159
  switch (_d.label) {
158
160
  case 0:
161
+ _d.trys.push([0, 9, , 10]);
159
162
  if (!options.alreadyCompressed) return [3 /*break*/, 1];
160
163
  _a = data;
161
164
  return [3 /*break*/, 3];
@@ -188,6 +191,11 @@ function writeCache(file, data, options) {
188
191
  _d.sent();
189
192
  _d.label = 8;
190
193
  case 8: return [2 /*return*/, fileData];
194
+ case 9:
195
+ error_4 = _d.sent();
196
+ (0, debugLog_1.debugLog)('Error writing cache:', error_4);
197
+ return [3 /*break*/, 10];
198
+ case 10: return [2 /*return*/];
191
199
  }
192
200
  });
193
201
  });
@@ -41,6 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.getCosmosProvider = exports.getCosmosBlock = exports.isCosmosChain = void 0;
43
43
  var node_fetch_1 = __importDefault(require("node-fetch"));
44
+ var env_1 = require("./env");
44
45
  // where to find chain info
45
46
  // https://proxy.atomscan.com/chains.json
46
47
  // https://cosmos-chain.directory/chains/cosmoshub
@@ -89,7 +90,7 @@ function getCosmosBlock(block, chain) {
89
90
  return __generator(this, function (_c) {
90
91
  switch (_c.label) {
91
92
  case 0:
92
- endPoint = process.env[chain.toUpperCase() + '_RPC'] || endPoints[chain] || 'https://rest.cosmos.directory/' + chain;
93
+ endPoint = (0, env_1.getEnvRPC)(chain) || endPoints[chain] || 'https://rest.cosmos.directory/' + chain;
93
94
  _c.label = 1;
94
95
  case 1:
95
96
  _c.trys.push([1, 4, , 5]);
@@ -1,3 +1,3 @@
1
- export declare const DEBUG_ENABLED: string | true | undefined;
1
+ export declare const DEBUG_ENABLED: boolean;
2
2
  export declare function debugLog(...args: any): void;
3
3
  export declare function debugTable(...args: any): void;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.debugTable = exports.debugLog = exports.DEBUG_ENABLED = void 0;
4
- exports.DEBUG_ENABLED = process.env.SDK_DEBUG === "true" || process.env.LLAMA_DEBUG_MODE;
4
+ var env_1 = require("./env");
5
+ exports.DEBUG_ENABLED = env_1.ENV_CONSTANTS.SDK_DEBUG === "true";
5
6
  function debugLog() {
6
7
  var args = [];
7
8
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -0,0 +1,14 @@
1
+ export declare const ENV_CONSTANTS: {
2
+ [x: string]: string | undefined;
3
+ };
4
+ export declare function getChainId(chain: string, chainId: number | undefined): number | undefined;
5
+ export declare function getMaxParallelRequests(chain: string): number;
6
+ export declare function getParallelGetLogsLimit(chain: string): number;
7
+ export declare function getEnvRPC(chain: string): string | undefined;
8
+ export declare function getEnvValue(key: string, defaultValue?: string): string | undefined;
9
+ export declare function getEnvCacheFolder(defaultCacheFolder: string): string;
10
+ export declare function getEnvMulticallAddress(chain: string): string | undefined;
11
+ export declare function getDefaultChunkSize(chain: string): number;
12
+ export declare function getBatchMaxCount(chain: string): number;
13
+ export declare function getArchivalRPCs(chain: string): string[];
14
+ export declare function getChainRPCs(chain: string, defaultList?: string[]): string | undefined;
@@ -0,0 +1,103 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getChainRPCs = exports.getArchivalRPCs = exports.getBatchMaxCount = exports.getDefaultChunkSize = exports.getEnvMulticallAddress = exports.getEnvCacheFolder = exports.getEnvValue = exports.getEnvRPC = exports.getParallelGetLogsLimit = exports.getMaxParallelRequests = exports.getChainId = exports.ENV_CONSTANTS = void 0;
15
+ var _ENV_CONSTANTS = {
16
+ DEBUG_ENABLED: getEnvValue('DEBUG') === "true" || process.env.LLAMA_DEBUG_MODE ? 'true' : 'false',
17
+ };
18
+ var whitelistedEnvConstants = [
19
+ 'R2_ENDPOINT', 'R2_ACCESS_KEY_ID', 'R2_SECRET_ACCESS_KEY', 'TRON_PRO_API_KEY',
20
+ ];
21
+ var defaultEnvValues = {
22
+ INTERNAL_SDK_CACHE_FILE: './cache.json',
23
+ TRON_RPC_CONCURRENCY_LIMIT: '5',
24
+ TRON_RPC: 'https://api.trongrid.io',
25
+ };
26
+ whitelistedEnvConstants.forEach(function (key) { return _ENV_CONSTANTS[key] = getEnvValue(key); });
27
+ Object.keys(defaultEnvValues).forEach(function (key) { return _ENV_CONSTANTS[key] = getEnvValue(key, defaultEnvValues[key]); });
28
+ // doing this as I am paranoid that that empty object when first declared might be exported before values are set
29
+ exports.ENV_CONSTANTS = __assign({}, _ENV_CONSTANTS);
30
+ function getChainId(chain, chainId) {
31
+ var _a;
32
+ var value = (_a = getEnvValue("".concat(chain, "_RPC_CHAIN_ID"))) !== null && _a !== void 0 ? _a : chainId;
33
+ if (value)
34
+ return +value;
35
+ }
36
+ exports.getChainId = getChainId;
37
+ function getMaxParallelRequests(chain) {
38
+ var chainKey = "".concat(chain, "_RPC_MAX_PARALLEL");
39
+ if (getEnvValue(chainKey))
40
+ return +getEnvValue(chainKey);
41
+ if (['harmony', 'avax'].includes(chain))
42
+ return 20;
43
+ return +getEnvValue('MAX_PARALLEL', '100');
44
+ }
45
+ exports.getMaxParallelRequests = getMaxParallelRequests;
46
+ function getParallelGetLogsLimit(chain) {
47
+ var defaultLimit = chain === 'fantom' ? '10' : '42';
48
+ return +(getEnvValue("".concat(chain, "_RPC_GET_LOGS_CONCURRENCY_LIMIT"), defaultLimit));
49
+ }
50
+ exports.getParallelGetLogsLimit = getParallelGetLogsLimit;
51
+ function getEnvRPC(chain) {
52
+ return getEnvValue("".concat(chain, "_RPC"));
53
+ }
54
+ exports.getEnvRPC = getEnvRPC;
55
+ function getEnvValue(key, defaultValue) {
56
+ var _a, _b, _c;
57
+ key = key.toUpperCase();
58
+ return (_c = (_b = (_a = process.env[key]) !== null && _a !== void 0 ? _a : process.env['SDK_' + key]) !== null && _b !== void 0 ? _b : process.env['LLAMA_SDK_' + key]) !== null && _c !== void 0 ? _c : defaultValue;
59
+ }
60
+ exports.getEnvValue = getEnvValue;
61
+ function getEnvCacheFolder(defaultCacheFolder) {
62
+ return getEnvValue('TVL_LOCAL_CACHE_ROOT_FOLDER', defaultCacheFolder);
63
+ }
64
+ exports.getEnvCacheFolder = getEnvCacheFolder;
65
+ function getEnvMulticallAddress(chain) {
66
+ return getEnvValue("".concat(chain, "_RPC_MULTICALL"));
67
+ }
68
+ exports.getEnvMulticallAddress = getEnvMulticallAddress;
69
+ function getDefaultChunkSize(chain) {
70
+ var key = chain + '_MULTICALL_CHUNK_SIZE';
71
+ if (getEnvValue(key))
72
+ return +getEnvValue(key);
73
+ if (chain === 'cronos')
74
+ return 50;
75
+ return +(getEnvValue('MULTICALL_CHUNK_SIZE', '300'));
76
+ }
77
+ exports.getDefaultChunkSize = getDefaultChunkSize;
78
+ function getBatchMaxCount(chain) {
79
+ var key = chain + 'BATCH_MAX_COUNT';
80
+ if (getEnvValue(key))
81
+ return +getEnvValue(key);
82
+ if (chain === 'cronos')
83
+ return 10;
84
+ return +(getEnvValue('BATCH_MAX_COUNT', '99'));
85
+ }
86
+ exports.getBatchMaxCount = getBatchMaxCount;
87
+ function getArchivalRPCs(chain) {
88
+ var key = chain + '_ARCHIVAL_RPC';
89
+ if (getEnvValue(key))
90
+ return getEnvValue(key).split(',');
91
+ return [];
92
+ }
93
+ exports.getArchivalRPCs = getArchivalRPCs;
94
+ function getChainRPCs(chain, defaultList) {
95
+ if (defaultList === void 0) { defaultList = []; }
96
+ var key = chain + '_RPC';
97
+ if (getEnvValue(key))
98
+ return getEnvValue(key).split(',').concat(defaultList).join(',');
99
+ if (defaultList.length === 0)
100
+ return undefined;
101
+ return defaultList.join(',');
102
+ }
103
+ exports.getChainRPCs = getChainRPCs;
@@ -111,9 +111,9 @@ function getLogs(params) {
111
111
  case 4:
112
112
  e_1 = _b.sent();
113
113
  (0, debugLog_1.debugLog)("Error fetching logs for chain ".concat(params.chain, " blockSpread: ").concat(blockSpread, ". ").concat((0, generalUtil_1.formError)(e_1, { chain: params.chain, target: params.target, provider: provider })));
114
- if (blockSpread >= 2e3) {
114
+ if (blockSpread >= 1500) {
115
115
  // We got too many results
116
- // We could chop it up into 2K block spreads as that is guaranteed to always return but then we'll have to make a lot of queries (easily >1000), so instead we'll keep dividing the block spread by two until we make it
116
+ // We could chop it up into 1500 block spreads as that is guaranteed to always return but then we'll have to make a lot of queries (easily >1000), so instead we'll keep dividing the block spread by two until we make it
117
117
  blockSpread = Math.floor(blockSpread / 2);
118
118
  }
119
119
  else {
@@ -25,8 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.retriveCache = exports.startCache = exports.saveCache = exports.setCache = exports.getCache = void 0;
27
27
  var fs = __importStar(require("fs"));
28
+ var env_1 = require("./env");
28
29
  // const cacheFile = __dirname + '/../../../sc-cache1.json'
29
- var cacheFile = process.env.INTERNAL_SDK_CACHE_FILE;
30
+ var cacheFile = env_1.ENV_CONSTANTS.INTERNAL_SDK_CACHE_FILE;
30
31
  var cache = {};
31
32
  // if (cacheFile) cache = require(cacheFile) // disabled for now
32
33
  function getCache(options) {
@@ -57,6 +57,7 @@ var blocks_1 = require("./blocks");
57
57
  var cache_1 = require("./cache");
58
58
  var debugLog_1 = require("./debugLog");
59
59
  var p_limit_1 = __importDefault(require("p-limit"));
60
+ var env_1 = require("./env");
60
61
  var currentVersion = 'v2';
61
62
  function getLogs(options) {
62
63
  return __awaiter(this, void 0, void 0, function () {
@@ -240,10 +241,7 @@ function getChainLimiter(chain) {
240
241
  chainLimiters[chain] = createLimiter(chain);
241
242
  return chainLimiters[chain];
242
243
  function createLimiter(chain) {
243
- var _a;
244
- var defaultLimit = chain === 'fantom' ? 10 : 20;
245
- var limit = +((_a = process.env["".concat(chain.toUpperCase(), "_RPC_GET_LOGS_CONCURRENCY_LIMIT")]) !== null && _a !== void 0 ? _a : defaultLimit);
246
- return (0, p_limit_1.default)(limit);
244
+ return (0, p_limit_1.default)((0, env_1.getParallelGetLogsLimit)(chain));
247
245
  }
248
246
  }
249
247
  exports.default = getLogs;
package/build/util/r2.js CHANGED
@@ -37,8 +37,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.getR2JSONString = exports.storeR2JSONString = void 0;
40
+ var env_1 = require("./env");
40
41
  var _a = require("@aws-sdk/client-s3"), S3Client = _a.S3Client, PutObjectCommand = _a.PutObjectCommand, GetObjectCommand = _a.GetObjectCommand;
41
- var _b = process.env, R2_ENDPOINT = _b.R2_ENDPOINT, R2_ACCESS_KEY_ID = _b.R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY = _b.R2_SECRET_ACCESS_KEY;
42
+ var R2_ENDPOINT = env_1.ENV_CONSTANTS.R2_ENDPOINT, R2_ACCESS_KEY_ID = env_1.ENV_CONSTANTS.R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY = env_1.ENV_CONSTANTS.R2_SECRET_ACCESS_KEY;
42
43
  var datasetBucket = "defillama-datasets";
43
44
  var publicBucketUrl = "https://defillama-datasets.llama.fi";
44
45
  var R2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defillama/sdk",
3
- "version": "5.0.6",
3
+ "version": "5.0.9",
4
4
  "description": "SDK for calculating TVL",
5
5
  "main": "build/index.js",
6
6
  "scripts": {