@snapshot-labs/snapshot.js 0.5.5 → 0.5.6

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.
@@ -1,4 +1,4 @@
1
1
  import { StaticJsonRpcProvider } from '@ethersproject/providers';
2
2
  export declare function verifyDefault(address: string, sig: string, hash: string, provider: StaticJsonRpcProvider): Promise<boolean>;
3
3
  export declare function verifyOldVersion(address: string, sig: string, hash: string, provider: StaticJsonRpcProvider): Promise<boolean>;
4
- export declare function verify(address: any, sig: any, hash: any, network?: string): Promise<boolean>;
4
+ export declare function verify(address: any, sig: any, hash: any, network?: string, options?: {}): Promise<boolean>;
@@ -1,2 +1,2 @@
1
1
  export declare function getHash(data: any): string;
2
- export declare function verify(address: any, sig: any, data: any, network?: string): Promise<boolean>;
2
+ export declare function verify(address: any, sig: any, data: any, network?: string, options?: {}): Promise<boolean>;
@@ -1216,7 +1216,8 @@ var Multicaller = /** @class */ (function () {
1216
1216
 
1217
1217
  var cache = {};
1218
1218
  var expirationTime = 0;
1219
- function getSnapshots(network, snapshot, provider, networks) {
1219
+ function getSnapshots(network, snapshot, provider, networks, options) {
1220
+ if (options === void 0) { options = {}; }
1220
1221
  return __awaiter(this, void 0, void 0, function () {
1221
1222
  var snapshots, cacheKey, cachedEntry, now, networkIn, block, query, url, data;
1222
1223
  return __generator(this, function (_a) {
@@ -1257,7 +1258,7 @@ function getSnapshots(network, snapshot, provider, networks) {
1257
1258
  number: true
1258
1259
  }
1259
1260
  };
1260
- url = 'https://blockfinder.snapshot.org';
1261
+ url = options.blockFinderUrl || 'https://blockfinder.snapshot.org';
1261
1262
  return [4 /*yield*/, subgraphRequest(url, query)];
1262
1263
  case 2:
1263
1264
  data = _a.sent();
@@ -1270,8 +1271,9 @@ function getSnapshots(network, snapshot, provider, networks) {
1270
1271
  }
1271
1272
 
1272
1273
  var providers = {};
1273
- function getProvider(network) {
1274
- var url = "https://rpc.snapshot.org/" + network;
1274
+ function getProvider(network, _a) {
1275
+ var _b = (_a === void 0 ? {} : _a).broviderUrl, broviderUrl = _b === void 0 ? 'https://rpc.snapshot.org' : _b;
1276
+ var url = broviderUrl + "/" + network;
1275
1277
  if (!providers[network])
1276
1278
  providers[network] = new providers$1.StaticJsonRpcProvider({
1277
1279
  url: url,
@@ -1356,14 +1358,15 @@ function verifyOldVersion(address, sig, hash, provider) {
1356
1358
  });
1357
1359
  });
1358
1360
  }
1359
- function verify(address, sig, hash, network) {
1361
+ function verify(address, sig, hash, network, options) {
1360
1362
  if (network === void 0) { network = '1'; }
1363
+ if (options === void 0) { options = {}; }
1361
1364
  return __awaiter(this, void 0, void 0, function () {
1362
1365
  var provider;
1363
1366
  return __generator(this, function (_a) {
1364
1367
  switch (_a.label) {
1365
1368
  case 0:
1366
- provider = getProvider(network);
1369
+ provider = getProvider(network, options);
1367
1370
  return [4 /*yield*/, verifyDefault(address, sig, hash, provider)];
1368
1371
  case 1:
1369
1372
  if (_a.sent())
@@ -1379,8 +1382,9 @@ function getHash(data) {
1379
1382
  var domain = data.domain, types = data.types, message = data.message;
1380
1383
  return hash._TypedDataEncoder.hash(domain, types, message);
1381
1384
  }
1382
- function verify$1(address, sig, data, network) {
1385
+ function verify$1(address, sig, data, network, options) {
1383
1386
  if (network === void 0) { network = '1'; }
1387
+ if (options === void 0) { options = {}; }
1384
1388
  return __awaiter(this, void 0, void 0, function () {
1385
1389
  var domain, types, message, hash, recoverAddress;
1386
1390
  return __generator(this, function (_a) {
@@ -1399,7 +1403,7 @@ function verify$1(address, sig, data, network) {
1399
1403
  catch (e) {
1400
1404
  // console.log('Could not recoverAddress:' + e.message);
1401
1405
  }
1402
- return [4 /*yield*/, verify(address, sig, hash, network)];
1406
+ return [4 /*yield*/, verify(address, sig, hash, network, options)];
1403
1407
  case 1:
1404
1408
  // console.log('Check EIP1271 signature');
1405
1409
  return [2 /*return*/, _a.sent()];
@@ -4346,14 +4350,15 @@ function call(provider, abi, call, options) {
4346
4350
  }
4347
4351
  function multicall(network, provider, abi$1, calls, options) {
4348
4352
  return __awaiter(this, void 0, void 0, function () {
4349
- var multicallAbi, multi, itf, max_1, pages, promises_1, results, e_2;
4353
+ var multicallAbi, multicallAddress, multi, itf, max_1, pages, promises_1, results, e_2;
4350
4354
  return __generator(this, function (_a) {
4351
4355
  switch (_a.label) {
4352
4356
  case 0:
4353
4357
  multicallAbi = [
4354
4358
  'function aggregate(tuple(address target, bytes callData)[] calls) view returns (uint256 blockNumber, bytes[] returnData)'
4355
4359
  ];
4356
- multi = new contracts.Contract(networks[network].multicall, multicallAbi, provider);
4360
+ multicallAddress = (options === null || options === void 0 ? void 0 : options.multicallAddress) || networks[network].multicall;
4361
+ multi = new contracts.Contract(multicallAddress, multicallAbi, provider);
4357
4362
  itf = new abi.Interface(abi$1);
4358
4363
  _a.label = 1;
4359
4364
  case 1:
@@ -4436,11 +4441,12 @@ function getUrl(uri, gateway) {
4436
4441
  return uri.replace('ipns://', ipfsGateway + "/ipns/");
4437
4442
  return uri;
4438
4443
  }
4439
- function getJSON(uri) {
4444
+ function getJSON(uri, options) {
4445
+ if (options === void 0) { options = {}; }
4440
4446
  return __awaiter(this, void 0, void 0, function () {
4441
4447
  var url;
4442
4448
  return __generator(this, function (_a) {
4443
- url = getUrl(uri);
4449
+ url = getUrl(uri, options.gateways);
4444
4450
  return [2 /*return*/, fetch__default['default'](url).then(function (res) { return res.json(); })];
4445
4451
  });
4446
4452
  });
@@ -4601,17 +4607,20 @@ function validateSchema(schema, data) {
4601
4607
  var valid = ajvValidate(data);
4602
4608
  return valid ? valid : ajvValidate.errors;
4603
4609
  }
4604
- function getEnsTextRecord(ens, record, network) {
4610
+ function getEnsTextRecord(ens, record, network, options) {
4605
4611
  if (network === void 0) { network = '1'; }
4612
+ if (options === void 0) { options = {}; }
4606
4613
  return __awaiter(this, void 0, void 0, function () {
4607
4614
  var ensResolvers, ensHash, provider, result;
4608
4615
  return __generator(this, function (_a) {
4609
4616
  switch (_a.label) {
4610
4617
  case 0:
4611
- ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4618
+ ensResolvers = options.ensResolvers ||
4619
+ networks[network].ensResolvers ||
4620
+ networks['1'].ensResolvers;
4612
4621
  ensHash = hash.namehash(hash.ensNormalize(ens));
4613
- provider = getProvider(network);
4614
- return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }))];
4622
+ provider = getProvider(network, options);
4623
+ return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }), options)];
4615
4624
  case 1:
4616
4625
  result = _a.sent();
4617
4626
  return [2 /*return*/, result.flat().find(function (r) { return r; }) || ''];
@@ -4619,15 +4628,16 @@ function getEnsTextRecord(ens, record, network) {
4619
4628
  });
4620
4629
  });
4621
4630
  }
4622
- function getSpaceUri(id, network) {
4631
+ function getSpaceUri(id, network, options) {
4623
4632
  if (network === void 0) { network = '1'; }
4633
+ if (options === void 0) { options = {}; }
4624
4634
  return __awaiter(this, void 0, void 0, function () {
4625
4635
  var e_4;
4626
4636
  return __generator(this, function (_a) {
4627
4637
  switch (_a.label) {
4628
4638
  case 0:
4629
4639
  _a.trys.push([0, 2, , 3]);
4630
- return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network)];
4640
+ return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network, options)];
4631
4641
  case 1: return [2 /*return*/, _a.sent()];
4632
4642
  case 2:
4633
4643
  e_4 = _a.sent();
@@ -4638,17 +4648,18 @@ function getSpaceUri(id, network) {
4638
4648
  });
4639
4649
  });
4640
4650
  }
4641
- function getEnsOwner(ens, network) {
4651
+ function getEnsOwner(ens, network, options) {
4642
4652
  if (network === void 0) { network = '1'; }
4653
+ if (options === void 0) { options = {}; }
4643
4654
  return __awaiter(this, void 0, void 0, function () {
4644
4655
  var registryAddress, provider, ensRegistry, ensNameWrapper, ensHash, owner, ensNameWrapperContract;
4645
4656
  return __generator(this, function (_a) {
4646
4657
  switch (_a.label) {
4647
4658
  case 0:
4648
4659
  registryAddress = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
4649
- provider = getProvider(network);
4660
+ provider = getProvider(network, options);
4650
4661
  ensRegistry = new contracts.Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4651
- ensNameWrapper = networks[network].ensNameWrapper;
4662
+ ensNameWrapper = options.ensNameWrapper || networks[network].ensNameWrapper;
4652
4663
  ensHash = hash.namehash(hash.ensNormalize(ens));
4653
4664
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4654
4665
  case 1:
@@ -4664,13 +4675,14 @@ function getEnsOwner(ens, network) {
4664
4675
  });
4665
4676
  });
4666
4677
  }
4667
- function getSpaceController(id, network) {
4678
+ function getSpaceController(id, network, options) {
4668
4679
  if (network === void 0) { network = '1'; }
4680
+ if (options === void 0) { options = {}; }
4669
4681
  return __awaiter(this, void 0, void 0, function () {
4670
4682
  var spaceUri, isUriAddress, uriParts, position, address$1;
4671
4683
  return __generator(this, function (_a) {
4672
4684
  switch (_a.label) {
4673
- case 0: return [4 /*yield*/, getSpaceUri(id, network)];
4685
+ case 0: return [4 /*yield*/, getSpaceUri(id, network, options)];
4674
4686
  case 1:
4675
4687
  spaceUri = _a.sent();
4676
4688
  if (spaceUri) {
@@ -4684,20 +4696,22 @@ function getSpaceController(id, network) {
4684
4696
  if (isUriAddress)
4685
4697
  return [2 /*return*/, address$1];
4686
4698
  }
4687
- return [4 /*yield*/, getEnsOwner(id, network)];
4699
+ return [4 /*yield*/, getEnsOwner(id, network, options)];
4688
4700
  case 2: return [2 /*return*/, _a.sent()];
4689
4701
  }
4690
4702
  });
4691
4703
  });
4692
4704
  }
4693
- function getDelegatesBySpace(network, space, snapshot) {
4705
+ function getDelegatesBySpace(network, space, snapshot, options) {
4694
4706
  if (snapshot === void 0) { snapshot = 'latest'; }
4707
+ if (options === void 0) { options = {}; }
4695
4708
  return __awaiter(this, void 0, void 0, function () {
4696
- var spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4709
+ var subgraphUrl, spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4697
4710
  return __generator(this, function (_a) {
4698
4711
  switch (_a.label) {
4699
4712
  case 0:
4700
- if (!delegationSubgraphs[network]) {
4713
+ subgraphUrl = options.subgraphUrl || SNAPSHOT_SUBGRAPH_URL[network];
4714
+ if (!subgraphUrl) {
4701
4715
  return [2 /*return*/, Promise.reject("Delegation subgraph not available for network " + network)];
4702
4716
  }
4703
4717
  spaceIn = ['', space];
@@ -4726,7 +4740,7 @@ function getDelegatesBySpace(network, space, snapshot) {
4726
4740
  _a.label = 1;
4727
4741
  case 1:
4728
4742
  params.delegations.__args.skip = page * PAGE_SIZE;
4729
- return [4 /*yield*/, subgraphRequest(delegationSubgraphs[network], params)];
4743
+ return [4 /*yield*/, subgraphRequest(subgraphUrl, params)];
4730
4744
  case 2:
4731
4745
  pageResult = _a.sent();
4732
4746
  pageDelegations = pageResult.delegations || [];
@@ -1207,7 +1207,8 @@ var Multicaller = /** @class */ (function () {
1207
1207
 
1208
1208
  var cache = {};
1209
1209
  var expirationTime = 0;
1210
- function getSnapshots(network, snapshot, provider, networks) {
1210
+ function getSnapshots(network, snapshot, provider, networks, options) {
1211
+ if (options === void 0) { options = {}; }
1211
1212
  return __awaiter(this, void 0, void 0, function () {
1212
1213
  var snapshots, cacheKey, cachedEntry, now, networkIn, block, query, url, data;
1213
1214
  return __generator(this, function (_a) {
@@ -1248,7 +1249,7 @@ function getSnapshots(network, snapshot, provider, networks) {
1248
1249
  number: true
1249
1250
  }
1250
1251
  };
1251
- url = 'https://blockfinder.snapshot.org';
1252
+ url = options.blockFinderUrl || 'https://blockfinder.snapshot.org';
1252
1253
  return [4 /*yield*/, subgraphRequest(url, query)];
1253
1254
  case 2:
1254
1255
  data = _a.sent();
@@ -1261,8 +1262,9 @@ function getSnapshots(network, snapshot, provider, networks) {
1261
1262
  }
1262
1263
 
1263
1264
  var providers = {};
1264
- function getProvider(network) {
1265
- var url = "https://rpc.snapshot.org/" + network;
1265
+ function getProvider(network, _a) {
1266
+ var _b = (_a === void 0 ? {} : _a).broviderUrl, broviderUrl = _b === void 0 ? 'https://rpc.snapshot.org' : _b;
1267
+ var url = broviderUrl + "/" + network;
1266
1268
  if (!providers[network])
1267
1269
  providers[network] = new StaticJsonRpcProvider({
1268
1270
  url: url,
@@ -1347,14 +1349,15 @@ function verifyOldVersion(address, sig, hash, provider) {
1347
1349
  });
1348
1350
  });
1349
1351
  }
1350
- function verify(address, sig, hash, network) {
1352
+ function verify(address, sig, hash, network, options) {
1351
1353
  if (network === void 0) { network = '1'; }
1354
+ if (options === void 0) { options = {}; }
1352
1355
  return __awaiter(this, void 0, void 0, function () {
1353
1356
  var provider;
1354
1357
  return __generator(this, function (_a) {
1355
1358
  switch (_a.label) {
1356
1359
  case 0:
1357
- provider = getProvider(network);
1360
+ provider = getProvider(network, options);
1358
1361
  return [4 /*yield*/, verifyDefault(address, sig, hash, provider)];
1359
1362
  case 1:
1360
1363
  if (_a.sent())
@@ -1370,8 +1373,9 @@ function getHash(data) {
1370
1373
  var domain = data.domain, types = data.types, message = data.message;
1371
1374
  return _TypedDataEncoder.hash(domain, types, message);
1372
1375
  }
1373
- function verify$1(address, sig, data, network) {
1376
+ function verify$1(address, sig, data, network, options) {
1374
1377
  if (network === void 0) { network = '1'; }
1378
+ if (options === void 0) { options = {}; }
1375
1379
  return __awaiter(this, void 0, void 0, function () {
1376
1380
  var domain, types, message, hash, recoverAddress;
1377
1381
  return __generator(this, function (_a) {
@@ -1390,7 +1394,7 @@ function verify$1(address, sig, data, network) {
1390
1394
  catch (e) {
1391
1395
  // console.log('Could not recoverAddress:' + e.message);
1392
1396
  }
1393
- return [4 /*yield*/, verify(address, sig, hash, network)];
1397
+ return [4 /*yield*/, verify(address, sig, hash, network, options)];
1394
1398
  case 1:
1395
1399
  // console.log('Check EIP1271 signature');
1396
1400
  return [2 /*return*/, _a.sent()];
@@ -4337,14 +4341,15 @@ function call(provider, abi, call, options) {
4337
4341
  }
4338
4342
  function multicall(network, provider, abi, calls, options) {
4339
4343
  return __awaiter(this, void 0, void 0, function () {
4340
- var multicallAbi, multi, itf, max_1, pages, promises_1, results, e_2;
4344
+ var multicallAbi, multicallAddress, multi, itf, max_1, pages, promises_1, results, e_2;
4341
4345
  return __generator(this, function (_a) {
4342
4346
  switch (_a.label) {
4343
4347
  case 0:
4344
4348
  multicallAbi = [
4345
4349
  'function aggregate(tuple(address target, bytes callData)[] calls) view returns (uint256 blockNumber, bytes[] returnData)'
4346
4350
  ];
4347
- multi = new Contract(networks[network].multicall, multicallAbi, provider);
4351
+ multicallAddress = (options === null || options === void 0 ? void 0 : options.multicallAddress) || networks[network].multicall;
4352
+ multi = new Contract(multicallAddress, multicallAbi, provider);
4348
4353
  itf = new Interface(abi);
4349
4354
  _a.label = 1;
4350
4355
  case 1:
@@ -4427,11 +4432,12 @@ function getUrl(uri, gateway) {
4427
4432
  return uri.replace('ipns://', ipfsGateway + "/ipns/");
4428
4433
  return uri;
4429
4434
  }
4430
- function getJSON(uri) {
4435
+ function getJSON(uri, options) {
4436
+ if (options === void 0) { options = {}; }
4431
4437
  return __awaiter(this, void 0, void 0, function () {
4432
4438
  var url;
4433
4439
  return __generator(this, function (_a) {
4434
- url = getUrl(uri);
4440
+ url = getUrl(uri, options.gateways);
4435
4441
  return [2 /*return*/, fetch(url).then(function (res) { return res.json(); })];
4436
4442
  });
4437
4443
  });
@@ -4592,17 +4598,20 @@ function validateSchema(schema, data) {
4592
4598
  var valid = ajvValidate(data);
4593
4599
  return valid ? valid : ajvValidate.errors;
4594
4600
  }
4595
- function getEnsTextRecord(ens, record, network) {
4601
+ function getEnsTextRecord(ens, record, network, options) {
4596
4602
  if (network === void 0) { network = '1'; }
4603
+ if (options === void 0) { options = {}; }
4597
4604
  return __awaiter(this, void 0, void 0, function () {
4598
4605
  var ensResolvers, ensHash, provider, result;
4599
4606
  return __generator(this, function (_a) {
4600
4607
  switch (_a.label) {
4601
4608
  case 0:
4602
- ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4609
+ ensResolvers = options.ensResolvers ||
4610
+ networks[network].ensResolvers ||
4611
+ networks['1'].ensResolvers;
4603
4612
  ensHash = namehash(ensNormalize(ens));
4604
- provider = getProvider(network);
4605
- return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }))];
4613
+ provider = getProvider(network, options);
4614
+ return [4 /*yield*/, multicall(network, provider, ENS_RESOLVER_ABI, ensResolvers.map(function (address) { return [address, 'text', [ensHash, record]]; }), options)];
4606
4615
  case 1:
4607
4616
  result = _a.sent();
4608
4617
  return [2 /*return*/, result.flat().find(function (r) { return r; }) || ''];
@@ -4610,15 +4619,16 @@ function getEnsTextRecord(ens, record, network) {
4610
4619
  });
4611
4620
  });
4612
4621
  }
4613
- function getSpaceUri(id, network) {
4622
+ function getSpaceUri(id, network, options) {
4614
4623
  if (network === void 0) { network = '1'; }
4624
+ if (options === void 0) { options = {}; }
4615
4625
  return __awaiter(this, void 0, void 0, function () {
4616
4626
  var e_4;
4617
4627
  return __generator(this, function (_a) {
4618
4628
  switch (_a.label) {
4619
4629
  case 0:
4620
4630
  _a.trys.push([0, 2, , 3]);
4621
- return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network)];
4631
+ return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network, options)];
4622
4632
  case 1: return [2 /*return*/, _a.sent()];
4623
4633
  case 2:
4624
4634
  e_4 = _a.sent();
@@ -4629,17 +4639,18 @@ function getSpaceUri(id, network) {
4629
4639
  });
4630
4640
  });
4631
4641
  }
4632
- function getEnsOwner(ens, network) {
4642
+ function getEnsOwner(ens, network, options) {
4633
4643
  if (network === void 0) { network = '1'; }
4644
+ if (options === void 0) { options = {}; }
4634
4645
  return __awaiter(this, void 0, void 0, function () {
4635
4646
  var registryAddress, provider, ensRegistry, ensNameWrapper, ensHash, owner, ensNameWrapperContract;
4636
4647
  return __generator(this, function (_a) {
4637
4648
  switch (_a.label) {
4638
4649
  case 0:
4639
4650
  registryAddress = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
4640
- provider = getProvider(network);
4651
+ provider = getProvider(network, options);
4641
4652
  ensRegistry = new Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4642
- ensNameWrapper = networks[network].ensNameWrapper;
4653
+ ensNameWrapper = options.ensNameWrapper || networks[network].ensNameWrapper;
4643
4654
  ensHash = namehash(ensNormalize(ens));
4644
4655
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4645
4656
  case 1:
@@ -4655,13 +4666,14 @@ function getEnsOwner(ens, network) {
4655
4666
  });
4656
4667
  });
4657
4668
  }
4658
- function getSpaceController(id, network) {
4669
+ function getSpaceController(id, network, options) {
4659
4670
  if (network === void 0) { network = '1'; }
4671
+ if (options === void 0) { options = {}; }
4660
4672
  return __awaiter(this, void 0, void 0, function () {
4661
4673
  var spaceUri, isUriAddress, uriParts, position, address;
4662
4674
  return __generator(this, function (_a) {
4663
4675
  switch (_a.label) {
4664
- case 0: return [4 /*yield*/, getSpaceUri(id, network)];
4676
+ case 0: return [4 /*yield*/, getSpaceUri(id, network, options)];
4665
4677
  case 1:
4666
4678
  spaceUri = _a.sent();
4667
4679
  if (spaceUri) {
@@ -4675,20 +4687,22 @@ function getSpaceController(id, network) {
4675
4687
  if (isUriAddress)
4676
4688
  return [2 /*return*/, address];
4677
4689
  }
4678
- return [4 /*yield*/, getEnsOwner(id, network)];
4690
+ return [4 /*yield*/, getEnsOwner(id, network, options)];
4679
4691
  case 2: return [2 /*return*/, _a.sent()];
4680
4692
  }
4681
4693
  });
4682
4694
  });
4683
4695
  }
4684
- function getDelegatesBySpace(network, space, snapshot) {
4696
+ function getDelegatesBySpace(network, space, snapshot, options) {
4685
4697
  if (snapshot === void 0) { snapshot = 'latest'; }
4698
+ if (options === void 0) { options = {}; }
4686
4699
  return __awaiter(this, void 0, void 0, function () {
4687
- var spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4700
+ var subgraphUrl, spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4688
4701
  return __generator(this, function (_a) {
4689
4702
  switch (_a.label) {
4690
4703
  case 0:
4691
- if (!delegationSubgraphs[network]) {
4704
+ subgraphUrl = options.subgraphUrl || SNAPSHOT_SUBGRAPH_URL[network];
4705
+ if (!subgraphUrl) {
4692
4706
  return [2 /*return*/, Promise.reject("Delegation subgraph not available for network " + network)];
4693
4707
  }
4694
4708
  spaceIn = ['', space];
@@ -4717,7 +4731,7 @@ function getDelegatesBySpace(network, space, snapshot) {
4717
4731
  _a.label = 1;
4718
4732
  case 1:
4719
4733
  params.delegations.__args.skip = page * PAGE_SIZE;
4720
- return [4 /*yield*/, subgraphRequest(delegationSubgraphs[network], params)];
4734
+ return [4 /*yield*/, subgraphRequest(subgraphUrl, params)];
4721
4735
  case 2:
4722
4736
  pageResult = _a.sent();
4723
4737
  pageDelegations = pageResult.delegations || [];