@hypercerts-org/marketplace-sdk 0.4.2 → 0.5.1

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/index.cjs.js CHANGED
@@ -4,6 +4,8 @@ var ethers = require('ethers');
4
4
  var contracts = require('@hypercerts-org/contracts');
5
5
  var merkletreejs = require('merkletreejs');
6
6
  var sdk = require('@hypercerts-org/sdk');
7
+ var Safe = require('@safe-global/protocol-kit');
8
+ var SafeApiKit = require('@safe-global/api-kit');
7
9
 
8
10
  var abiIERC721 = [
9
11
  {
@@ -3615,7 +3617,7 @@ var LooksRareProtocol = [
3615
3617
  }
3616
3618
  ];
3617
3619
 
3618
- var TransferManager = [
3620
+ var abiTransferManager = [
3619
3621
  {
3620
3622
  inputs: [
3621
3623
  {
@@ -4553,20 +4555,6 @@ var OrderValidatorV2A = [
4553
4555
  stateMutability: "view",
4554
4556
  type: "function"
4555
4557
  },
4556
- {
4557
- inputs: [
4558
- ],
4559
- name: "royaltyFeeRegistry",
4560
- outputs: [
4561
- {
4562
- internalType: "contract IRoyaltyFeeRegistry",
4563
- name: "",
4564
- type: "address"
4565
- }
4566
- ],
4567
- stateMutability: "view",
4568
- type: "function"
4569
- },
4570
4558
  {
4571
4559
  inputs: [
4572
4560
  ],
@@ -4955,15 +4943,15 @@ var WETH = [
4955
4943
  ];
4956
4944
 
4957
4945
  /**
4958
- * Name of the LooksRare contract. Used for EIP712 domain separator.
4946
+ * EIP712 domain name.
4959
4947
  * @see {@link https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator EIP712 doc}
4960
4948
  */
4961
- const contractName = "LooksRareProtocol";
4949
+ const DOMAIN_NAME = "LooksRareProtocol";
4962
4950
  /**
4963
- * Protocol version. Used for EIP712 domain separator.
4951
+ * EIP712 domain version.
4964
4952
  * @see {@link https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator EIP712 doc}
4965
4953
  */
4966
- const version = 2;
4954
+ const DOMAIN_VERSION = 2;
4967
4955
 
4968
4956
  var e$2 = {
4969
4957
  NAME: "Name",
@@ -5037,20 +5025,20 @@ class GraphQLError extends Error {
5037
5025
 
5038
5026
  var n;
5039
5027
 
5040
- var i$1;
5028
+ var i;
5041
5029
 
5042
5030
  function error(e) {
5043
- return new GraphQLError(`Syntax Error: Unexpected token at ${i$1} in ${e}`);
5031
+ return new GraphQLError(`Syntax Error: Unexpected token at ${i} in ${e}`);
5044
5032
  }
5045
5033
 
5046
5034
  function advance(e) {
5047
- e.lastIndex = i$1;
5035
+ e.lastIndex = i;
5048
5036
  if (e.test(n)) {
5049
- return n.slice(i$1, i$1 = e.lastIndex);
5037
+ return n.slice(i, i = e.lastIndex);
5050
5038
  }
5051
5039
  }
5052
5040
 
5053
- var t = / +(?=[^\s])/y;
5041
+ var t$1 = / +(?=[^\s])/y;
5054
5042
 
5055
5043
  function blockString(e) {
5056
5044
  var r = e.split("\n");
@@ -5059,10 +5047,10 @@ function blockString(e) {
5059
5047
  var a = 0;
5060
5048
  var l = r.length - 1;
5061
5049
  for (var o = 0; o < r.length; o++) {
5062
- t.lastIndex = 0;
5063
- if (t.test(r[o])) {
5064
- if (o && (!i || t.lastIndex < i)) {
5065
- i = t.lastIndex;
5050
+ t$1.lastIndex = 0;
5051
+ if (t$1.test(r[o])) {
5052
+ if (o && (!i || t$1.lastIndex < i)) {
5053
+ i = t$1.lastIndex;
5066
5054
  }
5067
5055
  a = a || o;
5068
5056
  l = o;
@@ -5078,17 +5066,17 @@ function blockString(e) {
5078
5066
  }
5079
5067
 
5080
5068
  function ignored() {
5081
- for (var e = 0 | n.charCodeAt(i$1++); 9 === e || 10 === e || 13 === e || 32 === e || 35 === e || 44 === e || 65279 === e; e = 0 | n.charCodeAt(i$1++)) {
5069
+ for (var e = 0 | n.charCodeAt(i++); 9 === e || 10 === e || 13 === e || 32 === e || 35 === e || 44 === e || 65279 === e; e = 0 | n.charCodeAt(i++)) {
5082
5070
  if (35 === e) {
5083
- while (10 !== (e = n.charCodeAt(i$1++)) && 13 !== e) {}
5071
+ while (10 !== (e = n.charCodeAt(i++)) && 13 !== e) {}
5084
5072
  }
5085
5073
  }
5086
- i$1--;
5074
+ i--;
5087
5075
  }
5088
5076
 
5089
- var a = /[_A-Za-z]\w*/y;
5077
+ var a$1 = /[_A-Za-z]\w*/y;
5090
5078
 
5091
- var l$1 = new RegExp("(?:(null|true|false)|\\$(" + a.source + ')|(-?\\d+)((?:\\.\\d+)?[eE][+-]?\\d+|\\.\\d+)?|("""(?:"""|(?:[\\s\\S]*?[^\\\\])"""))|("(?:"|[^\\r\\n]*?[^\\\\]"))|(' + a.source + "))", "y");
5079
+ var l$1 = new RegExp("(?:(null|true|false)|\\$(" + a$1.source + ')|(-?\\d+)((?:\\.\\d+)?[eE][+-]?\\d+|\\.\\d+)?|("""(?:"""|(?:[\\s\\S]*?[^\\\\])"""))|("(?:"|[^\\r\\n]*?[^\\\\]"))|(' + a$1.source + "))", "y");
5092
5080
 
5093
5081
  var o = function(e) {
5094
5082
  e[e.Const = 1] = "Const";
@@ -5106,30 +5094,30 @@ var u$1 = /\\/;
5106
5094
  function value(e) {
5107
5095
  var r;
5108
5096
  var t;
5109
- l$1.lastIndex = i$1;
5110
- if (91 === n.charCodeAt(i$1)) {
5111
- i$1++;
5097
+ l$1.lastIndex = i;
5098
+ if (91 === n.charCodeAt(i)) {
5099
+ i++;
5112
5100
  ignored();
5113
5101
  var d = [];
5114
- while (93 !== n.charCodeAt(i$1)) {
5102
+ while (93 !== n.charCodeAt(i)) {
5115
5103
  d.push(value(e));
5116
5104
  }
5117
- i$1++;
5105
+ i++;
5118
5106
  ignored();
5119
5107
  return {
5120
5108
  kind: "ListValue",
5121
5109
  values: d
5122
5110
  };
5123
- } else if (123 === n.charCodeAt(i$1)) {
5124
- i$1++;
5111
+ } else if (123 === n.charCodeAt(i)) {
5112
+ i++;
5125
5113
  ignored();
5126
5114
  var s = [];
5127
- while (125 !== n.charCodeAt(i$1)) {
5128
- if (null == (r = advance(a))) {
5115
+ while (125 !== n.charCodeAt(i)) {
5116
+ if (null == (r = advance(a$1))) {
5129
5117
  throw error("ObjectField");
5130
5118
  }
5131
5119
  ignored();
5132
- if (58 !== n.charCodeAt(i$1++)) {
5120
+ if (58 !== n.charCodeAt(i++)) {
5133
5121
  throw error("ObjectField");
5134
5122
  }
5135
5123
  ignored();
@@ -5142,14 +5130,14 @@ function value(e) {
5142
5130
  value: value(e)
5143
5131
  });
5144
5132
  }
5145
- i$1++;
5133
+ i++;
5146
5134
  ignored();
5147
5135
  return {
5148
5136
  kind: "ObjectValue",
5149
5137
  fields: s
5150
5138
  };
5151
5139
  } else if (null != (t = l$1.exec(n))) {
5152
- i$1 = l$1.lastIndex;
5140
+ i = l$1.lastIndex;
5153
5141
  ignored();
5154
5142
  if (null != (r = t[o.Const])) {
5155
5143
  return "null" === r ? {
@@ -5206,17 +5194,17 @@ function value(e) {
5206
5194
  }
5207
5195
 
5208
5196
  function arguments_(e) {
5209
- if (40 === n.charCodeAt(i$1)) {
5197
+ if (40 === n.charCodeAt(i)) {
5210
5198
  var r = [];
5211
- i$1++;
5199
+ i++;
5212
5200
  ignored();
5213
5201
  var t;
5214
5202
  do {
5215
- if (null == (t = advance(a))) {
5203
+ if (null == (t = advance(a$1))) {
5216
5204
  throw error("Argument");
5217
5205
  }
5218
5206
  ignored();
5219
- if (58 !== n.charCodeAt(i$1++)) {
5207
+ if (58 !== n.charCodeAt(i++)) {
5220
5208
  throw error("Argument");
5221
5209
  }
5222
5210
  ignored();
@@ -5228,20 +5216,20 @@ function arguments_(e) {
5228
5216
  },
5229
5217
  value: value(e)
5230
5218
  });
5231
- } while (41 !== n.charCodeAt(i$1));
5232
- i$1++;
5219
+ } while (41 !== n.charCodeAt(i));
5220
+ i++;
5233
5221
  ignored();
5234
5222
  return r;
5235
5223
  }
5236
5224
  }
5237
5225
 
5238
5226
  function directives(e) {
5239
- if (64 === n.charCodeAt(i$1)) {
5227
+ if (64 === n.charCodeAt(i)) {
5240
5228
  var r = [];
5241
5229
  var t;
5242
5230
  do {
5243
- i$1++;
5244
- if (null == (t = advance(a))) {
5231
+ i++;
5232
+ if (null == (t = advance(a$1))) {
5245
5233
  throw error("Directive");
5246
5234
  }
5247
5235
  ignored();
@@ -5253,7 +5241,7 @@ function directives(e) {
5253
5241
  },
5254
5242
  arguments: arguments_(e)
5255
5243
  });
5256
- } while (64 === n.charCodeAt(i$1));
5244
+ } while (64 === n.charCodeAt(i));
5257
5245
  return r;
5258
5246
  }
5259
5247
  }
@@ -5261,12 +5249,12 @@ function directives(e) {
5261
5249
  function type() {
5262
5250
  var e;
5263
5251
  var r = 0;
5264
- while (91 === n.charCodeAt(i$1)) {
5252
+ while (91 === n.charCodeAt(i)) {
5265
5253
  r++;
5266
- i$1++;
5254
+ i++;
5267
5255
  ignored();
5268
5256
  }
5269
- if (null == (e = advance(a))) {
5257
+ if (null == (e = advance(a$1))) {
5270
5258
  throw error("NamedType");
5271
5259
  }
5272
5260
  ignored();
@@ -5278,8 +5266,8 @@ function type() {
5278
5266
  }
5279
5267
  };
5280
5268
  do {
5281
- if (33 === n.charCodeAt(i$1)) {
5282
- i$1++;
5269
+ if (33 === n.charCodeAt(i)) {
5270
+ i++;
5283
5271
  ignored();
5284
5272
  t = {
5285
5273
  kind: "NonNullType",
@@ -5287,7 +5275,7 @@ function type() {
5287
5275
  };
5288
5276
  }
5289
5277
  if (r) {
5290
- if (93 !== n.charCodeAt(i$1++)) {
5278
+ if (93 !== n.charCodeAt(i++)) {
5291
5279
  throw error("NamedType");
5292
5280
  }
5293
5281
  ignored();
@@ -5300,25 +5288,25 @@ function type() {
5300
5288
  return t;
5301
5289
  }
5302
5290
 
5303
- var d$1 = new RegExp("(?:(\\.{3})|(" + a.source + "))", "y");
5291
+ var d$1 = new RegExp("(?:(\\.{3})|(" + a$1.source + "))", "y");
5304
5292
 
5305
- var s = function(e) {
5293
+ var s$1 = function(e) {
5306
5294
  e[e.Spread = 1] = "Spread";
5307
5295
  e[e.Name = 2] = "Name";
5308
5296
  return e;
5309
- }(s || {});
5297
+ }(s$1 || {});
5310
5298
 
5311
5299
  function selectionSet() {
5312
5300
  var e = [];
5313
5301
  var r;
5314
5302
  var t;
5315
5303
  do {
5316
- d$1.lastIndex = i$1;
5304
+ d$1.lastIndex = i;
5317
5305
  if (null != (t = d$1.exec(n))) {
5318
- i$1 = d$1.lastIndex;
5319
- if (null != t[s.Spread]) {
5306
+ i = d$1.lastIndex;
5307
+ if (null != t[s$1.Spread]) {
5320
5308
  ignored();
5321
- var l = advance(a);
5309
+ var l = advance(a$1);
5322
5310
  if (null != l && "on" !== l) {
5323
5311
  ignored();
5324
5312
  e.push({
@@ -5332,13 +5320,13 @@ function selectionSet() {
5332
5320
  } else {
5333
5321
  ignored();
5334
5322
  if ("on" === l) {
5335
- if (null == (l = advance(a))) {
5323
+ if (null == (l = advance(a$1))) {
5336
5324
  throw error("NamedType");
5337
5325
  }
5338
5326
  ignored();
5339
5327
  }
5340
5328
  var o = directives(!1);
5341
- if (123 !== n.charCodeAt(i$1++)) {
5329
+ if (123 !== n.charCodeAt(i++)) {
5342
5330
  throw error("InlineFragment");
5343
5331
  }
5344
5332
  ignored();
@@ -5355,14 +5343,14 @@ function selectionSet() {
5355
5343
  selectionSet: selectionSet()
5356
5344
  });
5357
5345
  }
5358
- } else if (null != (r = t[s.Name])) {
5346
+ } else if (null != (r = t[s$1.Name])) {
5359
5347
  var u = void 0;
5360
5348
  ignored();
5361
- if (58 === n.charCodeAt(i$1)) {
5362
- i$1++;
5349
+ if (58 === n.charCodeAt(i)) {
5350
+ i++;
5363
5351
  ignored();
5364
5352
  u = r;
5365
- if (null == (r = advance(a))) {
5353
+ if (null == (r = advance(a$1))) {
5366
5354
  throw error("Field");
5367
5355
  }
5368
5356
  ignored();
@@ -5371,8 +5359,8 @@ function selectionSet() {
5371
5359
  ignored();
5372
5360
  var c = directives(!1);
5373
5361
  var f = void 0;
5374
- if (123 === n.charCodeAt(i$1)) {
5375
- i$1++;
5362
+ if (123 === n.charCodeAt(i)) {
5363
+ i++;
5376
5364
  ignored();
5377
5365
  f = selectionSet();
5378
5366
  }
@@ -5394,8 +5382,8 @@ function selectionSet() {
5394
5382
  } else {
5395
5383
  throw error("SelectionSet");
5396
5384
  }
5397
- } while (125 !== n.charCodeAt(i$1));
5398
- i$1++;
5385
+ } while (125 !== n.charCodeAt(i));
5386
+ i++;
5399
5387
  ignored();
5400
5388
  return {
5401
5389
  kind: "SelectionSet",
@@ -5406,20 +5394,20 @@ function selectionSet() {
5406
5394
  function fragmentDefinition() {
5407
5395
  var e;
5408
5396
  var r;
5409
- if (null == (e = advance(a))) {
5397
+ if (null == (e = advance(a$1))) {
5410
5398
  throw error("FragmentDefinition");
5411
5399
  }
5412
5400
  ignored();
5413
- if ("on" !== advance(a)) {
5401
+ if ("on" !== advance(a$1)) {
5414
5402
  throw error("FragmentDefinition");
5415
5403
  }
5416
5404
  ignored();
5417
- if (null == (r = advance(a))) {
5405
+ if (null == (r = advance(a$1))) {
5418
5406
  throw error("FragmentDefinition");
5419
5407
  }
5420
5408
  ignored();
5421
5409
  var t = directives(!1);
5422
- if (123 !== n.charCodeAt(i$1++)) {
5410
+ if (123 !== n.charCodeAt(i++)) {
5423
5411
  throw error("FragmentDefinition");
5424
5412
  }
5425
5413
  ignored();
@@ -5449,30 +5437,30 @@ function operationDefinition(e) {
5449
5437
  var l;
5450
5438
  if (e) {
5451
5439
  ignored();
5452
- r = advance(a);
5440
+ r = advance(a$1);
5453
5441
  t = function variableDefinitions() {
5454
5442
  ignored();
5455
- if (40 === n.charCodeAt(i$1)) {
5443
+ if (40 === n.charCodeAt(i)) {
5456
5444
  var e = [];
5457
- i$1++;
5445
+ i++;
5458
5446
  ignored();
5459
5447
  var r;
5460
5448
  do {
5461
- if (36 !== n.charCodeAt(i$1++)) {
5449
+ if (36 !== n.charCodeAt(i++)) {
5462
5450
  throw error("Variable");
5463
5451
  }
5464
- if (null == (r = advance(a))) {
5452
+ if (null == (r = advance(a$1))) {
5465
5453
  throw error("Variable");
5466
5454
  }
5467
5455
  ignored();
5468
- if (58 !== n.charCodeAt(i$1++)) {
5456
+ if (58 !== n.charCodeAt(i++)) {
5469
5457
  throw error("VariableDefinition");
5470
5458
  }
5471
5459
  ignored();
5472
5460
  var t = type();
5473
5461
  var l = void 0;
5474
- if (61 === n.charCodeAt(i$1)) {
5475
- i$1++;
5462
+ if (61 === n.charCodeAt(i)) {
5463
+ i++;
5476
5464
  ignored();
5477
5465
  l = value(!0);
5478
5466
  }
@@ -5490,16 +5478,16 @@ function operationDefinition(e) {
5490
5478
  defaultValue: l,
5491
5479
  directives: directives(!0)
5492
5480
  });
5493
- } while (41 !== n.charCodeAt(i$1));
5494
- i$1++;
5481
+ } while (41 !== n.charCodeAt(i));
5482
+ i++;
5495
5483
  ignored();
5496
5484
  return e;
5497
5485
  }
5498
5486
  }();
5499
5487
  l = directives(!1);
5500
5488
  }
5501
- if (123 === n.charCodeAt(i$1)) {
5502
- i$1++;
5489
+ if (123 === n.charCodeAt(i)) {
5490
+ i++;
5503
5491
  ignored();
5504
5492
  return {
5505
5493
  kind: "OperationDefinition",
@@ -5516,7 +5504,7 @@ function operationDefinition(e) {
5516
5504
  }
5517
5505
 
5518
5506
  function parse(e, r) {
5519
- i$1 = 0;
5507
+ i = 0;
5520
5508
  return function document(e, r) {
5521
5509
  var n;
5522
5510
  var t;
@@ -5531,7 +5519,7 @@ function parse(e, r) {
5531
5519
  } else {
5532
5520
  throw error("Document");
5533
5521
  }
5534
- } while (i$1 < e.length);
5522
+ } while (i < e.length);
5535
5523
  if (!r) {
5536
5524
  var l;
5537
5525
  return {
@@ -5703,42 +5691,88 @@ function print(e) {
5703
5691
  return g[e.kind] ? g[e.kind](e) : "";
5704
5692
  }
5705
5693
 
5694
+ var a = 0;
5695
+
5696
+ var e$1 = new Set;
5697
+
5706
5698
  function initGraphQLTada() {
5707
- function graphql(e, i) {
5708
- var a = parse(e).definitions;
5709
- var t = new Set;
5710
- for (var s of i || []) {
5711
- for (var d of s.definitions) {
5712
- if (d.kind === e$2.FRAGMENT_DEFINITION && !t.has(d)) {
5713
- a.push(d);
5714
- t.add(d);
5699
+ function graphql(t, i) {
5700
+ var o = parse(t).definitions;
5701
+ var s = new Set;
5702
+ for (var f of i || []) {
5703
+ for (var u of f.definitions) {
5704
+ if (u.kind === e$2.FRAGMENT_DEFINITION && !s.has(u)) {
5705
+ o.push(u);
5706
+ s.add(u);
5715
5707
  }
5716
5708
  }
5717
5709
  }
5718
- if (a[0].kind === e$2.FRAGMENT_DEFINITION && a[0].directives) {
5719
- a[0].directives = a[0].directives.filter((n => "_unmask" !== n.name.value));
5710
+ var d;
5711
+ if ((d = o[0].kind === e$2.FRAGMENT_DEFINITION) && o[0].directives) {
5712
+ o[0].directives = o[0].directives.filter((r => "_unmask" !== r.name.value));
5720
5713
  }
5714
+ var c;
5721
5715
  return {
5722
5716
  kind: e$2.DOCUMENT,
5723
- definitions: a
5717
+ definitions: o,
5718
+ get loc() {
5719
+ if (!c && d) {
5720
+ var r = t + function concatLocSources(r) {
5721
+ try {
5722
+ a++;
5723
+ var n = "";
5724
+ for (var t of r) {
5725
+ if (!e$1.has(t)) {
5726
+ e$1.add(t);
5727
+ var {loc: i} = t;
5728
+ if (i) {
5729
+ n += i.source.body;
5730
+ }
5731
+ }
5732
+ }
5733
+ return n;
5734
+ } finally {
5735
+ if (0 == --a) {
5736
+ e$1.clear();
5737
+ }
5738
+ }
5739
+ }(i || []);
5740
+ return {
5741
+ start: 0,
5742
+ end: r.length,
5743
+ source: {
5744
+ body: r,
5745
+ name: "GraphQLTada",
5746
+ locationOffset: {
5747
+ line: 1,
5748
+ column: 1
5749
+ }
5750
+ }
5751
+ };
5752
+ }
5753
+ return c;
5754
+ },
5755
+ set loc(r) {
5756
+ c = r;
5757
+ }
5724
5758
  };
5725
5759
  }
5726
- graphql.scalar = function scalar(n, r) {
5727
- return r;
5760
+ graphql.scalar = function scalar(r, n) {
5761
+ return n;
5728
5762
  };
5729
- graphql.persisted = function persisted(r, e) {
5763
+ graphql.persisted = function persisted(n, a) {
5730
5764
  return {
5731
5765
  kind: e$2.DOCUMENT,
5732
- definitions: e ? e.definitions : [],
5733
- documentId: r
5766
+ definitions: a ? a.definitions : [],
5767
+ documentId: n
5734
5768
  };
5735
5769
  };
5736
5770
  return graphql;
5737
5771
  }
5738
5772
 
5739
- var e$1 = initGraphQLTada();
5773
+ var t = initGraphQLTada();
5740
5774
 
5741
- e$1(`
5775
+ t(`
5742
5776
  query fractionsById($fraction_id: String!) {
5743
5777
  fractions(where: { hypercert_id: { eq: $fraction_id } }) {
5744
5778
  data {
@@ -5751,7 +5785,7 @@ e$1(`
5751
5785
  }
5752
5786
  }
5753
5787
  `);
5754
- const ordersQuery = e$1(`
5788
+ const ordersQuery = t(`
5755
5789
  query OrdersQuery($where: OrderWhereInput) {
5756
5790
  orders(where: $where) {
5757
5791
  count
@@ -6152,11 +6186,7 @@ function take(r) {
6152
6186
  f = !0;
6153
6187
  i(0);
6154
6188
  } else if (0 === e.tag) {
6155
- if (r <= 0) {
6156
- f = !0;
6157
- i(0);
6158
- e[0](1);
6159
- } else {
6189
+ {
6160
6190
  a = e[0];
6161
6191
  }
6162
6192
  } else if (n++ < r) {
@@ -6232,7 +6262,7 @@ function takeWhile(r, t) {
6232
6262
  a(e);
6233
6263
  } else if (!r(e[0])) {
6234
6264
  n = !0;
6235
- if (t) {
6265
+ {
6236
6266
  a(e);
6237
6267
  }
6238
6268
  a(0);
@@ -6450,9 +6480,9 @@ function toPromise(r) {
6450
6480
  }
6451
6481
 
6452
6482
  var rehydrateGraphQlError = r => {
6453
- if (r && r.message && (r.extensions || "GraphQLError" === r.name)) {
6483
+ if (r && "string" == typeof r.message && (r.extensions || "GraphQLError" === r.name)) {
6454
6484
  return r;
6455
- } else if ("object" == typeof r && r.message) {
6485
+ } else if ("object" == typeof r && "string" == typeof r.message) {
6456
6486
  return new GraphQLError(r.message, r.nodes, r.source, r.positions, r.path, r, r.extensions || {});
6457
6487
  } else {
6458
6488
  return new GraphQLError(r);
@@ -6468,11 +6498,11 @@ class CombinedError extends Error {
6468
6498
  return `[Network] ${e.message}`;
6469
6499
  }
6470
6500
  if (r) {
6471
- for (var a of r) {
6501
+ for (var a = 0, n = r.length; a < n; a++) {
6472
6502
  if (t) {
6473
6503
  t += "\n";
6474
6504
  }
6475
- t += `[GraphQL] ${a.message}`;
6505
+ t += `[GraphQL] ${r[a].message}`;
6476
6506
  }
6477
6507
  }
6478
6508
  return t;
@@ -6491,18 +6521,18 @@ class CombinedError extends Error {
6491
6521
 
6492
6522
  var phash = (e, r) => {
6493
6523
  var t = 0 | (r || 5381);
6494
- for (var a = 0, o = 0 | e.length; a < o; a++) {
6524
+ for (var a = 0, n = 0 | e.length; a < n; a++) {
6495
6525
  t = (t << 5) + t + e.charCodeAt(a);
6496
6526
  }
6497
6527
  return t;
6498
6528
  };
6499
6529
 
6500
- var i = new Set;
6530
+ var s = new Set;
6501
6531
 
6502
6532
  var f = new WeakMap;
6503
6533
 
6504
6534
  var stringify = (e, r) => {
6505
- if (null === e || i.has(e)) {
6535
+ if (null === e || s.has(e)) {
6506
6536
  return "null";
6507
6537
  } else if ("object" != typeof e) {
6508
6538
  return JSON.stringify(e) || "";
@@ -6510,56 +6540,56 @@ var stringify = (e, r) => {
6510
6540
  return stringify(e.toJSON(), r);
6511
6541
  } else if (Array.isArray(e)) {
6512
6542
  var t = "[";
6513
- for (var a of e) {
6543
+ for (var a = 0, n = e.length; a < n; a++) {
6514
6544
  if (t.length > 1) {
6515
6545
  t += ",";
6516
6546
  }
6517
- t += stringify(a, r) || "null";
6547
+ t += stringify(e[a], r) || "null";
6518
6548
  }
6519
6549
  return t += "]";
6520
- } else if (!r && (l !== NoopConstructor && e instanceof l || c !== NoopConstructor && e instanceof c)) {
6550
+ } else if (!r && (l !== NoopConstructor && e instanceof l || d !== NoopConstructor && e instanceof d)) {
6521
6551
  return "null";
6522
6552
  }
6523
6553
  var o = Object.keys(e).sort();
6524
6554
  if (!o.length && e.constructor && Object.getPrototypeOf(e).constructor !== Object.prototype.constructor) {
6525
- var n = f.get(e) || Math.random().toString(36).slice(2);
6526
- f.set(e, n);
6555
+ var i = f.get(e) || Math.random().toString(36).slice(2);
6556
+ f.set(e, i);
6527
6557
  return stringify({
6528
- __key: n
6558
+ __key: i
6529
6559
  }, r);
6530
6560
  }
6531
- i.add(e);
6532
- var s = "{";
6533
- for (var d of o) {
6534
- var v = stringify(e[d], r);
6535
- if (v) {
6536
- if (s.length > 1) {
6537
- s += ",";
6561
+ s.add(e);
6562
+ var c = "{";
6563
+ for (var v = 0, p = o.length; v < p; v++) {
6564
+ var u = stringify(e[o[v]], r);
6565
+ if (u) {
6566
+ if (c.length > 1) {
6567
+ c += ",";
6538
6568
  }
6539
- s += stringify(d, r) + ":" + v;
6569
+ c += stringify(o[v], r) + ":" + u;
6540
6570
  }
6541
6571
  }
6542
- i.delete(e);
6543
- return s += "}";
6572
+ s.delete(e);
6573
+ return c += "}";
6544
6574
  };
6545
6575
 
6546
6576
  var extract = (e, r, t) => {
6547
- if (null == t || "object" != typeof t || t.toJSON || i.has(t)) ; else if (Array.isArray(t)) {
6548
- for (var a = 0, o = t.length; a < o; a++) {
6577
+ if (null == t || "object" != typeof t || t.toJSON || s.has(t)) ; else if (Array.isArray(t)) {
6578
+ for (var a = 0, n = t.length; a < n; a++) {
6549
6579
  extract(e, `${r}.${a}`, t[a]);
6550
6580
  }
6551
- } else if (t instanceof l || t instanceof c) {
6581
+ } else if (t instanceof l || t instanceof d) {
6552
6582
  e.set(r, t);
6553
6583
  } else {
6554
- i.add(t);
6555
- for (var n of Object.keys(t)) {
6556
- extract(e, `${r}.${n}`, t[n]);
6584
+ s.add(t);
6585
+ for (var o in t) {
6586
+ extract(e, `${r}.${o}`, t[o]);
6557
6587
  }
6558
6588
  }
6559
6589
  };
6560
6590
 
6561
6591
  var stringifyVariables = (e, r) => {
6562
- i.clear();
6592
+ s.clear();
6563
6593
  return stringify(e, r || !1);
6564
6594
  };
6565
6595
 
@@ -6567,15 +6597,15 @@ class NoopConstructor {}
6567
6597
 
6568
6598
  var l = "undefined" != typeof File ? File : NoopConstructor;
6569
6599
 
6570
- var c = "undefined" != typeof Blob ? Blob : NoopConstructor;
6600
+ var d = "undefined" != typeof Blob ? Blob : NoopConstructor;
6571
6601
 
6572
- var d = /("{3}[\s\S]*"{3}|"(?:\\.|[^"])*")/g;
6602
+ var c = /("{3}[\s\S]*"{3}|"(?:\\.|[^"])*")/g;
6573
6603
 
6574
6604
  var v = /(?:#[^\n\r]+)?(?:[\r\n]+|$)/g;
6575
6605
 
6576
6606
  var replaceOutsideStrings = (e, r) => r % 2 == 0 ? e.replace(v, "\n") : e;
6577
6607
 
6578
- var sanitizeDocument = e => e.split(d).map(replaceOutsideStrings).join("").trim();
6608
+ var sanitizeDocument = e => e.split(c).map(replaceOutsideStrings).join("").trim();
6579
6609
 
6580
6610
  var p = new Map;
6581
6611
 
@@ -6646,32 +6676,34 @@ var keyDocument = e => {
6646
6676
 
6647
6677
  var createRequest = (e, r, t) => {
6648
6678
  var a = r || {};
6649
- var o = keyDocument(e);
6650
- var n = stringifyVariables(a, !0);
6651
- var s = o.__key;
6652
- if ("{}" !== n) {
6653
- s = phash(n, s);
6679
+ var n = keyDocument(e);
6680
+ var o = stringifyVariables(a, !0);
6681
+ var i = n.__key;
6682
+ if ("{}" !== o) {
6683
+ i = phash(o, i);
6654
6684
  }
6655
6685
  return {
6656
- key: s,
6657
- query: o,
6686
+ key: i,
6687
+ query: n,
6658
6688
  variables: a,
6659
6689
  extensions: t
6660
6690
  };
6661
6691
  };
6662
6692
 
6663
6693
  var getOperationName = e => {
6664
- for (var r of e.definitions) {
6665
- if (r.kind === e$2.OPERATION_DEFINITION) {
6666
- return r.name ? r.name.value : void 0;
6694
+ for (var r = 0, t = e.definitions.length; r < t; r++) {
6695
+ var n = e.definitions[r];
6696
+ if (n.kind === e$2.OPERATION_DEFINITION) {
6697
+ return n.name ? n.name.value : void 0;
6667
6698
  }
6668
6699
  }
6669
6700
  };
6670
6701
 
6671
6702
  var getOperationType = e => {
6672
- for (var r of e.definitions) {
6673
- if (r.kind === e$2.OPERATION_DEFINITION) {
6674
- return r.operation;
6703
+ for (var r = 0, t = e.definitions.length; r < t; r++) {
6704
+ var n = e.definitions[r];
6705
+ if (n.kind === e$2.OPERATION_DEFINITION) {
6706
+ return n.operation;
6675
6707
  }
6676
6708
  }
6677
6709
  };
@@ -6698,12 +6730,19 @@ var makeResult = (e, r, t) => {
6698
6730
 
6699
6731
  var deepMerge = (e, r) => {
6700
6732
  if ("object" == typeof e && null != e) {
6701
- if (!e.constructor || e.constructor === Object || Array.isArray(e)) {
6702
- e = Array.isArray(e) ? [ ...e ] : {
6733
+ if (Array.isArray(e)) {
6734
+ e = [ ...e ];
6735
+ for (var t = 0, a = r.length; t < a; t++) {
6736
+ e[t] = deepMerge(e[t], r[t]);
6737
+ }
6738
+ return e;
6739
+ }
6740
+ if (!e.constructor || e.constructor === Object) {
6741
+ e = {
6703
6742
  ...e
6704
6743
  };
6705
- for (var t of Object.keys(r)) {
6706
- e[t] = deepMerge(e[t], r[t]);
6744
+ for (var n in r) {
6745
+ e[n] = deepMerge(e[n], r[n]);
6707
6746
  }
6708
6747
  return e;
6709
6748
  }
@@ -6712,70 +6751,71 @@ var deepMerge = (e, r) => {
6712
6751
  };
6713
6752
 
6714
6753
  var mergeResultPatch = (e, r, t, a) => {
6715
- var o = e.error ? e.error.graphQLErrors : [];
6716
- var n = !!e.extensions || !!(r.payload || r).extensions;
6717
- var s = {
6754
+ var n = e.error ? e.error.graphQLErrors : [];
6755
+ var o = !!e.extensions || !!(r.payload || r).extensions;
6756
+ var i = {
6718
6757
  ...e.extensions,
6719
6758
  ...(r.payload || r).extensions
6720
6759
  };
6721
- var i = r.incremental;
6760
+ var s = r.incremental;
6722
6761
  if ("path" in r) {
6723
- i = [ r ];
6762
+ s = [ r ];
6724
6763
  }
6725
6764
  var f = {
6726
6765
  data: e.data
6727
6766
  };
6728
- if (i) {
6729
- var _loop = function(e) {
6767
+ if (s) {
6768
+ var _loop = function() {
6769
+ var e = s[l];
6730
6770
  if (Array.isArray(e.errors)) {
6731
- o.push(...e.errors);
6771
+ n.push(...e.errors);
6732
6772
  }
6733
6773
  if (e.extensions) {
6734
- Object.assign(s, e.extensions);
6735
- n = !0;
6774
+ Object.assign(i, e.extensions);
6775
+ o = !0;
6736
6776
  }
6737
6777
  var r = "data";
6738
6778
  var t = f;
6739
- var i = [];
6779
+ var d = [];
6740
6780
  if (e.path) {
6741
- i = e.path;
6781
+ d = e.path;
6742
6782
  } else if (a) {
6743
- var l = a.find((r => r.id === e.id));
6783
+ var c = a.find((r => r.id === e.id));
6744
6784
  if (e.subPath) {
6745
- i = [ ...l.path, ...e.subPath ];
6785
+ d = [ ...c.path, ...e.subPath ];
6746
6786
  } else {
6747
- i = l.path;
6787
+ d = c.path;
6748
6788
  }
6749
6789
  }
6750
- for (var c = 0, d = i.length; c < d; r = i[c++]) {
6790
+ for (var v = 0, p = d.length; v < p; r = d[v++]) {
6751
6791
  t = t[r] = Array.isArray(t[r]) ? [ ...t[r] ] : {
6752
6792
  ...t[r]
6753
6793
  };
6754
6794
  }
6755
6795
  if (e.items) {
6756
- var v = +r >= 0 ? r : 0;
6757
- for (var p = 0, u = e.items.length; p < u; p++) {
6758
- t[v + p] = deepMerge(t[v + p], e.items[p]);
6796
+ var u = +r >= 0 ? r : 0;
6797
+ for (var y = 0, h = e.items.length; y < h; y++) {
6798
+ t[u + y] = deepMerge(t[u + y], e.items[y]);
6759
6799
  }
6760
6800
  } else if (void 0 !== e.data) {
6761
6801
  t[r] = deepMerge(t[r], e.data);
6762
6802
  }
6763
6803
  };
6764
- for (var l of i) {
6765
- _loop(l);
6804
+ for (var l = 0, d = s.length; l < d; l++) {
6805
+ _loop();
6766
6806
  }
6767
6807
  } else {
6768
6808
  f.data = (r.payload || r).data || e.data;
6769
- o = r.errors || r.payload && r.payload.errors || o;
6809
+ n = r.errors || r.payload && r.payload.errors || n;
6770
6810
  }
6771
6811
  return {
6772
6812
  operation: e.operation,
6773
6813
  data: f.data,
6774
- error: o.length ? new CombinedError({
6775
- graphQLErrors: o,
6814
+ error: n.length ? new CombinedError({
6815
+ graphQLErrors: n,
6776
6816
  response: t
6777
6817
  }) : void 0,
6778
- extensions: n ? s : void 0,
6818
+ extensions: o ? i : void 0,
6779
6819
  hasNext: null != r.hasNext ? r.hasNext : e.hasNext,
6780
6820
  stale: !1
6781
6821
  };
@@ -6815,18 +6855,18 @@ var makeFetchURL = (e, r) => {
6815
6855
  return e.context.url;
6816
6856
  }
6817
6857
  var a = splitOutSearchParams(e.context.url);
6818
- for (var o in r) {
6819
- var n = r[o];
6820
- if (n) {
6821
- a[1].set(o, "object" == typeof n ? stringifyVariables(n) : n);
6858
+ for (var n in r) {
6859
+ var o = r[n];
6860
+ if (o) {
6861
+ a[1].set(n, "object" == typeof o ? stringifyVariables(o) : o);
6822
6862
  }
6823
6863
  }
6824
- var s = a.join("?");
6825
- if (s.length > 2047 && "force" !== t) {
6864
+ var i = a.join("?");
6865
+ if (i.length > 2047 && "force" !== t) {
6826
6866
  e.context.preferGetMethod = !1;
6827
6867
  return e.context.url;
6828
6868
  }
6829
- return s;
6869
+ return i;
6830
6870
  };
6831
6871
 
6832
6872
  var splitOutSearchParams = e => {
@@ -6839,23 +6879,23 @@ var serializeBody = (e, r) => {
6839
6879
  var t = stringifyVariables(r);
6840
6880
  var a = (e => {
6841
6881
  var r = new Map;
6842
- if (l !== NoopConstructor || c !== NoopConstructor) {
6843
- i.clear();
6882
+ if (l !== NoopConstructor || d !== NoopConstructor) {
6883
+ s.clear();
6844
6884
  extract(r, "variables", e);
6845
6885
  }
6846
6886
  return r;
6847
6887
  })(r.variables);
6848
6888
  if (a.size) {
6849
- var o = new FormData;
6850
- o.append("operations", t);
6851
- o.append("map", stringifyVariables({
6889
+ var n = new FormData;
6890
+ n.append("operations", t);
6891
+ n.append("map", stringifyVariables({
6852
6892
  ...[ ...a.keys() ].map((e => [ e ]))
6853
6893
  }));
6854
- var n = 0;
6855
- for (var s of a.values()) {
6856
- o.append("" + n++, s);
6894
+ var o = 0;
6895
+ for (var i of a.values()) {
6896
+ n.append("" + o++, i);
6857
6897
  }
6858
- return o;
6898
+ return n;
6859
6899
  }
6860
6900
  return t;
6861
6901
  }
@@ -6884,19 +6924,19 @@ var makeFetchOptions = (e, r) => {
6884
6924
  }
6885
6925
  }));
6886
6926
  } else {
6887
- for (var o in a.headers) {
6888
- t[o.toLowerCase()] = a.headers[o];
6927
+ for (var n in a.headers) {
6928
+ t[n.toLowerCase()] = a.headers[n];
6889
6929
  }
6890
6930
  }
6891
6931
  }
6892
- var n = serializeBody(e, r);
6893
- if ("string" == typeof n && !t["content-type"]) {
6932
+ var o = serializeBody(e, r);
6933
+ if ("string" == typeof o && !t["content-type"]) {
6894
6934
  t["content-type"] = "application/json";
6895
6935
  }
6896
6936
  return {
6897
6937
  ...a,
6898
- method: n ? "POST" : "GET",
6899
- body: n,
6938
+ method: o ? "POST" : "GET",
6939
+ body: o,
6900
6940
  headers: t
6901
6941
  };
6902
6942
  };
@@ -6930,8 +6970,8 @@ async function* streamBody(e) {
6930
6970
  async function* split(e, r) {
6931
6971
  var t = "";
6932
6972
  var a;
6933
- for await (var o of e) {
6934
- t += o;
6973
+ for await (var n of e) {
6974
+ t += n;
6935
6975
  while ((a = t.indexOf(r)) > -1) {
6936
6976
  yield t.slice(0, a);
6937
6977
  t = t.slice(a + r.length);
@@ -6941,54 +6981,54 @@ async function* split(e, r) {
6941
6981
 
6942
6982
  async function* fetchOperation(e, r, t) {
6943
6983
  var a = !0;
6944
- var o = null;
6945
- var n;
6984
+ var n = null;
6985
+ var o;
6946
6986
  try {
6947
6987
  yield await Promise.resolve();
6948
- var s = (n = await (e.context.fetch || fetch)(r, t)).headers.get("Content-Type") || "";
6949
- var i;
6950
- if (/multipart\/mixed/i.test(s)) {
6951
- i = async function* parseMultipartMixed(e, r) {
6988
+ var i = (o = await (e.context.fetch || fetch)(r, t)).headers.get("Content-Type") || "";
6989
+ var s;
6990
+ if (/multipart\/mixed/i.test(i)) {
6991
+ s = async function* parseMultipartMixed(e, r) {
6952
6992
  var t = e.match(h);
6953
6993
  var a = "--" + (t ? t[1] : "-");
6954
- var o = !0;
6955
- var n;
6956
- for await (var s of split(streamBody(r), "\r\n" + a)) {
6957
- if (o) {
6958
- o = !1;
6959
- var i = s.indexOf(a);
6960
- if (i > -1) {
6961
- s = s.slice(i + a.length);
6994
+ var n = !0;
6995
+ var o;
6996
+ for await (var i of split(streamBody(r), "\r\n" + a)) {
6997
+ if (n) {
6998
+ n = !1;
6999
+ var s = i.indexOf(a);
7000
+ if (s > -1) {
7001
+ i = i.slice(s + a.length);
6962
7002
  } else {
6963
7003
  continue;
6964
7004
  }
6965
7005
  }
6966
7006
  try {
6967
- yield n = JSON.parse(s.slice(s.indexOf("\r\n\r\n") + 4));
7007
+ yield o = JSON.parse(i.slice(i.indexOf("\r\n\r\n") + 4));
6968
7008
  } catch (e) {
6969
- if (!n) {
7009
+ if (!o) {
6970
7010
  throw e;
6971
7011
  }
6972
7012
  }
6973
- if (n && !1 === n.hasNext) {
7013
+ if (o && !1 === o.hasNext) {
6974
7014
  break;
6975
7015
  }
6976
7016
  }
6977
- if (n && !1 !== n.hasNext) {
7017
+ if (o && !1 !== o.hasNext) {
6978
7018
  yield {
6979
7019
  hasNext: !1
6980
7020
  };
6981
7021
  }
6982
- }(s, n);
6983
- } else if (/text\/event-stream/i.test(s)) {
6984
- i = async function* parseEventStream(e) {
7022
+ }(i, o);
7023
+ } else if (/text\/event-stream/i.test(i)) {
7024
+ s = async function* parseEventStream(e) {
6985
7025
  var r;
6986
7026
  for await (var t of split(streamBody(e), "\n\n")) {
6987
7027
  var a = t.match(m);
6988
7028
  if (a) {
6989
- var o = a[1];
7029
+ var n = a[1];
6990
7030
  try {
6991
- yield r = JSON.parse(o);
7031
+ yield r = JSON.parse(n);
6992
7032
  } catch (e) {
6993
7033
  if (!r) {
6994
7034
  throw e;
@@ -7004,13 +7044,13 @@ async function* fetchOperation(e, r, t) {
7004
7044
  hasNext: !1
7005
7045
  };
7006
7046
  }
7007
- }(n);
7008
- } else if (!/text\//i.test(s)) {
7009
- i = async function* parseJSON(e) {
7047
+ }(o);
7048
+ } else if (!/text\//i.test(i)) {
7049
+ s = async function* parseJSON(e) {
7010
7050
  yield JSON.parse(await e.text());
7011
- }(n);
7051
+ }(o);
7012
7052
  } else {
7013
- i = async function* parseMaybeJSON(e) {
7053
+ s = async function* parseMaybeJSON(e) {
7014
7054
  var r = await e.text();
7015
7055
  try {
7016
7056
  var t = JSON.parse(r);
@@ -7021,28 +7061,28 @@ async function* fetchOperation(e, r, t) {
7021
7061
  } catch (e) {
7022
7062
  throw new Error(r);
7023
7063
  }
7024
- }(n);
7064
+ }(o);
7025
7065
  }
7026
7066
  var f;
7027
- for await (var l of i) {
7028
- if (l.pending && !o) {
7067
+ for await (var l of s) {
7068
+ if (l.pending && !n) {
7029
7069
  f = l.pending;
7030
7070
  } else if (l.pending) {
7031
7071
  f = [ ...f, ...l.pending ];
7032
7072
  }
7033
- o = o ? mergeResultPatch(o, l, n, f) : makeResult(e, l, n);
7073
+ n = n ? mergeResultPatch(n, l, o, f) : makeResult(e, l, o);
7034
7074
  a = !1;
7035
- yield o;
7075
+ yield n;
7036
7076
  a = !0;
7037
7077
  }
7038
- if (!o) {
7039
- yield o = makeResult(e, {}, n);
7078
+ if (!n) {
7079
+ yield n = makeResult(e, {}, o);
7040
7080
  }
7041
7081
  } catch (r) {
7042
7082
  if (!a) {
7043
7083
  throw r;
7044
7084
  }
7045
- yield makeErrorResult(e, n && (n.status < 200 || n.status >= 300) && n.statusText ? new Error(n.statusText) : r, n);
7085
+ yield makeErrorResult(e, o && (o.status < 200 || o.status >= 300) && o.statusText ? new Error(o.statusText) : r, o);
7046
7086
  }
7047
7087
  }
7048
7088
 
@@ -7060,15 +7100,15 @@ function makeFetchSource(e, r, t) {
7060
7100
 
7061
7101
  var collectTypes = (e, r) => {
7062
7102
  if (Array.isArray(e)) {
7063
- for (var t of e) {
7064
- collectTypes(t, r);
7103
+ for (var t = 0, n = e.length; t < n; t++) {
7104
+ collectTypes(e[t], r);
7065
7105
  }
7066
7106
  } else if ("object" == typeof e && null !== e) {
7067
- for (var n in e) {
7068
- if ("__typename" === n && "string" == typeof e[n]) {
7069
- r.add(e[n]);
7107
+ for (var a in e) {
7108
+ if ("__typename" === a && "string" == typeof e[a]) {
7109
+ r.add(e[a]);
7070
7110
  } else {
7071
- collectTypes(e[n], r);
7111
+ collectTypes(e[a], r);
7072
7112
  }
7073
7113
  }
7074
7114
  }
@@ -7078,9 +7118,9 @@ var collectTypes = (e, r) => {
7078
7118
  var formatNode = r => {
7079
7119
  if ("definitions" in r) {
7080
7120
  var t = [];
7081
- for (var n of r.definitions) {
7082
- var a = formatNode(n);
7083
- t.push(a);
7121
+ for (var n = 0, a = r.definitions.length; n < a; n++) {
7122
+ var i = formatNode(r.definitions[n]);
7123
+ t.push(i);
7084
7124
  }
7085
7125
  return {
7086
7126
  ...r,
@@ -7089,33 +7129,35 @@ var formatNode = r => {
7089
7129
  }
7090
7130
  if ("directives" in r && r.directives && r.directives.length) {
7091
7131
  var o = [];
7092
- var i = {};
7093
- for (var s of r.directives) {
7094
- var c = s.name.value;
7095
- if ("_" !== c[0]) {
7096
- o.push(s);
7132
+ var s = {};
7133
+ for (var c = 0, u = r.directives.length; c < u; c++) {
7134
+ var p = r.directives[c];
7135
+ var d = p.name.value;
7136
+ if ("_" !== d[0]) {
7137
+ o.push(p);
7097
7138
  } else {
7098
- c = c.slice(1);
7139
+ d = d.slice(1);
7099
7140
  }
7100
- i[c] = s;
7141
+ s[d] = p;
7101
7142
  }
7102
7143
  r = {
7103
7144
  ...r,
7104
7145
  directives: o,
7105
- _directives: i
7146
+ _directives: s
7106
7147
  };
7107
7148
  }
7108
7149
  if ("selectionSet" in r) {
7109
- var u = [];
7110
- var p = r.kind === e$2.OPERATION_DEFINITION;
7150
+ var l = [];
7151
+ var v = r.kind === e$2.OPERATION_DEFINITION;
7111
7152
  if (r.selectionSet) {
7112
- for (var d of r.selectionSet.selections || []) {
7113
- p = p || d.kind === e$2.FIELD && "__typename" === d.name.value && !d.alias;
7114
- var v = formatNode(d);
7115
- u.push(v);
7153
+ for (var f = 0, h = r.selectionSet.selections.length; f < h; f++) {
7154
+ var k = r.selectionSet.selections[f];
7155
+ v = v || k.kind === e$2.FIELD && "__typename" === k.name.value && !k.alias;
7156
+ var y = formatNode(k);
7157
+ l.push(y);
7116
7158
  }
7117
- if (!p) {
7118
- u.push({
7159
+ if (!v) {
7160
+ l.push({
7119
7161
  kind: e$2.FIELD,
7120
7162
  name: {
7121
7163
  kind: e$2.NAME,
@@ -7128,7 +7170,7 @@ var formatNode = r => {
7128
7170
  ...r,
7129
7171
  selectionSet: {
7130
7172
  ...r.selectionSet,
7131
- selections: u
7173
+ selections: l
7132
7174
  }
7133
7175
  };
7134
7176
  }
@@ -7194,14 +7236,14 @@ var mapTypeNames = e => {
7194
7236
 
7195
7237
  var cacheExchange = ({forward: e, client: r, dispatchDebug: t}) => {
7196
7238
  var a = new Map;
7197
- var o = new Map;
7239
+ var i = new Map;
7198
7240
  var isOperationCached = e => "query" === e.kind && "network-only" !== e.context.requestPolicy && ("cache-only" === e.context.requestPolicy || a.has(e.key));
7199
- return i => {
7241
+ return o => {
7200
7242
  var s = map((e => {
7201
- var o = a.get(e.key);
7243
+ var i = a.get(e.key);
7202
7244
  "production" !== process.env.NODE_ENV && t({
7203
7245
  operation: e,
7204
- ...o ? {
7246
+ ...i ? {
7205
7247
  type: "cacheHit",
7206
7248
  message: "The result was successfully retried from the cache"
7207
7249
  } : {
@@ -7210,74 +7252,74 @@ var cacheExchange = ({forward: e, client: r, dispatchDebug: t}) => {
7210
7252
  },
7211
7253
  source: "cacheExchange"
7212
7254
  });
7213
- var i = o || makeResult(e, {
7255
+ var o = i || makeResult(e, {
7214
7256
  data: null
7215
7257
  });
7216
- i = {
7217
- ...i,
7218
- operation: "production" !== process.env.NODE_ENV ? addMetadata(e, {
7219
- cacheOutcome: o ? "hit" : "miss"
7220
- }) : e
7258
+ o = {
7259
+ ...o,
7260
+ operation: addMetadata(e, {
7261
+ cacheOutcome: i ? "hit" : "miss"
7262
+ })
7221
7263
  };
7222
7264
  if ("cache-and-network" === e.context.requestPolicy) {
7223
- i.stale = !0;
7265
+ o.stale = !0;
7224
7266
  reexecuteOperation(r, e);
7225
7267
  }
7226
- return i;
7227
- }))(filter((e => !shouldSkip(e) && isOperationCached(e)))(i));
7268
+ return o;
7269
+ }))(filter((e => !shouldSkip(e) && isOperationCached(e)))(o));
7228
7270
  var c = onPush((e => {
7229
7271
  var {operation: n} = e;
7230
7272
  if (!n) {
7231
7273
  return;
7232
7274
  }
7233
- var i = n.context.additionalTypenames || [];
7275
+ var o = n.context.additionalTypenames || [];
7234
7276
  if ("subscription" !== e.operation.kind) {
7235
- i = (e => [ ...collectTypes(e, new Set) ])(e.data).concat(i);
7277
+ o = (e => [ ...collectTypes(e, new Set) ])(e.data).concat(o);
7236
7278
  }
7237
7279
  if ("mutation" === e.operation.kind || "subscription" === e.operation.kind) {
7238
7280
  var s = new Set;
7239
7281
  "production" !== process.env.NODE_ENV && t({
7240
7282
  type: "cacheInvalidation",
7241
- message: `The following typenames have been invalidated: ${i}`,
7283
+ message: `The following typenames have been invalidated: ${o}`,
7242
7284
  operation: n,
7243
7285
  data: {
7244
- typenames: i,
7286
+ typenames: o,
7245
7287
  response: e
7246
7288
  },
7247
7289
  source: "cacheExchange"
7248
7290
  });
7249
- for (var c = 0; c < i.length; c++) {
7250
- var u = i[c];
7251
- var p = o.get(u);
7291
+ for (var c = 0; c < o.length; c++) {
7292
+ var u = o[c];
7293
+ var p = i.get(u);
7252
7294
  if (!p) {
7253
- o.set(u, p = new Set);
7295
+ i.set(u, p = new Set);
7254
7296
  }
7255
7297
  for (var d of p.values()) {
7256
7298
  s.add(d);
7257
7299
  }
7258
7300
  p.clear();
7259
7301
  }
7260
- for (var v of s.values()) {
7261
- if (a.has(v)) {
7262
- n = a.get(v).operation;
7263
- a.delete(v);
7302
+ for (var l of s.values()) {
7303
+ if (a.has(l)) {
7304
+ n = a.get(l).operation;
7305
+ a.delete(l);
7264
7306
  reexecuteOperation(r, n);
7265
7307
  }
7266
7308
  }
7267
7309
  } else if ("query" === n.kind && e.data) {
7268
7310
  a.set(n.key, e);
7269
- for (var l = 0; l < i.length; l++) {
7270
- var f = i[l];
7271
- var h = o.get(f);
7311
+ for (var v = 0; v < o.length; v++) {
7312
+ var f = o[v];
7313
+ var h = i.get(f);
7272
7314
  if (!h) {
7273
- o.set(f, h = new Set);
7315
+ i.set(f, h = new Set);
7274
7316
  }
7275
7317
  h.add(n.key);
7276
7318
  }
7277
7319
  }
7278
- }))(e(filter((e => "query" !== e.kind || "cache-only" !== e.context.requestPolicy))(map((e => "production" !== process.env.NODE_ENV ? addMetadata(e, {
7320
+ }))(e(filter((e => "query" !== e.kind || "cache-only" !== e.context.requestPolicy))(map((e => addMetadata(e, {
7279
7321
  cacheOutcome: "miss"
7280
- }) : e))(merge([ map(mapTypeNames)(filter((e => !shouldSkip(e) && !isOperationCached(e)))(i)), filter((e => shouldSkip(e)))(i) ])))));
7322
+ })))(merge([ map(mapTypeNames)(filter((e => !shouldSkip(e) && !isOperationCached(e)))(o)), filter((e => shouldSkip(e)))(o) ])))));
7281
7323
  return merge([ s, c ]);
7282
7324
  };
7283
7325
  };
@@ -7373,8 +7415,8 @@ var C = function Client(e) {
7373
7415
  var t = new Map;
7374
7416
  var n = new Map;
7375
7417
  var a = new Set;
7376
- var o = [];
7377
- var i = {
7418
+ var i = [];
7419
+ var o = {
7378
7420
  url: e.url,
7379
7421
  fetchSubscriptions: e.fetchSubscriptions,
7380
7422
  fetchOptions: e.fetchOptions,
@@ -7400,16 +7442,16 @@ var C = function Client(e) {
7400
7442
  }
7401
7443
  if (!c) {
7402
7444
  c = !0;
7403
- while (c && (e = o.shift())) {
7445
+ while (c && (e = i.shift())) {
7404
7446
  nextOperation(e);
7405
7447
  }
7406
7448
  c = !1;
7407
7449
  }
7408
7450
  }
7409
7451
  var makeResultSource = e => {
7410
- var r = takeUntil(filter((r => "teardown" === r.kind && r.key === e.key))(s.source))(filter((r => r.operation.kind === e.kind && r.operation.key === e.key && (!r.operation.context._instance || r.operation.context._instance === e.context._instance)))(O));
7452
+ var r = takeUntil(filter((r => "teardown" === r.kind && r.key === e.key))(s.source))(filter((r => r.operation.kind === e.kind && r.operation.key === e.key && (!r.operation.context._instance || r.operation.context._instance === e.context._instance)))(E));
7411
7453
  if ("query" !== e.kind) {
7412
- r = takeWhile((e => !!e.hasNext), !0)(r);
7454
+ r = takeWhile((e => !!e.hasNext))(r);
7413
7455
  } else {
7414
7456
  r = switchMap((r => {
7415
7457
  var t = fromValue(r);
@@ -7425,9 +7467,9 @@ var C = function Client(e) {
7425
7467
  t.delete(e.key);
7426
7468
  n.delete(e.key);
7427
7469
  c = !1;
7428
- for (var r = o.length - 1; r >= 0; r--) {
7429
- if (o[r].key === e.key) {
7430
- o.splice(r, 1);
7470
+ for (var r = i.length - 1; r >= 0; r--) {
7471
+ if (i[r].key === e.key) {
7472
+ i.splice(r, 1);
7431
7473
  }
7432
7474
  }
7433
7475
  nextOperation(makeOperation("teardown", e, e.context));
@@ -7436,9 +7478,10 @@ var C = function Client(e) {
7436
7478
  if (!r.hasNext) {
7437
7479
  a.delete(e.key);
7438
7480
  } else {
7439
- for (var n of o) {
7440
- if (n.key === r.operation.key) {
7441
- a.delete(n.key);
7481
+ for (var n = 0; n < i.length; n++) {
7482
+ var o = i[n];
7483
+ if (o.key === r.operation.key) {
7484
+ a.delete(o.key);
7442
7485
  break;
7443
7486
  }
7444
7487
  }
@@ -7463,18 +7506,18 @@ var C = function Client(e) {
7463
7506
  if ("teardown" === e.kind) {
7464
7507
  dispatchOperation(e);
7465
7508
  } else if ("mutation" === e.kind) {
7466
- o.push(e);
7509
+ i.push(e);
7467
7510
  Promise.resolve().then(dispatchOperation);
7468
7511
  } else if (n.has(e.key)) {
7469
7512
  var r = !1;
7470
- for (var t = 0; t < o.length; t++) {
7471
- if (o[t].key === e.key) {
7472
- o[t] = e;
7513
+ for (var t = 0; t < i.length; t++) {
7514
+ if (i[t].key === e.key) {
7515
+ i[t] = e;
7473
7516
  r = !0;
7474
7517
  }
7475
7518
  }
7476
7519
  if (!(r || a.has(e.key) && "network-only" !== e.context.requestPolicy)) {
7477
- o.push(e);
7520
+ i.push(e);
7478
7521
  Promise.resolve().then(dispatchOperation);
7479
7522
  } else {
7480
7523
  a.delete(e.key);
@@ -7492,9 +7535,9 @@ var C = function Client(e) {
7492
7535
  }
7493
7536
  return makeOperation(e, t, {
7494
7537
  _instance: "mutation" === e ? r = r + 1 | 0 : void 0,
7495
- ...i,
7538
+ ...o,
7496
7539
  ...n,
7497
- requestPolicy: n.requestPolicy || i.requestPolicy,
7540
+ requestPolicy: n.requestPolicy || o.requestPolicy,
7498
7541
  suspense: n.suspense || !1 !== n.suspense && p.suspense
7499
7542
  });
7500
7543
  },
@@ -7547,15 +7590,15 @@ var C = function Client(e) {
7547
7590
  p.subscribeToDebugTarget = e => subscribe(e)(x);
7548
7591
  d = f;
7549
7592
  }
7550
- var g = composeExchanges(e.exchanges);
7551
- var O = share(g({
7593
+ var w = composeExchanges(e.exchanges);
7594
+ var E = share(w({
7552
7595
  client: p,
7553
7596
  dispatchDebug: d,
7554
7597
  forward: fallbackExchange({
7555
7598
  dispatchDebug: d
7556
7599
  })
7557
7600
  })(s.source));
7558
- publish(O);
7601
+ publish(E);
7559
7602
  return p;
7560
7603
  };
7561
7604
 
@@ -7674,6 +7717,118 @@ class ApiClient {
7674
7717
  }
7675
7718
  }
7676
7719
 
7720
+ class SafeTransactionBuilder {
7721
+ constructor(walletClient, chainId, addresses) {
7722
+ this.walletClient = walletClient;
7723
+ this.chainId = chainId;
7724
+ this.addresses = addresses;
7725
+ /**
7726
+ * Execute an order on the Hypercert Exchange using Safe
7727
+ * @internal
7728
+ */
7729
+ this.executeOrder = (safeAddress, maker, taker, signature, merkleTree = defaultMerkleTree, overrides) => {
7730
+ const exchangeContract = new ethers.Contract(this.addresses.EXCHANGE_V2, contracts.HypercertExchangeAbi);
7731
+ const functionName = maker.quoteType === exports.QuoteType.Ask ? "executeTakerBid" : "executeTakerAsk";
7732
+ const value = maker.currency === ethers.ZeroAddress ? overrides?.value || maker.price : "0";
7733
+ const transactions = [
7734
+ {
7735
+ to: this.addresses.EXCHANGE_V2,
7736
+ data: exchangeContract.interface.encodeFunctionData(functionName, [taker, maker, signature, merkleTree]),
7737
+ value: value.toString(),
7738
+ },
7739
+ ];
7740
+ return this.performSafeTransactions(safeAddress, transactions);
7741
+ };
7742
+ /**
7743
+ * Perform a series of Safe transactions in a single transaction
7744
+ * @internal
7745
+ */
7746
+ this.performSafeTransactions = async (safeAddress, transactions) => {
7747
+ const senderAddress = this.walletClient.account?.address;
7748
+ if (!senderAddress) {
7749
+ throw new Error("No sender address");
7750
+ }
7751
+ const protocolKit = await Safe.init({
7752
+ provider: this.walletClient,
7753
+ safeAddress: safeAddress,
7754
+ });
7755
+ const connected = await protocolKit.connect(this.walletClient);
7756
+ const nonce = await this.apiKit.getNextNonce(safeAddress);
7757
+ const safeTx = await connected.createTransaction({
7758
+ transactions,
7759
+ options: {
7760
+ nonce,
7761
+ },
7762
+ });
7763
+ const safeTxHash = await connected.getTransactionHash(safeTx);
7764
+ const senderSignature = await connected.signHash(safeTxHash);
7765
+ await this.apiKit.proposeTransaction({
7766
+ safeAddress,
7767
+ safeTransactionData: safeTx.data,
7768
+ safeTxHash,
7769
+ senderAddress,
7770
+ senderSignature: senderSignature.data,
7771
+ });
7772
+ return safeTxHash;
7773
+ };
7774
+ this.apiKit = new SafeApiKit({
7775
+ chainId: BigInt(this.chainId),
7776
+ });
7777
+ }
7778
+ /**
7779
+ * Approve the Hypercert Exchange to transfer the ERC721 tokens
7780
+ * @internal
7781
+ */
7782
+ async bundleApprovals(safeAddress, collectionAddress) {
7783
+ const transferManagerContract = new ethers.Contract(this.addresses.TRANSFER_MANAGER_V2, abiTransferManager);
7784
+ const erc721Contract = new ethers.Contract(collectionAddress, abiIERC721);
7785
+ const transactions = [
7786
+ {
7787
+ to: this.addresses.TRANSFER_MANAGER_V2,
7788
+ data: transferManagerContract.interface.encodeFunctionData("grantApprovals", [[this.addresses.EXCHANGE_V2]]),
7789
+ value: "0",
7790
+ },
7791
+ {
7792
+ to: collectionAddress,
7793
+ data: erc721Contract.interface.encodeFunctionData("setApprovalForAll", [
7794
+ this.addresses.TRANSFER_MANAGER_V2,
7795
+ true,
7796
+ ]),
7797
+ value: "0",
7798
+ },
7799
+ ];
7800
+ return this.performSafeTransactions(safeAddress, transactions);
7801
+ }
7802
+ /**
7803
+ * Approve an ERC20 to be used as a currency on the Hypercert Exchange using Safe
7804
+ * @internal
7805
+ */
7806
+ async approveErc20(safeAddress, tokenAddress, amount) {
7807
+ const erc20Contract = new ethers.Contract(tokenAddress, abiIERC20);
7808
+ const transactions = [
7809
+ {
7810
+ to: tokenAddress,
7811
+ data: erc20Contract.interface.encodeFunctionData("approve", [this.addresses.EXCHANGE_V2, amount]),
7812
+ value: "0",
7813
+ },
7814
+ ];
7815
+ return this.performSafeTransactions(safeAddress, transactions);
7816
+ }
7817
+ /**
7818
+ * Grant a list of operators the rights to transfer user's assets using the transfer manager using Safe
7819
+ * @internal
7820
+ */
7821
+ grantTransferManagerApproval(safeAddress, operators) {
7822
+ const transferManagerContract = new ethers.Contract(this.addresses.TRANSFER_MANAGER_V2, abiTransferManager);
7823
+ const transactions = operators.map((operator) => ({
7824
+ to: this.addresses.TRANSFER_MANAGER_V2,
7825
+ data: transferManagerContract.interface.encodeFunctionData("grantApprovals", [[operator]]),
7826
+ value: "0",
7827
+ }));
7828
+ return this.performSafeTransactions(safeAddress, transactions);
7829
+ }
7830
+ }
7831
+
7677
7832
  /**
7678
7833
  * HypercertExchange
7679
7834
  * This class provides helpers to interact with the HypercertExchange V2 contracts
@@ -7685,8 +7840,9 @@ class HypercertExchangeClient {
7685
7840
  * @param provider Ethers provider
7686
7841
  * @param signer Ethers signer
7687
7842
  * @param overrides Override contract addresses or API endpoint used
7843
+ * @param walletClient Wallet client, necessary for Safe transactions
7688
7844
  */
7689
- constructor(chainId, provider, signer, overrides) {
7845
+ constructor(chainId, provider, signer, overrides, walletClient) {
7690
7846
  const deployment = sdk.CONSTANTS.DEPLOYMENTS[contracts.asDeployedChain(chainId)];
7691
7847
  if (!deployment) {
7692
7848
  throw new Error("Chain not supported");
@@ -7698,6 +7854,7 @@ class HypercertExchangeClient {
7698
7854
  this.signer = signer;
7699
7855
  this.provider = provider;
7700
7856
  this.api = new ApiClient(indexerEnvironment, overrides?.apiEndpoint);
7857
+ this.walletClient = walletClient;
7701
7858
  }
7702
7859
  /**
7703
7860
  * Return the signer if it's set, throw an exception otherwise
@@ -7723,8 +7880,8 @@ class HypercertExchangeClient {
7723
7880
  */
7724
7881
  getTypedDataDomain() {
7725
7882
  return {
7726
- name: contractName,
7727
- version: version.toString(),
7883
+ name: DOMAIN_NAME,
7884
+ version: DOMAIN_VERSION.toString(),
7728
7885
  chainId: this.chainId,
7729
7886
  verifyingContract: this.addresses.EXCHANGE_V2,
7730
7887
  };
@@ -7761,7 +7918,7 @@ class HypercertExchangeClient {
7761
7918
  endTime: endTime,
7762
7919
  price: price,
7763
7920
  itemIds: itemIds,
7764
- amounts: itemIds.map(_ => 1n),
7921
+ amounts: itemIds.map((_) => 1n),
7765
7922
  additionalParameters: encodeParams(additionalParameters, getMakerParamsTypes(strategyId)),
7766
7923
  };
7767
7924
  return {
@@ -7805,7 +7962,7 @@ class HypercertExchangeClient {
7805
7962
  endTime: endTime,
7806
7963
  price: price,
7807
7964
  itemIds: itemIds,
7808
- amounts: itemIds.map(_ => 1n),
7965
+ amounts: itemIds.map((_) => 1n),
7809
7966
  additionalParameters: encodeParams(additionalParameters, getMakerParamsTypes(strategyId)),
7810
7967
  };
7811
7968
  return {
@@ -7834,7 +7991,6 @@ class HypercertExchangeClient {
7834
7991
  */
7835
7992
  async signMakerOrder(maker) {
7836
7993
  const signer = this.getSigner();
7837
- console.log("signing against", this.getTypedDataDomain(), maker);
7838
7994
  return await signMakerOrder(signer, this.getTypedDataDomain(), maker);
7839
7995
  }
7840
7996
  /**
@@ -7863,6 +8019,21 @@ class HypercertExchangeClient {
7863
8019
  const execute = maker.quoteType === exports.QuoteType.Ask ? executeTakerBid : executeTakerAsk;
7864
8020
  return execute(signer, this.addresses.EXCHANGE_V2, taker, maker, signature, merkleTree, overrides);
7865
8021
  }
8022
+ /**
8023
+ * Execute a trade using Safe
8024
+ * @param maker Maker order
8025
+ * @param taker Taker order
8026
+ * @param signature Signature of the maker order
8027
+ * @param merkleTree Optional merkle tree
8028
+ * @returns Safe transaction hash
8029
+ */
8030
+ executeOrderSafe(safeAddress, maker, taker, signature, overrides) {
8031
+ if (!this.walletClient) {
8032
+ throw new Error("No wallet client");
8033
+ }
8034
+ const safeTransactionBuilder = new SafeTransactionBuilder(this.walletClient, this.chainId, this.addresses);
8035
+ return safeTransactionBuilder.executeOrder(safeAddress, maker, taker, signature, undefined, overrides);
8036
+ }
7866
8037
  /**
7867
8038
  * Execute several orders
7868
8039
  * @param orders List of orders data
@@ -7930,6 +8101,20 @@ class HypercertExchangeClient {
7930
8101
  const spenderAddress = this.addresses.EXCHANGE_V2;
7931
8102
  return approve(signer, tokenAddress, spenderAddress, amount, overrides);
7932
8103
  }
8104
+ /**
8105
+ * Approve an ERC20 to be used as a currency on the Hypercert Exchange using Safe
8106
+ * @param tokenAddress Address of the ERC20 to approve
8107
+ * @param amount Amount to be approved (default to MaxUint256)
8108
+ * @param safeAddress Address of the Safe to use
8109
+ * @returns Safe transaction hash
8110
+ */
8111
+ approveErc20Safe(safeAddress, tokenAddress, amount = ethers.MaxUint256, overrides) {
8112
+ if (!this.walletClient) {
8113
+ throw new Error("No wallet client");
8114
+ }
8115
+ const safeTransactionBuilder = new SafeTransactionBuilder(this.walletClient, this.chainId, this.addresses);
8116
+ return safeTransactionBuilder.approveErc20(safeAddress, tokenAddress, amount);
8117
+ }
7933
8118
  /**
7934
8119
  * Check whether or not an operator has been approved by the user
7935
8120
  * @param operator Operator address (default to the exchange address)
@@ -7940,6 +8125,16 @@ class HypercertExchangeClient {
7940
8125
  const signerAddress = await signer.getAddress();
7941
8126
  return hasUserApprovedOperator(signer, this.addresses.TRANSFER_MANAGER_V2, signerAddress, operator, overrides);
7942
8127
  }
8128
+ /**
8129
+ * Check whether or not an operator has been approved by the Safe
8130
+ * @param safeAddress Address of the Safe to check
8131
+ * @param operator Operator address (default to the exchange address)
8132
+ * @returns true if the operator is approved, false otherwise
8133
+ */
8134
+ async isTransferManagerApprovedSafe(safeAddress, operator = this.addresses.EXCHANGE_V2, overrides) {
8135
+ const signer = this.getSigner();
8136
+ return hasUserApprovedOperator(signer, this.addresses.TRANSFER_MANAGER_V2, safeAddress, operator, overrides);
8137
+ }
7943
8138
  /**
7944
8139
  * Grant a list of operators the rights to transfer user's assets using the transfer manager
7945
8140
  * @param operators List of operators (default to the exchange address)
@@ -7950,6 +8145,19 @@ class HypercertExchangeClient {
7950
8145
  const signer = this.getSigner();
7951
8146
  return grantApprovals(signer, this.addresses.TRANSFER_MANAGER_V2, operators, overrides);
7952
8147
  }
8148
+ /**
8149
+ * Grant a list of operators the rights to transfer user's assets using the transfer manager using Safe
8150
+ * @param operators List of operators
8151
+ * @param safeAddress Address of the Safe to use
8152
+ * @returns Safe transaction hash
8153
+ */
8154
+ grantTransferManagerApprovalSafe(safeAddress, operators = [this.addresses.EXCHANGE_V2], overrides) {
8155
+ if (!this.walletClient) {
8156
+ throw new Error("No wallet client");
8157
+ }
8158
+ const safeTransactionBuilder = new SafeTransactionBuilder(this.walletClient, this.chainId, this.addresses);
8159
+ return safeTransactionBuilder.grantTransferManagerApproval(safeAddress, operators);
8160
+ }
7953
8161
  /**
7954
8162
  * Revoke a list of operators the rights to transfer user's assets using the transfer manager
7955
8163
  * @param operators List of operators
@@ -8142,6 +8350,16 @@ class HypercertExchangeClient {
8142
8350
  const signedMessage = await signer.signMessage(`Delete listing ${orderId}`);
8143
8351
  return this.api.deleteOrder(orderId, signedMessage);
8144
8352
  }
8353
+ /**
8354
+ * Bundle approval operations into a single Safe transaction
8355
+ * @param safeAddress The address of the Safe contract
8356
+ * @param collectionAddress Address of the collection to approve
8357
+ * @returns Transaction hash
8358
+ */
8359
+ async bundleApprovalsForSafe(safeAddress, walletClient, collectionAddress) {
8360
+ const safeBuilder = new SafeTransactionBuilder(walletClient, this.chainId, this.addresses);
8361
+ return safeBuilder.bundleApprovals(safeAddress, collectionAddress);
8362
+ }
8145
8363
  }
8146
8364
 
8147
8365
  const utils = {
@@ -8176,7 +8394,7 @@ exports.LooksRareProtocolAbi = LooksRareProtocol;
8176
8394
  exports.MAX_ORDERS_PER_TREE = MAX_ORDERS_PER_TREE;
8177
8395
  exports.OrderValidatorV2AAbi = OrderValidatorV2A;
8178
8396
  exports.SUPPORTED_CURRENCIES = SUPPORTED_CURRENCIES;
8179
- exports.TransferManagerAbi = TransferManager;
8397
+ exports.TransferManagerAbi = abiTransferManager;
8180
8398
  exports.WETHAbi = WETH;
8181
8399
  exports.addressesByNetwork = addressesByNetwork;
8182
8400
  exports.chainInfo = chainInfo;