@bosonprotocol/core-sdk 1.23.0-alpha.16 → 1.23.0-alpha.18

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.
Files changed (128) hide show
  1. package/dist/cjs/accounts/mixin.d.ts +194 -0
  2. package/dist/cjs/accounts/mixin.d.ts.map +1 -0
  3. package/dist/cjs/accounts/mixin.js +426 -0
  4. package/dist/cjs/accounts/mixin.js.map +1 -0
  5. package/dist/cjs/core-sdk.d.ts +16 -818
  6. package/dist/cjs/core-sdk.d.ts.map +1 -1
  7. package/dist/cjs/core-sdk.js +26 -1579
  8. package/dist/cjs/core-sdk.js.map +1 -1
  9. package/dist/cjs/disputes/mixin.d.ts +113 -0
  10. package/dist/cjs/disputes/mixin.d.ts.map +1 -0
  11. package/dist/cjs/disputes/mixin.js +203 -0
  12. package/dist/cjs/disputes/mixin.js.map +1 -0
  13. package/dist/cjs/event-logs/mixin.d.ts +11 -0
  14. package/dist/cjs/event-logs/mixin.d.ts.map +1 -0
  15. package/dist/cjs/event-logs/mixin.js +28 -0
  16. package/dist/cjs/event-logs/mixin.js.map +1 -0
  17. package/dist/cjs/exchanges/mixin.d.ts +77 -0
  18. package/dist/cjs/exchanges/mixin.d.ts.map +1 -0
  19. package/dist/cjs/exchanges/mixin.js +172 -0
  20. package/dist/cjs/exchanges/mixin.js.map +1 -0
  21. package/dist/cjs/funds/mixin.d.ts +42 -0
  22. package/dist/cjs/funds/mixin.d.ts.map +1 -0
  23. package/dist/cjs/funds/mixin.js +95 -0
  24. package/dist/cjs/funds/mixin.js.map +1 -0
  25. package/dist/cjs/groups/mixin.d.ts +14 -0
  26. package/dist/cjs/groups/mixin.d.ts.map +1 -0
  27. package/dist/cjs/groups/mixin.js +33 -0
  28. package/dist/cjs/groups/mixin.js.map +1 -0
  29. package/dist/cjs/meta-tx/mixin.d.ts +176 -0
  30. package/dist/cjs/meta-tx/mixin.d.ts.map +1 -0
  31. package/dist/cjs/meta-tx/mixin.js +296 -0
  32. package/dist/cjs/meta-tx/mixin.js.map +1 -0
  33. package/dist/cjs/metadata/mixin.d.ts +40 -0
  34. package/dist/cjs/metadata/mixin.d.ts.map +1 -0
  35. package/dist/cjs/metadata/mixin.js +102 -0
  36. package/dist/cjs/metadata/mixin.js.map +1 -0
  37. package/dist/cjs/mixins/base-core-sdk.d.ts +41 -0
  38. package/dist/cjs/mixins/base-core-sdk.d.ts.map +1 -0
  39. package/dist/cjs/mixins/base-core-sdk.js +51 -0
  40. package/dist/cjs/mixins/base-core-sdk.js.map +1 -0
  41. package/dist/cjs/native-meta-tx/mixin.d.ts +35 -0
  42. package/dist/cjs/native-meta-tx/mixin.d.ts.map +1 -0
  43. package/dist/cjs/native-meta-tx/mixin.js +68 -0
  44. package/dist/cjs/native-meta-tx/mixin.js.map +1 -0
  45. package/dist/cjs/offers/mixin.d.ts +132 -0
  46. package/dist/cjs/offers/mixin.d.ts.map +1 -0
  47. package/dist/cjs/offers/mixin.js +292 -0
  48. package/dist/cjs/offers/mixin.js.map +1 -0
  49. package/dist/cjs/orchestration/mixin.d.ts +28 -0
  50. package/dist/cjs/orchestration/mixin.d.ts.map +1 -0
  51. package/dist/cjs/orchestration/mixin.js +59 -0
  52. package/dist/cjs/orchestration/mixin.js.map +1 -0
  53. package/dist/cjs/subgraph.d.ts +48 -24
  54. package/dist/cjs/subgraph.d.ts.map +1 -1
  55. package/dist/cjs/subgraph.js +1 -1
  56. package/dist/cjs/subgraph.js.map +1 -1
  57. package/dist/esm/accounts/mixin.d.ts +194 -0
  58. package/dist/esm/accounts/mixin.d.ts.map +1 -0
  59. package/dist/esm/accounts/mixin.js +342 -0
  60. package/dist/esm/accounts/mixin.js.map +1 -0
  61. package/dist/esm/core-sdk.d.ts +16 -818
  62. package/dist/esm/core-sdk.d.ts.map +1 -1
  63. package/dist/esm/core-sdk.js +27 -1483
  64. package/dist/esm/core-sdk.js.map +1 -1
  65. package/dist/esm/disputes/mixin.d.ts +113 -0
  66. package/dist/esm/disputes/mixin.d.ts.map +1 -0
  67. package/dist/esm/disputes/mixin.js +173 -0
  68. package/dist/esm/disputes/mixin.js.map +1 -0
  69. package/dist/esm/event-logs/mixin.d.ts +11 -0
  70. package/dist/esm/event-logs/mixin.d.ts.map +1 -0
  71. package/dist/esm/event-logs/mixin.js +13 -0
  72. package/dist/esm/event-logs/mixin.js.map +1 -0
  73. package/dist/esm/exchanges/mixin.d.ts +77 -0
  74. package/dist/esm/exchanges/mixin.d.ts.map +1 -0
  75. package/dist/esm/exchanges/mixin.js +141 -0
  76. package/dist/esm/exchanges/mixin.js.map +1 -0
  77. package/dist/esm/funds/mixin.d.ts +42 -0
  78. package/dist/esm/funds/mixin.d.ts.map +1 -0
  79. package/dist/esm/funds/mixin.js +72 -0
  80. package/dist/esm/funds/mixin.js.map +1 -0
  81. package/dist/esm/groups/mixin.d.ts +14 -0
  82. package/dist/esm/groups/mixin.d.ts.map +1 -0
  83. package/dist/esm/groups/mixin.js +18 -0
  84. package/dist/esm/groups/mixin.js.map +1 -0
  85. package/dist/esm/meta-tx/mixin.d.ts +176 -0
  86. package/dist/esm/meta-tx/mixin.d.ts.map +1 -0
  87. package/dist/esm/meta-tx/mixin.js +351 -0
  88. package/dist/esm/meta-tx/mixin.js.map +1 -0
  89. package/dist/esm/metadata/mixin.d.ts +40 -0
  90. package/dist/esm/metadata/mixin.d.ts.map +1 -0
  91. package/dist/esm/metadata/mixin.js +54 -0
  92. package/dist/esm/metadata/mixin.js.map +1 -0
  93. package/dist/esm/mixins/base-core-sdk.d.ts +41 -0
  94. package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -0
  95. package/dist/esm/mixins/base-core-sdk.js +54 -0
  96. package/dist/esm/mixins/base-core-sdk.js.map +1 -0
  97. package/dist/esm/native-meta-tx/mixin.d.ts +35 -0
  98. package/dist/esm/native-meta-tx/mixin.d.ts.map +1 -0
  99. package/dist/esm/native-meta-tx/mixin.js +51 -0
  100. package/dist/esm/native-meta-tx/mixin.js.map +1 -0
  101. package/dist/esm/offers/mixin.d.ts +132 -0
  102. package/dist/esm/offers/mixin.d.ts.map +1 -0
  103. package/dist/esm/offers/mixin.js +232 -0
  104. package/dist/esm/offers/mixin.js.map +1 -0
  105. package/dist/esm/orchestration/mixin.d.ts +28 -0
  106. package/dist/esm/orchestration/mixin.d.ts.map +1 -0
  107. package/dist/esm/orchestration/mixin.js +42 -0
  108. package/dist/esm/orchestration/mixin.js.map +1 -0
  109. package/dist/esm/subgraph.d.ts +48 -24
  110. package/dist/esm/subgraph.d.ts.map +1 -1
  111. package/dist/esm/subgraph.js +1 -1
  112. package/dist/esm/subgraph.js.map +1 -1
  113. package/package.json +3 -3
  114. package/src/accounts/mixin.ts +484 -0
  115. package/src/core-sdk.ts +42 -2103
  116. package/src/disputes/mixin.ts +240 -0
  117. package/src/event-logs/mixin.ts +16 -0
  118. package/src/exchanges/mixin.ts +184 -0
  119. package/src/funds/mixin.ts +99 -0
  120. package/src/groups/mixin.ts +24 -0
  121. package/src/meta-tx/mixin.ts +515 -0
  122. package/src/metadata/mixin.ts +85 -0
  123. package/src/mixins/base-core-sdk.ts +96 -0
  124. package/src/native-meta-tx/mixin.ts +77 -0
  125. package/src/offers/mixin.ts +322 -0
  126. package/src/offers/queries.graphql +1 -1
  127. package/src/orchestration/mixin.ts +57 -0
  128. package/src/subgraph.ts +49 -25
