@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.
- 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 -2
- 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) {
|
|
@@ -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 =
|
|
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 =
|
|
4630
|
+
ensHash = hash.namehash(hash.ensNormalize(ens));
|
|
4608
4631
|
return [4 /*yield*/, ensRegistry.owner(ensHash)];
|
|
4609
4632
|
case 1:
|
|
4610
4633
|
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) {
|
|
@@ -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 =
|
|
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 =
|
|
4621
|
+
ensHash = namehash(ensNormalize(ens));
|
|
4599
4622
|
return [4 /*yield*/, ensRegistry.owner(ensHash)];
|
|
4600
4623
|
case 1:
|
|
4601
4624
|
owner = _a.sent();
|