@snapshot-labs/snapshot.js 0.5.4 → 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()];
@@ -2971,6 +2975,21 @@ var networks = {
2971
2975
  },
2972
2976
  start: 8821493,
2973
2977
  logo: "ipfs://QmNkr1UPcBYbvLp7d7Pk4eF3YCsHpaNkfusKZNtykL2EQC"
2978
+ },
2979
+ "5000": {
2980
+ key: "5000",
2981
+ name: "Mantle",
2982
+ chainId: 5000,
2983
+ network: "mainnet",
2984
+ multicall: "0xcA11bde05977b3631167028862bE2a173976CA11",
2985
+ rpc: [
2986
+ "https://rpc.mantle.xyz"
2987
+ ],
2988
+ explorer: {
2989
+ url: "https://explorer.mantle.xyz"
2990
+ },
2991
+ start: 304717,
2992
+ logo: "ipfs://bafkreidkucwfn4mzo2gtydrt2wogk3je5xpugom67vhi4h4comaxxjzoz4"
2974
2993
  },
2975
2994
  "5551": {
2976
2995
  key: "5551",
@@ -4331,14 +4350,15 @@ function call(provider, abi, call, options) {
4331
4350
  }
4332
4351
  function multicall(network, provider, abi$1, calls, options) {
4333
4352
  return __awaiter(this, void 0, void 0, function () {
4334
- 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;
4335
4354
  return __generator(this, function (_a) {
4336
4355
  switch (_a.label) {
4337
4356
  case 0:
4338
4357
  multicallAbi = [
4339
4358
  'function aggregate(tuple(address target, bytes callData)[] calls) view returns (uint256 blockNumber, bytes[] returnData)'
4340
4359
  ];
4341
- 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);
4342
4362
  itf = new abi.Interface(abi$1);
4343
4363
  _a.label = 1;
4344
4364
  case 1:
@@ -4421,11 +4441,12 @@ function getUrl(uri, gateway) {
4421
4441
  return uri.replace('ipns://', ipfsGateway + "/ipns/");
4422
4442
  return uri;
4423
4443
  }
4424
- function getJSON(uri) {
4444
+ function getJSON(uri, options) {
4445
+ if (options === void 0) { options = {}; }
4425
4446
  return __awaiter(this, void 0, void 0, function () {
4426
4447
  var url;
4427
4448
  return __generator(this, function (_a) {
4428
- url = getUrl(uri);
4449
+ url = getUrl(uri, options.gateways);
4429
4450
  return [2 /*return*/, fetch__default['default'](url).then(function (res) { return res.json(); })];
4430
4451
  });
4431
4452
  });
@@ -4586,17 +4607,20 @@ function validateSchema(schema, data) {
4586
4607
  var valid = ajvValidate(data);
4587
4608
  return valid ? valid : ajvValidate.errors;
4588
4609
  }
4589
- function getEnsTextRecord(ens, record, network) {
4610
+ function getEnsTextRecord(ens, record, network, options) {
4590
4611
  if (network === void 0) { network = '1'; }
4612
+ if (options === void 0) { options = {}; }
4591
4613
  return __awaiter(this, void 0, void 0, function () {
4592
4614
  var ensResolvers, ensHash, provider, result;
4593
4615
  return __generator(this, function (_a) {
4594
4616
  switch (_a.label) {
4595
4617
  case 0:
4596
- ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4618
+ ensResolvers = options.ensResolvers ||
4619
+ networks[network].ensResolvers ||
4620
+ networks['1'].ensResolvers;
4597
4621
  ensHash = hash.namehash(hash.ensNormalize(ens));
4598
- provider = getProvider(network);
4599
- 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)];
4600
4624
  case 1:
4601
4625
  result = _a.sent();
4602
4626
  return [2 /*return*/, result.flat().find(function (r) { return r; }) || ''];
@@ -4604,15 +4628,16 @@ function getEnsTextRecord(ens, record, network) {
4604
4628
  });
4605
4629
  });
4606
4630
  }
4607
- function getSpaceUri(id, network) {
4631
+ function getSpaceUri(id, network, options) {
4608
4632
  if (network === void 0) { network = '1'; }
4633
+ if (options === void 0) { options = {}; }
4609
4634
  return __awaiter(this, void 0, void 0, function () {
4610
4635
  var e_4;
4611
4636
  return __generator(this, function (_a) {
4612
4637
  switch (_a.label) {
4613
4638
  case 0:
4614
4639
  _a.trys.push([0, 2, , 3]);
4615
- return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network)];
4640
+ return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network, options)];
4616
4641
  case 1: return [2 /*return*/, _a.sent()];
4617
4642
  case 2:
4618
4643
  e_4 = _a.sent();
@@ -4623,17 +4648,18 @@ function getSpaceUri(id, network) {
4623
4648
  });
4624
4649
  });
4625
4650
  }
4626
- function getEnsOwner(ens, network) {
4651
+ function getEnsOwner(ens, network, options) {
4627
4652
  if (network === void 0) { network = '1'; }
4653
+ if (options === void 0) { options = {}; }
4628
4654
  return __awaiter(this, void 0, void 0, function () {
4629
4655
  var registryAddress, provider, ensRegistry, ensNameWrapper, ensHash, owner, ensNameWrapperContract;
4630
4656
  return __generator(this, function (_a) {
4631
4657
  switch (_a.label) {
4632
4658
  case 0:
4633
4659
  registryAddress = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
4634
- provider = getProvider(network);
4660
+ provider = getProvider(network, options);
4635
4661
  ensRegistry = new contracts.Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4636
- ensNameWrapper = networks[network].ensNameWrapper;
4662
+ ensNameWrapper = options.ensNameWrapper || networks[network].ensNameWrapper;
4637
4663
  ensHash = hash.namehash(hash.ensNormalize(ens));
4638
4664
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4639
4665
  case 1:
@@ -4649,13 +4675,14 @@ function getEnsOwner(ens, network) {
4649
4675
  });
4650
4676
  });
4651
4677
  }
4652
- function getSpaceController(id, network) {
4678
+ function getSpaceController(id, network, options) {
4653
4679
  if (network === void 0) { network = '1'; }
4680
+ if (options === void 0) { options = {}; }
4654
4681
  return __awaiter(this, void 0, void 0, function () {
4655
4682
  var spaceUri, isUriAddress, uriParts, position, address$1;
4656
4683
  return __generator(this, function (_a) {
4657
4684
  switch (_a.label) {
4658
- case 0: return [4 /*yield*/, getSpaceUri(id, network)];
4685
+ case 0: return [4 /*yield*/, getSpaceUri(id, network, options)];
4659
4686
  case 1:
4660
4687
  spaceUri = _a.sent();
4661
4688
  if (spaceUri) {
@@ -4669,20 +4696,22 @@ function getSpaceController(id, network) {
4669
4696
  if (isUriAddress)
4670
4697
  return [2 /*return*/, address$1];
4671
4698
  }
4672
- return [4 /*yield*/, getEnsOwner(id, network)];
4699
+ return [4 /*yield*/, getEnsOwner(id, network, options)];
4673
4700
  case 2: return [2 /*return*/, _a.sent()];
4674
4701
  }
4675
4702
  });
4676
4703
  });
4677
4704
  }
4678
- function getDelegatesBySpace(network, space, snapshot) {
4705
+ function getDelegatesBySpace(network, space, snapshot, options) {
4679
4706
  if (snapshot === void 0) { snapshot = 'latest'; }
4707
+ if (options === void 0) { options = {}; }
4680
4708
  return __awaiter(this, void 0, void 0, function () {
4681
- var spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4709
+ var subgraphUrl, spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4682
4710
  return __generator(this, function (_a) {
4683
4711
  switch (_a.label) {
4684
4712
  case 0:
4685
- if (!delegationSubgraphs[network]) {
4713
+ subgraphUrl = options.subgraphUrl || SNAPSHOT_SUBGRAPH_URL[network];
4714
+ if (!subgraphUrl) {
4686
4715
  return [2 /*return*/, Promise.reject("Delegation subgraph not available for network " + network)];
4687
4716
  }
4688
4717
  spaceIn = ['', space];
@@ -4711,7 +4740,7 @@ function getDelegatesBySpace(network, space, snapshot) {
4711
4740
  _a.label = 1;
4712
4741
  case 1:
4713
4742
  params.delegations.__args.skip = page * PAGE_SIZE;
4714
- return [4 /*yield*/, subgraphRequest(delegationSubgraphs[network], params)];
4743
+ return [4 /*yield*/, subgraphRequest(subgraphUrl, params)];
4715
4744
  case 2:
4716
4745
  pageResult = _a.sent();
4717
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()];
@@ -2962,6 +2966,21 @@ var networks = {
2962
2966
  },
2963
2967
  start: 8821493,
2964
2968
  logo: "ipfs://QmNkr1UPcBYbvLp7d7Pk4eF3YCsHpaNkfusKZNtykL2EQC"
2969
+ },
2970
+ "5000": {
2971
+ key: "5000",
2972
+ name: "Mantle",
2973
+ chainId: 5000,
2974
+ network: "mainnet",
2975
+ multicall: "0xcA11bde05977b3631167028862bE2a173976CA11",
2976
+ rpc: [
2977
+ "https://rpc.mantle.xyz"
2978
+ ],
2979
+ explorer: {
2980
+ url: "https://explorer.mantle.xyz"
2981
+ },
2982
+ start: 304717,
2983
+ logo: "ipfs://bafkreidkucwfn4mzo2gtydrt2wogk3je5xpugom67vhi4h4comaxxjzoz4"
2965
2984
  },
2966
2985
  "5551": {
2967
2986
  key: "5551",
@@ -4322,14 +4341,15 @@ function call(provider, abi, call, options) {
4322
4341
  }
4323
4342
  function multicall(network, provider, abi, calls, options) {
4324
4343
  return __awaiter(this, void 0, void 0, function () {
4325
- 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;
4326
4345
  return __generator(this, function (_a) {
4327
4346
  switch (_a.label) {
4328
4347
  case 0:
4329
4348
  multicallAbi = [
4330
4349
  'function aggregate(tuple(address target, bytes callData)[] calls) view returns (uint256 blockNumber, bytes[] returnData)'
4331
4350
  ];
4332
- 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);
4333
4353
  itf = new Interface(abi);
4334
4354
  _a.label = 1;
4335
4355
  case 1:
@@ -4412,11 +4432,12 @@ function getUrl(uri, gateway) {
4412
4432
  return uri.replace('ipns://', ipfsGateway + "/ipns/");
4413
4433
  return uri;
4414
4434
  }
4415
- function getJSON(uri) {
4435
+ function getJSON(uri, options) {
4436
+ if (options === void 0) { options = {}; }
4416
4437
  return __awaiter(this, void 0, void 0, function () {
4417
4438
  var url;
4418
4439
  return __generator(this, function (_a) {
4419
- url = getUrl(uri);
4440
+ url = getUrl(uri, options.gateways);
4420
4441
  return [2 /*return*/, fetch(url).then(function (res) { return res.json(); })];
4421
4442
  });
4422
4443
  });
@@ -4577,17 +4598,20 @@ function validateSchema(schema, data) {
4577
4598
  var valid = ajvValidate(data);
4578
4599
  return valid ? valid : ajvValidate.errors;
4579
4600
  }
4580
- function getEnsTextRecord(ens, record, network) {
4601
+ function getEnsTextRecord(ens, record, network, options) {
4581
4602
  if (network === void 0) { network = '1'; }
4603
+ if (options === void 0) { options = {}; }
4582
4604
  return __awaiter(this, void 0, void 0, function () {
4583
4605
  var ensResolvers, ensHash, provider, result;
4584
4606
  return __generator(this, function (_a) {
4585
4607
  switch (_a.label) {
4586
4608
  case 0:
4587
- ensResolvers = networks[network].ensResolvers || networks['1'].ensResolvers;
4609
+ ensResolvers = options.ensResolvers ||
4610
+ networks[network].ensResolvers ||
4611
+ networks['1'].ensResolvers;
4588
4612
  ensHash = namehash(ensNormalize(ens));
4589
- provider = getProvider(network);
4590
- 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)];
4591
4615
  case 1:
4592
4616
  result = _a.sent();
4593
4617
  return [2 /*return*/, result.flat().find(function (r) { return r; }) || ''];
@@ -4595,15 +4619,16 @@ function getEnsTextRecord(ens, record, network) {
4595
4619
  });
4596
4620
  });
4597
4621
  }
4598
- function getSpaceUri(id, network) {
4622
+ function getSpaceUri(id, network, options) {
4599
4623
  if (network === void 0) { network = '1'; }
4624
+ if (options === void 0) { options = {}; }
4600
4625
  return __awaiter(this, void 0, void 0, function () {
4601
4626
  var e_4;
4602
4627
  return __generator(this, function (_a) {
4603
4628
  switch (_a.label) {
4604
4629
  case 0:
4605
4630
  _a.trys.push([0, 2, , 3]);
4606
- return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network)];
4631
+ return [4 /*yield*/, getEnsTextRecord(id, 'snapshot', network, options)];
4607
4632
  case 1: return [2 /*return*/, _a.sent()];
4608
4633
  case 2:
4609
4634
  e_4 = _a.sent();
@@ -4614,17 +4639,18 @@ function getSpaceUri(id, network) {
4614
4639
  });
4615
4640
  });
4616
4641
  }
4617
- function getEnsOwner(ens, network) {
4642
+ function getEnsOwner(ens, network, options) {
4618
4643
  if (network === void 0) { network = '1'; }
4644
+ if (options === void 0) { options = {}; }
4619
4645
  return __awaiter(this, void 0, void 0, function () {
4620
4646
  var registryAddress, provider, ensRegistry, ensNameWrapper, ensHash, owner, ensNameWrapperContract;
4621
4647
  return __generator(this, function (_a) {
4622
4648
  switch (_a.label) {
4623
4649
  case 0:
4624
4650
  registryAddress = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
4625
- provider = getProvider(network);
4651
+ provider = getProvider(network, options);
4626
4652
  ensRegistry = new Contract(registryAddress, ['function owner(bytes32) view returns (address)'], provider);
4627
- ensNameWrapper = networks[network].ensNameWrapper;
4653
+ ensNameWrapper = options.ensNameWrapper || networks[network].ensNameWrapper;
4628
4654
  ensHash = namehash(ensNormalize(ens));
4629
4655
  return [4 /*yield*/, ensRegistry.owner(ensHash)];
4630
4656
  case 1:
@@ -4640,13 +4666,14 @@ function getEnsOwner(ens, network) {
4640
4666
  });
4641
4667
  });
4642
4668
  }
4643
- function getSpaceController(id, network) {
4669
+ function getSpaceController(id, network, options) {
4644
4670
  if (network === void 0) { network = '1'; }
4671
+ if (options === void 0) { options = {}; }
4645
4672
  return __awaiter(this, void 0, void 0, function () {
4646
4673
  var spaceUri, isUriAddress, uriParts, position, address;
4647
4674
  return __generator(this, function (_a) {
4648
4675
  switch (_a.label) {
4649
- case 0: return [4 /*yield*/, getSpaceUri(id, network)];
4676
+ case 0: return [4 /*yield*/, getSpaceUri(id, network, options)];
4650
4677
  case 1:
4651
4678
  spaceUri = _a.sent();
4652
4679
  if (spaceUri) {
@@ -4660,20 +4687,22 @@ function getSpaceController(id, network) {
4660
4687
  if (isUriAddress)
4661
4688
  return [2 /*return*/, address];
4662
4689
  }
4663
- return [4 /*yield*/, getEnsOwner(id, network)];
4690
+ return [4 /*yield*/, getEnsOwner(id, network, options)];
4664
4691
  case 2: return [2 /*return*/, _a.sent()];
4665
4692
  }
4666
4693
  });
4667
4694
  });
4668
4695
  }
4669
- function getDelegatesBySpace(network, space, snapshot) {
4696
+ function getDelegatesBySpace(network, space, snapshot, options) {
4670
4697
  if (snapshot === void 0) { snapshot = 'latest'; }
4698
+ if (options === void 0) { options = {}; }
4671
4699
  return __awaiter(this, void 0, void 0, function () {
4672
- var spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4700
+ var subgraphUrl, spaceIn, PAGE_SIZE, result, page, params, pageResult, pageDelegations;
4673
4701
  return __generator(this, function (_a) {
4674
4702
  switch (_a.label) {
4675
4703
  case 0:
4676
- if (!delegationSubgraphs[network]) {
4704
+ subgraphUrl = options.subgraphUrl || SNAPSHOT_SUBGRAPH_URL[network];
4705
+ if (!subgraphUrl) {
4677
4706
  return [2 /*return*/, Promise.reject("Delegation subgraph not available for network " + network)];
4678
4707
  }
4679
4708
  spaceIn = ['', space];
@@ -4702,7 +4731,7 @@ function getDelegatesBySpace(network, space, snapshot) {
4702
4731
  _a.label = 1;
4703
4732
  case 1:
4704
4733
  params.delegations.__args.skip = page * PAGE_SIZE;
4705
- return [4 /*yield*/, subgraphRequest(delegationSubgraphs[network], params)];
4734
+ return [4 /*yield*/, subgraphRequest(subgraphUrl, params)];
4706
4735
  case 2:
4707
4736
  pageResult = _a.sent();
4708
4737
  pageDelegations = pageResult.delegations || [];