@bosonprotocol/core-sdk 1.23.0-alpha.8 → 1.23.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 (196) hide show
  1. package/dist/cjs/accounts/mixin.d.ts +194 -0
  2. package/dist/cjs/accounts/mixin.d.ts.map +1 -0
  3. package/dist/cjs/accounts/mixin.js +426 -0
  4. package/dist/cjs/accounts/mixin.js.map +1 -0
  5. package/dist/cjs/core-sdk.d.ts +16 -818
  6. package/dist/cjs/core-sdk.d.ts.map +1 -1
  7. package/dist/cjs/core-sdk.js +26 -1579
  8. package/dist/cjs/core-sdk.js.map +1 -1
  9. package/dist/cjs/disputes/mixin.d.ts +113 -0
  10. package/dist/cjs/disputes/mixin.d.ts.map +1 -0
  11. package/dist/cjs/disputes/mixin.js +203 -0
  12. package/dist/cjs/disputes/mixin.js.map +1 -0
  13. package/dist/cjs/erc1155/handler.d.ts +9 -0
  14. package/dist/cjs/erc1155/handler.d.ts.map +1 -0
  15. package/dist/cjs/erc1155/handler.js +28 -0
  16. package/dist/cjs/erc1155/handler.js.map +1 -0
  17. package/dist/cjs/erc1155/index.d.ts +3 -0
  18. package/dist/cjs/erc1155/index.d.ts.map +1 -0
  19. package/dist/cjs/erc1155/index.js +29 -0
  20. package/dist/cjs/erc1155/index.js.map +1 -0
  21. package/dist/cjs/erc1155/interface.d.ts +3 -0
  22. package/dist/cjs/erc1155/interface.d.ts.map +1 -0
  23. package/dist/cjs/erc1155/interface.js +7 -0
  24. package/dist/cjs/erc1155/interface.js.map +1 -0
  25. package/dist/cjs/erc20/handler.d.ts +5 -0
  26. package/dist/cjs/erc20/handler.d.ts.map +1 -1
  27. package/dist/cjs/erc20/handler.js +12 -1
  28. package/dist/cjs/erc20/handler.js.map +1 -1
  29. package/dist/cjs/erc721/handler.d.ts +5 -0
  30. package/dist/cjs/erc721/handler.d.ts.map +1 -1
  31. package/dist/cjs/erc721/handler.js +12 -1
  32. package/dist/cjs/erc721/handler.js.map +1 -1
  33. package/dist/cjs/event-logs/mixin.d.ts +11 -0
  34. package/dist/cjs/event-logs/mixin.d.ts.map +1 -0
  35. package/dist/cjs/event-logs/mixin.js +28 -0
  36. package/dist/cjs/event-logs/mixin.js.map +1 -0
  37. package/dist/cjs/exchanges/mixin.d.ts +77 -0
  38. package/dist/cjs/exchanges/mixin.d.ts.map +1 -0
  39. package/dist/cjs/exchanges/mixin.js +172 -0
  40. package/dist/cjs/exchanges/mixin.js.map +1 -0
  41. package/dist/cjs/funds/mixin.d.ts +42 -0
  42. package/dist/cjs/funds/mixin.d.ts.map +1 -0
  43. package/dist/cjs/funds/mixin.js +95 -0
  44. package/dist/cjs/funds/mixin.js.map +1 -0
  45. package/dist/cjs/groups/mixin.d.ts +14 -0
  46. package/dist/cjs/groups/mixin.d.ts.map +1 -0
  47. package/dist/cjs/groups/mixin.js +33 -0
  48. package/dist/cjs/groups/mixin.js.map +1 -0
  49. package/dist/cjs/meta-tx/mixin.d.ts +176 -0
  50. package/dist/cjs/meta-tx/mixin.d.ts.map +1 -0
  51. package/dist/cjs/meta-tx/mixin.js +296 -0
  52. package/dist/cjs/meta-tx/mixin.js.map +1 -0
  53. package/dist/cjs/metadata/mixin.d.ts +42 -0
  54. package/dist/cjs/metadata/mixin.d.ts.map +1 -0
  55. package/dist/cjs/metadata/mixin.js +89 -0
  56. package/dist/cjs/metadata/mixin.js.map +1 -0
  57. package/dist/cjs/metadata/subgraph.d.ts +3 -1
  58. package/dist/cjs/metadata/subgraph.d.ts.map +1 -1
  59. package/dist/cjs/metadata/subgraph.js +17 -1
  60. package/dist/cjs/metadata/subgraph.js.map +1 -1
  61. package/dist/cjs/mixins/base-core-sdk.d.ts +41 -0
  62. package/dist/cjs/mixins/base-core-sdk.d.ts.map +1 -0
  63. package/dist/cjs/mixins/base-core-sdk.js +51 -0
  64. package/dist/cjs/mixins/base-core-sdk.js.map +1 -0
  65. package/dist/cjs/native-meta-tx/mixin.d.ts +35 -0
  66. package/dist/cjs/native-meta-tx/mixin.d.ts.map +1 -0
  67. package/dist/cjs/native-meta-tx/mixin.js +68 -0
  68. package/dist/cjs/native-meta-tx/mixin.js.map +1 -0
  69. package/dist/cjs/offers/mixin.d.ts +133 -0
  70. package/dist/cjs/offers/mixin.d.ts.map +1 -0
  71. package/dist/cjs/offers/mixin.js +338 -0
  72. package/dist/cjs/offers/mixin.js.map +1 -0
  73. package/dist/cjs/orchestration/mixin.d.ts +28 -0
  74. package/dist/cjs/orchestration/mixin.d.ts.map +1 -0
  75. package/dist/cjs/orchestration/mixin.js +59 -0
  76. package/dist/cjs/orchestration/mixin.js.map +1 -0
  77. package/dist/cjs/subgraph.d.ts +3747 -1529
  78. package/dist/cjs/subgraph.d.ts.map +1 -1
  79. package/dist/cjs/subgraph.js +115 -4
  80. package/dist/cjs/subgraph.js.map +1 -1
  81. package/dist/cjs/utils/graphql.d.ts +14 -0
  82. package/dist/cjs/utils/graphql.d.ts.map +1 -1
  83. package/dist/cjs/utils/tokenInfoManager.d.ts +8 -3
  84. package/dist/cjs/utils/tokenInfoManager.d.ts.map +1 -1
  85. package/dist/cjs/utils/tokenInfoManager.js +58 -15
  86. package/dist/cjs/utils/tokenInfoManager.js.map +1 -1
  87. package/dist/esm/accounts/mixin.d.ts +194 -0
  88. package/dist/esm/accounts/mixin.d.ts.map +1 -0
  89. package/dist/esm/accounts/mixin.js +342 -0
  90. package/dist/esm/accounts/mixin.js.map +1 -0
  91. package/dist/esm/core-sdk.d.ts +16 -818
  92. package/dist/esm/core-sdk.d.ts.map +1 -1
  93. package/dist/esm/core-sdk.js +27 -1483
  94. package/dist/esm/core-sdk.js.map +1 -1
  95. package/dist/esm/disputes/mixin.d.ts +113 -0
  96. package/dist/esm/disputes/mixin.d.ts.map +1 -0
  97. package/dist/esm/disputes/mixin.js +173 -0
  98. package/dist/esm/disputes/mixin.js.map +1 -0
  99. package/dist/esm/erc1155/handler.d.ts +9 -0
  100. package/dist/esm/erc1155/handler.d.ts.map +1 -0
  101. package/dist/esm/erc1155/handler.js +13 -0
  102. package/dist/esm/erc1155/handler.js.map +1 -0
  103. package/dist/esm/erc1155/index.d.ts +3 -0
  104. package/dist/esm/erc1155/index.d.ts.map +1 -0
  105. package/dist/esm/erc1155/index.js +3 -0
  106. package/dist/esm/erc1155/index.js.map +1 -0
  107. package/dist/esm/erc1155/interface.d.ts +3 -0
  108. package/dist/esm/erc1155/interface.d.ts.map +1 -0
  109. package/dist/esm/erc1155/interface.js +4 -0
  110. package/dist/esm/erc1155/interface.js.map +1 -0
  111. package/dist/esm/erc20/handler.d.ts +5 -0
  112. package/dist/esm/erc20/handler.d.ts.map +1 -1
  113. package/dist/esm/erc20/handler.js +8 -0
  114. package/dist/esm/erc20/handler.js.map +1 -1
  115. package/dist/esm/erc721/handler.d.ts +5 -0
  116. package/dist/esm/erc721/handler.d.ts.map +1 -1
  117. package/dist/esm/erc721/handler.js +8 -0
  118. package/dist/esm/erc721/handler.js.map +1 -1
  119. package/dist/esm/event-logs/mixin.d.ts +11 -0
  120. package/dist/esm/event-logs/mixin.d.ts.map +1 -0
  121. package/dist/esm/event-logs/mixin.js +13 -0
  122. package/dist/esm/event-logs/mixin.js.map +1 -0
  123. package/dist/esm/exchanges/mixin.d.ts +77 -0
  124. package/dist/esm/exchanges/mixin.d.ts.map +1 -0
  125. package/dist/esm/exchanges/mixin.js +141 -0
  126. package/dist/esm/exchanges/mixin.js.map +1 -0
  127. package/dist/esm/funds/mixin.d.ts +42 -0
  128. package/dist/esm/funds/mixin.d.ts.map +1 -0
  129. package/dist/esm/funds/mixin.js +72 -0
  130. package/dist/esm/funds/mixin.js.map +1 -0
  131. package/dist/esm/groups/mixin.d.ts +14 -0
  132. package/dist/esm/groups/mixin.d.ts.map +1 -0
  133. package/dist/esm/groups/mixin.js +18 -0
  134. package/dist/esm/groups/mixin.js.map +1 -0
  135. package/dist/esm/meta-tx/mixin.d.ts +176 -0
  136. package/dist/esm/meta-tx/mixin.d.ts.map +1 -0
  137. package/dist/esm/meta-tx/mixin.js +351 -0
  138. package/dist/esm/meta-tx/mixin.js.map +1 -0
  139. package/dist/esm/metadata/mixin.d.ts +42 -0
  140. package/dist/esm/metadata/mixin.d.ts.map +1 -0
  141. package/dist/esm/metadata/mixin.js +60 -0
  142. package/dist/esm/metadata/mixin.js.map +1 -0
  143. package/dist/esm/metadata/subgraph.d.ts +3 -1
  144. package/dist/esm/metadata/subgraph.d.ts.map +1 -1
  145. package/dist/esm/metadata/subgraph.js +14 -0
  146. package/dist/esm/metadata/subgraph.js.map +1 -1
  147. package/dist/esm/mixins/base-core-sdk.d.ts +41 -0
  148. package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -0
  149. package/dist/esm/mixins/base-core-sdk.js +54 -0
  150. package/dist/esm/mixins/base-core-sdk.js.map +1 -0
  151. package/dist/esm/native-meta-tx/mixin.d.ts +35 -0
  152. package/dist/esm/native-meta-tx/mixin.d.ts.map +1 -0
  153. package/dist/esm/native-meta-tx/mixin.js +51 -0
  154. package/dist/esm/native-meta-tx/mixin.js.map +1 -0
  155. package/dist/esm/offers/mixin.d.ts +133 -0
  156. package/dist/esm/offers/mixin.d.ts.map +1 -0
  157. package/dist/esm/offers/mixin.js +276 -0
  158. package/dist/esm/offers/mixin.js.map +1 -0
  159. package/dist/esm/orchestration/mixin.d.ts +28 -0
  160. package/dist/esm/orchestration/mixin.d.ts.map +1 -0
  161. package/dist/esm/orchestration/mixin.js +42 -0
  162. package/dist/esm/orchestration/mixin.js.map +1 -0
  163. package/dist/esm/subgraph.d.ts +3747 -1529
  164. package/dist/esm/subgraph.d.ts.map +1 -1
  165. package/dist/esm/subgraph.js +112 -1
  166. package/dist/esm/subgraph.js.map +1 -1
  167. package/dist/esm/utils/graphql.d.ts +14 -0
  168. package/dist/esm/utils/graphql.d.ts.map +1 -1
  169. package/dist/esm/utils/tokenInfoManager.d.ts +8 -3
  170. package/dist/esm/utils/tokenInfoManager.d.ts.map +1 -1
  171. package/dist/esm/utils/tokenInfoManager.js +58 -15
  172. package/dist/esm/utils/tokenInfoManager.js.map +1 -1
  173. package/package.json +3 -3
  174. package/src/accounts/mixin.ts +484 -0
  175. package/src/core-sdk.ts +42 -2102
  176. package/src/disputes/mixin.ts +240 -0
  177. package/src/erc1155/handler.ts +21 -0
  178. package/src/erc1155/index.ts +2 -0
  179. package/src/erc1155/interface.ts +4 -0
  180. package/src/erc20/handler.ts +14 -0
  181. package/src/erc721/handler.ts +14 -0
  182. package/src/event-logs/mixin.ts +16 -0
  183. package/src/exchanges/mixin.ts +184 -0
  184. package/src/funds/mixin.ts +99 -0
  185. package/src/groups/mixin.ts +24 -0
  186. package/src/meta-tx/mixin.ts +515 -0
  187. package/src/metadata/mixin.ts +97 -0
  188. package/src/metadata/product-v1.graphql +77 -1
  189. package/src/metadata/subgraph.ts +31 -1
  190. package/src/mixins/base-core-sdk.ts +96 -0
  191. package/src/native-meta-tx/mixin.ts +77 -0
  192. package/src/offers/mixin.ts +376 -0
  193. package/src/offers/queries.graphql +1 -1
  194. package/src/orchestration/mixin.ts +57 -0
  195. package/src/subgraph.ts +4396 -2052
  196. package/src/utils/tokenInfoManager.ts +71 -16
