@snapshot-labs/snapshot.js 0.4.106 → 0.4.108

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.
@@ -5,7 +5,7 @@ var address = require('@ethersproject/address');
5
5
  var abi = require('@ethersproject/abi');
6
6
  var contracts = require('@ethersproject/contracts');
7
7
  var units = require('@ethersproject/units');
8
- var ethEnsNamehash = require('@ensdomains/eth-ens-namehash');
8
+ var hash = require('@ethersproject/hash');
9
9
  var jsonToGraphqlQuery = require('json-to-graphql-query');
10
10
  var Ajv = require('ajv');
11
11
  var addFormats = require('ajv-formats');
@@ -13,7 +13,6 @@ var set = require('lodash.set');
13
13
  var providers$1 = require('@ethersproject/providers');
14
14
  var bytes = require('@ethersproject/bytes');
15
15
  var wallet = require('@ethersproject/wallet');
16
- var hash = require('@ethersproject/hash');
17
16
 
18
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
18
 
@@ -1213,19 +1212,29 @@ var Multicaller = /** @class */ (function () {
1213
1212
  }());
1214
1213
 
1215
1214
  var cache = {};
1215
+ var expirationTime = 0;
1216
1216
  function getSnapshots(network, snapshot, provider, networks) {
1217
1217
  return __awaiter(this, void 0, void 0, function () {
1218
- var cacheKey, snapshots, networkIn, block, query, url, data;
1218
+ var snapshots, cacheKey, cachedEntry, now, networkIn, block, query, url, data;
1219
1219
  return __generator(this, function (_a) {
1220
1220
  switch (_a.label) {
1221
1221
  case 0:
1222
- cacheKey = network + "-" + snapshot + "-" + networks.join('-');
1223
- if (cache[cacheKey])
1224
- return [2 /*return*/, cache[cacheKey]];
1225
1222
  snapshots = {};
1226
1223
  networks.forEach(function (n) { return (snapshots[n] = 'latest'); });
1227
1224
  if (snapshot === 'latest')
1228
1225
  return [2 /*return*/, snapshots];
1226
+ cacheKey = network + "-" + snapshot + "-" + networks.join('-');
1227
+ cachedEntry = cache[cacheKey];
1228
+ now = Date.now();
1229
+ if (cachedEntry && expirationTime > now) {
1230
+ return [2 /*return*/, cachedEntry];
1231
+ }
1232
+ // Reset cache every hour
1233
+ if (expirationTime < now) {
1234
+ cache = {};
1235
+ // Set expiration time to next hour
1236
+ expirationTime = now + 60 * 60 * 1000 - (now % (60 * 60 * 1000));
1237
+ }
1229
1238
  snapshots[network] = snapshot;
1230
1239
  networkIn = Object.keys(snapshots).filter(function (s) { return network !== s; });
1231
1240
  if (networkIn.length === 0)
@@ -1255,8 +1264,7 @@ function getSnapshots(network, snapshot, provider, networks) {
1255
1264
  }
1256
1265
  });
1257
1266
  });
1258
- }
1259
- setInterval(function () { return (cache = {}); }, 1000 * 60 * 60 * 1); // Clear cache every 1 hour
1267
+ }
1260
1268
 
1261
1269
  var providers = {};
1262
1270
  function getProvider(network) {
@@ -3109,6 +3117,21 @@ var networks = {
3109
3117
  url: "https://scope.klaytn.com/"
3110
3118
  },
3111
3119
  logo: "ipfs://QmYACyZcidcFtMo4Uf9H6ZKUxTP2TQPjGzNjcUjqYa64dt"
3120
+ },
3121
+ "8453": {
3122
+ key: "8453",
3123
+ name: "Base",
3124
+ shortName: "mainnet",
3125
+ chainId: 8453,
3126
+ network: "mainnet",
3127
+ multicall: "0xca11bde05977b3631167028862be2a173976ca11",
3128
+ rpc: [
3129
+ ],
3130
+ explorer: {
3131
+ url: "https://basescan.org/"
3132
+ },
3133
+ start: 5022,
3134
+ logo: "ipfs://QmaxRoHpxZd8PqccAynherrMznMufG6sdmHZLihkECXmZv"
3112
3135
  },
3113
3136
  "9000": {
3114
3137
  key: "9000",
@@ -4564,7 +4587,7 @@ function getEnsTextRecord(ens, record, network) {
4564
4587
  switch (_a.label) {
4565
4588
  case 0:
4566
4589
  ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4567
- ensHash = ethEnsNamehash.hash(ethEnsNamehash.normalize(ens));
4590
+ ensHash = hash.namehash(hash.ensNormalize(ens));
4568
4591
  provider = getProvider(network);
4569
4592
  return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }))];
4570
4593
  case 1:
