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