@bosonprotocol/core-sdk 1.12.0-alpha.7 → 1.12.0-alpha.9

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 (53) hide show
  1. package/dist/cjs/core-sdk.d.ts +5 -5
  2. package/dist/cjs/core-sdk.d.ts.map +1 -1
  3. package/dist/cjs/core-sdk.js +20 -10
  4. package/dist/cjs/core-sdk.js.map +1 -1
  5. package/dist/cjs/offers/index.d.ts +1 -0
  6. package/dist/cjs/offers/index.d.ts.map +1 -1
  7. package/dist/cjs/offers/index.js +1 -0
  8. package/dist/cjs/offers/index.js.map +1 -1
  9. package/dist/cjs/offers/renderContractualAgreement.d.ts +41 -0
  10. package/dist/cjs/offers/renderContractualAgreement.d.ts.map +1 -0
  11. package/dist/cjs/offers/renderContractualAgreement.js +156 -0
  12. package/dist/cjs/offers/renderContractualAgreement.js.map +1 -0
  13. package/dist/cjs/offers/subgraph.d.ts.map +1 -1
  14. package/dist/cjs/offers/subgraph.js.map +1 -1
  15. package/dist/cjs/subgraph.d.ts +3782 -54
  16. package/dist/cjs/subgraph.d.ts.map +1 -1
  17. package/dist/cjs/subgraph.js +207 -169
  18. package/dist/cjs/subgraph.js.map +1 -1
  19. package/dist/cjs/utils/tokenInfoManager.d.ts +16 -0
  20. package/dist/cjs/utils/tokenInfoManager.d.ts.map +1 -0
  21. package/dist/cjs/utils/tokenInfoManager.js +97 -0
  22. package/dist/cjs/utils/tokenInfoManager.js.map +1 -0
  23. package/dist/esm/core-sdk.d.ts +5 -5
  24. package/dist/esm/core-sdk.d.ts.map +1 -1
  25. package/dist/esm/core-sdk.js +17 -10
  26. package/dist/esm/core-sdk.js.map +1 -1
  27. package/dist/esm/offers/index.d.ts +1 -0
  28. package/dist/esm/offers/index.d.ts.map +1 -1
  29. package/dist/esm/offers/index.js +1 -0
  30. package/dist/esm/offers/index.js.map +1 -1
  31. package/dist/esm/offers/renderContractualAgreement.d.ts +41 -0
  32. package/dist/esm/offers/renderContractualAgreement.d.ts.map +1 -0
  33. package/dist/esm/offers/renderContractualAgreement.js +132 -0
  34. package/dist/esm/offers/renderContractualAgreement.js.map +1 -0
  35. package/dist/esm/offers/subgraph.d.ts.map +1 -1
  36. package/dist/esm/offers/subgraph.js.map +1 -1
  37. package/dist/esm/subgraph.d.ts +3782 -54
  38. package/dist/esm/subgraph.d.ts.map +1 -1
  39. package/dist/esm/subgraph.js +205 -167
  40. package/dist/esm/subgraph.js.map +1 -1
  41. package/dist/esm/utils/tokenInfoManager.d.ts +16 -0
  42. package/dist/esm/utils/tokenInfoManager.d.ts.map +1 -0
  43. package/dist/esm/utils/tokenInfoManager.js +83 -0
  44. package/dist/esm/utils/tokenInfoManager.js.map +1 -0
  45. package/package.json +5 -4
  46. package/src/core-sdk.ts +34 -15
  47. package/src/metadata/product-v1.graphql +3 -0
  48. package/src/offers/index.ts +1 -0
  49. package/src/offers/queries.graphql +29 -0
  50. package/src/offers/renderContractualAgreement.ts +203 -0
  51. package/src/offers/subgraph.ts +0 -1
  52. package/src/subgraph.ts +3885 -167
  53. package/src/utils/tokenInfoManager.ts +97 -0
@@ -0,0 +1,97 @@
1
+ import { Web3LibAdapter } from "@bosonprotocol/common";
2
+ import { AddressZero } from "@ethersproject/constants";
3
+ import { erc20 } from "..";
4
+
5
+ export interface ITokenInfo {
6
+ name: string;
7
+ decimals: number;
8
+ symbol: string;
9
+ }
10
+
11
+ export interface ITokenInfoManager {
12
+ getExchangeTokenInfo: (tokenAddress: string) => Promise<ITokenInfo>;
13
+ }
14
+
15
+ const NATIVE_TOKENS: { [key: number]: ITokenInfo } = {
16
+ 1: {
17
+ // Ethereum Mainnet
18
+ name: "Ether",
19
+ decimals: 18,
20
+ symbol: "ETH"
21
+ },
22
+ 3: {
23
+ // Ethereum Ropsten
24
+ name: "Ether",
25
+ decimals: 18,
26
+ symbol: "ETH"
27
+ },
28
+ 4: {
29
+ // Ethereum Rinkeby
30
+ name: "Ether",
31
+ decimals: 18,
32
+ symbol: "ETH"
33
+ },
34
+ 5: {
35
+ // Ethereum Goerli
36
+ name: "Ether",
37
+ decimals: 18,
38
+ symbol: "ETH"
39
+ },
40
+ 137: {
41
+ // Polygon Mainnet
42
+ name: "MATIC",
43
+ decimals: 18,
44
+ symbol: "MATIC"
45
+ },
46
+ 80001: {
47
+ // Polygon Mumbai
48
+ name: "MATIC",
49
+ decimals: 18,
50
+ symbol: "MATIC"
51
+ },
52
+ 1234: {
53
+ // Private Node
54
+ name: "Ether",
55
+ decimals: 18,
56
+ symbol: "ETH"
57
+ },
58
+ 31337: {
59
+ // Local Hardhat
60
+ name: "Ether",
61
+ decimals: 18,
62
+ symbol: "ETH"
63
+ }
64
+ };
65
+
66
+ export class TokenInfoManager implements ITokenInfoManager {
67
+ private _tokenInfos = new Map<string, ITokenInfo>();
68
+ private _web3Lib: Web3LibAdapter;
69
+
70
+ public constructor(chainId: number, web3Lib: Web3LibAdapter) {
71
+ if (!NATIVE_TOKENS[chainId]) {
72
+ throw new Error(`Unexpected chainId value '${chainId}'`);
73
+ }
74
+ this._tokenInfos.set(AddressZero, NATIVE_TOKENS[chainId]);
75
+ this._web3Lib = web3Lib;
76
+ }
77
+
78
+ public async getExchangeTokenInfo(tokenAddress: string): Promise<ITokenInfo> {
79
+ if (!this._tokenInfos.has(tokenAddress.toLowerCase())) {
80
+ const args = {
81
+ web3Lib: this._web3Lib,
82
+ contractAddress: tokenAddress
83
+ };
84
+ const [decimals, name, symbol] = await Promise.all([
85
+ erc20.handler.getDecimals(args),
86
+ erc20.handler.getName(args),
87
+ erc20.handler.getSymbol(args)
88
+ ]);
89
+ this._tokenInfos.set(tokenAddress.toLowerCase(), {
90
+ decimals,
91
+ name,
92
+ symbol
93
+ });
94
+ }
95
+ return this._tokenInfos.get(tokenAddress.toLowerCase());
96
+ }
97
+ }