@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.
Files changed (90) hide show
  1. package/dist/cjs/accounts/index.d.ts +2 -13
  2. package/dist/cjs/accounts/index.d.ts.map +1 -1
  3. package/dist/cjs/accounts/index.js.map +1 -1
  4. package/dist/cjs/core-sdk.d.ts +10 -3
  5. package/dist/cjs/core-sdk.d.ts.map +1 -1
  6. package/dist/cjs/core-sdk.js +24 -23
  7. package/dist/cjs/core-sdk.js.map +1 -1
  8. package/dist/cjs/disputes/handler.d.ts +11 -0
  9. package/dist/cjs/disputes/handler.d.ts.map +1 -1
  10. package/dist/cjs/disputes/handler.js +25 -1
  11. package/dist/cjs/disputes/handler.js.map +1 -1
  12. package/dist/cjs/exchanges/handler.d.ts.map +1 -1
  13. package/dist/cjs/exchanges/handler.js +1 -0
  14. package/dist/cjs/exchanges/handler.js.map +1 -1
  15. package/dist/cjs/meta-tx/handler.d.ts +0 -14
  16. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  17. package/dist/cjs/meta-tx/handler.js +14 -60
  18. package/dist/cjs/meta-tx/handler.js.map +1 -1
  19. package/dist/cjs/offers/getOfferStatus.d.ts +2 -2
  20. package/dist/cjs/offers/getOfferStatus.d.ts.map +1 -1
  21. package/dist/cjs/offers/getOfferStatus.js.map +1 -1
  22. package/dist/cjs/offers/index.d.ts +2 -31
  23. package/dist/cjs/offers/index.d.ts.map +1 -1
  24. package/dist/cjs/offers/index.js.map +1 -1
  25. package/dist/cjs/offers/interface.d.ts.map +1 -1
  26. package/dist/cjs/offers/interface.js +4 -11
  27. package/dist/cjs/offers/interface.js.map +1 -1
  28. package/dist/cjs/offers/renderContractualAgreement.d.ts +6 -5
  29. package/dist/cjs/offers/renderContractualAgreement.d.ts.map +1 -1
  30. package/dist/cjs/offers/renderContractualAgreement.js +4 -4
  31. package/dist/cjs/offers/renderContractualAgreement.js.map +1 -1
  32. package/dist/cjs/utils/signature.d.ts +21 -0
  33. package/dist/cjs/utils/signature.d.ts.map +1 -0
  34. package/dist/cjs/utils/signature.js +60 -0
  35. package/dist/cjs/utils/signature.js.map +1 -0
  36. package/dist/cjs/utils/tokenInfoManager.d.ts +3 -0
  37. package/dist/cjs/utils/tokenInfoManager.d.ts.map +1 -1
  38. package/dist/cjs/utils/tokenInfoManager.js +8 -8
  39. package/dist/cjs/utils/tokenInfoManager.js.map +1 -1
  40. package/dist/esm/accounts/index.d.ts +2 -13
  41. package/dist/esm/accounts/index.d.ts.map +1 -1
  42. package/dist/esm/accounts/index.js.map +1 -1
  43. package/dist/esm/core-sdk.d.ts +10 -3
  44. package/dist/esm/core-sdk.d.ts.map +1 -1
  45. package/dist/esm/core-sdk.js +26 -20
  46. package/dist/esm/core-sdk.js.map +1 -1
  47. package/dist/esm/disputes/handler.d.ts +11 -0
  48. package/dist/esm/disputes/handler.d.ts.map +1 -1
  49. package/dist/esm/disputes/handler.js +21 -0
  50. package/dist/esm/disputes/handler.js.map +1 -1
  51. package/dist/esm/exchanges/handler.d.ts.map +1 -1
  52. package/dist/esm/exchanges/handler.js +1 -0
  53. package/dist/esm/exchanges/handler.js.map +1 -1
  54. package/dist/esm/meta-tx/handler.d.ts +0 -14
  55. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  56. package/dist/esm/meta-tx/handler.js +19 -58
  57. package/dist/esm/meta-tx/handler.js.map +1 -1
  58. package/dist/esm/offers/getOfferStatus.d.ts +2 -2
  59. package/dist/esm/offers/getOfferStatus.d.ts.map +1 -1
  60. package/dist/esm/offers/getOfferStatus.js.map +1 -1
  61. package/dist/esm/offers/index.d.ts +2 -31
  62. package/dist/esm/offers/index.d.ts.map +1 -1
  63. package/dist/esm/offers/index.js.map +1 -1
  64. package/dist/esm/offers/interface.d.ts.map +1 -1
  65. package/dist/esm/offers/interface.js +4 -11
  66. package/dist/esm/offers/interface.js.map +1 -1
  67. package/dist/esm/offers/renderContractualAgreement.d.ts +6 -5
  68. package/dist/esm/offers/renderContractualAgreement.d.ts.map +1 -1
  69. package/dist/esm/offers/renderContractualAgreement.js +3 -3
  70. package/dist/esm/offers/renderContractualAgreement.js.map +1 -1
  71. package/dist/esm/utils/signature.d.ts +21 -0
  72. package/dist/esm/utils/signature.d.ts.map +1 -0
  73. package/dist/esm/utils/signature.js +47 -0
  74. package/dist/esm/utils/signature.js.map +1 -0
  75. package/dist/esm/utils/tokenInfoManager.d.ts +3 -0
  76. package/dist/esm/utils/tokenInfoManager.d.ts.map +1 -1
  77. package/dist/esm/utils/tokenInfoManager.js +5 -5
  78. package/dist/esm/utils/tokenInfoManager.js.map +1 -1
  79. package/package.json +5 -4
  80. package/src/accounts/index.ts +3 -1
  81. package/src/core-sdk.ts +32 -25
  82. package/src/disputes/handler.ts +31 -0
  83. package/src/exchanges/handler.ts +1 -0
  84. package/src/meta-tx/handler.ts +20 -74
  85. package/src/offers/getOfferStatus.ts +2 -2
  86. package/src/offers/index.ts +3 -1
  87. package/src/offers/interface.ts +6 -15
  88. package/src/offers/renderContractualAgreement.ts +13 -10
  89. package/src/utils/signature.ts +65 -0
  90. 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 "ethers/lib/utils";
6
+ import { formatUnits } from "@ethersproject/units";
8
7
  import { productV1 } from "@bosonprotocol/metadata";
9
8
 
10
- export type TemplateRenderingData = offers.CreateOfferArgs & {
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
- offerDataSubGraph: subgraph.OfferFieldsFragment
100
- ): { offerData: offers.CreateOfferArgs; tokenInfo: ITokenInfo } {
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: offers.CreateOfferArgs,
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: offers.CreateOfferArgs,
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: subgraph.OfferFieldsFragment
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 !== subgraph.MetadataType.ProductV1) {
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 { erc20 } from "..";
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
- erc20.handler.getDecimals(args),
86
- erc20.handler.getName(args),
87
- erc20.handler.getSymbol(args)
85
+ getDecimals(args),
86
+ getName(args),
87
+ getSymbol(args)
88
88
  ]);
89
89
  this._tokenInfos.set(tokenAddress.toLowerCase(), {
90
90
  decimals,