@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,13 +1,15 @@
|
|
|
1
1
|
import * as yup from "yup";
|
|
2
2
|
import { ITokenInfo } from "./../utils/tokenInfoManager";
|
|
3
3
|
import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
|
|
4
|
-
import { offers, subgraph } from "..";
|
|
5
4
|
import { utils } from "@bosonprotocol/common";
|
|
6
5
|
import Mustache from "mustache";
|
|
7
|
-
import { formatUnits } from "
|
|
6
|
+
import { formatUnits } from "@ethersproject/units";
|
|
8
7
|
import { productV1 } from "@bosonprotocol/metadata";
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
import { CreateOfferArgs } from "./types";
|
|
10
|
+
import { OfferFieldsFragment, MetadataType } from "../subgraph";
|
|
11
|
+
|
|
12
|
+
export type TemplateRenderingData = CreateOfferArgs & {
|
|
11
13
|
priceValue: string; // Convert in decimals value
|
|
12
14
|
sellerDepositValue: string; // Convert in decimals value
|
|
13
15
|
buyerCancelPenaltyValue: string; // Convert in decimals value
|
|
@@ -95,9 +97,10 @@ function checkOfferDataIsValid(
|
|
|
95
97
|
return true;
|
|
96
98
|
}
|
|
97
99
|
|
|
98
|
-
function convertExistingOfferData(
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
function convertExistingOfferData(offerDataSubGraph: OfferFieldsFragment): {
|
|
101
|
+
offerData: CreateOfferArgs;
|
|
102
|
+
tokenInfo: ITokenInfo;
|
|
103
|
+
} {
|
|
101
104
|
return {
|
|
102
105
|
offerData: {
|
|
103
106
|
...offerDataSubGraph,
|
|
@@ -120,7 +123,7 @@ function convertExistingOfferData(
|
|
|
120
123
|
}
|
|
121
124
|
|
|
122
125
|
export async function prepareRenderingData(
|
|
123
|
-
offerData:
|
|
126
|
+
offerData: CreateOfferArgs,
|
|
124
127
|
tokenInfo: ITokenInfo
|
|
125
128
|
): Promise<TemplateRenderingData> {
|
|
126
129
|
return {
|
|
@@ -156,7 +159,7 @@ export async function prepareRenderingData(
|
|
|
156
159
|
// inject a template + all offer details
|
|
157
160
|
export async function renderContractualAgreement(
|
|
158
161
|
template: string,
|
|
159
|
-
offerData:
|
|
162
|
+
offerData: CreateOfferArgs,
|
|
160
163
|
tokenInfo: ITokenInfo
|
|
161
164
|
): Promise<string> {
|
|
162
165
|
// Check the passed offerData is matching the required type
|
|
@@ -166,7 +169,7 @@ export async function renderContractualAgreement(
|
|
|
166
169
|
}
|
|
167
170
|
|
|
168
171
|
export async function renderContractualAgreementForOffer(
|
|
169
|
-
existingOfferData:
|
|
172
|
+
existingOfferData: OfferFieldsFragment
|
|
170
173
|
): Promise<string> {
|
|
171
174
|
if (!existingOfferData) {
|
|
172
175
|
throw new Error(`offerData is undefined`);
|
|
@@ -174,7 +177,7 @@ export async function renderContractualAgreementForOffer(
|
|
|
174
177
|
if (!existingOfferData.metadata) {
|
|
175
178
|
throw new Error(`Offer Metadata is undefined`);
|
|
176
179
|
}
|
|
177
|
-
if (existingOfferData.metadata.type !==
|
|
180
|
+
if (existingOfferData.metadata.type !== MetadataType.ProductV1) {
|
|
178
181
|
throw new Error(
|
|
179
182
|
`Invalid Offer Metadata: Type is not supported: '${existingOfferData.metadata.type}'`
|
|
180
183
|
);
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Web3LibAdapter } from "@bosonprotocol/common";
|
|
2
|
+
import { isHexString, hexZeroPad } from "@ethersproject/bytes";
|
|
3
|
+
import { BigNumber } from "@ethersproject/bignumber";
|
|
4
|
+
|
|
5
|
+
type SignatureArgs = {
|
|
6
|
+
web3Lib: Web3LibAdapter;
|
|
7
|
+
verifyingContractAddress: string;
|
|
8
|
+
chainId: number;
|
|
9
|
+
customSignatureType?: Record<string, unknown>;
|
|
10
|
+
primaryType: string;
|
|
11
|
+
message: Record<string, unknown>;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export async function prepareDataSignatureParameters(args: SignatureArgs) {
|
|
15
|
+
const domainType = [
|
|
16
|
+
{ name: "name", type: "string" },
|
|
17
|
+
{ name: "version", type: "string" },
|
|
18
|
+
{ name: "verifyingContract", type: "address" },
|
|
19
|
+
{ name: "salt", type: "bytes32" }
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
const domainData = {
|
|
23
|
+
name: "BosonProtocolDiamond",
|
|
24
|
+
version: "V1",
|
|
25
|
+
verifyingContract: args.verifyingContractAddress,
|
|
26
|
+
salt: hexZeroPad(BigNumber.from(args.chainId).toHexString(), 32)
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const signatureTypes = {
|
|
30
|
+
EIP712Domain: domainType,
|
|
31
|
+
...args.customSignatureType
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const dataToSign = JSON.stringify({
|
|
35
|
+
types: signatureTypes,
|
|
36
|
+
domain: domainData,
|
|
37
|
+
primaryType: args.primaryType,
|
|
38
|
+
message: args.message
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const signer = await args.web3Lib.getSignerAddress();
|
|
42
|
+
const signature = await args.web3Lib.send("eth_signTypedData_v4", [
|
|
43
|
+
signer,
|
|
44
|
+
dataToSign
|
|
45
|
+
]);
|
|
46
|
+
|
|
47
|
+
return getSignatureParameters(signature);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function getSignatureParameters(signature: string) {
|
|
51
|
+
if (!isHexString(signature)) {
|
|
52
|
+
throw new Error(`Value "${signature}" is not a valid hex string`);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
signature = signature.substring(2);
|
|
56
|
+
const r = "0x" + signature.substring(0, 64);
|
|
57
|
+
const s = "0x" + signature.substring(64, 128);
|
|
58
|
+
const v = parseInt(signature.substring(128, 130), 16);
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
r,
|
|
62
|
+
s,
|
|
63
|
+
v
|
|
64
|
+
};
|
|
65
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Web3LibAdapter } from "@bosonprotocol/common";
|
|
2
2
|
import { AddressZero } from "@ethersproject/constants";
|
|
3
|
-
import {
|
|
3
|
+
import { getDecimals, getName, getSymbol } from "../erc20/handler";
|
|
4
4
|
|
|
5
5
|
export interface ITokenInfo {
|
|
6
6
|
name: string;
|
|
@@ -12,7 +12,7 @@ export interface ITokenInfoManager {
|
|
|
12
12
|
getExchangeTokenInfo: (tokenAddress: string) => Promise<ITokenInfo>;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
const NATIVE_TOKENS: { [key: number]: ITokenInfo } = {
|
|
15
|
+
export const NATIVE_TOKENS: { [key: number]: ITokenInfo } = {
|
|
16
16
|
1: {
|
|
17
17
|
// Ethereum Mainnet
|
|
18
18
|
name: "Ether",
|
|
@@ -82,9 +82,9 @@ export class TokenInfoManager implements ITokenInfoManager {
|
|
|
82
82
|
contractAddress: tokenAddress
|
|
83
83
|
};
|
|
84
84
|
const [decimals, name, symbol] = await Promise.all([
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
getDecimals(args),
|
|
86
|
+
getName(args),
|
|
87
|
+
getSymbol(args)
|
|
88
88
|
]);
|
|
89
89
|
this._tokenInfos.set(tokenAddress.toLowerCase(), {
|
|
90
90
|
decimals,
|