@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
package/src/meta-tx/handler.ts
CHANGED
|
@@ -38,6 +38,7 @@ import {
|
|
|
38
38
|
} from "../offers/interface";
|
|
39
39
|
import {
|
|
40
40
|
prepareDataSignatureParameters,
|
|
41
|
+
StructuredData,
|
|
41
42
|
rebuildSignature
|
|
42
43
|
} from "../utils/signature";
|
|
43
44
|
import {
|
|
@@ -67,6 +68,11 @@ import { isTrustedForwarder } from "../voucher/handler";
|
|
|
67
68
|
import { findCollectionSalt } from "../accounts/handler";
|
|
68
69
|
import { storeMetadataItems } from "../metadata/storeMetadataItems";
|
|
69
70
|
|
|
71
|
+
export type UnsignedMetaTx = StructuredData & {
|
|
72
|
+
functionName: string;
|
|
73
|
+
functionSignature: string;
|
|
74
|
+
};
|
|
75
|
+
|
|
70
76
|
export type BaseMetaTxArgs = {
|
|
71
77
|
web3Lib: Web3LibAdapter;
|
|
72
78
|
nonce: BigNumberish;
|
|
@@ -95,12 +101,30 @@ export type SignedVoucherMetaTx = Omit<SignedMetaTx, "functionName"> & {
|
|
|
95
101
|
domainSeparator?: string;
|
|
96
102
|
};
|
|
97
103
|
|
|
104
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
98
105
|
export async function signMetaTx(
|
|
99
106
|
args: BaseMetaTxArgs & {
|
|
100
107
|
functionName: string;
|
|
101
108
|
functionSignature: string;
|
|
109
|
+
returnTypedDataToSign: true;
|
|
102
110
|
}
|
|
103
|
-
): Promise<
|
|
111
|
+
): Promise<UnsignedMetaTx>;
|
|
112
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
113
|
+
export async function signMetaTx(
|
|
114
|
+
args: BaseMetaTxArgs & {
|
|
115
|
+
functionName: string;
|
|
116
|
+
functionSignature: string;
|
|
117
|
+
returnTypedDataToSign?: false | undefined;
|
|
118
|
+
}
|
|
119
|
+
): Promise<SignedMetaTx>;
|
|
120
|
+
// Implementation
|
|
121
|
+
export async function signMetaTx(
|
|
122
|
+
args: BaseMetaTxArgs & {
|
|
123
|
+
functionName: string;
|
|
124
|
+
functionSignature: string;
|
|
125
|
+
returnTypedDataToSign?: boolean;
|
|
126
|
+
}
|
|
127
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
104
128
|
const metaTransactionType = [
|
|
105
129
|
{ name: "nonce", type: "uint256" },
|
|
106
130
|
{ name: "from", type: "address" },
|
|
@@ -116,13 +140,29 @@ export async function signMetaTx(
|
|
|
116
140
|
const signerAddress = await args.web3Lib.getSignerAddress();
|
|
117
141
|
|
|
118
142
|
const message = {
|
|
119
|
-
nonce: args.nonce,
|
|
143
|
+
nonce: args.nonce.toString(),
|
|
120
144
|
from: signerAddress,
|
|
121
145
|
contractAddress: args.metaTxHandlerAddress,
|
|
122
146
|
functionName: args.functionName,
|
|
123
147
|
functionSignature: args.functionSignature
|
|
124
148
|
};
|
|
125
149
|
|
|
150
|
+
if (args.returnTypedDataToSign) {
|
|
151
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
152
|
+
...args,
|
|
153
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
154
|
+
customSignatureType,
|
|
155
|
+
primaryType: "MetaTransaction",
|
|
156
|
+
message,
|
|
157
|
+
returnTypedDataToSign: true
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
...structuredData,
|
|
161
|
+
functionName: args.functionName,
|
|
162
|
+
functionSignature: args.functionSignature
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
126
166
|
const signature = await prepareDataSignatureParameters({
|
|
127
167
|
...args,
|
|
128
168
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -400,13 +440,33 @@ export async function relayBiconomyMetaTransaction(args: {
|
|
|
400
440
|
};
|
|
401
441
|
}
|
|
402
442
|
|
|
443
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
403
444
|
export async function signMetaTxCreateSeller(
|
|
404
445
|
args: BaseMetaTxArgs & {
|
|
405
446
|
createSellerArgs: CreateSellerArgs;
|
|
406
447
|
metadataStorage?: MetadataStorage;
|
|
407
448
|
theGraphStorage?: MetadataStorage;
|
|
449
|
+
returnTypedDataToSign: true;
|
|
408
450
|
}
|
|
409
|
-
)
|
|
451
|
+
): Promise<UnsignedMetaTx>;
|
|
452
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
453
|
+
export async function signMetaTxCreateSeller(
|
|
454
|
+
args: BaseMetaTxArgs & {
|
|
455
|
+
createSellerArgs: CreateSellerArgs;
|
|
456
|
+
metadataStorage?: MetadataStorage;
|
|
457
|
+
theGraphStorage?: MetadataStorage;
|
|
458
|
+
returnTypedDataToSign?: false | undefined;
|
|
459
|
+
}
|
|
460
|
+
): Promise<SignedMetaTx>;
|
|
461
|
+
// Implementation
|
|
462
|
+
export async function signMetaTxCreateSeller(
|
|
463
|
+
args: BaseMetaTxArgs & {
|
|
464
|
+
createSellerArgs: CreateSellerArgs;
|
|
465
|
+
metadataStorage?: MetadataStorage;
|
|
466
|
+
theGraphStorage?: MetadataStorage;
|
|
467
|
+
returnTypedDataToSign?: boolean;
|
|
468
|
+
}
|
|
469
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
410
470
|
await Promise.all(
|
|
411
471
|
[args.createSellerArgs.contractUri, args.createSellerArgs.metadataUri].map(
|
|
412
472
|
(metadataUri) =>
|
|
@@ -422,53 +482,121 @@ export async function signMetaTxCreateSeller(
|
|
|
422
482
|
contractAddress: args.metaTxHandlerAddress,
|
|
423
483
|
...args
|
|
424
484
|
});
|
|
425
|
-
|
|
485
|
+
const signMetaTxArgs = {
|
|
426
486
|
...args,
|
|
427
487
|
functionName:
|
|
428
488
|
"createSeller((uint256,address,address,address,address,bool,string),(uint256,uint8),(string,uint256,bytes32))",
|
|
429
489
|
functionSignature: encodeCreateSeller(args.createSellerArgs, collectionSalt)
|
|
430
|
-
}
|
|
490
|
+
};
|
|
491
|
+
if (args.returnTypedDataToSign) {
|
|
492
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
493
|
+
}
|
|
494
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
431
495
|
}
|
|
432
496
|
|
|
497
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
433
498
|
export async function signMetaTxUpdateSeller(
|
|
434
499
|
args: BaseMetaTxArgs & {
|
|
435
500
|
updateSellerArgs: UpdateSellerArgs;
|
|
436
501
|
metadataStorage?: MetadataStorage;
|
|
437
502
|
theGraphStorage?: MetadataStorage;
|
|
503
|
+
returnTypedDataToSign: true;
|
|
438
504
|
}
|
|
439
|
-
)
|
|
505
|
+
): Promise<UnsignedMetaTx>;
|
|
506
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
507
|
+
export async function signMetaTxUpdateSeller(
|
|
508
|
+
args: BaseMetaTxArgs & {
|
|
509
|
+
updateSellerArgs: UpdateSellerArgs;
|
|
510
|
+
metadataStorage?: MetadataStorage;
|
|
511
|
+
theGraphStorage?: MetadataStorage;
|
|
512
|
+
returnTypedDataToSign?: false | undefined;
|
|
513
|
+
}
|
|
514
|
+
): Promise<SignedMetaTx>;
|
|
515
|
+
// Implementation
|
|
516
|
+
export async function signMetaTxUpdateSeller(
|
|
517
|
+
args: BaseMetaTxArgs & {
|
|
518
|
+
updateSellerArgs: UpdateSellerArgs;
|
|
519
|
+
metadataStorage?: MetadataStorage;
|
|
520
|
+
theGraphStorage?: MetadataStorage;
|
|
521
|
+
returnTypedDataToSign?: boolean;
|
|
522
|
+
}
|
|
523
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
440
524
|
await storeMetadataOnTheGraph({
|
|
441
525
|
metadataUriOrHash: args.updateSellerArgs.metadataUri,
|
|
442
526
|
metadataStorage: args.metadataStorage,
|
|
443
527
|
theGraphStorage: args.theGraphStorage
|
|
444
528
|
});
|
|
445
|
-
|
|
529
|
+
const signMetaTxArgs = {
|
|
446
530
|
...args,
|
|
447
531
|
functionName:
|
|
448
532
|
"updateSeller((uint256,address,address,address,address,bool,string),(uint256,uint8))",
|
|
449
533
|
functionSignature: encodeUpdateSeller(args.updateSellerArgs)
|
|
450
|
-
}
|
|
534
|
+
};
|
|
535
|
+
if (args.returnTypedDataToSign) {
|
|
536
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
537
|
+
}
|
|
538
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
451
539
|
}
|
|
452
540
|
|
|
541
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
453
542
|
export async function signMetaTxOptInToSellerUpdate(
|
|
454
543
|
args: BaseMetaTxArgs & {
|
|
455
544
|
optInToSellerUpdateArgs: OptInToSellerUpdateArgs;
|
|
545
|
+
returnTypedDataToSign: true;
|
|
456
546
|
}
|
|
457
|
-
)
|
|
458
|
-
|
|
547
|
+
): Promise<UnsignedMetaTx>;
|
|
548
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
549
|
+
export async function signMetaTxOptInToSellerUpdate(
|
|
550
|
+
args: BaseMetaTxArgs & {
|
|
551
|
+
optInToSellerUpdateArgs: OptInToSellerUpdateArgs;
|
|
552
|
+
returnTypedDataToSign?: false | undefined;
|
|
553
|
+
}
|
|
554
|
+
): Promise<SignedMetaTx>;
|
|
555
|
+
// Implementation
|
|
556
|
+
export async function signMetaTxOptInToSellerUpdate(
|
|
557
|
+
args: BaseMetaTxArgs & {
|
|
558
|
+
optInToSellerUpdateArgs: OptInToSellerUpdateArgs;
|
|
559
|
+
returnTypedDataToSign?: boolean;
|
|
560
|
+
}
|
|
561
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
562
|
+
const signMetaTxArgs = {
|
|
459
563
|
...args,
|
|
460
564
|
functionName: "optInToSellerUpdate(uint256,uint8[])",
|
|
461
565
|
functionSignature: encodeOptInToSellerUpdate(args.optInToSellerUpdateArgs)
|
|
462
|
-
}
|
|
566
|
+
};
|
|
567
|
+
if (args.returnTypedDataToSign) {
|
|
568
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
569
|
+
}
|
|
570
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
463
571
|
}
|
|
464
572
|
|
|
573
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
465
574
|
export async function signMetaTxCreateOffer(
|
|
466
575
|
args: BaseMetaTxArgs & {
|
|
467
576
|
createOfferArgs: CreateOfferArgs;
|
|
468
577
|
metadataStorage?: MetadataStorage;
|
|
469
578
|
theGraphStorage?: MetadataStorage;
|
|
579
|
+
returnTypedDataToSign: true;
|
|
470
580
|
}
|
|
471
|
-
)
|
|
581
|
+
): Promise<UnsignedMetaTx>;
|
|
582
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
583
|
+
export async function signMetaTxCreateOffer(
|
|
584
|
+
args: BaseMetaTxArgs & {
|
|
585
|
+
createOfferArgs: CreateOfferArgs;
|
|
586
|
+
metadataStorage?: MetadataStorage;
|
|
587
|
+
theGraphStorage?: MetadataStorage;
|
|
588
|
+
returnTypedDataToSign?: false | undefined;
|
|
589
|
+
}
|
|
590
|
+
): Promise<SignedMetaTx>;
|
|
591
|
+
// Implementation
|
|
592
|
+
export async function signMetaTxCreateOffer(
|
|
593
|
+
args: BaseMetaTxArgs & {
|
|
594
|
+
createOfferArgs: CreateOfferArgs;
|
|
595
|
+
metadataStorage?: MetadataStorage;
|
|
596
|
+
theGraphStorage?: MetadataStorage;
|
|
597
|
+
returnTypedDataToSign?: boolean;
|
|
598
|
+
}
|
|
599
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
472
600
|
utils.validation.createOfferArgsSchema.validateSync(args.createOfferArgs, {
|
|
473
601
|
abortEarly: false
|
|
474
602
|
});
|
|
@@ -483,21 +611,45 @@ export async function signMetaTxCreateOffer(
|
|
|
483
611
|
createOffersArgs: [args.createOfferArgs]
|
|
484
612
|
});
|
|
485
613
|
|
|
486
|
-
|
|
614
|
+
const signMetaTxArgs = {
|
|
487
615
|
...args,
|
|
488
616
|
functionName:
|
|
489
617
|
"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)",
|
|
490
618
|
functionSignature: encodeCreateOffer(args.createOfferArgs)
|
|
491
|
-
}
|
|
619
|
+
};
|
|
620
|
+
if (args.returnTypedDataToSign) {
|
|
621
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
622
|
+
}
|
|
623
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
492
624
|
}
|
|
493
625
|
|
|
626
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
494
627
|
export async function signMetaTxCreateOfferBatch(
|
|
495
628
|
args: BaseMetaTxArgs & {
|
|
496
629
|
createOffersArgs: CreateOfferArgs[];
|
|
497
630
|
metadataStorage?: MetadataStorage;
|
|
498
631
|
theGraphStorage?: MetadataStorage;
|
|
632
|
+
returnTypedDataToSign: true;
|
|
499
633
|
}
|
|
500
|
-
)
|
|
634
|
+
): Promise<UnsignedMetaTx>;
|
|
635
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
636
|
+
export async function signMetaTxCreateOfferBatch(
|
|
637
|
+
args: BaseMetaTxArgs & {
|
|
638
|
+
createOffersArgs: CreateOfferArgs[];
|
|
639
|
+
metadataStorage?: MetadataStorage;
|
|
640
|
+
theGraphStorage?: MetadataStorage;
|
|
641
|
+
returnTypedDataToSign?: false | undefined;
|
|
642
|
+
}
|
|
643
|
+
): Promise<SignedMetaTx>;
|
|
644
|
+
// Implementation
|
|
645
|
+
export async function signMetaTxCreateOfferBatch(
|
|
646
|
+
args: BaseMetaTxArgs & {
|
|
647
|
+
createOffersArgs: CreateOfferArgs[];
|
|
648
|
+
metadataStorage?: MetadataStorage;
|
|
649
|
+
theGraphStorage?: MetadataStorage;
|
|
650
|
+
returnTypedDataToSign?: boolean;
|
|
651
|
+
}
|
|
652
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
501
653
|
for (const offerToCreate of args.createOffersArgs) {
|
|
502
654
|
utils.validation.createOfferArgsSchema.validateSync(offerToCreate, {
|
|
503
655
|
abortEarly: false
|
|
@@ -515,145 +667,337 @@ export async function signMetaTxCreateOfferBatch(
|
|
|
515
667
|
);
|
|
516
668
|
await storeMetadataItems(args);
|
|
517
669
|
|
|
518
|
-
|
|
670
|
+
const signMetaTxArgs = {
|
|
519
671
|
...args,
|
|
520
672
|
functionName:
|
|
521
673
|
"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[])",
|
|
522
674
|
functionSignature: encodeCreateOfferBatch(args.createOffersArgs)
|
|
523
|
-
}
|
|
675
|
+
};
|
|
676
|
+
if (args.returnTypedDataToSign) {
|
|
677
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
678
|
+
}
|
|
679
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
524
680
|
}
|
|
525
681
|
|
|
682
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
526
683
|
export async function signMetaTxVoidOffer(
|
|
527
684
|
args: BaseMetaTxArgs & {
|
|
528
685
|
offerId: BigNumberish;
|
|
686
|
+
returnTypedDataToSign: true;
|
|
529
687
|
}
|
|
530
|
-
)
|
|
531
|
-
|
|
688
|
+
): Promise<UnsignedMetaTx>;
|
|
689
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
690
|
+
export async function signMetaTxVoidOffer(
|
|
691
|
+
args: BaseMetaTxArgs & {
|
|
692
|
+
offerId: BigNumberish;
|
|
693
|
+
returnTypedDataToSign?: false | undefined;
|
|
694
|
+
}
|
|
695
|
+
): Promise<SignedMetaTx>;
|
|
696
|
+
// Implementation
|
|
697
|
+
export async function signMetaTxVoidOffer(
|
|
698
|
+
args: BaseMetaTxArgs & {
|
|
699
|
+
offerId: BigNumberish;
|
|
700
|
+
returnTypedDataToSign?: boolean;
|
|
701
|
+
}
|
|
702
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
703
|
+
const signMetaTxArgs = {
|
|
532
704
|
...args,
|
|
533
705
|
functionName: "voidOffer(uint256)",
|
|
534
706
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData("voidOffer", [
|
|
535
707
|
args.offerId
|
|
536
708
|
])
|
|
537
|
-
}
|
|
709
|
+
};
|
|
710
|
+
if (args.returnTypedDataToSign) {
|
|
711
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
712
|
+
}
|
|
713
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
538
714
|
}
|
|
539
715
|
|
|
716
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
540
717
|
export async function signMetaTxVoidOfferBatch(
|
|
541
718
|
args: BaseMetaTxArgs & {
|
|
542
719
|
offerIds: BigNumberish[];
|
|
720
|
+
returnTypedDataToSign: true;
|
|
543
721
|
}
|
|
544
|
-
)
|
|
545
|
-
|
|
722
|
+
): Promise<UnsignedMetaTx>;
|
|
723
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
724
|
+
export async function signMetaTxVoidOfferBatch(
|
|
725
|
+
args: BaseMetaTxArgs & {
|
|
726
|
+
offerIds: BigNumberish[];
|
|
727
|
+
returnTypedDataToSign?: false | undefined;
|
|
728
|
+
}
|
|
729
|
+
): Promise<SignedMetaTx>;
|
|
730
|
+
// Implementation
|
|
731
|
+
export async function signMetaTxVoidOfferBatch(
|
|
732
|
+
args: BaseMetaTxArgs & {
|
|
733
|
+
offerIds: BigNumberish[];
|
|
734
|
+
returnTypedDataToSign?: boolean;
|
|
735
|
+
}
|
|
736
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
737
|
+
const signMetaTxArgs = {
|
|
546
738
|
...args,
|
|
547
739
|
functionName: "voidOfferBatch(uint256[])",
|
|
548
740
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData(
|
|
549
741
|
"voidOfferBatch",
|
|
550
742
|
[args.offerIds]
|
|
551
743
|
)
|
|
552
|
-
}
|
|
744
|
+
};
|
|
745
|
+
if (args.returnTypedDataToSign) {
|
|
746
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
747
|
+
}
|
|
748
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
553
749
|
}
|
|
554
750
|
|
|
751
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
555
752
|
export async function signMetaTxExtendOffer(
|
|
556
753
|
args: BaseMetaTxArgs & {
|
|
557
754
|
offerId: BigNumberish;
|
|
558
755
|
validUntil: BigNumberish;
|
|
756
|
+
returnTypedDataToSign: true;
|
|
559
757
|
}
|
|
560
|
-
)
|
|
561
|
-
|
|
758
|
+
): Promise<UnsignedMetaTx>;
|
|
759
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
760
|
+
export async function signMetaTxExtendOffer(
|
|
761
|
+
args: BaseMetaTxArgs & {
|
|
762
|
+
offerId: BigNumberish;
|
|
763
|
+
validUntil: BigNumberish;
|
|
764
|
+
returnTypedDataToSign?: false | undefined;
|
|
765
|
+
}
|
|
766
|
+
): Promise<SignedMetaTx>;
|
|
767
|
+
// Implementation
|
|
768
|
+
export async function signMetaTxExtendOffer(
|
|
769
|
+
args: BaseMetaTxArgs & {
|
|
770
|
+
offerId: BigNumberish;
|
|
771
|
+
validUntil: BigNumberish;
|
|
772
|
+
returnTypedDataToSign?: boolean;
|
|
773
|
+
}
|
|
774
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
775
|
+
const signMetaTxArgs = {
|
|
562
776
|
...args,
|
|
563
777
|
functionName: "extendOffer(uint256,uint256)",
|
|
564
778
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData(
|
|
565
779
|
"extendOffer",
|
|
566
780
|
[args.offerId, args.validUntil]
|
|
567
781
|
)
|
|
568
|
-
}
|
|
782
|
+
};
|
|
783
|
+
if (args.returnTypedDataToSign) {
|
|
784
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
785
|
+
}
|
|
786
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
569
787
|
}
|
|
570
788
|
|
|
789
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
571
790
|
export async function signMetaTxExtendOfferBatch(
|
|
572
791
|
args: BaseMetaTxArgs & {
|
|
573
792
|
offerIds: BigNumberish[];
|
|
574
793
|
validUntil: BigNumberish;
|
|
794
|
+
returnTypedDataToSign: true;
|
|
575
795
|
}
|
|
576
|
-
)
|
|
577
|
-
|
|
796
|
+
): Promise<UnsignedMetaTx>;
|
|
797
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
798
|
+
export async function signMetaTxExtendOfferBatch(
|
|
799
|
+
args: BaseMetaTxArgs & {
|
|
800
|
+
offerIds: BigNumberish[];
|
|
801
|
+
validUntil: BigNumberish;
|
|
802
|
+
returnTypedDataToSign?: false | undefined;
|
|
803
|
+
}
|
|
804
|
+
): Promise<SignedMetaTx>;
|
|
805
|
+
// Implementation
|
|
806
|
+
export async function signMetaTxExtendOfferBatch(
|
|
807
|
+
args: BaseMetaTxArgs & {
|
|
808
|
+
offerIds: BigNumberish[];
|
|
809
|
+
validUntil: BigNumberish;
|
|
810
|
+
returnTypedDataToSign?: boolean;
|
|
811
|
+
}
|
|
812
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
813
|
+
const signMetaTxArgs = {
|
|
578
814
|
...args,
|
|
579
815
|
functionName: "extendOfferBatch(uint256[],uint256)",
|
|
580
816
|
functionSignature: bosonOfferHandlerIface.encodeFunctionData(
|
|
581
817
|
"extendOfferBatch",
|
|
582
818
|
[args.offerIds, args.validUntil]
|
|
583
819
|
)
|
|
584
|
-
}
|
|
820
|
+
};
|
|
821
|
+
if (args.returnTypedDataToSign) {
|
|
822
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
823
|
+
}
|
|
824
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
585
825
|
}
|
|
586
826
|
|
|
827
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
587
828
|
export async function signMetaTxCompleteExchangeBatch(
|
|
588
829
|
args: BaseMetaTxArgs & {
|
|
589
830
|
exchangeIds: BigNumberish[];
|
|
831
|
+
returnTypedDataToSign: true;
|
|
590
832
|
}
|
|
591
|
-
)
|
|
592
|
-
|
|
833
|
+
): Promise<UnsignedMetaTx>;
|
|
834
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
835
|
+
export async function signMetaTxCompleteExchangeBatch(
|
|
836
|
+
args: BaseMetaTxArgs & {
|
|
837
|
+
exchangeIds: BigNumberish[];
|
|
838
|
+
returnTypedDataToSign?: false | undefined;
|
|
839
|
+
}
|
|
840
|
+
): Promise<SignedMetaTx>;
|
|
841
|
+
// Implementation
|
|
842
|
+
export async function signMetaTxCompleteExchangeBatch(
|
|
843
|
+
args: BaseMetaTxArgs & {
|
|
844
|
+
exchangeIds: BigNumberish[];
|
|
845
|
+
returnTypedDataToSign?: boolean;
|
|
846
|
+
}
|
|
847
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
848
|
+
const signMetaTxArgs = {
|
|
593
849
|
...args,
|
|
594
850
|
functionName: "completeExchangeBatch(uint256[])",
|
|
595
851
|
functionSignature: bosonExchangeHandlerIface.encodeFunctionData(
|
|
596
852
|
"completeExchangeBatch",
|
|
597
853
|
[args.exchangeIds]
|
|
598
854
|
)
|
|
599
|
-
}
|
|
855
|
+
};
|
|
856
|
+
if (args.returnTypedDataToSign) {
|
|
857
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
858
|
+
}
|
|
859
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
600
860
|
}
|
|
601
861
|
|
|
862
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
602
863
|
export async function signMetaTxExpireVoucher(
|
|
603
864
|
args: BaseMetaTxArgs & {
|
|
604
865
|
exchangeId: BigNumberish;
|
|
866
|
+
returnTypedDataToSign: true;
|
|
605
867
|
}
|
|
606
|
-
)
|
|
607
|
-
|
|
868
|
+
): Promise<UnsignedMetaTx>;
|
|
869
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
870
|
+
export async function signMetaTxExpireVoucher(
|
|
871
|
+
args: BaseMetaTxArgs & {
|
|
872
|
+
exchangeId: BigNumberish;
|
|
873
|
+
returnTypedDataToSign?: false | undefined;
|
|
874
|
+
}
|
|
875
|
+
): Promise<SignedMetaTx>;
|
|
876
|
+
// Implementation
|
|
877
|
+
export async function signMetaTxExpireVoucher(
|
|
878
|
+
args: BaseMetaTxArgs & {
|
|
879
|
+
exchangeId: BigNumberish;
|
|
880
|
+
returnTypedDataToSign?: boolean;
|
|
881
|
+
}
|
|
882
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
883
|
+
const signMetaTxArgs = {
|
|
608
884
|
...args,
|
|
609
885
|
functionName: "expireVoucher(uint256)",
|
|
610
886
|
functionSignature: bosonExchangeHandlerIface.encodeFunctionData(
|
|
611
887
|
"expireVoucher",
|
|
612
888
|
[args.exchangeId]
|
|
613
889
|
)
|
|
614
|
-
}
|
|
890
|
+
};
|
|
891
|
+
if (args.returnTypedDataToSign) {
|
|
892
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
893
|
+
}
|
|
894
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
615
895
|
}
|
|
616
896
|
|
|
897
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
617
898
|
export async function signMetaTxRevokeVoucher(
|
|
618
899
|
args: BaseMetaTxArgs & {
|
|
619
900
|
exchangeId: BigNumberish;
|
|
901
|
+
returnTypedDataToSign: true;
|
|
620
902
|
}
|
|
621
|
-
)
|
|
622
|
-
|
|
903
|
+
): Promise<UnsignedMetaTx>;
|
|
904
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
905
|
+
export async function signMetaTxRevokeVoucher(
|
|
906
|
+
args: BaseMetaTxArgs & {
|
|
907
|
+
exchangeId: BigNumberish;
|
|
908
|
+
returnTypedDataToSign?: false | undefined;
|
|
909
|
+
}
|
|
910
|
+
): Promise<SignedMetaTx>;
|
|
911
|
+
// Implementation
|
|
912
|
+
export async function signMetaTxRevokeVoucher(
|
|
913
|
+
args: BaseMetaTxArgs & {
|
|
914
|
+
exchangeId: BigNumberish;
|
|
915
|
+
returnTypedDataToSign?: boolean;
|
|
916
|
+
}
|
|
917
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
918
|
+
const signMetaTxArgs = {
|
|
623
919
|
...args,
|
|
624
920
|
functionName: "revokeVoucher(uint256)",
|
|
625
921
|
functionSignature: bosonExchangeHandlerIface.encodeFunctionData(
|
|
626
922
|
"revokeVoucher",
|
|
627
923
|
[args.exchangeId]
|
|
628
924
|
)
|
|
629
|
-
}
|
|
925
|
+
};
|
|
926
|
+
if (args.returnTypedDataToSign) {
|
|
927
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
928
|
+
}
|
|
929
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
630
930
|
}
|
|
631
931
|
|
|
932
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
632
933
|
export async function signMetaTxCreateGroup(
|
|
633
934
|
args: BaseMetaTxArgs & {
|
|
634
935
|
createGroupArgs: CreateGroupArgs;
|
|
936
|
+
returnTypedDataToSign: true;
|
|
635
937
|
}
|
|
636
|
-
)
|
|
637
|
-
|
|
938
|
+
): Promise<UnsignedMetaTx>;
|
|
939
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
940
|
+
export async function signMetaTxCreateGroup(
|
|
941
|
+
args: BaseMetaTxArgs & {
|
|
942
|
+
createGroupArgs: CreateGroupArgs;
|
|
943
|
+
returnTypedDataToSign?: false | undefined;
|
|
944
|
+
}
|
|
945
|
+
): Promise<SignedMetaTx>;
|
|
946
|
+
// Implementation
|
|
947
|
+
export async function signMetaTxCreateGroup(
|
|
948
|
+
args: BaseMetaTxArgs & {
|
|
949
|
+
createGroupArgs: CreateGroupArgs;
|
|
950
|
+
returnTypedDataToSign?: boolean;
|
|
951
|
+
}
|
|
952
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
953
|
+
const signMetaTxArgs = {
|
|
638
954
|
...args,
|
|
639
955
|
functionName:
|
|
640
956
|
"createGroup((uint256,uint256,uint256[]),(uint8,uint8,address,uint8,uint256,uint256,uint256,uint256))",
|
|
641
957
|
functionSignature: encodeCreateGroup(args.createGroupArgs)
|
|
642
|
-
}
|
|
958
|
+
};
|
|
959
|
+
if (args.returnTypedDataToSign) {
|
|
960
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
961
|
+
}
|
|
962
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
643
963
|
}
|
|
644
964
|
|
|
965
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
645
966
|
export async function signMetaTxReserveRange(
|
|
646
967
|
args: BaseMetaTxArgs & {
|
|
647
968
|
offerId: BigNumberish;
|
|
648
969
|
length: BigNumberish;
|
|
649
970
|
to: string;
|
|
971
|
+
returnTypedDataToSign: true;
|
|
650
972
|
}
|
|
651
|
-
)
|
|
652
|
-
|
|
973
|
+
): Promise<UnsignedMetaTx>;
|
|
974
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
975
|
+
export async function signMetaTxReserveRange(
|
|
976
|
+
args: BaseMetaTxArgs & {
|
|
977
|
+
offerId: BigNumberish;
|
|
978
|
+
length: BigNumberish;
|
|
979
|
+
to: string;
|
|
980
|
+
returnTypedDataToSign?: false | undefined;
|
|
981
|
+
}
|
|
982
|
+
): Promise<SignedMetaTx>;
|
|
983
|
+
// Implementation
|
|
984
|
+
export async function signMetaTxReserveRange(
|
|
985
|
+
args: BaseMetaTxArgs & {
|
|
986
|
+
offerId: BigNumberish;
|
|
987
|
+
length: BigNumberish;
|
|
988
|
+
to: string;
|
|
989
|
+
returnTypedDataToSign?: boolean;
|
|
990
|
+
}
|
|
991
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
992
|
+
const signMetaTxArgs = {
|
|
653
993
|
...args,
|
|
654
994
|
functionName: "reserveRange(uint256,uint256,address)",
|
|
655
995
|
functionSignature: encodeReserveRange(args.offerId, args.length, args.to)
|
|
656
|
-
}
|
|
996
|
+
};
|
|
997
|
+
if (args.returnTypedDataToSign) {
|
|
998
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
999
|
+
}
|
|
1000
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
657
1001
|
}
|
|
658
1002
|
|
|
659
1003
|
function isLocal(chainId: number): boolean {
|
|
@@ -797,14 +1141,36 @@ export async function signMetaTxCallExternalContract(
|
|
|
797
1141
|
});
|
|
798
1142
|
}
|
|
799
1143
|
|
|
1144
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
800
1145
|
export async function signMetaTxCreateOfferWithCondition(
|
|
801
1146
|
args: BaseMetaTxArgs & {
|
|
802
1147
|
offerToCreate: CreateOfferArgs;
|
|
803
1148
|
condition: ConditionStruct;
|
|
804
1149
|
metadataStorage?: MetadataStorage;
|
|
805
1150
|
theGraphStorage?: MetadataStorage;
|
|
1151
|
+
returnTypedDataToSign: true;
|
|
806
1152
|
}
|
|
807
|
-
)
|
|
1153
|
+
): Promise<UnsignedMetaTx>;
|
|
1154
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1155
|
+
export async function signMetaTxCreateOfferWithCondition(
|
|
1156
|
+
args: BaseMetaTxArgs & {
|
|
1157
|
+
offerToCreate: CreateOfferArgs;
|
|
1158
|
+
condition: ConditionStruct;
|
|
1159
|
+
metadataStorage?: MetadataStorage;
|
|
1160
|
+
theGraphStorage?: MetadataStorage;
|
|
1161
|
+
returnTypedDataToSign?: false | undefined;
|
|
1162
|
+
}
|
|
1163
|
+
): Promise<SignedMetaTx>;
|
|
1164
|
+
// Implementation
|
|
1165
|
+
export async function signMetaTxCreateOfferWithCondition(
|
|
1166
|
+
args: BaseMetaTxArgs & {
|
|
1167
|
+
offerToCreate: CreateOfferArgs;
|
|
1168
|
+
condition: ConditionStruct;
|
|
1169
|
+
metadataStorage?: MetadataStorage;
|
|
1170
|
+
theGraphStorage?: MetadataStorage;
|
|
1171
|
+
returnTypedDataToSign?: boolean;
|
|
1172
|
+
}
|
|
1173
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
808
1174
|
utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
|
|
809
1175
|
abortEarly: false
|
|
810
1176
|
});
|
|
@@ -820,7 +1186,7 @@ export async function signMetaTxCreateOfferWithCondition(
|
|
|
820
1186
|
createOffersArgs: [args.offerToCreate]
|
|
821
1187
|
});
|
|
822
1188
|
|
|
823
|
-
|
|
1189
|
+
const signMetaTxArgs = {
|
|
824
1190
|
...args,
|
|
825
1191
|
functionName:
|
|
826
1192
|
"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)",
|
|
@@ -828,14 +1194,34 @@ export async function signMetaTxCreateOfferWithCondition(
|
|
|
828
1194
|
args.offerToCreate,
|
|
829
1195
|
args.condition
|
|
830
1196
|
)
|
|
831
|
-
}
|
|
1197
|
+
};
|
|
1198
|
+
if (args.returnTypedDataToSign) {
|
|
1199
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
1200
|
+
}
|
|
1201
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
832
1202
|
}
|
|
833
1203
|
|
|
1204
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1205
|
+
export async function signMetaTxCommitToOffer(
|
|
1206
|
+
args: BaseMetaTxArgs & {
|
|
1207
|
+
offerId: BigNumberish;
|
|
1208
|
+
returnTypedDataToSign: true;
|
|
1209
|
+
}
|
|
1210
|
+
): Promise<UnsignedMetaTx>;
|
|
1211
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1212
|
+
export async function signMetaTxCommitToOffer(
|
|
1213
|
+
args: BaseMetaTxArgs & {
|
|
1214
|
+
offerId: BigNumberish;
|
|
1215
|
+
returnTypedDataToSign?: false | undefined;
|
|
1216
|
+
}
|
|
1217
|
+
): Promise<SignedMetaTx>;
|
|
1218
|
+
// Implementation
|
|
834
1219
|
export async function signMetaTxCommitToOffer(
|
|
835
1220
|
args: BaseMetaTxArgs & {
|
|
836
1221
|
offerId: BigNumberish;
|
|
1222
|
+
returnTypedDataToSign?: boolean;
|
|
837
1223
|
}
|
|
838
|
-
): Promise<SignedMetaTx> {
|
|
1224
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
839
1225
|
const functionName = "commitToOffer(address,uint256)";
|
|
840
1226
|
|
|
841
1227
|
const offerType = [
|
|
@@ -869,6 +1255,23 @@ export async function signMetaTxCommitToOffer(
|
|
|
869
1255
|
}
|
|
870
1256
|
};
|
|
871
1257
|
|
|
1258
|
+
const functionSignature = bosonExchangeCommitHandlerIface.encodeFunctionData(
|
|
1259
|
+
"commitToOffer",
|
|
1260
|
+
[buyerAddress, args.offerId]
|
|
1261
|
+
);
|
|
1262
|
+
|
|
1263
|
+
if (args.returnTypedDataToSign) {
|
|
1264
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
1265
|
+
...args,
|
|
1266
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
1267
|
+
customSignatureType,
|
|
1268
|
+
primaryType: "MetaTxCommitToOffer",
|
|
1269
|
+
message,
|
|
1270
|
+
returnTypedDataToSign: true
|
|
1271
|
+
});
|
|
1272
|
+
return { ...structuredData, functionName, functionSignature };
|
|
1273
|
+
}
|
|
1274
|
+
|
|
872
1275
|
const signatureParams = await prepareDataSignatureParameters({
|
|
873
1276
|
...args,
|
|
874
1277
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -881,19 +1284,34 @@ export async function signMetaTxCommitToOffer(
|
|
|
881
1284
|
return {
|
|
882
1285
|
...signatureParams,
|
|
883
1286
|
functionName,
|
|
884
|
-
functionSignature
|
|
885
|
-
"commitToOffer",
|
|
886
|
-
[buyerAddress, args.offerId]
|
|
887
|
-
)
|
|
1287
|
+
functionSignature
|
|
888
1288
|
};
|
|
889
1289
|
}
|
|
890
1290
|
|
|
1291
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
891
1292
|
export async function signMetaTxCommitToConditionalOffer(
|
|
892
1293
|
args: BaseMetaTxArgs & {
|
|
893
1294
|
offerId: BigNumberish;
|
|
894
1295
|
tokenId: BigNumberish;
|
|
1296
|
+
returnTypedDataToSign: true;
|
|
895
1297
|
}
|
|
896
|
-
): Promise<
|
|
1298
|
+
): Promise<UnsignedMetaTx>;
|
|
1299
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1300
|
+
export async function signMetaTxCommitToConditionalOffer(
|
|
1301
|
+
args: BaseMetaTxArgs & {
|
|
1302
|
+
offerId: BigNumberish;
|
|
1303
|
+
tokenId: BigNumberish;
|
|
1304
|
+
returnTypedDataToSign?: false | undefined;
|
|
1305
|
+
}
|
|
1306
|
+
): Promise<SignedMetaTx>;
|
|
1307
|
+
// Implementation
|
|
1308
|
+
export async function signMetaTxCommitToConditionalOffer(
|
|
1309
|
+
args: BaseMetaTxArgs & {
|
|
1310
|
+
offerId: BigNumberish;
|
|
1311
|
+
tokenId: BigNumberish;
|
|
1312
|
+
returnTypedDataToSign?: boolean;
|
|
1313
|
+
}
|
|
1314
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
897
1315
|
const functionName = "commitToConditionalOffer(address,uint256,uint256)";
|
|
898
1316
|
|
|
899
1317
|
const offerType = [
|
|
@@ -929,6 +1347,23 @@ export async function signMetaTxCommitToConditionalOffer(
|
|
|
929
1347
|
}
|
|
930
1348
|
};
|
|
931
1349
|
|
|
1350
|
+
const functionSignature = bosonExchangeCommitHandlerIface.encodeFunctionData(
|
|
1351
|
+
"commitToConditionalOffer",
|
|
1352
|
+
[buyerAddress, args.offerId, args.tokenId]
|
|
1353
|
+
);
|
|
1354
|
+
|
|
1355
|
+
if (args.returnTypedDataToSign) {
|
|
1356
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
1357
|
+
...args,
|
|
1358
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
1359
|
+
customSignatureType,
|
|
1360
|
+
primaryType: "MetaTxCommitToConditionalOffer",
|
|
1361
|
+
message,
|
|
1362
|
+
returnTypedDataToSign: true
|
|
1363
|
+
});
|
|
1364
|
+
return { ...structuredData, functionName, functionSignature };
|
|
1365
|
+
}
|
|
1366
|
+
|
|
932
1367
|
const signatureParams = await prepareDataSignatureParameters({
|
|
933
1368
|
...args,
|
|
934
1369
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -941,36 +1376,75 @@ export async function signMetaTxCommitToConditionalOffer(
|
|
|
941
1376
|
return {
|
|
942
1377
|
...signatureParams,
|
|
943
1378
|
functionName,
|
|
944
|
-
functionSignature
|
|
945
|
-
"commitToConditionalOffer",
|
|
946
|
-
[buyerAddress, args.offerId, args.tokenId]
|
|
947
|
-
)
|
|
1379
|
+
functionSignature
|
|
948
1380
|
};
|
|
949
1381
|
}
|
|
950
1382
|
|
|
1383
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1384
|
+
export async function signMetaTxCommitToBuyerOffer(
|
|
1385
|
+
args: BaseMetaTxArgs & {
|
|
1386
|
+
offerId: BigNumberish;
|
|
1387
|
+
sellerParams: SellerOfferArgs;
|
|
1388
|
+
returnTypedDataToSign: true;
|
|
1389
|
+
}
|
|
1390
|
+
): Promise<UnsignedMetaTx>;
|
|
1391
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
951
1392
|
export async function signMetaTxCommitToBuyerOffer(
|
|
952
1393
|
args: BaseMetaTxArgs & {
|
|
953
1394
|
offerId: BigNumberish;
|
|
954
1395
|
sellerParams: SellerOfferArgs;
|
|
1396
|
+
returnTypedDataToSign?: false | undefined;
|
|
955
1397
|
}
|
|
956
|
-
): Promise<SignedMetaTx
|
|
1398
|
+
): Promise<SignedMetaTx>;
|
|
1399
|
+
// Implementation
|
|
1400
|
+
export async function signMetaTxCommitToBuyerOffer(
|
|
1401
|
+
args: BaseMetaTxArgs & {
|
|
1402
|
+
offerId: BigNumberish;
|
|
1403
|
+
sellerParams: SellerOfferArgs;
|
|
1404
|
+
returnTypedDataToSign?: boolean;
|
|
1405
|
+
}
|
|
1406
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
957
1407
|
const functionName =
|
|
958
1408
|
"commitToBuyerOffer(uint256,(uint256,(address[],uint256[]),address))";
|
|
959
1409
|
|
|
960
|
-
|
|
1410
|
+
const signMetaTxArgs = {
|
|
961
1411
|
...args,
|
|
962
1412
|
functionName,
|
|
963
1413
|
functionSignature: encodeCommitToBuyerOffer(args.offerId, args.sellerParams)
|
|
964
|
-
}
|
|
1414
|
+
};
|
|
1415
|
+
if (args.returnTypedDataToSign) {
|
|
1416
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
1417
|
+
}
|
|
1418
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
965
1419
|
}
|
|
966
1420
|
|
|
1421
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1422
|
+
export async function signMetaTxCreateOfferAndCommit(
|
|
1423
|
+
args: BaseMetaTxArgs & {
|
|
1424
|
+
createOfferAndCommitArgs: FullOfferArgs;
|
|
1425
|
+
metadataStorage?: MetadataStorage;
|
|
1426
|
+
theGraphStorage?: MetadataStorage;
|
|
1427
|
+
returnTypedDataToSign: true;
|
|
1428
|
+
}
|
|
1429
|
+
): Promise<UnsignedMetaTx>;
|
|
1430
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
967
1431
|
export async function signMetaTxCreateOfferAndCommit(
|
|
968
1432
|
args: BaseMetaTxArgs & {
|
|
969
1433
|
createOfferAndCommitArgs: FullOfferArgs;
|
|
970
1434
|
metadataStorage?: MetadataStorage;
|
|
971
1435
|
theGraphStorage?: MetadataStorage;
|
|
1436
|
+
returnTypedDataToSign?: false | undefined;
|
|
972
1437
|
}
|
|
973
|
-
): Promise<SignedMetaTx
|
|
1438
|
+
): Promise<SignedMetaTx>;
|
|
1439
|
+
// Implementation
|
|
1440
|
+
export async function signMetaTxCreateOfferAndCommit(
|
|
1441
|
+
args: BaseMetaTxArgs & {
|
|
1442
|
+
createOfferAndCommitArgs: FullOfferArgs;
|
|
1443
|
+
metadataStorage?: MetadataStorage;
|
|
1444
|
+
theGraphStorage?: MetadataStorage;
|
|
1445
|
+
returnTypedDataToSign?: boolean;
|
|
1446
|
+
}
|
|
1447
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
974
1448
|
utils.validation.createOfferAndCommitArgsSchema.validateSync(
|
|
975
1449
|
args.createOfferAndCommitArgs,
|
|
976
1450
|
{ abortEarly: false }
|
|
@@ -987,71 +1461,172 @@ export async function signMetaTxCreateOfferAndCommit(
|
|
|
987
1461
|
createOffersArgs: [args.createOfferAndCommitArgs]
|
|
988
1462
|
});
|
|
989
1463
|
|
|
990
|
-
|
|
1464
|
+
const signMetaTxArgs = {
|
|
991
1465
|
...args,
|
|
992
1466
|
functionName:
|
|
993
1467
|
"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))",
|
|
994
1468
|
functionSignature: encodeCreateOfferAndCommit(args.createOfferAndCommitArgs)
|
|
995
|
-
}
|
|
1469
|
+
};
|
|
1470
|
+
if (args.returnTypedDataToSign) {
|
|
1471
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
1472
|
+
}
|
|
1473
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
996
1474
|
}
|
|
997
1475
|
|
|
1476
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
998
1477
|
export async function signMetaTxCancelVoucher(
|
|
999
1478
|
args: BaseMetaTxArgs & {
|
|
1000
1479
|
exchangeId: BigNumberish;
|
|
1480
|
+
returnTypedDataToSign: true;
|
|
1001
1481
|
}
|
|
1002
|
-
)
|
|
1482
|
+
): Promise<UnsignedMetaTx>;
|
|
1483
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1484
|
+
export async function signMetaTxCancelVoucher(
|
|
1485
|
+
args: BaseMetaTxArgs & {
|
|
1486
|
+
exchangeId: BigNumberish;
|
|
1487
|
+
returnTypedDataToSign?: false | undefined;
|
|
1488
|
+
}
|
|
1489
|
+
): Promise<SignedMetaTx>;
|
|
1490
|
+
// Implementation
|
|
1491
|
+
export async function signMetaTxCancelVoucher(
|
|
1492
|
+
args: BaseMetaTxArgs & {
|
|
1493
|
+
exchangeId: BigNumberish;
|
|
1494
|
+
returnTypedDataToSign?: boolean;
|
|
1495
|
+
}
|
|
1496
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1003
1497
|
return makeExchangeMetaTxSigner("cancelVoucher(uint256)")(args);
|
|
1004
1498
|
}
|
|
1005
1499
|
|
|
1500
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1006
1501
|
export async function signMetaTxRedeemVoucher(
|
|
1007
1502
|
args: BaseMetaTxArgs & {
|
|
1008
1503
|
exchangeId: BigNumberish;
|
|
1504
|
+
returnTypedDataToSign: true;
|
|
1009
1505
|
}
|
|
1010
|
-
)
|
|
1506
|
+
): Promise<UnsignedMetaTx>;
|
|
1507
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1508
|
+
export async function signMetaTxRedeemVoucher(
|
|
1509
|
+
args: BaseMetaTxArgs & {
|
|
1510
|
+
exchangeId: BigNumberish;
|
|
1511
|
+
returnTypedDataToSign?: false | undefined;
|
|
1512
|
+
}
|
|
1513
|
+
): Promise<SignedMetaTx>;
|
|
1514
|
+
// Implementation
|
|
1515
|
+
export async function signMetaTxRedeemVoucher(
|
|
1516
|
+
args: BaseMetaTxArgs & {
|
|
1517
|
+
exchangeId: BigNumberish;
|
|
1518
|
+
returnTypedDataToSign?: boolean;
|
|
1519
|
+
}
|
|
1520
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1011
1521
|
return makeExchangeMetaTxSigner("redeemVoucher(uint256)")(args);
|
|
1012
1522
|
}
|
|
1013
1523
|
|
|
1524
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1014
1525
|
export async function signMetaTxCompleteExchange(
|
|
1015
1526
|
args: BaseMetaTxArgs & {
|
|
1016
1527
|
exchangeId: BigNumberish;
|
|
1528
|
+
returnTypedDataToSign: true;
|
|
1017
1529
|
}
|
|
1018
|
-
)
|
|
1530
|
+
): Promise<UnsignedMetaTx>;
|
|
1531
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1532
|
+
export async function signMetaTxCompleteExchange(
|
|
1533
|
+
args: BaseMetaTxArgs & {
|
|
1534
|
+
exchangeId: BigNumberish;
|
|
1535
|
+
returnTypedDataToSign?: false | undefined;
|
|
1536
|
+
}
|
|
1537
|
+
): Promise<SignedMetaTx>;
|
|
1538
|
+
// Implementation
|
|
1539
|
+
export async function signMetaTxCompleteExchange(
|
|
1540
|
+
args: BaseMetaTxArgs & {
|
|
1541
|
+
exchangeId: BigNumberish;
|
|
1542
|
+
returnTypedDataToSign?: boolean;
|
|
1543
|
+
}
|
|
1544
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1019
1545
|
return makeExchangeMetaTxSigner("completeExchange(uint256)")(args);
|
|
1020
1546
|
}
|
|
1021
1547
|
|
|
1548
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1022
1549
|
export async function signMetaTxRetractDispute(
|
|
1023
1550
|
args: BaseMetaTxArgs & {
|
|
1024
1551
|
exchangeId: BigNumberish;
|
|
1552
|
+
returnTypedDataToSign: true;
|
|
1025
1553
|
}
|
|
1026
|
-
)
|
|
1554
|
+
): Promise<UnsignedMetaTx>;
|
|
1555
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1556
|
+
export async function signMetaTxRetractDispute(
|
|
1557
|
+
args: BaseMetaTxArgs & {
|
|
1558
|
+
exchangeId: BigNumberish;
|
|
1559
|
+
returnTypedDataToSign?: false | undefined;
|
|
1560
|
+
}
|
|
1561
|
+
): Promise<SignedMetaTx>;
|
|
1562
|
+
// Implementation
|
|
1563
|
+
export async function signMetaTxRetractDispute(
|
|
1564
|
+
args: BaseMetaTxArgs & {
|
|
1565
|
+
exchangeId: BigNumberish;
|
|
1566
|
+
returnTypedDataToSign?: boolean;
|
|
1567
|
+
}
|
|
1568
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1027
1569
|
return makeExchangeMetaTxSigner(
|
|
1028
1570
|
"retractDispute(uint256)",
|
|
1029
1571
|
bosonDisputeHandlerIface
|
|
1030
1572
|
)(args);
|
|
1031
1573
|
}
|
|
1032
1574
|
|
|
1575
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1033
1576
|
export async function signMetaTxEscalateDispute(
|
|
1034
1577
|
args: BaseMetaTxArgs & {
|
|
1035
1578
|
exchangeId: BigNumberish;
|
|
1579
|
+
returnTypedDataToSign: true;
|
|
1036
1580
|
}
|
|
1037
|
-
)
|
|
1581
|
+
): Promise<UnsignedMetaTx>;
|
|
1582
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1583
|
+
export async function signMetaTxEscalateDispute(
|
|
1584
|
+
args: BaseMetaTxArgs & {
|
|
1585
|
+
exchangeId: BigNumberish;
|
|
1586
|
+
returnTypedDataToSign?: false | undefined;
|
|
1587
|
+
}
|
|
1588
|
+
): Promise<SignedMetaTx>;
|
|
1589
|
+
// Implementation
|
|
1590
|
+
export async function signMetaTxEscalateDispute(
|
|
1591
|
+
args: BaseMetaTxArgs & {
|
|
1592
|
+
exchangeId: BigNumberish;
|
|
1593
|
+
returnTypedDataToSign?: boolean;
|
|
1594
|
+
}
|
|
1595
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1038
1596
|
return makeExchangeMetaTxSigner(
|
|
1039
1597
|
"escalateDispute(uint256)",
|
|
1040
1598
|
bosonDisputeHandlerIface
|
|
1041
1599
|
)(args);
|
|
1042
1600
|
}
|
|
1043
1601
|
|
|
1602
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1044
1603
|
export async function signMetaTxRaiseDispute(
|
|
1045
1604
|
args: BaseMetaTxArgs & {
|
|
1046
1605
|
exchangeId: BigNumberish;
|
|
1606
|
+
returnTypedDataToSign: true;
|
|
1047
1607
|
}
|
|
1048
|
-
)
|
|
1608
|
+
): Promise<UnsignedMetaTx>;
|
|
1609
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1610
|
+
export async function signMetaTxRaiseDispute(
|
|
1611
|
+
args: BaseMetaTxArgs & {
|
|
1612
|
+
exchangeId: BigNumberish;
|
|
1613
|
+
returnTypedDataToSign?: false | undefined;
|
|
1614
|
+
}
|
|
1615
|
+
): Promise<SignedMetaTx>;
|
|
1616
|
+
// Implementation
|
|
1617
|
+
export async function signMetaTxRaiseDispute(
|
|
1618
|
+
args: BaseMetaTxArgs & {
|
|
1619
|
+
exchangeId: BigNumberish;
|
|
1620
|
+
returnTypedDataToSign?: boolean;
|
|
1621
|
+
}
|
|
1622
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1049
1623
|
return makeExchangeMetaTxSigner(
|
|
1050
1624
|
"raiseDispute(uint256)",
|
|
1051
1625
|
bosonDisputeHandlerIface
|
|
1052
1626
|
)(args);
|
|
1053
1627
|
}
|
|
1054
1628
|
|
|
1629
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1055
1630
|
export async function signMetaTxResolveDispute(
|
|
1056
1631
|
args: BaseMetaTxArgs & {
|
|
1057
1632
|
exchangeId: BigNumberish;
|
|
@@ -1063,8 +1638,39 @@ export async function signMetaTxResolveDispute(
|
|
|
1063
1638
|
v: number;
|
|
1064
1639
|
}
|
|
1065
1640
|
| string;
|
|
1641
|
+
returnTypedDataToSign: true;
|
|
1066
1642
|
}
|
|
1067
|
-
): Promise<
|
|
1643
|
+
): Promise<UnsignedMetaTx>;
|
|
1644
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1645
|
+
export async function signMetaTxResolveDispute(
|
|
1646
|
+
args: BaseMetaTxArgs & {
|
|
1647
|
+
exchangeId: BigNumberish;
|
|
1648
|
+
buyerPercent: BigNumberish;
|
|
1649
|
+
counterpartySig:
|
|
1650
|
+
| {
|
|
1651
|
+
r: string;
|
|
1652
|
+
s: string;
|
|
1653
|
+
v: number;
|
|
1654
|
+
}
|
|
1655
|
+
| string;
|
|
1656
|
+
returnTypedDataToSign?: false | undefined;
|
|
1657
|
+
}
|
|
1658
|
+
): Promise<SignedMetaTx>;
|
|
1659
|
+
// Implementation
|
|
1660
|
+
export async function signMetaTxResolveDispute(
|
|
1661
|
+
args: BaseMetaTxArgs & {
|
|
1662
|
+
exchangeId: BigNumberish;
|
|
1663
|
+
buyerPercent: BigNumberish;
|
|
1664
|
+
counterpartySig:
|
|
1665
|
+
| {
|
|
1666
|
+
r: string;
|
|
1667
|
+
s: string;
|
|
1668
|
+
v: number;
|
|
1669
|
+
}
|
|
1670
|
+
| string;
|
|
1671
|
+
returnTypedDataToSign?: boolean;
|
|
1672
|
+
}
|
|
1673
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1068
1674
|
const functionName = "resolveDispute(uint256,uint256,bytes)";
|
|
1069
1675
|
const counterpartySig =
|
|
1070
1676
|
typeof args.counterpartySig === "string"
|
|
@@ -1102,6 +1708,24 @@ export async function signMetaTxResolveDispute(
|
|
|
1102
1708
|
}
|
|
1103
1709
|
};
|
|
1104
1710
|
|
|
1711
|
+
const functionSignature = bosonDisputeHandlerIface.encodeFunctionData(
|
|
1712
|
+
// remove params in brackets from string
|
|
1713
|
+
functionName.replace(/\(([^)]*)\)[^(]*$/, ""),
|
|
1714
|
+
[args.exchangeId, args.buyerPercent, counterpartySig]
|
|
1715
|
+
);
|
|
1716
|
+
|
|
1717
|
+
if (args.returnTypedDataToSign) {
|
|
1718
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
1719
|
+
...args,
|
|
1720
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
1721
|
+
customSignatureType,
|
|
1722
|
+
primaryType: "MetaTxDisputeResolution",
|
|
1723
|
+
message,
|
|
1724
|
+
returnTypedDataToSign: true
|
|
1725
|
+
});
|
|
1726
|
+
return { ...structuredData, functionName, functionSignature };
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1105
1729
|
const signatureParams = await prepareDataSignatureParameters({
|
|
1106
1730
|
...args,
|
|
1107
1731
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -1114,37 +1738,75 @@ export async function signMetaTxResolveDispute(
|
|
|
1114
1738
|
return {
|
|
1115
1739
|
...signatureParams,
|
|
1116
1740
|
functionName,
|
|
1117
|
-
functionSignature
|
|
1118
|
-
// remove params in brackets from string
|
|
1119
|
-
functionName.replace(/\(([^)]*)\)[^(]*$/, ""),
|
|
1120
|
-
[args.exchangeId, args.buyerPercent, counterpartySig]
|
|
1121
|
-
)
|
|
1741
|
+
functionSignature
|
|
1122
1742
|
};
|
|
1123
1743
|
}
|
|
1124
1744
|
|
|
1745
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1125
1746
|
export async function signMetaTxExtendDisputeTimeout(
|
|
1126
1747
|
args: BaseMetaTxArgs & {
|
|
1127
1748
|
exchangeId: BigNumberish;
|
|
1128
1749
|
newTimeout: BigNumberish;
|
|
1750
|
+
returnTypedDataToSign: true;
|
|
1129
1751
|
}
|
|
1130
|
-
)
|
|
1131
|
-
|
|
1752
|
+
): Promise<UnsignedMetaTx>;
|
|
1753
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1754
|
+
export async function signMetaTxExtendDisputeTimeout(
|
|
1755
|
+
args: BaseMetaTxArgs & {
|
|
1756
|
+
exchangeId: BigNumberish;
|
|
1757
|
+
newTimeout: BigNumberish;
|
|
1758
|
+
returnTypedDataToSign?: false | undefined;
|
|
1759
|
+
}
|
|
1760
|
+
): Promise<SignedMetaTx>;
|
|
1761
|
+
// Implementation
|
|
1762
|
+
export async function signMetaTxExtendDisputeTimeout(
|
|
1763
|
+
args: BaseMetaTxArgs & {
|
|
1764
|
+
exchangeId: BigNumberish;
|
|
1765
|
+
newTimeout: BigNumberish;
|
|
1766
|
+
returnTypedDataToSign?: boolean;
|
|
1767
|
+
}
|
|
1768
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1769
|
+
const signMetaTxArgs = {
|
|
1132
1770
|
...args,
|
|
1133
1771
|
functionName: "extendDisputeTimeout(uint256,uint256)",
|
|
1134
1772
|
functionSignature: bosonDisputeHandlerIface.encodeFunctionData(
|
|
1135
1773
|
"extendDisputeTimeout",
|
|
1136
1774
|
[args.exchangeId, args.newTimeout]
|
|
1137
1775
|
)
|
|
1138
|
-
}
|
|
1776
|
+
};
|
|
1777
|
+
if (args.returnTypedDataToSign) {
|
|
1778
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
1779
|
+
}
|
|
1780
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
1139
1781
|
}
|
|
1140
1782
|
|
|
1783
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1784
|
+
export async function signMetaTxWithdrawFunds(
|
|
1785
|
+
args: BaseMetaTxArgs & {
|
|
1786
|
+
entityId: BigNumberish;
|
|
1787
|
+
tokenList: string[];
|
|
1788
|
+
tokenAmounts: BigNumberish[];
|
|
1789
|
+
returnTypedDataToSign: true;
|
|
1790
|
+
}
|
|
1791
|
+
): Promise<UnsignedMetaTx>;
|
|
1792
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1141
1793
|
export async function signMetaTxWithdrawFunds(
|
|
1142
1794
|
args: BaseMetaTxArgs & {
|
|
1143
1795
|
entityId: BigNumberish;
|
|
1144
1796
|
tokenList: string[];
|
|
1145
1797
|
tokenAmounts: BigNumberish[];
|
|
1798
|
+
returnTypedDataToSign?: false | undefined;
|
|
1146
1799
|
}
|
|
1147
|
-
): Promise<SignedMetaTx
|
|
1800
|
+
): Promise<SignedMetaTx>;
|
|
1801
|
+
// Implementation
|
|
1802
|
+
export async function signMetaTxWithdrawFunds(
|
|
1803
|
+
args: BaseMetaTxArgs & {
|
|
1804
|
+
entityId: BigNumberish;
|
|
1805
|
+
tokenList: string[];
|
|
1806
|
+
tokenAmounts: BigNumberish[];
|
|
1807
|
+
returnTypedDataToSign?: boolean;
|
|
1808
|
+
}
|
|
1809
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1148
1810
|
const functionName = "withdrawFunds(uint256,address[],uint256[])";
|
|
1149
1811
|
|
|
1150
1812
|
const fundType = [
|
|
@@ -1178,6 +1840,24 @@ export async function signMetaTxWithdrawFunds(
|
|
|
1178
1840
|
}
|
|
1179
1841
|
};
|
|
1180
1842
|
|
|
1843
|
+
const functionSignature = encodeWithdrawFunds(
|
|
1844
|
+
args.entityId,
|
|
1845
|
+
args.tokenList,
|
|
1846
|
+
args.tokenAmounts
|
|
1847
|
+
);
|
|
1848
|
+
|
|
1849
|
+
if (args.returnTypedDataToSign) {
|
|
1850
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
1851
|
+
...args,
|
|
1852
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
1853
|
+
customSignatureType,
|
|
1854
|
+
primaryType: "MetaTxFund",
|
|
1855
|
+
message,
|
|
1856
|
+
returnTypedDataToSign: true
|
|
1857
|
+
});
|
|
1858
|
+
return { ...structuredData, functionName, functionSignature };
|
|
1859
|
+
}
|
|
1860
|
+
|
|
1181
1861
|
const signatureParams = await prepareDataSignatureParameters({
|
|
1182
1862
|
...args,
|
|
1183
1863
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -1190,21 +1870,37 @@ export async function signMetaTxWithdrawFunds(
|
|
|
1190
1870
|
return {
|
|
1191
1871
|
...signatureParams,
|
|
1192
1872
|
functionName,
|
|
1193
|
-
functionSignature
|
|
1194
|
-
args.entityId,
|
|
1195
|
-
args.tokenList,
|
|
1196
|
-
args.tokenAmounts
|
|
1197
|
-
)
|
|
1873
|
+
functionSignature
|
|
1198
1874
|
};
|
|
1199
1875
|
}
|
|
1200
1876
|
|
|
1877
|
+
// Overload: returnTypedDataToSign is true → returns UnsignedMetaTx
|
|
1201
1878
|
export async function signMetaTxDepositFunds(
|
|
1202
1879
|
args: BaseMetaTxArgs & {
|
|
1203
1880
|
entityId: BigNumberish;
|
|
1204
1881
|
fundsTokenAddress: string;
|
|
1205
1882
|
fundsAmount: BigNumberish;
|
|
1883
|
+
returnTypedDataToSign: true;
|
|
1206
1884
|
}
|
|
1207
|
-
)
|
|
1885
|
+
): Promise<UnsignedMetaTx>;
|
|
1886
|
+
// Overload: returnTypedDataToSign is false or undefined → returns SignedMetaTx
|
|
1887
|
+
export async function signMetaTxDepositFunds(
|
|
1888
|
+
args: BaseMetaTxArgs & {
|
|
1889
|
+
entityId: BigNumberish;
|
|
1890
|
+
fundsTokenAddress: string;
|
|
1891
|
+
fundsAmount: BigNumberish;
|
|
1892
|
+
returnTypedDataToSign?: false | undefined;
|
|
1893
|
+
}
|
|
1894
|
+
): Promise<SignedMetaTx>;
|
|
1895
|
+
// Implementation
|
|
1896
|
+
export async function signMetaTxDepositFunds(
|
|
1897
|
+
args: BaseMetaTxArgs & {
|
|
1898
|
+
entityId: BigNumberish;
|
|
1899
|
+
fundsTokenAddress: string;
|
|
1900
|
+
fundsAmount: BigNumberish;
|
|
1901
|
+
returnTypedDataToSign?: boolean;
|
|
1902
|
+
}
|
|
1903
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1208
1904
|
if (!isAddress(args.fundsTokenAddress)) {
|
|
1209
1905
|
throw new Error(`Invalid fundsTokenAddress: ${args.fundsTokenAddress}`);
|
|
1210
1906
|
}
|
|
@@ -1215,7 +1911,7 @@ export async function signMetaTxDepositFunds(
|
|
|
1215
1911
|
);
|
|
1216
1912
|
}
|
|
1217
1913
|
|
|
1218
|
-
|
|
1914
|
+
const signMetaTxArgs = {
|
|
1219
1915
|
...args,
|
|
1220
1916
|
functionName: "depositFunds(uint256,address,uint256)",
|
|
1221
1917
|
functionSignature: encodeDepositFunds(
|
|
@@ -1223,7 +1919,11 @@ export async function signMetaTxDepositFunds(
|
|
|
1223
1919
|
args.fundsTokenAddress,
|
|
1224
1920
|
args.fundsAmount
|
|
1225
1921
|
)
|
|
1226
|
-
}
|
|
1922
|
+
};
|
|
1923
|
+
if (args.returnTypedDataToSign) {
|
|
1924
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: true });
|
|
1925
|
+
}
|
|
1926
|
+
return signMetaTx({ ...signMetaTxArgs, returnTypedDataToSign: false });
|
|
1227
1927
|
}
|
|
1228
1928
|
|
|
1229
1929
|
function makeExchangeMetaTxSigner(
|
|
@@ -1239,8 +1939,9 @@ function makeExchangeMetaTxSigner(
|
|
|
1239
1939
|
return async function signExchangeMetaTx(
|
|
1240
1940
|
args: BaseMetaTxArgs & {
|
|
1241
1941
|
exchangeId: BigNumberish;
|
|
1942
|
+
returnTypedDataToSign?: boolean;
|
|
1242
1943
|
}
|
|
1243
|
-
): Promise<SignedMetaTx> {
|
|
1944
|
+
): Promise<SignedMetaTx | UnsignedMetaTx> {
|
|
1244
1945
|
const exchangeType = [{ name: "exchangeId", type: "uint256" }];
|
|
1245
1946
|
|
|
1246
1947
|
const metaTransactionType = [
|
|
@@ -1268,6 +1969,24 @@ function makeExchangeMetaTxSigner(
|
|
|
1268
1969
|
}
|
|
1269
1970
|
};
|
|
1270
1971
|
|
|
1972
|
+
const functionSignature = handlerIface.encodeFunctionData(
|
|
1973
|
+
// remove params in brackets from string
|
|
1974
|
+
functionName.replace(/\(([^)]*)\)[^(]*$/, ""),
|
|
1975
|
+
[args.exchangeId]
|
|
1976
|
+
);
|
|
1977
|
+
|
|
1978
|
+
if (args.returnTypedDataToSign) {
|
|
1979
|
+
const structuredData = await prepareDataSignatureParameters({
|
|
1980
|
+
...args,
|
|
1981
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
1982
|
+
customSignatureType,
|
|
1983
|
+
primaryType: "MetaTxExchange",
|
|
1984
|
+
message,
|
|
1985
|
+
returnTypedDataToSign: true
|
|
1986
|
+
});
|
|
1987
|
+
return { ...structuredData, functionName, functionSignature };
|
|
1988
|
+
}
|
|
1989
|
+
|
|
1271
1990
|
const signatureParams = await prepareDataSignatureParameters({
|
|
1272
1991
|
...args,
|
|
1273
1992
|
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
@@ -1280,11 +1999,7 @@ function makeExchangeMetaTxSigner(
|
|
|
1280
1999
|
return {
|
|
1281
2000
|
...signatureParams,
|
|
1282
2001
|
functionName,
|
|
1283
|
-
functionSignature
|
|
1284
|
-
// remove params in brackets from string
|
|
1285
|
-
functionName.replace(/\(([^)]*)\)[^(]*$/, ""),
|
|
1286
|
-
[args.exchangeId]
|
|
1287
|
-
)
|
|
2002
|
+
functionSignature
|
|
1288
2003
|
};
|
|
1289
2004
|
};
|
|
1290
2005
|
}
|