@bosonprotocol/core-sdk 1.47.0-alpha.3 → 1.47.0-alpha.5
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/cjs/meta-tx/handler.d.ts +192 -1
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +182 -29
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +187 -30
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +161 -163
- package/dist/cjs/meta-tx/mixin.js.map +1 -1
- package/dist/cjs/native-meta-tx/handler.d.ts +16 -3
- package/dist/cjs/native-meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/native-meta-tx/handler.js +16 -5
- package/dist/cjs/native-meta-tx/handler.js.map +1 -1
- package/dist/cjs/native-meta-tx/mixin.d.ts +11 -3
- package/dist/cjs/native-meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/native-meta-tx/mixin.js +7 -9
- package/dist/cjs/native-meta-tx/mixin.js.map +1 -1
- package/dist/esm/meta-tx/handler.d.ts +192 -1
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +244 -46
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +187 -30
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +389 -163
- package/dist/esm/meta-tx/mixin.js.map +1 -1
- package/dist/esm/native-meta-tx/handler.d.ts +16 -3
- package/dist/esm/native-meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/native-meta-tx/handler.js +26 -6
- package/dist/esm/native-meta-tx/handler.js.map +1 -1
- package/dist/esm/native-meta-tx/mixin.d.ts +11 -3
- package/dist/esm/native-meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/native-meta-tx/mixin.js +12 -8
- package/dist/esm/native-meta-tx/mixin.js.map +1 -1
- package/package.json +2 -2
- package/src/meta-tx/handler.ts +839 -91
- package/src/meta-tx/mixin.ts +858 -62
- package/src/native-meta-tx/handler.ts +68 -18
- package/src/native-meta-tx/mixin.ts +30 -4
|
@@ -2,7 +2,7 @@ import { utils, envConfigs } from "@bosonprotocol/common";
|
|
|
2
2
|
import { storeMetadataOnTheGraph } from "../offers/storage";
|
|
3
3
|
import { BigNumber } from "@ethersproject/bignumber";
|
|
4
4
|
import { encodeCreateSeller, encodeOptInToSellerUpdate, encodeUpdateSeller } from "../accounts/interface";
|
|
5
|
-
import { bosonExchangeCommitHandlerIface, bosonExchangeHandlerIface, encodeCommitToBuyerOffer } from "../exchanges/interface";
|
|
5
|
+
import { bosonExchangeCommitHandlerIface, bosonExchangeHandlerIface, encodeCommitToBuyerOffer, encodeCreateOfferAndCommit } from "../exchanges/interface";
|
|
6
6
|
import { bosonOfferHandlerIface, encodeCreateOffer, encodeCreateOfferBatch, encodeReserveRange } from "../offers/interface";
|
|
7
7
|
import { prepareDataSignatureParameters, rebuildSignature } from "../utils/signature";
|
|
8
8
|
import { Biconomy } from "./biconomy";
|
|
@@ -20,6 +20,7 @@ import { getNonce, verifyEIP712 } from "../forwarder/handler";
|
|
|
20
20
|
import { isTrustedForwarder } from "../voucher/handler";
|
|
21
21
|
import { findCollectionSalt } from "../accounts/handler";
|
|
22
22
|
import { storeMetadataItems } from "../metadata/storeMetadataItems";
|
|
23
|
+
// Implementation
|
|
23
24
|
export async function signMetaTx(args) {
|
|
24
25
|
const metaTransactionType = [
|
|
25
26
|
{ name: "nonce", type: "uint256" },
|
|
@@ -33,12 +34,27 @@ export async function signMetaTx(args) {
|
|
|
33
34
|
};
|
|
34
35
|
const signerAddress = await args.web3Lib.getSignerAddress();
|
|
35
36
|
const message = {
|
|
36
|
-
nonce: args.nonce,
|
|
37
|
+
nonce: args.nonce.toString(),
|
|
37
38
|
from: signerAddress,
|
|
38
39
|
contractAddress: args.metaTxHandlerAddress,
|
|
39
40
|
functionName: args.functionName,
|
|
40
41
|
functionSignature: args.functionSignature
|
|
41
42
|
};
|
|
43
|
+
if (args.returnTypedDataToSign) {
|
|
44
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
45
|
+
...args,
|
|
46
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
47
|
+
customSignatureType,
|
|
48
|
+
primaryType: "MetaTransaction",
|
|
49
|
+
message,
|
|
50
|
+
returnTypedDataToSign: true
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
...structuredData,
|
|
54
|
+
functionName: args.functionName,
|
|
55
|
+
functionSignature: args.functionSignature
|
|
56
|
+
};
|
|
57
|
+
}
|
|
42
58
|
const signature = await prepareDataSignatureParameters({
|
|
43
59
|
...args,
|
|
44
60
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -251,6 +267,7 @@ export async function relayBiconomyMetaTransaction(args) {
|
|
|
251
267
|
hash: relayTxResponse.txHash
|
|
252
268
|
};
|
|
253
269
|
}
|
|
270
|
+
// Implementation
|
|
254
271
|
export async function signMetaTxCreateSeller(args) {
|
|
255
272
|
await Promise.all([args.createSellerArgs.contractUri, args.createSellerArgs.metadataUri].map((metadataUri) => storeMetadataOnTheGraph({
|
|
256
273
|
metadataUriOrHash: metadataUri,
|
|
@@ -262,31 +279,46 @@ export async function signMetaTxCreateSeller(args) {
|
|
|
262
279
|
contractAddress: args.metaTxHandlerAddress,
|
|
263
280
|
...args
|
|
264
281
|
});
|
|
265
|
-
|
|
282
|
+
const signMetaTxArgs = {
|
|
266
283
|
...args,
|
|
267
284
|
functionName: "createSeller((uint256,address,address,address,address,bool,string),(uint256,uint8),(string,uint256,bytes32))",
|
|
268
285
|
functionSignature: encodeCreateSeller(args.createSellerArgs, collectionSalt)
|
|
269
|
-
}
|
|
286
|
+
};
|
|
287
|
+
if (args.returnTypedDataToSign) {
|
|
288
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
289
|
+
}
|
|
290
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
270
291
|
}
|
|
292
|
+
// Implementation
|
|
271
293
|
export async function signMetaTxUpdateSeller(args) {
|
|
272
294
|
await storeMetadataOnTheGraph({
|
|
273
295
|
metadataUriOrHash: args.updateSellerArgs.metadataUri,
|
|
274
296
|
metadataStorage: args.metadataStorage,
|
|
275
297
|
theGraphStorage: args.theGraphStorage
|
|
276
298
|
});
|
|
277
|
-
|
|
299
|
+
const signMetaTxArgs = {
|
|
278
300
|
...args,
|
|
279
301
|
functionName: "updateSeller((uint256,address,address,address,address,bool,string),(uint256,uint8))",
|
|
280
302
|
functionSignature: encodeUpdateSeller(args.updateSellerArgs)
|
|
281
|
-
}
|
|
303
|
+
};
|
|
304
|
+
if (args.returnTypedDataToSign) {
|
|
305
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
306
|
+
}
|
|
307
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
282
308
|
}
|
|
309
|
+
// Implementation
|
|
283
310
|
export async function signMetaTxOptInToSellerUpdate(args) {
|
|
284
|
-
|
|
311
|
+
const signMetaTxArgs = {
|
|
285
312
|
...args,
|
|
286
313
|
functionName: "optInToSellerUpdate(uint256,uint8[])",
|
|
287
314
|
functionSignature: encodeOptInToSellerUpdate(args.optInToSellerUpdateArgs)
|
|
288
|
-
}
|
|
315
|
+
};
|
|
316
|
+
if (args.returnTypedDataToSign) {
|
|
317
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
318
|
+
}
|
|
319
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
289
320
|
}
|
|
321
|
+
// Implementation
|
|
290
322
|
export async function signMetaTxCreateOffer(args) {
|
|
291
323
|
utils.validation.createOfferArgsSchema.validateSync(args.createOfferArgs, {
|
|
292
324
|
abortEarly: false
|
|
@@ -300,12 +332,17 @@ export async function signMetaTxCreateOffer(args) {
|
|
|
300
332
|
...args,
|
|
301
333
|
createOffersArgs: [args.createOfferArgs]
|
|
302
334
|
});
|
|
303
|
-
|
|
335
|
+
const signMetaTxArgs = {
|
|
304
336
|
...args,
|
|
305
337
|
functionName: "createOffer((uint256,uint256,uint256,uint256,uint256,uint256,address,uint8,uint8,string,string,bool,uint256,(address[],uint256[])[],uint256),(uint256,uint256,uint256,uint256),(uint256,uint256,uint256),(uint256,address),uint256,uint256)",
|
|
306
338
|
functionSignature: encodeCreateOffer(args.createOfferArgs)
|
|
307
|
-
}
|
|
339
|
+
};
|
|
340
|
+
if (args.returnTypedDataToSign) {
|
|
341
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
342
|
+
}
|
|
343
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
308
344
|
}
|
|
345
|
+
// Implementation
|
|
309
346
|
export async function signMetaTxCreateOfferBatch(args) {
|
|
310
347
|
for (const offerToCreate of args.createOffersArgs) {
|
|
311
348
|
utils.validation.createOfferArgsSchema.validateSync(offerToCreate, {
|
|
@@ -318,76 +355,125 @@ export async function signMetaTxCreateOfferBatch(args) {
|
|
|
318
355
|
theGraphStorage: args.theGraphStorage
|
|
319
356
|
})));
|
|
320
357
|
await storeMetadataItems(args);
|
|
321
|
-
|
|
358
|
+
const signMetaTxArgs = {
|
|
322
359
|
...args,
|
|
323
360
|
functionName: "createOfferBatch((uint256,uint256,uint256,uint256,uint256,uint256,address,uint8,uint8,string,string,bool,uint256,(address[],uint256[])[],uint256)[],(uint256,uint256,uint256,uint256)[],(uint256,uint256,uint256)[],(uint256,address)[],uint256[],uint256[])",
|
|
324
361
|
functionSignature: encodeCreateOfferBatch(args.createOffersArgs)
|
|
325
|
-
}
|
|
362
|
+
};
|
|
363
|
+
if (args.returnTypedDataToSign) {
|
|
364
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
365
|
+
}
|
|
366
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
326
367
|
}
|
|
368
|
+
// Implementation
|
|
327
369
|
export async function signMetaTxVoidOffer(args) {
|
|
328
|
-
|
|
370
|
+
const signMetaTxArgs = {
|
|
329
371
|
...args,
|
|
330
372
|
functionName: "voidOffer(uint256)",
|
|
331
373
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData("voidOffer", [
|
|
332
374
|
args.offerId
|
|
333
375
|
])
|
|
334
|
-
}
|
|
376
|
+
};
|
|
377
|
+
if (args.returnTypedDataToSign) {
|
|
378
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
379
|
+
}
|
|
380
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
335
381
|
}
|
|
382
|
+
// Implementation
|
|
336
383
|
export async function signMetaTxVoidOfferBatch(args) {
|
|
337
|
-
|
|
384
|
+
const signMetaTxArgs = {
|
|
338
385
|
...args,
|
|
339
386
|
functionName: "voidOfferBatch(uint256[])",
|
|
340
387
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData("voidOfferBatch", [args.offerIds])
|
|
341
|
-
}
|
|
388
|
+
};
|
|
389
|
+
if (args.returnTypedDataToSign) {
|
|
390
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
391
|
+
}
|
|
392
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
342
393
|
}
|
|
394
|
+
// Implementation
|
|
343
395
|
export async function signMetaTxExtendOffer(args) {
|
|
344
|
-
|
|
396
|
+
const signMetaTxArgs = {
|
|
345
397
|
...args,
|
|
346
398
|
functionName: "extendOffer(uint256,uint256)",
|
|
347
399
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData("extendOffer", [args.offerId, args.validUntil])
|
|
348
|
-
}
|
|
400
|
+
};
|
|
401
|
+
if (args.returnTypedDataToSign) {
|
|
402
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
403
|
+
}
|
|
404
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
349
405
|
}
|
|
406
|
+
// Implementation
|
|
350
407
|
export async function signMetaTxExtendOfferBatch(args) {
|
|
351
|
-
|
|
408
|
+
const signMetaTxArgs = {
|
|
352
409
|
...args,
|
|
353
410
|
functionName: "extendOfferBatch(uint256[],uint256)",
|
|
354
411
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData("extendOfferBatch", [args.offerIds, args.validUntil])
|
|
355
|
-
}
|
|
412
|
+
};
|
|
413
|
+
if (args.returnTypedDataToSign) {
|
|
414
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
415
|
+
}
|
|
416
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
356
417
|
}
|
|
418
|
+
// Implementation
|
|
357
419
|
export async function signMetaTxCompleteExchangeBatch(args) {
|
|
358
|
-
|
|
420
|
+
const signMetaTxArgs = {
|
|
359
421
|
...args,
|
|
360
422
|
functionName: "completeExchangeBatch(uint256[])",
|
|
361
423
|
functionSignature: bosonExchangeHandlerIface.encodeFunctionData("completeExchangeBatch", [args.exchangeIds])
|
|
362
|
-
}
|
|
424
|
+
};
|
|
425
|
+
if (args.returnTypedDataToSign) {
|
|
426
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
427
|
+
}
|
|
428
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
363
429
|
}
|
|
430
|
+
// Implementation
|
|
364
431
|
export async function signMetaTxExpireVoucher(args) {
|
|
365
|
-
|
|
432
|
+
const signMetaTxArgs = {
|
|
366
433
|
...args,
|
|
367
434
|
functionName: "expireVoucher(uint256)",
|
|
368
435
|
functionSignature: bosonExchangeHandlerIface.encodeFunctionData("expireVoucher", [args.exchangeId])
|
|
369
|
-
}
|
|
436
|
+
};
|
|
437
|
+
if (args.returnTypedDataToSign) {
|
|
438
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
439
|
+
}
|
|
440
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
370
441
|
}
|
|
442
|
+
// Implementation
|
|
371
443
|
export async function signMetaTxRevokeVoucher(args) {
|
|
372
|
-
|
|
444
|
+
const signMetaTxArgs = {
|
|
373
445
|
...args,
|
|
374
446
|
functionName: "revokeVoucher(uint256)",
|
|
375
447
|
functionSignature: bosonExchangeHandlerIface.encodeFunctionData("revokeVoucher", [args.exchangeId])
|
|
376
|
-
}
|
|
448
|
+
};
|
|
449
|
+
if (args.returnTypedDataToSign) {
|
|
450
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
451
|
+
}
|
|
452
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
377
453
|
}
|
|
454
|
+
// Implementation
|
|
378
455
|
export async function signMetaTxCreateGroup(args) {
|
|
379
|
-
|
|
456
|
+
const signMetaTxArgs = {
|
|
380
457
|
...args,
|
|
381
458
|
functionName: "createGroup((uint256,uint256,uint256[]),(uint8,uint8,address,uint8,uint256,uint256,uint256,uint256))",
|
|
382
459
|
functionSignature: encodeCreateGroup(args.createGroupArgs)
|
|
383
|
-
}
|
|
460
|
+
};
|
|
461
|
+
if (args.returnTypedDataToSign) {
|
|
462
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
463
|
+
}
|
|
464
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
384
465
|
}
|
|
466
|
+
// Implementation
|
|
385
467
|
export async function signMetaTxReserveRange(args) {
|
|
386
|
-
|
|
468
|
+
const signMetaTxArgs = {
|
|
387
469
|
...args,
|
|
388
470
|
functionName: "reserveRange(uint256,uint256,address)",
|
|
389
471
|
functionSignature: encodeReserveRange(args.offerId, args.length, args.to)
|
|
390
|
-
}
|
|
472
|
+
};
|
|
473
|
+
if (args.returnTypedDataToSign) {
|
|
474
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
475
|
+
}
|
|
476
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
391
477
|
}
|
|
392
478
|
function isLocal(chainId) {
|
|
393
479
|
const localConfigs = envConfigs["local"];
|
|
@@ -469,6 +555,7 @@ export async function signMetaTxCallExternalContract(args, overrides = {}) {
|
|
|
469
555
|
txGas
|
|
470
556
|
});
|
|
471
557
|
}
|
|
558
|
+
// Implementation
|
|
472
559
|
export async function signMetaTxCreateOfferWithCondition(args) {
|
|
473
560
|
utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
|
|
474
561
|
abortEarly: false
|
|
@@ -482,12 +569,17 @@ export async function signMetaTxCreateOfferWithCondition(args) {
|
|
|
482
569
|
...args,
|
|
483
570
|
createOffersArgs: [args.offerToCreate]
|
|
484
571
|
});
|
|
485
|
-
|
|
572
|
+
const signMetaTxArgs = {
|
|
486
573
|
...args,
|
|
487
574
|
functionName: "createOfferWithCondition((uint256,uint256,uint256,uint256,uint256,uint256,address,uint8,uint8,string,string,bool,uint256,(address[],uint256[])[],uint256),(uint256,uint256,uint256,uint256),(uint256,uint256,uint256),(uint256,address),(uint8,uint8,address,uint8,uint256,uint256,uint256,uint256),uint256,uint256)",
|
|
488
575
|
functionSignature: encodeCreateOfferWithCondition(args.offerToCreate, args.condition)
|
|
489
|
-
}
|
|
576
|
+
};
|
|
577
|
+
if (args.returnTypedDataToSign) {
|
|
578
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
579
|
+
}
|
|
580
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
490
581
|
}
|
|
582
|
+
// Implementation
|
|
491
583
|
export async function signMetaTxCommitToOffer(args) {
|
|
492
584
|
const functionName = "commitToOffer(address,uint256)";
|
|
493
585
|
const offerType = [
|
|
@@ -516,6 +608,18 @@ export async function signMetaTxCommitToOffer(args) {
|
|
|
516
608
|
offerId: args.offerId.toString()
|
|
517
609
|
}
|
|
518
610
|
};
|
|
611
|
+
const functionSignature = bosonExchangeCommitHandlerIface.encodeFunctionData("commitToOffer", [buyerAddress, args.offerId]);
|
|
612
|
+
if (args.returnTypedDataToSign) {
|
|
613
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
614
|
+
...args,
|
|
615
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
616
|
+
customSignatureType,
|
|
617
|
+
primaryType: "MetaTxCommitToOffer",
|
|
618
|
+
message,
|
|
619
|
+
returnTypedDataToSign: true
|
|
620
|
+
});
|
|
621
|
+
return { ...structuredData, functionName, functionSignature };
|
|
622
|
+
}
|
|
519
623
|
const signatureParams = await prepareDataSignatureParameters({
|
|
520
624
|
...args,
|
|
521
625
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -527,9 +631,10 @@ export async function signMetaTxCommitToOffer(args) {
|
|
|
527
631
|
return {
|
|
528
632
|
...signatureParams,
|
|
529
633
|
functionName,
|
|
530
|
-
functionSignature
|
|
634
|
+
functionSignature
|
|
531
635
|
};
|
|
532
636
|
}
|
|
637
|
+
// Implementation
|
|
533
638
|
export async function signMetaTxCommitToConditionalOffer(args) {
|
|
534
639
|
const functionName = "commitToConditionalOffer(address,uint256,uint256)";
|
|
535
640
|
const offerType = [
|
|
@@ -560,6 +665,18 @@ export async function signMetaTxCommitToConditionalOffer(args) {
|
|
|
560
665
|
tokenId: args.tokenId.toString()
|
|
561
666
|
}
|
|
562
667
|
};
|
|
668
|
+
const functionSignature = bosonExchangeCommitHandlerIface.encodeFunctionData("commitToConditionalOffer", [buyerAddress, args.offerId, args.tokenId]);
|
|
669
|
+
if (args.returnTypedDataToSign) {
|
|
670
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
671
|
+
...args,
|
|
672
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
673
|
+
customSignatureType,
|
|
674
|
+
primaryType: "MetaTxCommitToConditionalOffer",
|
|
675
|
+
message,
|
|
676
|
+
returnTypedDataToSign: true
|
|
677
|
+
});
|
|
678
|
+
return { ...structuredData, functionName, functionSignature };
|
|
679
|
+
}
|
|
563
680
|
const signatureParams = await prepareDataSignatureParameters({
|
|
564
681
|
...args,
|
|
565
682
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -571,35 +688,69 @@ export async function signMetaTxCommitToConditionalOffer(args) {
|
|
|
571
688
|
return {
|
|
572
689
|
...signatureParams,
|
|
573
690
|
functionName,
|
|
574
|
-
functionSignature
|
|
691
|
+
functionSignature
|
|
575
692
|
};
|
|
576
693
|
}
|
|
694
|
+
// Implementation
|
|
577
695
|
export async function signMetaTxCommitToBuyerOffer(args) {
|
|
578
696
|
const functionName = "commitToBuyerOffer(uint256,(uint256,(address[],uint256[]),address))";
|
|
579
|
-
|
|
697
|
+
const signMetaTxArgs = {
|
|
580
698
|
...args,
|
|
581
699
|
functionName,
|
|
582
700
|
functionSignature: encodeCommitToBuyerOffer(args.offerId, args.sellerParams)
|
|
701
|
+
};
|
|
702
|
+
if (args.returnTypedDataToSign) {
|
|
703
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
704
|
+
}
|
|
705
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
706
|
+
}
|
|
707
|
+
// Implementation
|
|
708
|
+
export async function signMetaTxCreateOfferAndCommit(args) {
|
|
709
|
+
utils.validation.createOfferAndCommitArgsSchema.validateSync(args.createOfferAndCommitArgs, { abortEarly: false });
|
|
710
|
+
await storeMetadataOnTheGraph({
|
|
711
|
+
metadataUriOrHash: args.createOfferAndCommitArgs.metadataUri,
|
|
712
|
+
metadataStorage: args.metadataStorage,
|
|
713
|
+
theGraphStorage: args.theGraphStorage
|
|
714
|
+
});
|
|
715
|
+
await storeMetadataItems({
|
|
716
|
+
...args,
|
|
717
|
+
createOffersArgs: [args.createOfferAndCommitArgs]
|
|
583
718
|
});
|
|
719
|
+
const signMetaTxArgs = {
|
|
720
|
+
...args,
|
|
721
|
+
functionName: "createOfferAndCommit(((uint256,uint256,uint256,uint256,uint256,uint256,address,uint8,uint8,string,string,bool,uint256,(address[],uint256[])[],uint256),(uint256,uint256,uint256,uint256),(uint256,uint256,uint256),(uint256,address),(uint8,uint8,address,uint8,uint256,uint256,uint256,uint256),uint256,uint256,bool),address,address,bytes,uint256,(uint256,(address[],uint256[]),address))",
|
|
722
|
+
functionSignature: encodeCreateOfferAndCommit(args.createOfferAndCommitArgs)
|
|
723
|
+
};
|
|
724
|
+
if (args.returnTypedDataToSign) {
|
|
725
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
726
|
+
}
|
|
727
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
584
728
|
}
|
|
729
|
+
// Implementation
|
|
585
730
|
export async function signMetaTxCancelVoucher(args) {
|
|
586
731
|
return makeExchangeMetaTxSigner("cancelVoucher(uint256)")(args);
|
|
587
732
|
}
|
|
733
|
+
// Implementation
|
|
588
734
|
export async function signMetaTxRedeemVoucher(args) {
|
|
589
735
|
return makeExchangeMetaTxSigner("redeemVoucher(uint256)")(args);
|
|
590
736
|
}
|
|
737
|
+
// Implementation
|
|
591
738
|
export async function signMetaTxCompleteExchange(args) {
|
|
592
739
|
return makeExchangeMetaTxSigner("completeExchange(uint256)")(args);
|
|
593
740
|
}
|
|
741
|
+
// Implementation
|
|
594
742
|
export async function signMetaTxRetractDispute(args) {
|
|
595
743
|
return makeExchangeMetaTxSigner("retractDispute(uint256)", bosonDisputeHandlerIface)(args);
|
|
596
744
|
}
|
|
745
|
+
// Implementation
|
|
597
746
|
export async function signMetaTxEscalateDispute(args) {
|
|
598
747
|
return makeExchangeMetaTxSigner("escalateDispute(uint256)", bosonDisputeHandlerIface)(args);
|
|
599
748
|
}
|
|
749
|
+
// Implementation
|
|
600
750
|
export async function signMetaTxRaiseDispute(args) {
|
|
601
751
|
return makeExchangeMetaTxSigner("raiseDispute(uint256)", bosonDisputeHandlerIface)(args);
|
|
602
752
|
}
|
|
753
|
+
// Implementation
|
|
603
754
|
export async function signMetaTxResolveDispute(args) {
|
|
604
755
|
const functionName = "resolveDispute(uint256,uint256,bytes)";
|
|
605
756
|
const counterpartySig = typeof args.counterpartySig === "string"
|
|
@@ -632,6 +783,20 @@ export async function signMetaTxResolveDispute(args) {
|
|
|
632
783
|
signature: counterpartySig
|
|
633
784
|
}
|
|
634
785
|
};
|
|
786
|
+
const functionSignature = bosonDisputeHandlerIface.encodeFunctionData(
|
|
787
|
+
// remove params in brackets from string
|
|
788
|
+
functionName.replace(/\(([^)]*)\)[^(]*$/, ""), [args.exchangeId, args.buyerPercent, counterpartySig]);
|
|
789
|
+
if (args.returnTypedDataToSign) {
|
|
790
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
791
|
+
...args,
|
|
792
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
793
|
+
customSignatureType,
|
|
794
|
+
primaryType: "MetaTxDisputeResolution",
|
|
795
|
+
message,
|
|
796
|
+
returnTypedDataToSign: true
|
|
797
|
+
});
|
|
798
|
+
return { ...structuredData, functionName, functionSignature };
|
|
799
|
+
}
|
|
635
800
|
const signatureParams = await prepareDataSignatureParameters({
|
|
636
801
|
...args,
|
|
637
802
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -643,18 +808,22 @@ export async function signMetaTxResolveDispute(args) {
|
|
|
643
808
|
return {
|
|
644
809
|
...signatureParams,
|
|
645
810
|
functionName,
|
|
646
|
-
functionSignature
|
|
647
|
-
// remove params in brackets from string
|
|
648
|
-
functionName.replace(/\(([^)]*)\)[^(]*$/, ""), [args.exchangeId, args.buyerPercent, counterpartySig])
|
|
811
|
+
functionSignature
|
|
649
812
|
};
|
|
650
813
|
}
|
|
814
|
+
// Implementation
|
|
651
815
|
export async function signMetaTxExtendDisputeTimeout(args) {
|
|
652
|
-
|
|
816
|
+
const signMetaTxArgs = {
|
|
653
817
|
...args,
|
|
654
818
|
functionName: "extendDisputeTimeout(uint256,uint256)",
|
|
655
819
|
functionSignature: bosonDisputeHandlerIface.encodeFunctionData("extendDisputeTimeout", [args.exchangeId, args.newTimeout])
|
|
656
|
-
}
|
|
820
|
+
};
|
|
821
|
+
if (args.returnTypedDataToSign) {
|
|
822
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
823
|
+
}
|
|
824
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
657
825
|
}
|
|
826
|
+
// Implementation
|
|
658
827
|
export async function signMetaTxWithdrawFunds(args) {
|
|
659
828
|
const functionName = "withdrawFunds(uint256,address[],uint256[])";
|
|
660
829
|
const fundType = [
|
|
@@ -684,6 +853,18 @@ export async function signMetaTxWithdrawFunds(args) {
|
|
|
684
853
|
tokenAmounts: args.tokenAmounts.map((bn) => bn.toString())
|
|
685
854
|
}
|
|
686
855
|
};
|
|
856
|
+
const functionSignature = encodeWithdrawFunds(args.entityId, args.tokenList, args.tokenAmounts);
|
|
857
|
+
if (args.returnTypedDataToSign) {
|
|
858
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
859
|
+
...args,
|
|
860
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
861
|
+
customSignatureType,
|
|
862
|
+
primaryType: "MetaTxFund",
|
|
863
|
+
message,
|
|
864
|
+
returnTypedDataToSign: true
|
|
865
|
+
});
|
|
866
|
+
return { ...structuredData, functionName, functionSignature };
|
|
867
|
+
}
|
|
687
868
|
const signatureParams = await prepareDataSignatureParameters({
|
|
688
869
|
...args,
|
|
689
870
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -695,9 +876,10 @@ export async function signMetaTxWithdrawFunds(args) {
|
|
|
695
876
|
return {
|
|
696
877
|
...signatureParams,
|
|
697
878
|
functionName,
|
|
698
|
-
functionSignature
|
|
879
|
+
functionSignature
|
|
699
880
|
};
|
|
700
881
|
}
|
|
882
|
+
// Implementation
|
|
701
883
|
export async function signMetaTxDepositFunds(args) {
|
|
702
884
|
if (!isAddress(args.fundsTokenAddress)) {
|
|
703
885
|
throw new Error(`Invalid fundsTokenAddress: ${args.fundsTokenAddress}`);
|
|
@@ -705,11 +887,15 @@ export async function signMetaTxDepositFunds(args) {
|
|
|
705
887
|
if (args.fundsTokenAddress === AddressZero) {
|
|
706
888
|
throw new Error(`Meta transaction can't be used to deposit native currency`);
|
|
707
889
|
}
|
|
708
|
-
|
|
890
|
+
const signMetaTxArgs = {
|
|
709
891
|
...args,
|
|
710
892
|
functionName: "depositFunds(uint256,address,uint256)",
|
|
711
893
|
functionSignature: encodeDepositFunds(args.entityId, args.fundsTokenAddress, args.fundsAmount)
|
|
712
|
-
}
|
|
894
|
+
};
|
|
895
|
+
if (args.returnTypedDataToSign) {
|
|
896
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
897
|
+
}
|
|
898
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
713
899
|
}
|
|
714
900
|
function makeExchangeMetaTxSigner(functionName, handlerIface = bosonExchangeHandlerIface) {
|
|
715
901
|
return async function signExchangeMetaTx(args) {
|
|
@@ -735,6 +921,20 @@ function makeExchangeMetaTxSigner(functionName, handlerIface = bosonExchangeHand
|
|
|
735
921
|
exchangeId: args.exchangeId.toString()
|
|
736
922
|
}
|
|
737
923
|
};
|
|
924
|
+
const functionSignature = handlerIface.encodeFunctionData(
|
|
925
|
+
// remove params in brackets from string
|
|
926
|
+
functionName.replace(/\(([^)]*)\)[^(]*$/, ""), [args.exchangeId]);
|
|
927
|
+
if (args.returnTypedDataToSign) {
|
|
928
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
929
|
+
...args,
|
|
930
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
931
|
+
customSignatureType,
|
|
932
|
+
primaryType: "MetaTxExchange",
|
|
933
|
+
message,
|
|
934
|
+
returnTypedDataToSign: true
|
|
935
|
+
});
|
|
936
|
+
return { ...structuredData, functionName, functionSignature };
|
|
937
|
+
}
|
|
738
938
|
const signatureParams = await prepareDataSignatureParameters({
|
|
739
939
|
...args,
|
|
740
940
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -746,9 +946,7 @@ function makeExchangeMetaTxSigner(functionName, handlerIface = bosonExchangeHand
|
|
|
746
946
|
return {
|
|
747
947
|
...signatureParams,
|
|
748
948
|
functionName,
|
|
749
|
-
functionSignature
|
|
750
|
-
// remove params in brackets from string
|
|
751
|
-
functionName.replace(/\(([^)]*)\)[^(]*$/, ""), [args.exchangeId])
|
|
949
|
+
functionSignature
|
|
752
950
|
};
|
|
753
951
|
};
|
|
754
952
|
}
|