@snapshot-labs/snapshot.js 0.4.105 → 0.4.107

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) {
@@ -3027,6 +3035,21 @@ var networks = {
3027
3035
  testnet: true,
3028
3036
  start: 370457,
3029
3037
  logo: "ipfs://QmWkhZYhReYyaa5pQXj32hEGxoRcBqarFMcfQScELmjYQj"
3038
+ },
3039
+ "7332": {
3040
+ key: "7332",
3041
+ name: "Horizen EON",
3042
+ shortName: "EON",
3043
+ chainId: 7332,
3044
+ network: "mainnet",
3045
+ multicall: "0xC743e4910Bdd4e5aBacCA38F74cdA270281C5eef",
3046
+ rpc: [
3047
+ ],
3048
+ explorer: {
3049
+ url: "https://eon-explorer.horizenlabs.io"
3050
+ },
3051
+ start: 85108,
3052
+ logo: "ipfs://QmUYQdsnkUoiDiQ3WaWrtH7fsc5yQDC7kZJCHmC2qWPTPt"
3030
3053
  },
3031
3054
  "7341": {
3032
3055
  key: "7341",
@@ -4549,7 +4572,7 @@ function getEnsTextRecord(ens, record, network) {
4549
4572
  switch (_a.label) {
4550
4573
  case 0:
4551
4574
  ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4552
- ensHash = ethEnsNamehash.hash(ethEnsNamehash.normalize(ens));
4575
+ ensHash = hash.namehash(hash.ensNormalize(ens));
4553
4576
  provider = getProvider(network);
4554
4577
  return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }))];
4555
4578
  case 1:
@@ -4589,7 +4612,7 @@ function getEnsOwner(ens, network) {
4589
4612
  provider = getProvider(network);
4590
4613
  ensRegistry = new contracts.Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4591
4614
  ensNameWrapper = networks[network].ensNameWrapper;
4592
- ensHash = ethEnsNamehash.hash(ethEnsNamehash.normalize(ens));
4615
+ ensHash = hash.namehash(hash.ensNormalize(ens));
4593
4616
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4594
4617
  case 1:
4595
4618
  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) {
@@ -3018,6 +3026,21 @@ var networks = {
3018
3026
  testnet: true,
3019
3027
  start: 370457,
3020
3028
  logo: "ipfs://QmWkhZYhReYyaa5pQXj32hEGxoRcBqarFMcfQScELmjYQj"
3029
+ },
3030
+ "7332": {
3031
+ key: "7332",
3032
+ name: "Horizen EON",
3033
+ shortName: "EON",
3034
+ chainId: 7332,
3035
+ network: "mainnet",
3036
+ multicall: "0xC743e4910Bdd4e5aBacCA38F74cdA270281C5eef",
3037
+ rpc: [
3038
+ ],
3039
+ explorer: {
3040
+ url: "https://eon-explorer.horizenlabs.io"
3041
+ },
3042
+ start: 85108,
3043
+ logo: "ipfs://QmUYQdsnkUoiDiQ3WaWrtH7fsc5yQDC7kZJCHmC2qWPTPt"
3021
3044
  },
3022
3045
  "7341": {
3023
3046
  key: "7341",
@@ -4540,7 +4563,7 @@ function getEnsTextRecord(ens, record, network) {
4540
4563
  switch (_a.label) {
4541
4564
  case 0:
4542
4565
  ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4543
- ensHash = hash(normalize(ens));
4566
+ ensHash = namehash(ensNormalize(ens));
4544
4567
  provider = getProvider(network);
4545
4568
  return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }))];
4546
4569
  case 1:
@@ -4580,7 +4603,7 @@ function getEnsOwner(ens, network) {
4580
4603
  provider = getProvider(network);
4581
4604
  ensRegistry = new Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4582
4605
  ensNameWrapper = networks[network].ensNameWrapper;
4583
- ensHash = hash(normalize(ens));
4606
+ ensHash = namehash(ensNormalize(ens));
4584
4607
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4585
4608
  case 1:
4586
4609
  owner = _a.sent();