@bosonprotocol/core-sdk 1.47.0-alpha.4 → 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 +186 -0
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +170 -30
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +182 -31
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +157 -169
- 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 +186 -0
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +229 -48
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +182 -31
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +380 -169
- 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 +808 -93
- package/src/meta-tx/mixin.ts +839 -64
- package/src/native-meta-tx/handler.ts +68 -18
- package/src/native-meta-tx/mixin.ts +30 -4
|
@@ -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,17 +688,23 @@ 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)
|
|
583
|
-
}
|
|
701
|
+
};
|
|
702
|
+
if (args.returnTypedDataToSign) {
|
|
703
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
704
|
+
}
|
|
705
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
584
706
|
}
|
|
707
|
+
// Implementation
|
|
585
708
|
export async function signMetaTxCreateOfferAndCommit(args) {
|
|
586
709
|
utils.validation.createOfferAndCommitArgsSchema.validateSync(args.createOfferAndCommitArgs, { abortEarly: false });
|
|
587
710
|
await storeMetadataOnTheGraph({
|
|
@@ -593,30 +716,41 @@ export async function signMetaTxCreateOfferAndCommit(args) {
|
|
|
593
716
|
...args,
|
|
594
717
|
createOffersArgs: [args.createOfferAndCommitArgs]
|
|
595
718
|
});
|
|
596
|
-
|
|
719
|
+
const signMetaTxArgs = {
|
|
597
720
|
...args,
|
|
598
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))",
|
|
599
722
|
functionSignature: encodeCreateOfferAndCommit(args.createOfferAndCommitArgs)
|
|
600
|
-
}
|
|
723
|
+
};
|
|
724
|
+
if (args.returnTypedDataToSign) {
|
|
725
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
726
|
+
}
|
|
727
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
601
728
|
}
|
|
729
|
+
// Implementation
|
|
602
730
|
export async function signMetaTxCancelVoucher(args) {
|
|
603
731
|
return makeExchangeMetaTxSigner("cancelVoucher(uint256)")(args);
|
|
604
732
|
}
|
|
733
|
+
// Implementation
|
|
605
734
|
export async function signMetaTxRedeemVoucher(args) {
|
|
606
735
|
return makeExchangeMetaTxSigner("redeemVoucher(uint256)")(args);
|
|
607
736
|
}
|
|
737
|
+
// Implementation
|
|
608
738
|
export async function signMetaTxCompleteExchange(args) {
|
|
609
739
|
return makeExchangeMetaTxSigner("completeExchange(uint256)")(args);
|
|
610
740
|
}
|
|
741
|
+
// Implementation
|
|
611
742
|
export async function signMetaTxRetractDispute(args) {
|
|
612
743
|
return makeExchangeMetaTxSigner("retractDispute(uint256)", bosonDisputeHandlerIface)(args);
|
|
613
744
|
}
|
|
745
|
+
// Implementation
|
|
614
746
|
export async function signMetaTxEscalateDispute(args) {
|
|
615
747
|
return makeExchangeMetaTxSigner("escalateDispute(uint256)", bosonDisputeHandlerIface)(args);
|
|
616
748
|
}
|
|
749
|
+
// Implementation
|
|
617
750
|
export async function signMetaTxRaiseDispute(args) {
|
|
618
751
|
return makeExchangeMetaTxSigner("raiseDispute(uint256)", bosonDisputeHandlerIface)(args);
|
|
619
752
|
}
|
|
753
|
+
// Implementation
|
|
620
754
|
export async function signMetaTxResolveDispute(args) {
|
|
621
755
|
const functionName = "resolveDispute(uint256,uint256,bytes)";
|
|
622
756
|
const counterpartySig = typeof args.counterpartySig === "string"
|
|
@@ -649,6 +783,20 @@ export async function signMetaTxResolveDispute(args) {
|
|
|
649
783
|
signature: counterpartySig
|
|
650
784
|
}
|
|
651
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
|
+
}
|
|
652
800
|
const signatureParams = await prepareDataSignatureParameters({
|
|
653
801
|
...args,
|
|
654
802
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -660,18 +808,22 @@ export async function signMetaTxResolveDispute(args) {
|
|
|
660
808
|
return {
|
|
661
809
|
...signatureParams,
|
|
662
810
|
functionName,
|
|
663
|
-
functionSignature
|
|
664
|
-
// remove params in brackets from string
|
|
665
|
-
functionName.replace(/\(([^)]*)\)[^(]*$/, ""), [args.exchangeId, args.buyerPercent, counterpartySig])
|
|
811
|
+
functionSignature
|
|
666
812
|
};
|
|
667
813
|
}
|
|
814
|
+
// Implementation
|
|
668
815
|
export async function signMetaTxExtendDisputeTimeout(args) {
|
|
669
|
-
|
|
816
|
+
const signMetaTxArgs = {
|
|
670
817
|
...args,
|
|
671
818
|
functionName: "extendDisputeTimeout(uint256,uint256)",
|
|
672
819
|
functionSignature: bosonDisputeHandlerIface.encodeFunctionData("extendDisputeTimeout", [args.exchangeId, args.newTimeout])
|
|
673
|
-
}
|
|
820
|
+
};
|
|
821
|
+
if (args.returnTypedDataToSign) {
|
|
822
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
823
|
+
}
|
|
824
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
674
825
|
}
|
|
826
|
+
// Implementation
|
|
675
827
|
export async function signMetaTxWithdrawFunds(args) {
|
|
676
828
|
const functionName = "withdrawFunds(uint256,address[],uint256[])";
|
|
677
829
|
const fundType = [
|
|
@@ -701,6 +853,18 @@ export async function signMetaTxWithdrawFunds(args) {
|
|
|
701
853
|
tokenAmounts: args.tokenAmounts.map((bn) => bn.toString())
|
|
702
854
|
}
|
|
703
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
|
+
}
|
|
704
868
|
const signatureParams = await prepareDataSignatureParameters({
|
|
705
869
|
...args,
|
|
706
870
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -712,9 +876,10 @@ export async function signMetaTxWithdrawFunds(args) {
|
|
|
712
876
|
return {
|
|
713
877
|
...signatureParams,
|
|
714
878
|
functionName,
|
|
715
|
-
functionSignature
|
|
879
|
+
functionSignature
|
|
716
880
|
};
|
|
717
881
|
}
|
|
882
|
+
// Implementation
|
|
718
883
|
export async function signMetaTxDepositFunds(args) {
|
|
719
884
|
if (!isAddress(args.fundsTokenAddress)) {
|
|
720
885
|
throw new Error(`Invalid fundsTokenAddress: ${args.fundsTokenAddress}`);
|
|
@@ -722,11 +887,15 @@ export async function signMetaTxDepositFunds(args) {
|
|
|
722
887
|
if (args.fundsTokenAddress === AddressZero) {
|
|
723
888
|
throw new Error(`Meta transaction can't be used to deposit native currency`);
|
|
724
889
|
}
|
|
725
|
-
|
|
890
|
+
const signMetaTxArgs = {
|
|
726
891
|
...args,
|
|
727
892
|
functionName: "depositFunds(uint256,address,uint256)",
|
|
728
893
|
functionSignature: encodeDepositFunds(args.entityId, args.fundsTokenAddress, args.fundsAmount)
|
|
729
|
-
}
|
|
894
|
+
};
|
|
895
|
+
if (args.returnTypedDataToSign) {
|
|
896
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
897
|
+
}
|
|
898
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
730
899
|
}
|
|
731
900
|
function makeExchangeMetaTxSigner(functionName, handlerIface = bosonExchangeHandlerIface) {
|
|
732
901
|
return async function signExchangeMetaTx(args) {
|
|
@@ -752,6 +921,20 @@ function makeExchangeMetaTxSigner(functionName, handlerIface = bosonExchangeHand
|
|
|
752
921
|
exchangeId: args.exchangeId.toString()
|
|
753
922
|
}
|
|
754
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
|
+
}
|
|
755
938
|
const signatureParams = await prepareDataSignatureParameters({
|
|
756
939
|
...args,
|
|
757
940
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -763,9 +946,7 @@ function makeExchangeMetaTxSigner(functionName, handlerIface = bosonExchangeHand
|
|
|
763
946
|
return {
|
|
764
947
|
...signatureParams,
|
|
765
948
|
functionName,
|
|
766
|
-
functionSignature
|
|
767
|
-
// remove params in brackets from string
|
|
768
|
-
functionName.replace(/\(([^)]*)\)[^(]*$/, ""), [args.exchangeId])
|
|
949
|
+
functionSignature
|
|
769
950
|
};
|
|
770
951
|
};
|
|
771
952
|
}
|