@@ -0,0 +1,515 @@
1
+ import { MetaTxConfig, TransactionResponse } from "@bosonprotocol/common";
2
+ import { BigNumberish } from "@ethersproject/bignumber";
3
+ import { BytesLike } from "@ethersproject/bytes";
4
+ import { handler } from ".";
5
+ import { BaseCoreSDK } from "./../mixins/base-core-sdk";
6
+ import { GetRetriedHashesData } from "./biconomy";
7
+ export class MetaTxMixin extends BaseCoreSDK {
8
+ /* -------------------------------------------------------------------------- */
9
+ /* Meta Tx related methods */
10
+ /* -------------------------------------------------------------------------- */
11
+
12
+ /**
13
+ * Encodes and signs a meta transaction that can be relayed.
14
+ * @param args - Meta transaction args.
15
+ * @returns Signature.
16
+ */
17
+ public async signMetaTx(
18
+ args: Omit<
19
+ Parameters<typeof handler.signMetaTx>[0],
20
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
21
+ >
22
+ ) {
23
+ return handler.signMetaTx({
24
+ web3Lib: this._web3Lib,
25
+ metaTxHandlerAddress: this._protocolDiamond,
26
+ chainId: this._chainId,
27
+ ...args
28
+ });
29
+ }
30
+
31
+ /**
32
+ * Encodes and signs a meta transaction for `createSeller` that can be relayed.
33
+ * @param args - Meta transaction args.
34
+ * @returns Signature.
35
+ */
36
+ public async signMetaTxCreateSeller(
37
+ args: Omit<
38
+ Parameters<typeof handler.signMetaTxCreateSeller>[0],
39
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
40
+ >
41
+ ) {
42
+ return handler.signMetaTxCreateSeller({
43
+ web3Lib: this._web3Lib,
44
+ metaTxHandlerAddress: this._protocolDiamond,
45
+ chainId: this._chainId,
46
+ ...args
47
+ });
48
+ }
49
+
50
+ /**
51
+ * Encodes and signs a meta transaction for `createOffer` that can be relayed.
52
+ * @param args - Meta transaction args.
53
+ * @returns Signature.
54
+ */
55
+ public async signMetaTxCreateOffer(
56
+ args: Omit<
57
+ Parameters<typeof handler.signMetaTxCreateOffer>[0],
58
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
59
+ >
60
+ ) {
61
+ return handler.signMetaTxCreateOffer({
62
+ web3Lib: this._web3Lib,
63
+ theGraphStorage: this._theGraphStorage,
64
+ metadataStorage: this._metadataStorage,
65
+ metaTxHandlerAddress: this._protocolDiamond,
66
+ chainId: this._chainId,
67
+ ...args
68
+ });
69
+ }
70
+
71
+ /**
72
+ * Encodes and signs a meta transaction for `createOfferBatch` that can be relayed.
73
+ * @param args - Meta transaction args.
74
+ * @returns Signature.
75
+ */
76
+ public async signMetaTxCreateOfferBatch(
77
+ args: Omit<
78
+ Parameters<typeof handler.signMetaTxCreateOfferBatch>[0],
79
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
80
+ >
81
+ ) {
82
+ return handler.signMetaTxCreateOfferBatch({
83
+ web3Lib: this._web3Lib,
84
+ theGraphStorage: this._theGraphStorage,
85
+ metadataStorage: this._metadataStorage,
86
+ metaTxHandlerAddress: this._protocolDiamond,
87
+ chainId: this._chainId,
88
+ ...args
89
+ });
90
+ }
91
+
92
+ /**
93
+ * Encodes and signs a meta transaction for `createGroup` that can be relayed.
94
+ * @param args - Meta transaction args.
95
+ * @returns Signature.
96
+ */
97
+ public async signMetaTxCreateGroup(
98
+ args: Omit<
99
+ Parameters<typeof handler.signMetaTxCreateGroup>[0],
100
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
101
+ >
102
+ ) {
103
+ return handler.signMetaTxCreateGroup({
104
+ web3Lib: this._web3Lib,
105
+ metaTxHandlerAddress: this._protocolDiamond,
106
+ chainId: this._chainId,
107
+ ...args
108
+ });
109
+ }
110
+
111
+ /**
112
+ * Encodes and signs a meta transaction for `createOfferWithCondition` that can be relayed.
113
+ * @param args - Meta transaction args.
114
+ * @returns Signature.
115
+ */
116
+ public async signMetaTxCreateOfferWithCondition(
117
+ args: Omit<
118
+ Parameters<typeof handler.signMetaTxCreateOfferWithCondition>[0],
119
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
120
+ >
121
+ ) {
122
+ return handler.signMetaTxCreateOfferWithCondition({
123
+ web3Lib: this._web3Lib,
124
+ theGraphStorage: this._theGraphStorage,
125
+ metadataStorage: this._metadataStorage,
126
+ metaTxHandlerAddress: this._protocolDiamond,
127
+ chainId: this._chainId,
128
+ ...args
129
+ });
130
+ }
131
+
132
+ /**
133
+ * Encodes and signs a meta transaction for `voidOffer` that can be relayed.
134
+ * @param args - Meta transaction args.
135
+ * @returns Signature.
136
+ */
137
+ public async signMetaTxVoidOffer(
138
+ args: Omit<
139
+ Parameters<typeof handler.signMetaTxVoidOffer>[0],
140
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
141
+ >
142
+ ) {
143
+ return handler.signMetaTxVoidOffer({
144
+ web3Lib: this._web3Lib,
145
+ metaTxHandlerAddress: this._protocolDiamond,
146
+ chainId: this._chainId,
147
+ ...args
148
+ });
149
+ }
150
+
151
+ /**
152
+ * Encodes and signs a meta transaction for `voidOfferBatch` that can be relayed.
153
+ * @param args - Meta transaction args.
154
+ * @returns Signature.
155
+ */
156
+ public async signMetaTxVoidOfferBatch(
157
+ args: Omit<
158
+ Parameters<typeof handler.signMetaTxVoidOfferBatch>[0],
159
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
160
+ >
161
+ ) {
162
+ return handler.signMetaTxVoidOfferBatch({
163
+ web3Lib: this._web3Lib,
164
+ metaTxHandlerAddress: this._protocolDiamond,
165
+ chainId: this._chainId,
166
+ ...args
167
+ });
168
+ }
169
+
170
+ /**
171
+ * Encodes and signs a meta transaction for `completeExchangeBatch` that can be relayed.
172
+ * @param args - Meta transaction args.
173
+ * @returns Signature.
174
+ */
175
+ public async signMetaTxCompleteExchange(
176
+ args: Omit<
177
+ Parameters<typeof handler.signMetaTxCompleteExchange>[0],
178
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
179
+ >
180
+ ) {
181
+ return handler.signMetaTxCompleteExchange({
182
+ web3Lib: this._web3Lib,
183
+ metaTxHandlerAddress: this._protocolDiamond,
184
+ chainId: this._chainId,
185
+ ...args
186
+ });
187
+ }
188
+
189
+ /**
190
+ * Encodes and signs a meta transaction for `completeExchangeBatch` that can be relayed.
191
+ * @param args - Meta transaction args.
192
+ * @returns Signature.
193
+ */
194
+ public async signMetaTxCompleteExchangeBatch(
195
+ args: Omit<
196
+ Parameters<typeof handler.signMetaTxCompleteExchangeBatch>[0],
197
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
198
+ >
199
+ ) {
200
+ return handler.signMetaTxCompleteExchangeBatch({
201
+ web3Lib: this._web3Lib,
202
+ metaTxHandlerAddress: this._protocolDiamond,
203
+ chainId: this._chainId,
204
+ ...args
205
+ });
206
+ }
207
+
208
+ /**
209
+ * Encodes and signs a meta transaction for `commitToOffer` that can be relayed.
210
+ * @param args - Meta transaction args.
211
+ * @returns Signature.
212
+ */
213
+ public async signMetaTxCommitToOffer(
214
+ args: Omit<
215
+ Parameters<typeof handler.signMetaTxCommitToOffer>[0],
216
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
217
+ >
218
+ ) {
219
+ return handler.signMetaTxCommitToOffer({
220
+ web3Lib: this._web3Lib,
221
+ metaTxHandlerAddress: this._protocolDiamond,
222
+ chainId: this._chainId,
223
+ ...args
224
+ });
225
+ }
226
+
227
+ /**
228
+ * Encodes and signs a meta transaction for `cancelVoucher` that can be relayed.
229
+ * @param args - Meta transaction args.
230
+ * @returns Signature.
231
+ */
232
+ public async signMetaTxCancelVoucher(
233
+ args: Omit<
234
+ Parameters<typeof handler.signMetaTxCancelVoucher>[0],
235
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
236
+ >
237
+ ) {
238
+ return handler.signMetaTxCancelVoucher({
239
+ web3Lib: this._web3Lib,
240
+ metaTxHandlerAddress: this._protocolDiamond,
241
+ chainId: this._chainId,
242
+ ...args
243
+ });
244
+ }
245
+
246
+ /**
247
+ * Encodes and signs a meta transaction for `redeemVoucher` that can be relayed.
248
+ * @param args - Meta transaction args.
249
+ * @returns Signature.
250
+ */
251
+ public async signMetaTxRedeemVoucher(
252
+ args: Omit<
253
+ Parameters<typeof handler.signMetaTxRedeemVoucher>[0],
254
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
255
+ >
256
+ ) {
257
+ return handler.signMetaTxRedeemVoucher({
258
+ web3Lib: this._web3Lib,
259
+ metaTxHandlerAddress: this._protocolDiamond,
260
+ chainId: this._chainId,
261
+ ...args
262
+ });
263
+ }
264
+
265
+ /**
266
+ * Encodes and signs a meta transaction for `expireVoucher` that can be relayed.
267
+ * @param args - Meta transaction args.
268
+ * @returns Signature.
269
+ */
270
+ public async signMetaTxExpireVoucher(
271
+ args: Omit<
272
+ Parameters<typeof handler.signMetaTxExpireVoucher>[0],
273
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
274
+ >
275
+ ) {
276
+ return handler.signMetaTxExpireVoucher({
277
+ web3Lib: this._web3Lib,
278
+ metaTxHandlerAddress: this._protocolDiamond,
279
+ chainId: this._chainId,
280
+ ...args
281
+ });
282
+ }
283
+
284
+ /**
285
+ * Encodes and signs a meta transaction for `revokeVoucher` that can be relayed.
286
+ * @param args - Meta transaction args.
287
+ * @returns Signature.
288
+ */
289
+ public async signMetaTxRevokeVoucher(
290
+ args: Omit<
291
+ Parameters<typeof handler.signMetaTxRevokeVoucher>[0],
292
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
293
+ >
294
+ ) {
295
+ return handler.signMetaTxRevokeVoucher({
296
+ web3Lib: this._web3Lib,
297
+ metaTxHandlerAddress: this._protocolDiamond,
298
+ chainId: this._chainId,
299
+ ...args
300
+ });
301
+ }
302
+
303
+ /**
304
+ * Encodes and signs a meta transaction for `retractDispute` that can be relayed.
305
+ * @param args - Meta transaction args.
306
+ * @returns Signature.
307
+ */
308
+ public async signMetaTxRetractDispute(
309
+ args: Omit<
310
+ Parameters<typeof handler.signMetaTxRetractDispute>[0],
311
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
312
+ >
313
+ ) {
314
+ return handler.signMetaTxRetractDispute({
315
+ web3Lib: this._web3Lib,
316
+ metaTxHandlerAddress: this._protocolDiamond,
317
+ chainId: this._chainId,
318
+ ...args
319
+ });
320
+ }
321
+
322
+ /**
323
+ * Encodes and signs a meta transaction for `escalateDispute` that can be relayed.
324
+ * @param args - Meta transaction args.
325
+ * @returns Signature.
326
+ */
327
+ public async signMetaTxEscalateDispute(
328
+ args: Omit<
329
+ Parameters<typeof handler.signMetaTxEscalateDispute>[0],
330
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
331
+ >
332
+ ) {
333
+ return handler.signMetaTxEscalateDispute({
334
+ web3Lib: this._web3Lib,
335
+ metaTxHandlerAddress: this._protocolDiamond,
336
+ chainId: this._chainId,
337
+ ...args
338
+ });
339
+ }
340
+
341
+ /**
342
+ * Encodes and signs a meta transaction for `raiseDispute` that can be relayed.
343
+ * @param args - Meta transaction args.
344
+ * @returns Signature.
345
+ */
346
+ public async signMetaTxRaiseDispute(
347
+ args: Omit<
348
+ Parameters<typeof handler.signMetaTxRaiseDispute>[0],
349
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
350
+ >
351
+ ) {
352
+ return handler.signMetaTxRaiseDispute({
353
+ web3Lib: this._web3Lib,
354
+ metaTxHandlerAddress: this._protocolDiamond,
355
+ chainId: this._chainId,
356
+ ...args
357
+ });
358
+ }
359
+
360
+ /**
361
+ * Encodes and signs a meta transaction for `resolveDispute` that can be relayed.
362
+ * @param args - Meta transaction args.
363
+ * @returns Signature.
364
+ */
365
+ public async signMetaTxResolveDispute(
366
+ args: Omit<
367
+ Parameters<typeof handler.signMetaTxResolveDispute>[0],
368
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
369
+ >
370
+ ) {
371
+ return handler.signMetaTxResolveDispute({
372
+ web3Lib: this._web3Lib,
373
+ metaTxHandlerAddress: this._protocolDiamond,
374
+ chainId: this._chainId,
375
+ ...args
376
+ });
377
+ }
378
+
379
+ /**
380
+ * Encodes and signs a meta transaction for `extendDisputeTimeout` that can be relayed.
381
+ * @param args - Meta transaction args.
382
+ * @returns Signature.
383
+ */
384
+ public async signMetaTxExtendDisputeTimeout(
385
+ args: Omit<
386
+ Parameters<typeof handler.signMetaTxExtendDisputeTimeout>[0],
387
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
388
+ >
389
+ ) {
390
+ return handler.signMetaTxExtendDisputeTimeout({
391
+ web3Lib: this._web3Lib,
392
+ metaTxHandlerAddress: this._protocolDiamond,
393
+ chainId: this._chainId,
394
+ ...args
395
+ });
396
+ }
397
+
398
+ /**
399
+ * Encodes and signs a meta transaction for `withdrawFunds` that can be relayed.
400
+ * @param args - Meta transaction args.
401
+ * @returns Signature.
402
+ */
403
+ public async signMetaTxWithdrawFunds(
404
+ args: Omit<
405
+ Parameters<typeof handler.signMetaTxWithdrawFunds>[0],
406
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
407
+ >
408
+ ) {
409
+ return handler.signMetaTxWithdrawFunds({
410
+ web3Lib: this._web3Lib,
411
+ metaTxHandlerAddress: this._protocolDiamond,
412
+ chainId: this._chainId,
413
+ ...args
414
+ });
415
+ }
416
+
417
+ /**
418
+ * Encodes and signs a meta transaction for `depositFunds` that can be relayed.
419
+ * @param args - Meta transaction args.
420
+ * @returns Signature.
421
+ */
422
+ public async signMetaTxDepositFunds(
423
+ args: Omit<
424
+ Parameters<typeof handler.signMetaTxDepositFunds>[0],
425
+ "web3Lib" | "metaTxHandlerAddress" | "chainId"
426
+ >
427
+ ) {
428
+ return handler.signMetaTxDepositFunds({
429
+ web3Lib: this._web3Lib,
430
+ metaTxHandlerAddress: this._protocolDiamond,
431
+ chainId: this._chainId,
432
+ ...args
433
+ });
434
+ }
435
+
436
+ /**
437
+ * Relay a meta transaction,
438
+ * @param metaTxParams - Required params for meta transaction.
439
+ * @param overrides - Optional overrides.
440
+ * @returns Transaction response.
441
+ */
442
+ public async relayMetaTransaction(
443
+ metaTxParams: {
444
+ functionName: string;
445
+ functionSignature: BytesLike;
446
+ nonce: BigNumberish;
447
+ sigR: BytesLike;
448
+ sigS: BytesLike;
449
+ sigV: BigNumberish;
450
+ },
451
+ overrides: Partial<{
452
+ userAddress: string;
453
+ contractAddress: string;
454
+ metaTxConfig: Partial<Omit<MetaTxConfig, "apiIds"> & { apiId: string }>;
455
+ metaTransactionMethod: string;
456
+ }> = {}
457
+ ): Promise<TransactionResponse> {
458
+ const { metaTxApiId, metaTxApiKey, metaTxRelayerUrl, contractAddress } =
459
+ this.assertAndGetMetaTxConfig(overrides);
460
+
461
+ return handler.relayMetaTransaction({
462
+ web3LibAdapter: this._web3Lib,
463
+ contractAddress,
464
+ chainId: this._chainId,
465
+ metaTx: {
466
+ config: {
467
+ relayerUrl: metaTxRelayerUrl,
468
+ apiId: metaTxApiId,
469
+ apiKey: metaTxApiKey
470
+ },
471
+ params: {
472
+ userAddress:
473
+ overrides.userAddress || (await this._web3Lib.getSignerAddress()),
474
+ functionName: metaTxParams.functionName,
475
+ functionSignature: metaTxParams.functionSignature,
476
+ nonce: metaTxParams.nonce,
477
+ sigR: metaTxParams.sigR,
478
+ sigS: metaTxParams.sigS,
479
+ sigV: metaTxParams.sigV
480
+ }
481
+ }
482
+ });
483
+ }
484
+
485
+ /**
486
+ * Returns information of submitted meta transaction.
487
+ * See https://docs.biconomy.io/api/native-meta-tx/get-retried-hashes.
488
+ * @param originalMetaTxHash - Original meta transaction as returned by `coreSDK.relayMetaTransaction`
489
+ * @param overrides - Optional overrides for meta transaction config.
490
+ * @returns - Additional meta transaction information.
491
+ */
492
+ public async getResubmittedMetaTx(
493
+ originalMetaTxHash: string,
494
+ overrides: Partial<{
495
+ contractAddress: string;
496
+ metaTxConfig: Partial<Omit<MetaTxConfig, "apiIds"> & { apiId: string }>;
497
+ metaTransactionMethod: string;
498
+ }> = {}
499
+ ): Promise<GetRetriedHashesData> {
500
+ const { metaTxApiId, metaTxApiKey, metaTxRelayerUrl } =
501
+ this.assertAndGetMetaTxConfig(overrides);
502
+
503
+ return handler.getResubmitted({
504
+ chainId: this._chainId,
505
+ metaTx: {
506
+ config: {
507
+ relayerUrl: metaTxRelayerUrl,
508
+ apiId: metaTxApiId,
509
+ apiKey: metaTxApiKey
510
+ },
511
+ originalHash: originalMetaTxHash
512
+ }
513
+ });
514
+ }
515
+ }
@@ -0,0 +1,85 @@
1
+ import { BaseCoreSDK } from "./../mixins/base-core-sdk";
2
+ import * as metadata from ".";
3
+ import * as subgraph from "../subgraph";
4
+ import { AnyMetadata } from "..";
5
+
6
+ export class MetadataMixin extends BaseCoreSDK {
7
+ /* -------------------------------------------------------------------------- */
8
+ /* Metadata related methods */
9
+ /* -------------------------------------------------------------------------- */
10
+
11
+ /**
12
+ * Stores supported offer metadata via the MetadataStorage instance which was passed in
13
+ * at construction.
14
+ * @param metadata - Offer metadata of type `BASE` or `PRODUCT_V1`.
15
+ * @returns Metadata hash / identifier.
16
+ */
17
+ public async storeMetadata(metadata: AnyMetadata): Promise<string> {
18
+ if (!this._metadataStorage) {
19
+ throw new Error("No metadata storage set");
20
+ }
21
+
22
+ return this._metadataStorage.storeMetadata(metadata);
23
+ }
24
+
25
+ /**
26
+ * Returns supported offer metadata from passed in `MetadataStorage` instance.
27
+ * @param metadataHashOrUri - Metadata hash or uri that can be handled by the
28
+ * storage instance.
29
+ * @returns Offer metadata.
30
+ */
31
+ public async getMetadata(metadataHashOrUri: string): Promise<AnyMetadata> {
32
+ if (!this._metadataStorage) {
33
+ throw new Error("No metadata storage set");
34
+ }
35
+
36
+ return this._metadataStorage.getMetadata(metadataHashOrUri);
37
+ }
38
+
39
+ /**
40
+ * Returns `BASE` type offer metadata entities from subgraph.
41
+ * @param queryVars - Optional query variables to skip, order or filter.
42
+ * @returns BaseMetadataEntities from subgraph.
43
+ */
44
+ public async getBaseMetadataEntities(
45
+ queryVars?: subgraph.GetBaseMetadataEntitiesQueryQueryVariables
46
+ ): Promise<subgraph.BaseMetadataEntityFieldsFragment[]> {
47
+ return metadata.subgraph.getBaseMetadataEntities(
48
+ this._subgraphUrl,
49
+ queryVars
50
+ );
51
+ }
52
+
53
+ /**
54
+ * Returns `PRODUCT_V1` type offer metadata entities from subgraph.
55
+ * @param queryVars - Optional query variables to skip, order or filter.
56
+ * @returns ProductV1MetadataEntities from subgraph.
57
+ */
58
+ public async getProductV1MetadataEntities(
59
+ queryVars?: subgraph.GetProductV1MetadataEntitiesQueryQueryVariables
60
+ ): Promise<subgraph.ProductV1MetadataEntityFieldsFragment[]> {
61
+ return metadata.subgraph.getProductV1MetadataEntities(
62
+ this._subgraphUrl,
63
+ queryVars
64
+ );
65
+ }
66
+
67
+ public async getProductV1Products(
68
+ queryVars?: subgraph.GetProductV1ProductsQueryQueryVariables
69
+ ): Promise<subgraph.BaseProductV1ProductFieldsFragment[]> {
70
+ return metadata.subgraph.getProductV1Products(this._subgraphUrl, queryVars);
71
+ }
72
+
73
+ public async getProductWithVariants(productUuid: string): Promise<{
74
+ product: subgraph.BaseProductV1ProductFieldsFragment;
75
+ variants: Array<{
76
+ offer: subgraph.OfferFieldsFragment;
77
+ variations: Array<subgraph.ProductV1Variation>;
78
+ }>;
79
+ } | null> {
80
+ return metadata.subgraph.getProductWithVariants(
81
+ this._subgraphUrl,
82
+ productUuid
83
+ );
84
+ }
85
+ }
@@ -0,0 +1,96 @@
1
+ import {
2
+ Web3LibAdapter,
3
+ MetadataStorage,
4
+ MetaTxConfig,
5
+ LensContracts
6
+ } from "@bosonprotocol/common";
7
+ import { TokenInfoManager } from "../utils/tokenInfoManager";
8
+
9
+ export class BaseCoreSDK {
10
+ protected _web3Lib: Web3LibAdapter;
11
+ protected _metadataStorage?: MetadataStorage;
12
+ protected _theGraphStorage?: MetadataStorage;
13
+
14
+ protected _subgraphUrl: string;
15
+ protected _protocolDiamond: string;
16
+ protected _chainId: number;
17
+ protected _tokenInfoManager: TokenInfoManager;
18
+
19
+ protected _metaTxConfig?: Partial<MetaTxConfig>;
20
+ protected _lensContracts?: LensContracts;
21
+
22
+ /**
23
+ * Creates an instance of `BaseCoreSDK`
24
+ * @param args - Constructor args
25
+ */
26
+ constructor(opts: {
27
+ web3Lib: Web3LibAdapter;
28
+ subgraphUrl: string;
29
+ protocolDiamond: string;
30
+ metadataStorage?: MetadataStorage;
31
+ theGraphStorage?: MetadataStorage;
32
+ chainId: number;
33
+ metaTx?: Partial<MetaTxConfig>;
34
+ lensContracts?: LensContracts;
35
+ }) {
36
+ this._web3Lib = opts.web3Lib;
37
+ this._subgraphUrl = opts.subgraphUrl;
38
+ this._protocolDiamond = opts.protocolDiamond;
39
+ this._metadataStorage = opts.metadataStorage;
40
+ this._theGraphStorage = opts.theGraphStorage;
41
+ this._chainId = opts.chainId;
42
+ this._metaTxConfig = opts.metaTx;
43
+ this._lensContracts = opts.lensContracts;
44
+ }
45
+
46
+ protected assertAndGetMetaTxConfig(
47
+ overrides: Partial<{
48
+ contractAddress: string;
49
+ metaTxConfig: Partial<Omit<MetaTxConfig, "apiIds"> & { apiId: string }>;
50
+ metaTransactionMethod: string;
51
+ }> = {}
52
+ ) {
53
+ const contractAddress = overrides.contractAddress || this._protocolDiamond;
54
+ const metaTransactionMethod =
55
+ overrides.metaTransactionMethod || "executeMetaTransaction";
56
+ const metaTxRelayerUrl =
57
+ overrides.metaTxConfig?.relayerUrl || this._metaTxConfig?.relayerUrl;
58
+ const metaTxApiKey =
59
+ overrides.metaTxConfig?.apiKey || this._metaTxConfig?.apiKey;
60
+ // metaTxApiId is depending on the contract/method(=executeMetaTransaction) to be called with Biconomy
61
+ const apiIds = this._metaTxConfig?.apiIds[contractAddress.toLowerCase()];
62
+ const metaTxApiId =
63
+ overrides.metaTxConfig?.apiId ||
64
+ (apiIds && apiIds[metaTransactionMethod]);
65
+
66
+ if (!(metaTxRelayerUrl && metaTxApiKey && metaTxApiId)) {
67
+ throw new Error(
68
+ "CoreSDK not configured to relay meta transactions. Either pass in 'relayerUrl', 'apiKey' and 'apiId' during initialization OR as overrides arguments."
69
+ );
70
+ }
71
+
72
+ return {
73
+ metaTxRelayerUrl,
74
+ metaTxApiId,
75
+ metaTxApiKey,
76
+ contractAddress
77
+ };
78
+ }
79
+ }
80
+
81
+ // Doc: https://www.typescriptlang.org/docs/handbook/mixins.html#alternative-pattern
82
+ export function applyMixins(
83
+ derivedCtor: typeof BaseCoreSDK,
84
+ constructors: typeof BaseCoreSDK[]
85
+ ) {
86
+ constructors.forEach((baseCtor) => {
87
+ Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
88
+ Object.defineProperty(
89
+ derivedCtor.prototype,
90
+ name,
91
+ Object.getOwnPropertyDescriptor(baseCtor.prototype, name) ||
92
+ Object.create(null)
93
+ );
94
+ });
95
+ });
96
+ }