@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.
- package/dist/snapshot.cjs.js +33 -10
- package/dist/snapshot.esm.js +33 -10
- package/dist/snapshot.min.js +5 -16
- package/package.json +2 -2
- package/src/networks.json +15 -0
- package/src/utils/blockfinder.ts +19 -5
- package/src/utils.ts +3 -3
package/dist/snapshot.cjs.js
CHANGED
|
@@ -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
|
|
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,
|
|
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 =
|
|
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 =
|
|
4615
|
+
ensHash = hash.namehash(hash.ensNormalize(ens));
|
|
4593
4616
|
return [4 /*yield*/, ensRegistry.owner(ensHash)];
|
|
4594
4617
|
case 1:
|
|
4595
4618
|
owner = _a.sent();
|
package/dist/snapshot.esm.js
CHANGED
|
@@ -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 {
|
|
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,
|
|
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 =
|
|
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 =
|
|
4606
|
+
ensHash = namehash(ensNormalize(ens));
|
|
4584
4607
|
return [4 /*yield*/, ensRegistry.owner(ensHash)];
|
|
4585
4608
|
case 1:
|
|
4586
4609
|
owner = _a.sent();
|