@hypercerts-org/marketplace-sdk 0.4.1-alpha.0 → 0.5.0-alpha.0

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