@@ -1,6 +1,7 @@
1
1
  import { Web3LibAdapter } from "@bosonprotocol/common";
2
2
  import { AddressZero } from "@ethersproject/constants";
3
3
  import { getDecimals, getName, getSymbol } from "../erc20/handler";
4
+ import { getExchangeTokens } from "../erc20/subgraph";
4
5
 
5
6
  export interface ITokenInfo {
6
7
  name: string;
@@ -64,34 +65,88 @@ export const NATIVE_TOKENS: { [key: number]: ITokenInfo } = {
64
65
  };
65
66
 
66
67
  export class TokenInfoManager implements ITokenInfoManager {
67
- private _tokenInfos = new Map<string, ITokenInfo>();
68
+ private static TokenInfos = new Map<number, Map<string, ITokenInfo>>();
69
+ private static mapInitialized = new Map<number, boolean>();
68
70
  private _web3Lib: Web3LibAdapter;
71
+ private _subgraphUrl: string;
72
+ private _chainId: number;
73
+ private static InvalidAddresses = new Map<number, Set<string>>();
69
74
 
70
- public constructor(chainId: number, web3Lib: Web3LibAdapter) {
75
+ public constructor(
76
+ chainId: number,
77
+ web3Lib: Web3LibAdapter,
78
+ subgraphUrl: string
79
+ ) {
71
80
  if (!NATIVE_TOKENS[chainId]) {
72
81
  throw new Error(`Unexpected chainId value '${chainId}'`);
73
82
  }
74
- this._tokenInfos.set(AddressZero, NATIVE_TOKENS[chainId]);
83
+
84
+ if (!TokenInfoManager.TokenInfos.has(chainId)) {
85
+ const tokenInfos = new Map<string, ITokenInfo>();
86
+ tokenInfos.set(AddressZero, NATIVE_TOKENS[chainId]);
87
+ TokenInfoManager.TokenInfos.set(chainId, tokenInfos);
88
+ }
89
+
90
+ if (!TokenInfoManager.mapInitialized.has(chainId)) {
91
+ TokenInfoManager.mapInitialized.set(chainId, false);
92
+ }
93
+
94
+ if (!TokenInfoManager.InvalidAddresses.has(chainId)) {
95
+ TokenInfoManager.InvalidAddresses.set(chainId, new Set<string>());
96
+ }
75
97
  this._web3Lib = web3Lib;
98
+ this._subgraphUrl = subgraphUrl;
99
+ this._chainId = chainId;
76
100
  }
77
101
 
78
- public async getExchangeTokenInfo(tokenAddress: string): Promise<ITokenInfo> {
79
- if (!this._tokenInfos.has(tokenAddress.toLowerCase())) {
102
+ public async getExchangeTokenInfo(
103
+ tokenAddress: string
104
+ ): Promise<ITokenInfo | undefined> {
105
+ await this.ensureInitialized();
106
+ const tokenInfos = TokenInfoManager.TokenInfos.get(this._chainId);
107
+ const invalidAddressesSet = TokenInfoManager.InvalidAddresses.get(
108
+ this._chainId
109
+ );
110
+ const key = tokenAddress.toLowerCase();
111
+
112
+ if (!tokenInfos.has(key) && !invalidAddressesSet.has(key)) {
80
113
  const args = {
81
114
  web3Lib: this._web3Lib,
82
115
  contractAddress: tokenAddress
83
116
  };
84
- const [decimals, name, symbol] = await Promise.all([
85
- getDecimals(args),
86
- getName(args),
87
- getSymbol(args)
88
- ]);
89
- this._tokenInfos.set(tokenAddress.toLowerCase(), {
90
- decimals,
91
- name,
92
- symbol
93
- });
117
+ try {
118
+ const [decimals, name, symbol] = await Promise.all([
119
+ getDecimals(args),
120
+ getName(args),
121
+ getSymbol(args)
122
+ ]);
123
+ tokenInfos.set(key, {
124
+ decimals,
125
+ name,
126
+ symbol
127
+ });
128
+ } catch (error) {
129
+ invalidAddressesSet.add(key);
130
+ }
131
+ }
132
+ return tokenInfos.get(key);
133
+ }
134
+
135
+ private async ensureInitialized() {
136
+ const isInitialized = TokenInfoManager.mapInitialized.get(this._chainId);
137
+ if (!isInitialized) {
138
+ // Be sure we are initializing the map only one time per chainId
139
+ TokenInfoManager.mapInitialized.set(this._chainId, true);
140
+ const tokenInfos = TokenInfoManager.TokenInfos.get(this._chainId);
141
+ // Get all tokens from subgraph
142
+ const tokens = await getExchangeTokens(this._subgraphUrl);
143
+ for (const token of tokens) {
144
+ tokenInfos.set(token.address.toLowerCase(), {
145
+ decimals: parseInt(token.decimals),
146
+ name: token.name,
147
+ symbol: token.symbol
148
+ });
149
+ }
94
150
  }
95
- return this._tokenInfos.get(tokenAddress.toLowerCase());
96
151
  }
97
152
  }