@@ -4604,7 +4627,7 @@ function getEnsOwner(ens, network) {
4604
4627
  provider = getProvider(network);
4605
4628
  ensRegistry = new contracts.Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4606
4629
  ensNameWrapper = networks[network].ensNameWrapper;
4607
- ensHash = ethEnsNamehash.hash(ethEnsNamehash.normalize(ens));
4630
+ ensHash = hash.namehash(hash.ensNormalize(ens));
4608
4631
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4609
4632
  case 1:
4610
4633
  owner = _a.sent();
@@ -3,7 +3,7 @@ import { getAddress, isAddress } from '@ethersproject/address';
3
3
  import { Interface } from '@ethersproject/abi';
4
4
  import { Contract } from '@ethersproject/contracts';
5
5
  import { parseUnits } from '@ethersproject/units';
6
- import { hash, normalize } from '@ensdomains/eth-ens-namehash';
6
+ import { _TypedDataEncoder, namehash, ensNormalize } from '@ethersproject/hash';
7
7
  import { jsonToGraphQLQuery } from 'json-to-graphql-query';
8
8
  import Ajv from 'ajv';
9
9
  import addFormats from 'ajv-formats';
@@ -11,7 +11,6 @@ import set from 'lodash.set';
11
11
  import { StaticJsonRpcProvider } from '@ethersproject/providers';
12
12
  import { hexlify, arrayify } from '@ethersproject/bytes';
13
13
  import { verifyTypedData } from '@ethersproject/wallet';
14
- import { _TypedDataEncoder } from '@ethersproject/hash';
15
14
 
16
15
  /*! *****************************************************************************
17
16
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1204,19 +1203,29 @@ var Multicaller = /** @class */ (function () {
1204
1203
  }());
1205
1204
 
1206
1205
  var cache = {};
1206
+ var expirationTime = 0;
1207
1207
  function getSnapshots(network, snapshot, provider, networks) {
1208
1208
  return __awaiter(this, void 0, void 0, function () {
1209
- var cacheKey, snapshots, networkIn, block, query, url, data;
1209
+ var snapshots, cacheKey, cachedEntry, now, networkIn, block, query, url, data;
1210
1210
  return __generator(this, function (_a) {
1211
1211
  switch (_a.label) {
1212
1212
  case 0:
1213
- cacheKey = network + "-" + snapshot + "-" + networks.join('-');
1214
- if (cache[cacheKey])
1215
- return [2 /*return*/, cache[cacheKey]];
1216
1213
  snapshots = {};
1217
1214
  networks.forEach(function (n) { return (snapshots[n] = 'latest'); });
1218
1215
  if (snapshot === 'latest')
1219
1216
  return [2 /*return*/, snapshots];
1217
+ cacheKey = network + "-" + snapshot + "-" + networks.join('-');
1218
+ cachedEntry = cache[cacheKey];
1219
+ now = Date.now();
1220
+ if (cachedEntry && expirationTime > now) {
1221
+ return [2 /*return*/, cachedEntry];
1222
+ }
1223
+ // Reset cache every hour
1224
+ if (expirationTime < now) {
1225
+ cache = {};
1226
+ // Set expiration time to next hour
1227
+ expirationTime = now + 60 * 60 * 1000 - (now % (60 * 60 * 1000));
1228
+ }
1220
1229
  snapshots[network] = snapshot;
1221
1230
  networkIn = Object.keys(snapshots).filter(function (s) { return network !== s; });
1222
1231
  if (networkIn.length === 0)
@@ -1246,8 +1255,7 @@ function getSnapshots(network, snapshot, provider, networks) {
1246
1255
  }
1247
1256
  });
1248
1257
  });
1249
- }
1250
- setInterval(function () { return (cache = {}); }, 1000 * 60 * 60 * 1); // Clear cache every 1 hour
1258
+ }
1251
1259
 
1252
1260
  var providers = {};
1253
1261
  function getProvider(network) {
@@ -3100,6 +3108,21 @@ var networks = {
3100
3108
  url: "https://scope.klaytn.com/"
3101
3109
  },
3102
3110
  logo: "ipfs://QmYACyZcidcFtMo4Uf9H6ZKUxTP2TQPjGzNjcUjqYa64dt"
3111
+ },
3112
+ "8453": {
3113
+ key: "8453",
3114
+ name: "Base",
3115
+ shortName: "mainnet",
3116
+ chainId: 8453,
3117
+ network: "mainnet",
3118
+ multicall: "0xca11bde05977b3631167028862be2a173976ca11",
3119
+ rpc: [
3120
+ ],
3121
+ explorer: {
3122
+ url: "https://basescan.org/"
3123
+ },
3124
+ start: 5022,
3125
+ logo: "ipfs://QmaxRoHpxZd8PqccAynherrMznMufG6sdmHZLihkECXmZv"
3103
3126
  },
3104
3127
  "9000": {
3105
3128
  key: "9000",
@@ -4555,7 +4578,7 @@ function getEnsTextRecord(ens, record, network) {
4555
4578
  switch (_a.label) {
4556
4579
  case 0:
4557
4580
  ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4558
- ensHash = hash(normalize(ens));
4581
+ ensHash = namehash(ensNormalize(ens));
4559
4582
  provider = getProvider(network);
4560
4583
  return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }))];
4561
4584
  case 1:
@@ -4595,7 +4618,7 @@ function getEnsOwner(ens, network) {
4595
4618
  provider = getProvider(network);
4596
4619
  ensRegistry = new Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4597
4620
  ensNameWrapper = networks[network].ensNameWrapper;
4598
- ensHash = hash(normalize(ens));
4621
+ ensHash = namehash(ensNormalize(ens));
4599
4622
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4600
4623
  case 1:
4601
4624
  owner = _a.sent();