@bosonprotocol/core-sdk 1.12.0-alpha.17 → 1.12.0-alpha.3
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/accounts/index.d.ts +11 -2
- package/dist/cjs/accounts/index.d.ts.map +1 -1
- package/dist/cjs/accounts/index.js.map +1 -1
- package/dist/cjs/accounts/interface.d.ts +2 -5
- package/dist/cjs/accounts/interface.d.ts.map +1 -1
- package/dist/cjs/accounts/interface.js +7 -27
- package/dist/cjs/accounts/interface.js.map +1 -1
- package/dist/cjs/core-sdk.d.ts +8 -15
- package/dist/cjs/core-sdk.d.ts.map +1 -1
- package/dist/cjs/core-sdk.js +33 -44
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/disputes/handler.d.ts +0 -11
- package/dist/cjs/disputes/handler.d.ts.map +1 -1
- package/dist/cjs/disputes/handler.js +1 -25
- package/dist/cjs/disputes/handler.js.map +1 -1
- package/dist/cjs/exchanges/handler.d.ts.map +1 -1
- package/dist/cjs/exchanges/handler.js +0 -1
- package/dist/cjs/exchanges/handler.js.map +1 -1
- package/dist/cjs/meta-tx/handler.d.ts +14 -0
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +60 -14
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/offers/getOfferStatus.d.ts +2 -2
- package/dist/cjs/offers/getOfferStatus.d.ts.map +1 -1
- package/dist/cjs/offers/getOfferStatus.js.map +1 -1
- package/dist/cjs/offers/index.d.ts +33 -3
- package/dist/cjs/offers/index.d.ts.map +1 -1
- package/dist/cjs/offers/index.js +0 -1
- package/dist/cjs/offers/index.js.map +1 -1
- package/dist/cjs/offers/interface.d.ts +0 -1
- package/dist/cjs/offers/interface.d.ts.map +1 -1
- package/dist/cjs/offers/interface.js +12 -6
- package/dist/cjs/offers/interface.js.map +1 -1
- package/dist/cjs/offers/subgraph.d.ts.map +1 -1
- package/dist/cjs/offers/subgraph.js.map +1 -1
- package/dist/cjs/orchestration/interface.d.ts.map +1 -1
- package/dist/cjs/orchestration/interface.js +2 -9
- package/dist/cjs/orchestration/interface.js.map +1 -1
- package/dist/cjs/subgraph.d.ts +15 -3983
- package/dist/cjs/subgraph.d.ts.map +1 -1
- package/dist/cjs/subgraph.js +169 -217
- package/dist/cjs/subgraph.js.map +1 -1
- package/dist/esm/accounts/index.d.ts +11 -2
- package/dist/esm/accounts/index.d.ts.map +1 -1
- package/dist/esm/accounts/index.js.map +1 -1
- package/dist/esm/accounts/interface.d.ts +2 -5
- package/dist/esm/accounts/interface.d.ts.map +1 -1
- package/dist/esm/accounts/interface.js +8 -17
- package/dist/esm/accounts/interface.js.map +1 -1
- package/dist/esm/core-sdk.d.ts +8 -15
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +30 -43
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/disputes/handler.d.ts +0 -11
- package/dist/esm/disputes/handler.d.ts.map +1 -1
- package/dist/esm/disputes/handler.js +0 -21
- package/dist/esm/disputes/handler.js.map +1 -1
- package/dist/esm/exchanges/handler.d.ts.map +1 -1
- package/dist/esm/exchanges/handler.js +0 -1
- package/dist/esm/exchanges/handler.js.map +1 -1
- package/dist/esm/meta-tx/handler.d.ts +14 -0
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +58 -19
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/offers/getOfferStatus.d.ts +2 -2
- package/dist/esm/offers/getOfferStatus.d.ts.map +1 -1
- package/dist/esm/offers/getOfferStatus.js.map +1 -1
- package/dist/esm/offers/index.d.ts +33 -3
- package/dist/esm/offers/index.d.ts.map +1 -1
- package/dist/esm/offers/index.js +0 -1
- package/dist/esm/offers/index.js.map +1 -1
- package/dist/esm/offers/interface.d.ts +0 -1
- package/dist/esm/offers/interface.d.ts.map +1 -1
- package/dist/esm/offers/interface.js +12 -6
- package/dist/esm/offers/interface.js.map +1 -1
- package/dist/esm/offers/subgraph.d.ts.map +1 -1
- package/dist/esm/offers/subgraph.js.map +1 -1
- package/dist/esm/orchestration/interface.d.ts.map +1 -1
- package/dist/esm/orchestration/interface.js +2 -9
- package/dist/esm/orchestration/interface.js.map +1 -1
- package/dist/esm/subgraph.d.ts +15 -3983
- package/dist/esm/subgraph.d.ts.map +1 -1
- package/dist/esm/subgraph.js +167 -215
- package/dist/esm/subgraph.js.map +1 -1
- package/package.json +4 -6
- package/src/accounts/index.ts +1 -3
- package/src/accounts/interface.ts +11 -22
- package/src/accounts/queries.graphql +0 -3
- package/src/core-sdk.ts +40 -66
- package/src/disputes/handler.ts +0 -31
- package/src/exchanges/handler.ts +0 -1
- package/src/meta-tx/handler.ts +74 -20
- package/src/metadata/product-v1.graphql +0 -3
- package/src/offers/getOfferStatus.ts +2 -2
- package/src/offers/index.ts +1 -4
- package/src/offers/interface.ts +16 -9
- package/src/offers/queries.graphql +0 -31
- package/src/offers/subgraph.ts +1 -0
- package/src/orchestration/interface.ts +2 -9
- package/src/subgraph.ts +169 -4132
- package/dist/cjs/offers/renderContractualAgreement.d.ts +0 -42
- package/dist/cjs/offers/renderContractualAgreement.d.ts.map +0 -1
- package/dist/cjs/offers/renderContractualAgreement.js +0 -156
- package/dist/cjs/offers/renderContractualAgreement.js.map +0 -1
- package/dist/cjs/utils/signature.d.ts +0 -21
- package/dist/cjs/utils/signature.d.ts.map +0 -1
- package/dist/cjs/utils/signature.js +0 -60
- package/dist/cjs/utils/signature.js.map +0 -1
- package/dist/cjs/utils/tokenInfoManager.d.ts +0 -19
- package/dist/cjs/utils/tokenInfoManager.d.ts.map +0 -1
- package/dist/cjs/utils/tokenInfoManager.js +0 -97
- package/dist/cjs/utils/tokenInfoManager.js.map +0 -1
- package/dist/esm/offers/renderContractualAgreement.d.ts +0 -42
- package/dist/esm/offers/renderContractualAgreement.d.ts.map +0 -1
- package/dist/esm/offers/renderContractualAgreement.js +0 -132
- package/dist/esm/offers/renderContractualAgreement.js.map +0 -1
- package/dist/esm/utils/signature.d.ts +0 -21
- package/dist/esm/utils/signature.d.ts.map +0 -1
- package/dist/esm/utils/signature.js +0 -47
- package/dist/esm/utils/signature.js.map +0 -1
- package/dist/esm/utils/tokenInfoManager.d.ts +0 -19
- package/dist/esm/utils/tokenInfoManager.d.ts.map +0 -1
- package/dist/esm/utils/tokenInfoManager.js +0 -83
- package/dist/esm/utils/tokenInfoManager.js.map +0 -1
- package/src/offers/renderContractualAgreement.ts +0 -206
- package/src/utils/signature.ts +0 -65
- package/src/utils/tokenInfoManager.ts +0 -97
package/src/core-sdk.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ITokenInfo, TokenInfoManager } from "./utils/tokenInfoManager";
|
|
2
1
|
import {
|
|
3
2
|
Web3LibAdapter,
|
|
4
3
|
TransactionResponse,
|
|
@@ -32,7 +31,6 @@ export class CoreSDK {
|
|
|
32
31
|
private _subgraphUrl: string;
|
|
33
32
|
private _protocolDiamond: string;
|
|
34
33
|
private _chainId: number;
|
|
35
|
-
private _tokenInfoManager: TokenInfoManager;
|
|
36
34
|
|
|
37
35
|
/**
|
|
38
36
|
* Creates an instance of `CoreSDK`
|
|
@@ -574,31 +572,6 @@ export class CoreSDK {
|
|
|
574
572
|
);
|
|
575
573
|
}
|
|
576
574
|
|
|
577
|
-
/**
|
|
578
|
-
* Utility method to retrieve the created `sellerId` from logs after calling `createSeller`
|
|
579
|
-
* or `createOfferAndSeller`.
|
|
580
|
-
* @param logs - Logs to search in.
|
|
581
|
-
* @returns Created offer id.
|
|
582
|
-
*/
|
|
583
|
-
public getCreatedSellerIdFromLogs(logs: Log[]): string | null {
|
|
584
|
-
const sellerId = getValueFromLogs({
|
|
585
|
-
iface: accounts.iface.bosonAccountHandlerIface,
|
|
586
|
-
logs,
|
|
587
|
-
eventArgsKey: "sellerId",
|
|
588
|
-
eventName: "SellerCreated"
|
|
589
|
-
});
|
|
590
|
-
|
|
591
|
-
return (
|
|
592
|
-
sellerId ||
|
|
593
|
-
getValueFromLogs({
|
|
594
|
-
iface: orchestration.iface.bosonOrchestrationHandlerIface,
|
|
595
|
-
logs,
|
|
596
|
-
eventArgsKey: "sellerId",
|
|
597
|
-
eventName: "SellerCreated"
|
|
598
|
-
})
|
|
599
|
-
);
|
|
600
|
-
}
|
|
601
|
-
|
|
602
575
|
/**
|
|
603
576
|
* Voids an existing offer by calling the `OfferHandlerFacet` contract.
|
|
604
577
|
* This transaction only succeeds if the connected signer is the `operator`.
|
|
@@ -674,21 +647,22 @@ export class CoreSDK {
|
|
|
674
647
|
* @param exchangeToken - Address exchange token.
|
|
675
648
|
* @returns Decimals, name and symbol.
|
|
676
649
|
*/
|
|
677
|
-
public async getExchangeTokenInfo(
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
)
|
|
689
|
-
|
|
650
|
+
public async getExchangeTokenInfo(exchangeToken: string): Promise<{
|
|
651
|
+
name: string;
|
|
652
|
+
decimals: number;
|
|
653
|
+
symbol: string;
|
|
654
|
+
}> {
|
|
655
|
+
const args = {
|
|
656
|
+
web3Lib: this._web3Lib,
|
|
657
|
+
contractAddress: exchangeToken
|
|
658
|
+
};
|
|
659
|
+
const [decimals, name, symbol] = await Promise.all([
|
|
660
|
+
erc20.handler.getDecimals(args),
|
|
661
|
+
erc20.handler.getName(args),
|
|
662
|
+
erc20.handler.getSymbol(args)
|
|
663
|
+
]);
|
|
690
664
|
|
|
691
|
-
return
|
|
665
|
+
return { decimals, name, symbol };
|
|
692
666
|
}
|
|
693
667
|
|
|
694
668
|
/**
|
|
@@ -1082,19 +1056,37 @@ export class CoreSDK {
|
|
|
1082
1056
|
});
|
|
1083
1057
|
}
|
|
1084
1058
|
|
|
1085
|
-
public async
|
|
1086
|
-
exchangeId:
|
|
1087
|
-
buyerPercent:
|
|
1059
|
+
public async signMutualAgreement(args: {
|
|
1060
|
+
exchangeId: string;
|
|
1061
|
+
buyerPercent: string;
|
|
1088
1062
|
}) {
|
|
1063
|
+
// Set the message Type, needed for signature
|
|
1064
|
+
const resolutionType = [
|
|
1065
|
+
{ name: "exchangeId", type: "uint256" },
|
|
1066
|
+
{ name: "buyerPercent", type: "uint256" }
|
|
1067
|
+
];
|
|
1068
|
+
|
|
1069
|
+
const customSignatureType = {
|
|
1070
|
+
Resolution: resolutionType
|
|
1071
|
+
};
|
|
1072
|
+
|
|
1073
|
+
const message = {
|
|
1074
|
+
exchangeId: args.exchangeId,
|
|
1075
|
+
buyerPercent: args.buyerPercent
|
|
1076
|
+
};
|
|
1077
|
+
|
|
1089
1078
|
if (this._chainId === undefined) {
|
|
1090
1079
|
this._chainId = await this._web3Lib.getChainId();
|
|
1091
1080
|
}
|
|
1092
1081
|
|
|
1093
|
-
return
|
|
1094
|
-
...args,
|
|
1082
|
+
return metaTx.handler.prepareDataSignatureParameters({
|
|
1095
1083
|
web3Lib: this._web3Lib,
|
|
1096
|
-
|
|
1097
|
-
chainId: this._chainId
|
|
1084
|
+
metaTxHandlerAddress: this._protocolDiamond,
|
|
1085
|
+
chainId: this._chainId,
|
|
1086
|
+
customTransactionType: customSignatureType,
|
|
1087
|
+
primaryType: "Resolution",
|
|
1088
|
+
message,
|
|
1089
|
+
nonce: "" // not used in this case
|
|
1098
1090
|
});
|
|
1099
1091
|
}
|
|
1100
1092
|
|
|
@@ -1158,22 +1150,4 @@ export class CoreSDK {
|
|
|
1158
1150
|
...args
|
|
1159
1151
|
});
|
|
1160
1152
|
}
|
|
1161
|
-
|
|
1162
|
-
public async renderContractualAgreementForOffer(
|
|
1163
|
-
offerId: BigNumberish
|
|
1164
|
-
): Promise<string> {
|
|
1165
|
-
const offerData = await offers.subgraph.getOfferById(
|
|
1166
|
-
this._subgraphUrl,
|
|
1167
|
-
offerId
|
|
1168
|
-
);
|
|
1169
|
-
return offers.renderContractualAgreementForOffer(offerData);
|
|
1170
|
-
}
|
|
1171
|
-
|
|
1172
|
-
public async renderContractualAgreement(
|
|
1173
|
-
template: string,
|
|
1174
|
-
offerData: offers.CreateOfferArgs
|
|
1175
|
-
): Promise<string> {
|
|
1176
|
-
const tokenInfo = await this.getExchangeTokenInfo(offerData.exchangeToken);
|
|
1177
|
-
return offers.renderContractualAgreement(template, offerData, tokenInfo);
|
|
1178
|
-
}
|
|
1179
1153
|
}
|
package/src/disputes/handler.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Web3LibAdapter, TransactionResponse } from "@bosonprotocol/common";
|
|
2
2
|
import { BigNumberish } from "@ethersproject/bignumber";
|
|
3
3
|
import { BytesLike } from "@ethersproject/bytes";
|
|
4
|
-
|
|
5
4
|
import {
|
|
6
5
|
encodeRaiseDispute,
|
|
7
6
|
encodeDecideDispute,
|
|
@@ -14,7 +13,6 @@ import {
|
|
|
14
13
|
encodeResolveDispute,
|
|
15
14
|
encodeRetractDispute
|
|
16
15
|
} from "./interface";
|
|
17
|
-
import { prepareDataSignatureParameters } from "../utils/signature";
|
|
18
16
|
|
|
19
17
|
export async function raiseDispute(args: {
|
|
20
18
|
exchangeId: BigNumberish;
|
|
@@ -132,32 +130,3 @@ export async function expireEscalatedDispute(args: {
|
|
|
132
130
|
data: encodeExpireEscalatedDispute(args.exchangeId)
|
|
133
131
|
});
|
|
134
132
|
}
|
|
135
|
-
|
|
136
|
-
export async function signResolutionProposal(args: {
|
|
137
|
-
exchangeId: BigNumberish;
|
|
138
|
-
buyerPercent: BigNumberish;
|
|
139
|
-
contractAddress: string;
|
|
140
|
-
web3Lib: Web3LibAdapter;
|
|
141
|
-
chainId: number;
|
|
142
|
-
}) {
|
|
143
|
-
const customSignatureType = {
|
|
144
|
-
Resolution: [
|
|
145
|
-
{ name: "exchangeId", type: "uint256" },
|
|
146
|
-
{ name: "buyerPercent", type: "uint256" }
|
|
147
|
-
]
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
const message = {
|
|
151
|
-
exchangeId: args.exchangeId,
|
|
152
|
-
buyerPercent: args.buyerPercent
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
return prepareDataSignatureParameters({
|
|
156
|
-
message,
|
|
157
|
-
customSignatureType,
|
|
158
|
-
web3Lib: args.web3Lib,
|
|
159
|
-
verifyingContractAddress: args.contractAddress,
|
|
160
|
-
chainId: args.chainId,
|
|
161
|
-
primaryType: "Resolution"
|
|
162
|
-
});
|
|
163
|
-
}
|
package/src/exchanges/handler.ts
CHANGED
|
@@ -48,7 +48,6 @@ export async function commitToOffer(
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
return args.web3Lib.sendTransaction({
|
|
51
|
-
from: args.buyer,
|
|
52
51
|
to: args.contractAddress,
|
|
53
52
|
data: encodeCommitToOffer(args.buyer, args.offerId),
|
|
54
53
|
value: offer.exchangeToken.address === AddressZero ? offer.price : "0"
|
package/src/meta-tx/handler.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Web3LibAdapter } from "@bosonprotocol/common";
|
|
2
|
-
import {
|
|
2
|
+
import { isHexString, hexZeroPad } from "@ethersproject/bytes";
|
|
3
|
+
import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
|
|
3
4
|
|
|
4
5
|
import { bosonExchangeHandlerIface } from "../exchanges/interface";
|
|
5
|
-
import {
|
|
6
|
+
import { bosonFundsHandlerIface } from "../funds/interface";
|
|
6
7
|
|
|
7
8
|
type BaseMetaTxArgs = {
|
|
8
9
|
web3Lib: Web3LibAdapter;
|
|
@@ -25,7 +26,7 @@ export async function signExecuteMetaTx(
|
|
|
25
26
|
{ name: "functionSignature", type: "bytes" }
|
|
26
27
|
];
|
|
27
28
|
|
|
28
|
-
const
|
|
29
|
+
const customTransactionType = {
|
|
29
30
|
MetaTransaction: metaTransactionType
|
|
30
31
|
};
|
|
31
32
|
|
|
@@ -41,8 +42,7 @@ export async function signExecuteMetaTx(
|
|
|
41
42
|
|
|
42
43
|
return prepareDataSignatureParameters({
|
|
43
44
|
...args,
|
|
44
|
-
|
|
45
|
-
customSignatureType,
|
|
45
|
+
customTransactionType,
|
|
46
46
|
primaryType: "MetaTransaction",
|
|
47
47
|
message
|
|
48
48
|
});
|
|
@@ -68,7 +68,7 @@ export async function signExecuteMetaTxCommitToOffer(
|
|
|
68
68
|
{ name: "offerDetails", type: "MetaTxOfferDetails" }
|
|
69
69
|
];
|
|
70
70
|
|
|
71
|
-
const
|
|
71
|
+
const customTransactionType = {
|
|
72
72
|
MetaTxCommitToOffer: metaTransactionType,
|
|
73
73
|
MetaTxOfferDetails: offerType
|
|
74
74
|
};
|
|
@@ -88,8 +88,7 @@ export async function signExecuteMetaTxCommitToOffer(
|
|
|
88
88
|
|
|
89
89
|
const signatureParams = await prepareDataSignatureParameters({
|
|
90
90
|
...args,
|
|
91
|
-
|
|
92
|
-
customSignatureType,
|
|
91
|
+
customTransactionType,
|
|
93
92
|
primaryType: "MetaTxCommitToOffer",
|
|
94
93
|
message
|
|
95
94
|
});
|
|
@@ -163,7 +162,7 @@ export async function signExecuteMetaTxRaiseDispute(
|
|
|
163
162
|
{ name: "disputeDetails", type: "MetaTxDisputeDetails" }
|
|
164
163
|
];
|
|
165
164
|
|
|
166
|
-
const
|
|
165
|
+
const customTransactionType = {
|
|
167
166
|
MetaTxDispute: metaTransactionType,
|
|
168
167
|
MetaTxDisputeDetails: disputeType
|
|
169
168
|
};
|
|
@@ -182,8 +181,7 @@ export async function signExecuteMetaTxRaiseDispute(
|
|
|
182
181
|
// TODO: encode function data when adding dispute resolver module
|
|
183
182
|
return prepareDataSignatureParameters({
|
|
184
183
|
...args,
|
|
185
|
-
|
|
186
|
-
customSignatureType,
|
|
184
|
+
customTransactionType,
|
|
187
185
|
primaryType: "MetaTxDispute",
|
|
188
186
|
message
|
|
189
187
|
});
|
|
@@ -216,7 +214,7 @@ export async function signExecuteMetaTxResolveDispute(
|
|
|
216
214
|
{ name: "disputeResolutionDetails", type: "MetaTxDisputeResolutionDetails" }
|
|
217
215
|
];
|
|
218
216
|
|
|
219
|
-
const
|
|
217
|
+
const customTransactionType = {
|
|
220
218
|
MetaTxDisputeResolution: metaTransactionType,
|
|
221
219
|
MetaTxDisputeResolutionDetails: disputeResolutionType
|
|
222
220
|
};
|
|
@@ -238,8 +236,7 @@ export async function signExecuteMetaTxResolveDispute(
|
|
|
238
236
|
// TODO: encode function data when adding dispute resolver module
|
|
239
237
|
return prepareDataSignatureParameters({
|
|
240
238
|
...args,
|
|
241
|
-
|
|
242
|
-
customSignatureType,
|
|
239
|
+
customTransactionType,
|
|
243
240
|
primaryType: "MetaTxDisputeResolution",
|
|
244
241
|
message
|
|
245
242
|
});
|
|
@@ -268,7 +265,7 @@ export async function signExecuteMetaTxWithdrawFunds(
|
|
|
268
265
|
{ name: "fundDetails", type: "MetaTxFundDetails" }
|
|
269
266
|
];
|
|
270
267
|
|
|
271
|
-
const
|
|
268
|
+
const customTransactionType = {
|
|
272
269
|
MetaTxFund: metaTransactionType,
|
|
273
270
|
MetaTxFundDetails: fundType
|
|
274
271
|
};
|
|
@@ -287,8 +284,7 @@ export async function signExecuteMetaTxWithdrawFunds(
|
|
|
287
284
|
|
|
288
285
|
const signatureParams = await prepareDataSignatureParameters({
|
|
289
286
|
...args,
|
|
290
|
-
|
|
291
|
-
customSignatureType,
|
|
287
|
+
customTransactionType,
|
|
292
288
|
primaryType: "MetaTxFund",
|
|
293
289
|
message
|
|
294
290
|
});
|
|
@@ -326,7 +322,7 @@ function makeExchangeMetaTxSigner(
|
|
|
326
322
|
{ name: "exchangeDetails", type: "MetaTxExchangeDetails" }
|
|
327
323
|
];
|
|
328
324
|
|
|
329
|
-
const
|
|
325
|
+
const customTransactionType = {
|
|
330
326
|
MetaTxExchange: metaTransactionType,
|
|
331
327
|
MetaTxExchangeDetails: exchangeType
|
|
332
328
|
};
|
|
@@ -345,8 +341,7 @@ function makeExchangeMetaTxSigner(
|
|
|
345
341
|
|
|
346
342
|
const signatureParams = await prepareDataSignatureParameters({
|
|
347
343
|
...args,
|
|
348
|
-
|
|
349
|
-
customSignatureType,
|
|
344
|
+
customTransactionType,
|
|
350
345
|
primaryType: "MetaTxExchange",
|
|
351
346
|
message
|
|
352
347
|
});
|
|
@@ -362,3 +357,62 @@ function makeExchangeMetaTxSigner(
|
|
|
362
357
|
};
|
|
363
358
|
};
|
|
364
359
|
}
|
|
360
|
+
|
|
361
|
+
export async function prepareDataSignatureParameters(
|
|
362
|
+
args: BaseMetaTxArgs & {
|
|
363
|
+
customTransactionType?: Record<string, unknown>;
|
|
364
|
+
primaryType: string;
|
|
365
|
+
message: Record<string, unknown>;
|
|
366
|
+
}
|
|
367
|
+
) {
|
|
368
|
+
const domainType = [
|
|
369
|
+
{ name: "name", type: "string" },
|
|
370
|
+
{ name: "version", type: "string" },
|
|
371
|
+
{ name: "verifyingContract", type: "address" },
|
|
372
|
+
{ name: "salt", type: "bytes32" }
|
|
373
|
+
];
|
|
374
|
+
|
|
375
|
+
const domainData = {
|
|
376
|
+
name: "BosonProtocolDiamond",
|
|
377
|
+
version: "V1",
|
|
378
|
+
verifyingContract: args.metaTxHandlerAddress,
|
|
379
|
+
salt: hexZeroPad(BigNumber.from(args.chainId).toHexString(), 32)
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
const metaTxTypes = {
|
|
383
|
+
EIP712Domain: domainType,
|
|
384
|
+
...args.customTransactionType
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
const dataToSign = JSON.stringify({
|
|
388
|
+
types: metaTxTypes,
|
|
389
|
+
domain: domainData,
|
|
390
|
+
primaryType: args.primaryType,
|
|
391
|
+
message: args.message
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
const signer = await args.web3Lib.getSignerAddress();
|
|
395
|
+
const signature = await args.web3Lib.send("eth_signTypedData_v4", [
|
|
396
|
+
signer,
|
|
397
|
+
dataToSign
|
|
398
|
+
]);
|
|
399
|
+
|
|
400
|
+
return getSignatureParameters(signature);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export function getSignatureParameters(signature: string) {
|
|
404
|
+
if (!isHexString(signature)) {
|
|
405
|
+
throw new Error(`Value "${signature}" is not a valid hex string`);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
signature = signature.substring(2);
|
|
409
|
+
const r = "0x" + signature.substring(0, 64);
|
|
410
|
+
const s = "0x" + signature.substring(64, 128);
|
|
411
|
+
const v = parseInt(signature.substring(128, 130), 16);
|
|
412
|
+
|
|
413
|
+
return {
|
|
414
|
+
r,
|
|
415
|
+
s,
|
|
416
|
+
v
|
|
417
|
+
};
|
|
418
|
+
}
|
|
@@ -107,9 +107,6 @@ fragment BaseProductV1MetadataEntityFields on ProductV1MetadataEntity {
|
|
|
107
107
|
productV1Seller {
|
|
108
108
|
...BaseProductV1SellerFields
|
|
109
109
|
}
|
|
110
|
-
exchangePolicy {
|
|
111
|
-
...BaseProductV1ExchangePolicyFields
|
|
112
|
-
}
|
|
113
110
|
}
|
|
114
111
|
|
|
115
112
|
fragment BaseProductV1ProductFields on ProductV1Product {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { subgraph } from "..";
|
|
2
2
|
|
|
3
3
|
export enum OfferState {
|
|
4
4
|
VOIDED = "VOIDED",
|
|
@@ -7,7 +7,7 @@ export enum OfferState {
|
|
|
7
7
|
VALID = "VALID"
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export function getOfferStatus(offer: OfferFieldsFragment) {
|
|
10
|
+
export function getOfferStatus(offer: subgraph.OfferFieldsFragment) {
|
|
11
11
|
const toTimeStamp = (numberString: string) => Number(numberString) * 1000;
|
|
12
12
|
const timeNow = Date.now();
|
|
13
13
|
|
package/src/offers/index.ts
CHANGED
|
@@ -6,10 +6,7 @@ export * as iface from "./interface";
|
|
|
6
6
|
export * as storage from "./storage";
|
|
7
7
|
export * from "./types";
|
|
8
8
|
export * from "./getOfferStatus";
|
|
9
|
-
export * from "./renderContractualAgreement";
|
|
10
9
|
|
|
11
|
-
export const validation
|
|
12
|
-
createOfferArgsSchema: typeof utils.validation.createOfferArgsSchema;
|
|
13
|
-
} = {
|
|
10
|
+
export const validation = {
|
|
14
11
|
createOfferArgsSchema: utils.validation.createOfferArgsSchema
|
|
15
12
|
};
|
package/src/offers/interface.ts
CHANGED
|
@@ -25,15 +25,13 @@ export function createOfferArgsToStructs(
|
|
|
25
25
|
Partial<OfferStruct>,
|
|
26
26
|
Partial<OfferDatesStruct>,
|
|
27
27
|
Partial<OfferDurationsStruct>,
|
|
28
|
-
BigNumberish,
|
|
29
28
|
BigNumberish
|
|
30
29
|
] {
|
|
31
30
|
return [
|
|
32
31
|
argsToOfferStruct(args),
|
|
33
32
|
argsToOfferDatesStruct(args),
|
|
34
33
|
argsToOfferDurationsStruct(args),
|
|
35
|
-
args.disputeResolverId
|
|
36
|
-
args.agentId
|
|
34
|
+
args.disputeResolverId
|
|
37
35
|
];
|
|
38
36
|
}
|
|
39
37
|
|
|
@@ -54,8 +52,7 @@ export function argsToOfferDatesStruct(
|
|
|
54
52
|
const {
|
|
55
53
|
validFromDateInMS,
|
|
56
54
|
validUntilDateInMS,
|
|
57
|
-
voucherRedeemableFromDateInMS
|
|
58
|
-
voucherRedeemableUntilDateInMS
|
|
55
|
+
voucherRedeemableFromDateInMS
|
|
59
56
|
} = args;
|
|
60
57
|
|
|
61
58
|
return {
|
|
@@ -64,9 +61,10 @@ export function argsToOfferDatesStruct(
|
|
|
64
61
|
voucherRedeemableFrom: utils.timestamp.msToSec(
|
|
65
62
|
voucherRedeemableFromDateInMS
|
|
66
63
|
),
|
|
67
|
-
voucherRedeemableUntil:
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
voucherRedeemableUntil:
|
|
65
|
+
// NOTE: Field `voucherRedeemableUntil` not yet fully supported in protocol.
|
|
66
|
+
// Therefore converting to `voucherValid` field.
|
|
67
|
+
"0"
|
|
70
68
|
};
|
|
71
69
|
}
|
|
72
70
|
|
|
@@ -75,13 +73,22 @@ export function argsToOfferDurationsStruct(
|
|
|
75
73
|
): Partial<OfferDurationsStruct> {
|
|
76
74
|
const {
|
|
77
75
|
fulfillmentPeriodDurationInMS,
|
|
76
|
+
voucherRedeemableUntilDateInMS,
|
|
77
|
+
voucherRedeemableFromDateInMS,
|
|
78
78
|
voucherValidDurationInMS = 0,
|
|
79
79
|
resolutionPeriodDurationInMS
|
|
80
80
|
} = args;
|
|
81
81
|
|
|
82
82
|
return {
|
|
83
83
|
fulfillmentPeriod: utils.timestamp.msToSec(fulfillmentPeriodDurationInMS),
|
|
84
|
-
voucherValid: utils.timestamp.msToSec(
|
|
84
|
+
voucherValid: utils.timestamp.msToSec(
|
|
85
|
+
voucherValidDurationInMS ||
|
|
86
|
+
// NOTE: Field `voucherRedeemableUntil` not yet fully supported in protocol.
|
|
87
|
+
// Therefore converting to `voucherValid` field.
|
|
88
|
+
BigNumber.from(voucherRedeemableUntilDateInMS).sub(
|
|
89
|
+
BigNumber.from(voucherRedeemableFromDateInMS)
|
|
90
|
+
)
|
|
91
|
+
),
|
|
85
92
|
resolutionPeriod: utils.timestamp.msToSec(resolutionPeriodDurationInMS)
|
|
86
93
|
};
|
|
87
94
|
}
|
|
@@ -55,8 +55,6 @@ fragment BaseOfferFields on Offer {
|
|
|
55
55
|
price
|
|
56
56
|
sellerDeposit
|
|
57
57
|
protocolFee
|
|
58
|
-
agentFee
|
|
59
|
-
agentId
|
|
60
58
|
buyerCancelPenalty
|
|
61
59
|
quantityAvailable
|
|
62
60
|
quantityInitial
|
|
@@ -89,34 +87,5 @@ fragment BaseOfferFields on Offer {
|
|
|
89
87
|
externalUrl
|
|
90
88
|
schemaUrl
|
|
91
89
|
type
|
|
92
|
-
... on ProductV1MetadataEntity {
|
|
93
|
-
image
|
|
94
|
-
attributes {
|
|
95
|
-
traitType
|
|
96
|
-
value
|
|
97
|
-
displayType
|
|
98
|
-
}
|
|
99
|
-
createdAt
|
|
100
|
-
voided
|
|
101
|
-
validFromDate
|
|
102
|
-
validUntilDate
|
|
103
|
-
quantityAvailable
|
|
104
|
-
uuid
|
|
105
|
-
product {
|
|
106
|
-
...BaseProductV1ProductFields
|
|
107
|
-
}
|
|
108
|
-
variations {
|
|
109
|
-
...BaseProductV1VariationFields
|
|
110
|
-
}
|
|
111
|
-
productV1Seller {
|
|
112
|
-
...BaseProductV1SellerFields
|
|
113
|
-
}
|
|
114
|
-
exchangePolicy {
|
|
115
|
-
...BaseProductV1ExchangePolicyFields
|
|
116
|
-
}
|
|
117
|
-
shipping {
|
|
118
|
-
...BaseProductV1ShippingOptionFields
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
90
|
}
|
|
122
91
|
}
|
package/src/offers/subgraph.ts
CHANGED
|
@@ -14,19 +14,12 @@ export function encodeCreateSellerAndOffer(
|
|
|
14
14
|
seller: CreateSellerArgs,
|
|
15
15
|
offer: CreateOfferArgs
|
|
16
16
|
) {
|
|
17
|
-
const sellerArgs = createSellerArgsToStruct(seller);
|
|
18
|
-
const offerArgs = createOfferArgsToStructs(offer);
|
|
19
17
|
return bosonOrchestrationHandlerIface.encodeFunctionData(
|
|
20
18
|
"createSellerAndOffer",
|
|
21
19
|
[
|
|
22
|
-
|
|
20
|
+
createSellerArgsToStruct(seller),
|
|
23
21
|
seller.contractUri,
|
|
24
|
-
|
|
25
|
-
offerArgs[1], // offerDates
|
|
26
|
-
offerArgs[2], // offerDurations
|
|
27
|
-
offerArgs[3], // disputeResolverId
|
|
28
|
-
sellerArgs.authTokenStruct,
|
|
29
|
-
offerArgs[4] // agentId
|
|
22
|
+
...createOfferArgsToStructs(offer)
|
|
30
23
|
]
|
|
31
24
|
);
|
|
32
25
|
}
|