@bosonprotocol/core-sdk 1.12.0-alpha.8 → 1.12.0
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 +2 -13
- package/dist/cjs/accounts/index.d.ts.map +1 -1
- package/dist/cjs/accounts/index.js.map +1 -1
- package/dist/cjs/core-sdk.d.ts +10 -3
- package/dist/cjs/core-sdk.d.ts.map +1 -1
- package/dist/cjs/core-sdk.js +24 -23
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/disputes/handler.d.ts +11 -0
- package/dist/cjs/disputes/handler.d.ts.map +1 -1
- package/dist/cjs/disputes/handler.js +25 -1
- 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 +1 -0
- package/dist/cjs/exchanges/handler.js.map +1 -1
- package/dist/cjs/meta-tx/handler.d.ts +0 -14
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +14 -60
- 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 +2 -31
- package/dist/cjs/offers/index.d.ts.map +1 -1
- package/dist/cjs/offers/index.js.map +1 -1
- package/dist/cjs/offers/interface.d.ts.map +1 -1
- package/dist/cjs/offers/interface.js +4 -11
- package/dist/cjs/offers/interface.js.map +1 -1
- package/dist/cjs/offers/renderContractualAgreement.d.ts +6 -5
- package/dist/cjs/offers/renderContractualAgreement.d.ts.map +1 -1
- package/dist/cjs/offers/renderContractualAgreement.js +4 -4
- package/dist/cjs/offers/renderContractualAgreement.js.map +1 -1
- package/dist/cjs/utils/signature.d.ts +21 -0
- package/dist/cjs/utils/signature.d.ts.map +1 -0
- package/dist/cjs/utils/signature.js +60 -0
- package/dist/cjs/utils/signature.js.map +1 -0
- package/dist/cjs/utils/tokenInfoManager.d.ts +3 -0
- package/dist/cjs/utils/tokenInfoManager.d.ts.map +1 -1
- package/dist/cjs/utils/tokenInfoManager.js +8 -8
- package/dist/cjs/utils/tokenInfoManager.js.map +1 -1
- package/dist/esm/accounts/index.d.ts +2 -13
- package/dist/esm/accounts/index.d.ts.map +1 -1
- package/dist/esm/accounts/index.js.map +1 -1
- package/dist/esm/core-sdk.d.ts +10 -3
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +26 -20
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/disputes/handler.d.ts +11 -0
- package/dist/esm/disputes/handler.d.ts.map +1 -1
- package/dist/esm/disputes/handler.js +21 -0
- 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 +1 -0
- package/dist/esm/exchanges/handler.js.map +1 -1
- package/dist/esm/meta-tx/handler.d.ts +0 -14
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +19 -58
- 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 +2 -31
- package/dist/esm/offers/index.d.ts.map +1 -1
- package/dist/esm/offers/index.js.map +1 -1
- package/dist/esm/offers/interface.d.ts.map +1 -1
- package/dist/esm/offers/interface.js +4 -11
- package/dist/esm/offers/interface.js.map +1 -1
- package/dist/esm/offers/renderContractualAgreement.d.ts +6 -5
- package/dist/esm/offers/renderContractualAgreement.d.ts.map +1 -1
- package/dist/esm/offers/renderContractualAgreement.js +3 -3
- package/dist/esm/offers/renderContractualAgreement.js.map +1 -1
- package/dist/esm/utils/signature.d.ts +21 -0
- package/dist/esm/utils/signature.d.ts.map +1 -0
- package/dist/esm/utils/signature.js +47 -0
- package/dist/esm/utils/signature.js.map +1 -0
- package/dist/esm/utils/tokenInfoManager.d.ts +3 -0
- package/dist/esm/utils/tokenInfoManager.d.ts.map +1 -1
- package/dist/esm/utils/tokenInfoManager.js +5 -5
- package/dist/esm/utils/tokenInfoManager.js.map +1 -1
- package/package.json +5 -4
- package/src/accounts/index.ts +3 -1
- package/src/core-sdk.ts +32 -25
- package/src/disputes/handler.ts +31 -0
- package/src/exchanges/handler.ts +1 -0
- package/src/meta-tx/handler.ts +20 -74
- package/src/offers/getOfferStatus.ts +2 -2
- package/src/offers/index.ts +3 -1
- package/src/offers/interface.ts +6 -15
- package/src/offers/renderContractualAgreement.ts +13 -10
- package/src/utils/signature.ts +65 -0
- package/src/utils/tokenInfoManager.ts +5 -5
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as yup from "yup";
|
|
2
2
|
import { BigNumber } from "@ethersproject/bignumber";
|
|
3
|
-
import { subgraph } from "..";
|
|
4
3
|
import { utils } from "@bosonprotocol/common";
|
|
5
4
|
import Mustache from "mustache";
|
|
6
|
-
import { formatUnits } from "
|
|
5
|
+
import { formatUnits } from "@ethersproject/units";
|
|
6
|
+
import { MetadataType } from "../subgraph";
|
|
7
7
|
export class InvalidOfferDataError extends Error {
|
|
8
8
|
missingProperties;
|
|
9
9
|
constructor(missingProperties) {
|
|
@@ -114,7 +114,7 @@ export async function renderContractualAgreementForOffer(existingOfferData) {
|
|
|
114
114
|
if (!existingOfferData.metadata) {
|
|
115
115
|
throw new Error(`Offer Metadata is undefined`);
|
|
116
116
|
}
|
|
117
|
-
if (existingOfferData.metadata.type !==
|
|
117
|
+
if (existingOfferData.metadata.type !== MetadataType.ProductV1) {
|
|
118
118
|
throw new Error(`Invalid Offer Metadata: Type is not supported: '${existingOfferData.metadata.type}'`);
|
|
119
119
|
}
|
|
120
120
|
if (!existingOfferData.metadata.exchangePolicy) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderContractualAgreement.js","sourceRoot":"","sources":["../../../src/offers/renderContractualAgreement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAgB,MAAM,0BAA0B,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"renderContractualAgreement.js","sourceRoot":"","sources":["../../../src/offers/renderContractualAgreement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Web3LibAdapter } from "@bosonprotocol/common";
|
|
2
|
+
declare type SignatureArgs = {
|
|
3
|
+
web3Lib: Web3LibAdapter;
|
|
4
|
+
verifyingContractAddress: string;
|
|
5
|
+
chainId: number;
|
|
6
|
+
customSignatureType?: Record<string, unknown>;
|
|
7
|
+
primaryType: string;
|
|
8
|
+
message: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
export declare function prepareDataSignatureParameters(args: SignatureArgs): Promise<{
|
|
11
|
+
r: string;
|
|
12
|
+
s: string;
|
|
13
|
+
v: number;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function getSignatureParameters(signature: string): {
|
|
16
|
+
r: string;
|
|
17
|
+
s: string;
|
|
18
|
+
v: number;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=signature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,aAAK,aAAa,GAAG;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,aAAa;;;;GAkCvE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM;;;;EAevD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { isHexString, hexZeroPad } from "@ethersproject/bytes";
|
|
2
|
+
import { BigNumber } from "@ethersproject/bignumber";
|
|
3
|
+
export async function prepareDataSignatureParameters(args) {
|
|
4
|
+
const domainType = [
|
|
5
|
+
{ name: "name", type: "string" },
|
|
6
|
+
{ name: "version", type: "string" },
|
|
7
|
+
{ name: "verifyingContract", type: "address" },
|
|
8
|
+
{ name: "salt", type: "bytes32" }
|
|
9
|
+
];
|
|
10
|
+
const domainData = {
|
|
11
|
+
name: "BosonProtocolDiamond",
|
|
12
|
+
version: "V1",
|
|
13
|
+
verifyingContract: args.verifyingContractAddress,
|
|
14
|
+
salt: hexZeroPad(BigNumber.from(args.chainId).toHexString(), 32)
|
|
15
|
+
};
|
|
16
|
+
const signatureTypes = {
|
|
17
|
+
EIP712Domain: domainType,
|
|
18
|
+
...args.customSignatureType
|
|
19
|
+
};
|
|
20
|
+
const dataToSign = JSON.stringify({
|
|
21
|
+
types: signatureTypes,
|
|
22
|
+
domain: domainData,
|
|
23
|
+
primaryType: args.primaryType,
|
|
24
|
+
message: args.message
|
|
25
|
+
});
|
|
26
|
+
const signer = await args.web3Lib.getSignerAddress();
|
|
27
|
+
const signature = await args.web3Lib.send("eth_signTypedData_v4", [
|
|
28
|
+
signer,
|
|
29
|
+
dataToSign
|
|
30
|
+
]);
|
|
31
|
+
return getSignatureParameters(signature);
|
|
32
|
+
}
|
|
33
|
+
export function getSignatureParameters(signature) {
|
|
34
|
+
if (!isHexString(signature)) {
|
|
35
|
+
throw new Error(`Value "${signature}" is not a valid hex string`);
|
|
36
|
+
}
|
|
37
|
+
signature = signature.substring(2);
|
|
38
|
+
const r = "0x" + signature.substring(0, 64);
|
|
39
|
+
const s = "0x" + signature.substring(64, 128);
|
|
40
|
+
const v = parseInt(signature.substring(128, 130), 16);
|
|
41
|
+
return {
|
|
42
|
+
r,
|
|
43
|
+
s,
|
|
44
|
+
v
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAWrD,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,IAAmB;IACtE,MAAM,UAAU,GAAG;QACjB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;KAClC,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,IAAI;QACb,iBAAiB,EAAE,IAAI,CAAC,wBAAwB;QAChD,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;KACjE,CAAC;IAEF,MAAM,cAAc,GAAG;QACrB,YAAY,EAAE,UAAU;QACxB,GAAG,IAAI,CAAC,mBAAmB;KAC5B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;QAChE,MAAM;QACN,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,CAAC,CAAC;KACnE;IAED,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtD,OAAO;QACL,CAAC;QACD,CAAC;QACD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -7,6 +7,9 @@ export interface ITokenInfo {
|
|
|
7
7
|
export interface ITokenInfoManager {
|
|
8
8
|
getExchangeTokenInfo: (tokenAddress: string) => Promise<ITokenInfo>;
|
|
9
9
|
}
|
|
10
|
+
export declare const NATIVE_TOKENS: {
|
|
11
|
+
[key: number]: ITokenInfo;
|
|
12
|
+
};
|
|
10
13
|
export declare class TokenInfoManager implements ITokenInfoManager {
|
|
11
14
|
private _tokenInfos;
|
|
12
15
|
private _web3Lib;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenInfoManager.d.ts","sourceRoot":"","sources":["../../../src/utils/tokenInfoManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACrE;
|
|
1
|
+
{"version":3,"file":"tokenInfoManager.d.ts","sourceRoot":"","sources":["../../../src/utils/tokenInfoManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACrE;AAED,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAiDtD,CAAC;AAEF,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,QAAQ,CAAiB;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;IAQ9C,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAmB7E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AddressZero } from "@ethersproject/constants";
|
|
2
|
-
import {
|
|
3
|
-
const NATIVE_TOKENS = {
|
|
2
|
+
import { getDecimals, getName, getSymbol } from "../erc20/handler";
|
|
3
|
+
export const NATIVE_TOKENS = {
|
|
4
4
|
1: {
|
|
5
5
|
// Ethereum Mainnet
|
|
6
6
|
name: "Ether",
|
|
@@ -67,9 +67,9 @@ export class TokenInfoManager {
|
|
|
67
67
|
contractAddress: tokenAddress
|
|
68
68
|
};
|
|
69
69
|
const [decimals, name, symbol] = await Promise.all([
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
getDecimals(args),
|
|
71
|
+
getName(args),
|
|
72
|
+
getSymbol(args)
|
|
73
73
|
]);
|
|
74
74
|
this._tokenInfos.set(tokenAddress.toLowerCase(), {
|
|
75
75
|
decimals,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenInfoManager.js","sourceRoot":"","sources":["../../../src/utils/tokenInfoManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tokenInfoManager.js","sourceRoot":"","sources":["../../../src/utils/tokenInfoManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAYnE,MAAM,CAAC,MAAM,aAAa,GAAkC;IAC1D,CAAC,EAAE;QACD,mBAAmB;QACnB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,CAAC,EAAE;QACD,mBAAmB;QACnB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,CAAC,EAAE;QACD,mBAAmB;QACnB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,CAAC,EAAE;QACD,kBAAkB;QAClB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,GAAG,EAAE;QACH,kBAAkB;QAClB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,OAAO;KAChB;IACD,KAAK,EAAE;QACL,iBAAiB;QACjB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,OAAO;KAChB;IACD,IAAI,EAAE;QACJ,eAAe;QACf,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;IACD,KAAK,EAAE;QACL,gBAAgB;QAChB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;KACd;CACF,CAAC;AAEF,MAAM,OAAO,gBAAgB;IACnB,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,QAAQ,CAAiB;IAEjC,YAAmB,OAAe,EAAE,OAAuB;QACzD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,GAAG,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QACpD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE;YACrD,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,eAAe,EAAE,YAAY;aAC9B,CAAC;YACF,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjD,WAAW,CAAC,IAAI,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC;gBACb,SAAS,CAAC,IAAI,CAAC;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE;gBAC/C,QAAQ;gBACR,IAAI;gBACJ,MAAM;aACP,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bosonprotocol/core-sdk",
|
|
3
|
-
"version": "1.12.0
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "restricted"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@bosonprotocol/common": "^1.9.0
|
|
36
|
+
"@bosonprotocol/common": "^1.9.0",
|
|
37
37
|
"@ethersproject/abi": "^5.5.0",
|
|
38
38
|
"@ethersproject/address": "^5.5.0",
|
|
39
39
|
"@ethersproject/bignumber": "^5.5.0",
|
|
@@ -43,7 +43,8 @@
|
|
|
43
43
|
"cross-fetch": "^3.1.5",
|
|
44
44
|
"graphql": "^16.5.0",
|
|
45
45
|
"graphql-request": "^4.3.0",
|
|
46
|
-
"mustache": "^4.2.0"
|
|
46
|
+
"mustache": "^4.2.0",
|
|
47
|
+
"yup": "^0.32.11"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"eslint": "^8.10.0",
|
|
@@ -53,5 +54,5 @@
|
|
|
53
54
|
"ts-jest": "^27.1.3",
|
|
54
55
|
"typescript": "^4.5.5"
|
|
55
56
|
},
|
|
56
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "f06848f53b45df78d54419ab1858d259f3cd7429"
|
|
57
58
|
}
|
package/src/accounts/index.ts
CHANGED
|
@@ -5,6 +5,8 @@ export * as handler from "./handler";
|
|
|
5
5
|
export * as subgraph from "./subgraph";
|
|
6
6
|
export * from "./types";
|
|
7
7
|
|
|
8
|
-
export const validation
|
|
8
|
+
export const validation: {
|
|
9
|
+
createSellerArgsSchema: typeof utils.validation.createSellerArgsSchema;
|
|
10
|
+
} = {
|
|
9
11
|
createSellerArgsSchema: utils.validation.createSellerArgsSchema
|
|
10
12
|
};
|
package/src/core-sdk.ts
CHANGED
|
@@ -574,6 +574,31 @@ export class CoreSDK {
|
|
|
574
574
|
);
|
|
575
575
|
}
|
|
576
576
|
|
|
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
|
+
|
|
577
602
|
/**
|
|
578
603
|
* Voids an existing offer by calling the `OfferHandlerFacet` contract.
|
|
579
604
|
* This transaction only succeeds if the connected signer is the `operator`.
|
|
@@ -1057,37 +1082,19 @@ export class CoreSDK {
|
|
|
1057
1082
|
});
|
|
1058
1083
|
}
|
|
1059
1084
|
|
|
1060
|
-
public async
|
|
1061
|
-
exchangeId:
|
|
1062
|
-
buyerPercent:
|
|
1085
|
+
public async signDisputeResolutionProposal(args: {
|
|
1086
|
+
exchangeId: BigNumberish;
|
|
1087
|
+
buyerPercent: BigNumberish;
|
|
1063
1088
|
}) {
|
|
1064
|
-
// Set the message Type, needed for signature
|
|
1065
|
-
const resolutionType = [
|
|
1066
|
-
{ name: "exchangeId", type: "uint256" },
|
|
1067
|
-
{ name: "buyerPercent", type: "uint256" }
|
|
1068
|
-
];
|
|
1069
|
-
|
|
1070
|
-
const customSignatureType = {
|
|
1071
|
-
Resolution: resolutionType
|
|
1072
|
-
};
|
|
1073
|
-
|
|
1074
|
-
const message = {
|
|
1075
|
-
exchangeId: args.exchangeId,
|
|
1076
|
-
buyerPercent: args.buyerPercent
|
|
1077
|
-
};
|
|
1078
|
-
|
|
1079
1089
|
if (this._chainId === undefined) {
|
|
1080
1090
|
this._chainId = await this._web3Lib.getChainId();
|
|
1081
1091
|
}
|
|
1082
1092
|
|
|
1083
|
-
return
|
|
1093
|
+
return disputes.handler.signResolutionProposal({
|
|
1094
|
+
...args,
|
|
1084
1095
|
web3Lib: this._web3Lib,
|
|
1085
|
-
|
|
1086
|
-
chainId: this._chainId
|
|
1087
|
-
customTransactionType: customSignatureType,
|
|
1088
|
-
primaryType: "Resolution",
|
|
1089
|
-
message,
|
|
1090
|
-
nonce: "" // not used in this case
|
|
1096
|
+
contractAddress: this._protocolDiamond,
|
|
1097
|
+
chainId: this._chainId
|
|
1091
1098
|
});
|
|
1092
1099
|
}
|
|
1093
1100
|
|
package/src/disputes/handler.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Web3LibAdapter, TransactionResponse } from "@bosonprotocol/common";
|
|
2
2
|
import { BigNumberish } from "@ethersproject/bignumber";
|
|
3
3
|
import { BytesLike } from "@ethersproject/bytes";
|
|
4
|
+
|
|
4
5
|
import {
|
|
5
6
|
encodeRaiseDispute,
|
|
6
7
|
encodeDecideDispute,
|
|
@@ -13,6 +14,7 @@ import {
|
|
|
13
14
|
encodeResolveDispute,
|
|
14
15
|
encodeRetractDispute
|
|
15
16
|
} from "./interface";
|
|
17
|
+
import { prepareDataSignatureParameters } from "../utils/signature";
|
|
16
18
|
|
|
17
19
|
export async function raiseDispute(args: {
|
|
18
20
|
exchangeId: BigNumberish;
|
|
@@ -130,3 +132,32 @@ export async function expireEscalatedDispute(args: {
|
|
|
130
132
|
data: encodeExpireEscalatedDispute(args.exchangeId)
|
|
131
133
|
});
|
|
132
134
|
}
|
|
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,6 +48,7 @@ export async function commitToOffer(
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
return args.web3Lib.sendTransaction({
|
|
51
|
+
from: args.buyer,
|
|
51
52
|
to: args.contractAddress,
|
|
52
53
|
data: encodeCommitToOffer(args.buyer, args.offerId),
|
|
53
54
|
value: offer.exchangeToken.address === AddressZero ? offer.price : "0"
|
package/src/meta-tx/handler.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Web3LibAdapter } from "@bosonprotocol/common";
|
|
2
|
-
import {
|
|
3
|
-
import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
|
|
2
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
4
3
|
|
|
5
4
|
import { bosonExchangeHandlerIface } from "../exchanges/interface";
|
|
6
|
-
import {
|
|
5
|
+
import { prepareDataSignatureParameters } from "../utils/signature";
|
|
7
6
|
|
|
8
7
|
type BaseMetaTxArgs = {
|
|
9
8
|
web3Lib: Web3LibAdapter;
|
|
@@ -26,7 +25,7 @@ export async function signExecuteMetaTx(
|
|
|
26
25
|
{ name: "functionSignature", type: "bytes" }
|
|
27
26
|
];
|
|
28
27
|
|
|
29
|
-
const
|
|
28
|
+
const customSignatureType = {
|
|
30
29
|
MetaTransaction: metaTransactionType
|
|
31
30
|
};
|
|
32
31
|
|
|
@@ -42,7 +41,8 @@ export async function signExecuteMetaTx(
|
|
|
42
41
|
|
|
43
42
|
return prepareDataSignatureParameters({
|
|
44
43
|
...args,
|
|
45
|
-
|
|
44
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
45
|
+
customSignatureType,
|
|
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 customSignatureType = {
|
|
72
72
|
MetaTxCommitToOffer: metaTransactionType,
|
|
73
73
|
MetaTxOfferDetails: offerType
|
|
74
74
|
};
|
|
@@ -88,7 +88,8 @@ export async function signExecuteMetaTxCommitToOffer(
|
|
|
88
88
|
|
|
89
89
|
const signatureParams = await prepareDataSignatureParameters({
|
|
90
90
|
...args,
|
|
91
|
-
|
|
91
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
92
|
+
customSignatureType,
|
|
92
93
|
primaryType: "MetaTxCommitToOffer",
|
|
93
94
|
message
|
|
94
95
|
});
|
|
@@ -162,7 +163,7 @@ export async function signExecuteMetaTxRaiseDispute(
|
|
|
162
163
|
{ name: "disputeDetails", type: "MetaTxDisputeDetails" }
|
|
163
164
|
];
|
|
164
165
|
|
|
165
|
-
const
|
|
166
|
+
const customSignatureType = {
|
|
166
167
|
MetaTxDispute: metaTransactionType,
|
|
167
168
|
MetaTxDisputeDetails: disputeType
|
|
168
169
|
};
|
|
@@ -181,7 +182,8 @@ export async function signExecuteMetaTxRaiseDispute(
|
|
|
181
182
|
// TODO: encode function data when adding dispute resolver module
|
|
182
183
|
return prepareDataSignatureParameters({
|
|
183
184
|
...args,
|
|
184
|
-
|
|
185
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
186
|
+
customSignatureType,
|
|
185
187
|
primaryType: "MetaTxDispute",
|
|
186
188
|
message
|
|
187
189
|
});
|
|
@@ -214,7 +216,7 @@ export async function signExecuteMetaTxResolveDispute(
|
|
|
214
216
|
{ name: "disputeResolutionDetails", type: "MetaTxDisputeResolutionDetails" }
|
|
215
217
|
];
|
|
216
218
|
|
|
217
|
-
const
|
|
219
|
+
const customSignatureType = {
|
|
218
220
|
MetaTxDisputeResolution: metaTransactionType,
|
|
219
221
|
MetaTxDisputeResolutionDetails: disputeResolutionType
|
|
220
222
|
};
|
|
@@ -236,7 +238,8 @@ export async function signExecuteMetaTxResolveDispute(
|
|
|
236
238
|
// TODO: encode function data when adding dispute resolver module
|
|
237
239
|
return prepareDataSignatureParameters({
|
|
238
240
|
...args,
|
|
239
|
-
|
|
241
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
242
|
+
customSignatureType,
|
|
240
243
|
primaryType: "MetaTxDisputeResolution",
|
|
241
244
|
message
|
|
242
245
|
});
|
|
@@ -265,7 +268,7 @@ export async function signExecuteMetaTxWithdrawFunds(
|
|
|
265
268
|
{ name: "fundDetails", type: "MetaTxFundDetails" }
|
|
266
269
|
];
|
|
267
270
|
|
|
268
|
-
const
|
|
271
|
+
const customSignatureType = {
|
|
269
272
|
MetaTxFund: metaTransactionType,
|
|
270
273
|
MetaTxFundDetails: fundType
|
|
271
274
|
};
|
|
@@ -284,7 +287,8 @@ export async function signExecuteMetaTxWithdrawFunds(
|
|
|
284
287
|
|
|
285
288
|
const signatureParams = await prepareDataSignatureParameters({
|
|
286
289
|
...args,
|
|
287
|
-
|
|
290
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
291
|
+
customSignatureType,
|
|
288
292
|
primaryType: "MetaTxFund",
|
|
289
293
|
message
|
|
290
294
|
});
|
|
@@ -322,7 +326,7 @@ function makeExchangeMetaTxSigner(
|
|
|
322
326
|
{ name: "exchangeDetails", type: "MetaTxExchangeDetails" }
|
|
323
327
|
];
|
|
324
328
|
|
|
325
|
-
const
|
|
329
|
+
const customSignatureType = {
|
|
326
330
|
MetaTxExchange: metaTransactionType,
|
|
327
331
|
MetaTxExchangeDetails: exchangeType
|
|
328
332
|
};
|
|
@@ -341,7 +345,8 @@ function makeExchangeMetaTxSigner(
|
|
|
341
345
|
|
|
342
346
|
const signatureParams = await prepareDataSignatureParameters({
|
|
343
347
|
...args,
|
|
344
|
-
|
|
348
|
+
verifyingContractAddress: args.metaTxHandlerAddress,
|
|
349
|
+
customSignatureType,
|
|
345
350
|
primaryType: "MetaTxExchange",
|
|
346
351
|
message
|
|
347
352
|
});
|
|
@@ -357,62 +362,3 @@ function makeExchangeMetaTxSigner(
|
|
|
357
362
|
};
|
|
358
363
|
};
|
|
359
364
|
}
|
|
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
|
-
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OfferFieldsFragment } from "../subgraph";
|
|
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:
|
|
10
|
+
export function getOfferStatus(offer: OfferFieldsFragment) {
|
|
11
11
|
const toTimeStamp = (numberString: string) => Number(numberString) * 1000;
|
|
12
12
|
const timeNow = Date.now();
|
|
13
13
|
|
package/src/offers/index.ts
CHANGED
|
@@ -8,6 +8,8 @@ export * from "./types";
|
|
|
8
8
|
export * from "./getOfferStatus";
|
|
9
9
|
export * from "./renderContractualAgreement";
|
|
10
10
|
|
|
11
|
-
export const validation
|
|
11
|
+
export const validation: {
|
|
12
|
+
createOfferArgsSchema: typeof utils.validation.createOfferArgsSchema;
|
|
13
|
+
} = {
|
|
12
14
|
createOfferArgsSchema: utils.validation.createOfferArgsSchema
|
|
13
15
|
};
|
package/src/offers/interface.ts
CHANGED
|
@@ -54,7 +54,8 @@ export function argsToOfferDatesStruct(
|
|
|
54
54
|
const {
|
|
55
55
|
validFromDateInMS,
|
|
56
56
|
validUntilDateInMS,
|
|
57
|
-
voucherRedeemableFromDateInMS
|
|
57
|
+
voucherRedeemableFromDateInMS,
|
|
58
|
+
voucherRedeemableUntilDateInMS
|
|
58
59
|
} = args;
|
|
59
60
|
|
|
60
61
|
return {
|
|
@@ -63,10 +64,9 @@ export function argsToOfferDatesStruct(
|
|
|
63
64
|
voucherRedeemableFrom: utils.timestamp.msToSec(
|
|
64
65
|
voucherRedeemableFromDateInMS
|
|
65
66
|
),
|
|
66
|
-
voucherRedeemableUntil:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"0"
|
|
67
|
+
voucherRedeemableUntil: utils.timestamp.msToSec(
|
|
68
|
+
voucherRedeemableUntilDateInMS
|
|
69
|
+
)
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
|
|
@@ -75,22 +75,13 @@ export function argsToOfferDurationsStruct(
|
|
|
75
75
|
): Partial<OfferDurationsStruct> {
|
|
76
76
|
const {
|
|
77
77
|
fulfillmentPeriodDurationInMS,
|
|
78
|
-
voucherRedeemableUntilDateInMS,
|
|
79
|
-
voucherRedeemableFromDateInMS,
|
|
80
78
|
voucherValidDurationInMS = 0,
|
|
81
79
|
resolutionPeriodDurationInMS
|
|
82
80
|
} = args;
|
|
83
81
|
|
|
84
82
|
return {
|
|
85
83
|
fulfillmentPeriod: utils.timestamp.msToSec(fulfillmentPeriodDurationInMS),
|
|
86
|
-
voucherValid: utils.timestamp.msToSec(
|
|
87
|
-
voucherValidDurationInMS ||
|
|
88
|
-
// NOTE: Field `voucherRedeemableUntil` not yet fully supported in protocol.
|
|
89
|
-
// Therefore converting to `voucherValid` field.
|
|
90
|
-
BigNumber.from(voucherRedeemableUntilDateInMS).sub(
|
|
91
|
-
BigNumber.from(voucherRedeemableFromDateInMS)
|
|
92
|
-
)
|
|
93
|
-
),
|
|
84
|
+
voucherValid: utils.timestamp.msToSec(voucherValidDurationInMS),
|
|
94
85
|
resolutionPeriod: utils.timestamp.msToSec(resolutionPeriodDurationInMS)
|
|
95
86
|
};
|
|
96
87
|
}
|