@bosonprotocol/core-sdk 1.23.0-alpha.9 → 1.23.1-alpha.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 (233) hide show
  1. package/dist/cjs/accounts/handler.d.ts +11 -1
  2. package/dist/cjs/accounts/handler.d.ts.map +1 -1
  3. package/dist/cjs/accounts/handler.js +19 -1
  4. package/dist/cjs/accounts/handler.js.map +1 -1
  5. package/dist/cjs/accounts/interface.d.ts +3 -2
  6. package/dist/cjs/accounts/interface.d.ts.map +1 -1
  7. package/dist/cjs/accounts/interface.js +27 -4
  8. package/dist/cjs/accounts/interface.js.map +1 -1
  9. package/dist/cjs/accounts/mixin.d.ts +230 -0
  10. package/dist/cjs/accounts/mixin.d.ts.map +1 -0
  11. package/dist/cjs/accounts/mixin.js +518 -0
  12. package/dist/cjs/accounts/mixin.js.map +1 -0
  13. package/dist/cjs/accounts/types.d.ts +1 -1
  14. package/dist/cjs/accounts/types.d.ts.map +1 -1
  15. package/dist/cjs/accounts/types.js +6 -0
  16. package/dist/cjs/accounts/types.js.map +1 -1
  17. package/dist/cjs/core-sdk.d.ts +16 -818
  18. package/dist/cjs/core-sdk.d.ts.map +1 -1
  19. package/dist/cjs/core-sdk.js +26 -1579
  20. package/dist/cjs/core-sdk.js.map +1 -1
  21. package/dist/cjs/disputes/mixin.d.ts +113 -0
  22. package/dist/cjs/disputes/mixin.d.ts.map +1 -0
  23. package/dist/cjs/disputes/mixin.js +203 -0
  24. package/dist/cjs/disputes/mixin.js.map +1 -0
  25. package/dist/cjs/erc1155/handler.d.ts +9 -0
  26. package/dist/cjs/erc1155/handler.d.ts.map +1 -0
  27. package/dist/cjs/erc1155/handler.js +28 -0
  28. package/dist/cjs/erc1155/handler.js.map +1 -0
  29. package/dist/cjs/erc1155/index.d.ts +3 -0
  30. package/dist/cjs/erc1155/index.d.ts.map +1 -0
  31. package/dist/cjs/erc1155/index.js +29 -0
  32. package/dist/cjs/erc1155/index.js.map +1 -0
  33. package/dist/cjs/erc1155/interface.d.ts +3 -0
  34. package/dist/cjs/erc1155/interface.d.ts.map +1 -0
  35. package/dist/cjs/erc1155/interface.js +7 -0
  36. package/dist/cjs/erc1155/interface.js.map +1 -0
  37. package/dist/cjs/erc20/handler.d.ts +5 -0
  38. package/dist/cjs/erc20/handler.d.ts.map +1 -1
  39. package/dist/cjs/erc20/handler.js +12 -1
  40. package/dist/cjs/erc20/handler.js.map +1 -1
  41. package/dist/cjs/erc721/handler.d.ts +5 -0
  42. package/dist/cjs/erc721/handler.d.ts.map +1 -1
  43. package/dist/cjs/erc721/handler.js +12 -1
  44. package/dist/cjs/erc721/handler.js.map +1 -1
  45. package/dist/cjs/event-logs/mixin.d.ts +11 -0
  46. package/dist/cjs/event-logs/mixin.d.ts.map +1 -0
  47. package/dist/cjs/event-logs/mixin.js +28 -0
  48. package/dist/cjs/event-logs/mixin.js.map +1 -0
  49. package/dist/cjs/exchanges/mixin.d.ts +77 -0
  50. package/dist/cjs/exchanges/mixin.d.ts.map +1 -0
  51. package/dist/cjs/exchanges/mixin.js +172 -0
  52. package/dist/cjs/exchanges/mixin.js.map +1 -0
  53. package/dist/cjs/funds/mixin.d.ts +42 -0
  54. package/dist/cjs/funds/mixin.d.ts.map +1 -0
  55. package/dist/cjs/funds/mixin.js +95 -0
  56. package/dist/cjs/funds/mixin.js.map +1 -0
  57. package/dist/cjs/groups/mixin.d.ts +14 -0
  58. package/dist/cjs/groups/mixin.d.ts.map +1 -0
  59. package/dist/cjs/groups/mixin.js +33 -0
  60. package/dist/cjs/groups/mixin.js.map +1 -0
  61. package/dist/cjs/meta-tx/mixin.d.ts +176 -0
  62. package/dist/cjs/meta-tx/mixin.d.ts.map +1 -0
  63. package/dist/cjs/meta-tx/mixin.js +296 -0
  64. package/dist/cjs/meta-tx/mixin.js.map +1 -0
  65. package/dist/cjs/metadata/mixin.d.ts +42 -0
  66. package/dist/cjs/metadata/mixin.d.ts.map +1 -0
  67. package/dist/cjs/metadata/mixin.js +89 -0
  68. package/dist/cjs/metadata/mixin.js.map +1 -0
  69. package/dist/cjs/metadata/subgraph.d.ts +3 -1
  70. package/dist/cjs/metadata/subgraph.d.ts.map +1 -1
  71. package/dist/cjs/metadata/subgraph.js +17 -1
  72. package/dist/cjs/metadata/subgraph.js.map +1 -1
  73. package/dist/cjs/mixins/base-core-sdk.d.ts +41 -0
  74. package/dist/cjs/mixins/base-core-sdk.d.ts.map +1 -0
  75. package/dist/cjs/mixins/base-core-sdk.js +51 -0
  76. package/dist/cjs/mixins/base-core-sdk.js.map +1 -0
  77. package/dist/cjs/native-meta-tx/mixin.d.ts +35 -0
  78. package/dist/cjs/native-meta-tx/mixin.d.ts.map +1 -0
  79. package/dist/cjs/native-meta-tx/mixin.js +68 -0
  80. package/dist/cjs/native-meta-tx/mixin.js.map +1 -0
  81. package/dist/cjs/offers/mixin.d.ts +133 -0
  82. package/dist/cjs/offers/mixin.d.ts.map +1 -0
  83. package/dist/cjs/offers/mixin.js +338 -0
  84. package/dist/cjs/offers/mixin.js.map +1 -0
  85. package/dist/cjs/orchestration/mixin.d.ts +28 -0
  86. package/dist/cjs/orchestration/mixin.d.ts.map +1 -0
  87. package/dist/cjs/orchestration/mixin.js +59 -0
  88. package/dist/cjs/orchestration/mixin.js.map +1 -0
  89. package/dist/cjs/subgraph.d.ts +4509 -2011
  90. package/dist/cjs/subgraph.d.ts.map +1 -1
  91. package/dist/cjs/subgraph.js +159 -4
  92. package/dist/cjs/subgraph.js.map +1 -1
  93. package/dist/cjs/utils/graphql.d.ts +14 -0
  94. package/dist/cjs/utils/graphql.d.ts.map +1 -1
  95. package/dist/cjs/utils/logs.d.ts +10 -4
  96. package/dist/cjs/utils/logs.d.ts.map +1 -1
  97. package/dist/cjs/utils/logs.js +25 -2
  98. package/dist/cjs/utils/logs.js.map +1 -1
  99. package/dist/cjs/utils/tokenInfoManager.d.ts +8 -3
  100. package/dist/cjs/utils/tokenInfoManager.d.ts.map +1 -1
  101. package/dist/cjs/utils/tokenInfoManager.js +58 -15
  102. package/dist/cjs/utils/tokenInfoManager.js.map +1 -1
  103. package/dist/esm/accounts/handler.d.ts +11 -1
  104. package/dist/esm/accounts/handler.d.ts.map +1 -1
  105. package/dist/esm/accounts/handler.js +13 -1
  106. package/dist/esm/accounts/handler.js.map +1 -1
  107. package/dist/esm/accounts/interface.d.ts +3 -2
  108. package/dist/esm/accounts/interface.d.ts.map +1 -1
  109. package/dist/esm/accounts/interface.js +22 -1
  110. package/dist/esm/accounts/interface.js.map +1 -1
  111. package/dist/esm/accounts/mixin.d.ts +230 -0
  112. package/dist/esm/accounts/mixin.d.ts.map +1 -0
  113. package/dist/esm/accounts/mixin.js +426 -0
  114. package/dist/esm/accounts/mixin.js.map +1 -0
  115. package/dist/esm/accounts/types.d.ts +1 -1
  116. package/dist/esm/accounts/types.d.ts.map +1 -1
  117. package/dist/esm/accounts/types.js +1 -1
  118. package/dist/esm/accounts/types.js.map +1 -1
  119. package/dist/esm/core-sdk.d.ts +16 -818
  120. package/dist/esm/core-sdk.d.ts.map +1 -1
  121. package/dist/esm/core-sdk.js +27 -1483
  122. package/dist/esm/core-sdk.js.map +1 -1
  123. package/dist/esm/disputes/mixin.d.ts +113 -0
  124. package/dist/esm/disputes/mixin.d.ts.map +1 -0
  125. package/dist/esm/disputes/mixin.js +173 -0
  126. package/dist/esm/disputes/mixin.js.map +1 -0
  127. package/dist/esm/erc1155/handler.d.ts +9 -0
  128. package/dist/esm/erc1155/handler.d.ts.map +1 -0
  129. package/dist/esm/erc1155/handler.js +13 -0
  130. package/dist/esm/erc1155/handler.js.map +1 -0
  131. package/dist/esm/erc1155/index.d.ts +3 -0
  132. package/dist/esm/erc1155/index.d.ts.map +1 -0
  133. package/dist/esm/erc1155/index.js +3 -0
  134. package/dist/esm/erc1155/index.js.map +1 -0
  135. package/dist/esm/erc1155/interface.d.ts +3 -0
  136. package/dist/esm/erc1155/interface.d.ts.map +1 -0
  137. package/dist/esm/erc1155/interface.js +4 -0
  138. package/dist/esm/erc1155/interface.js.map +1 -0
  139. package/dist/esm/erc20/handler.d.ts +5 -0
  140. package/dist/esm/erc20/handler.d.ts.map +1 -1
  141. package/dist/esm/erc20/handler.js +8 -0
  142. package/dist/esm/erc20/handler.js.map +1 -1
  143. package/dist/esm/erc721/handler.d.ts +5 -0
  144. package/dist/esm/erc721/handler.d.ts.map +1 -1
  145. package/dist/esm/erc721/handler.js +8 -0
  146. package/dist/esm/erc721/handler.js.map +1 -1
  147. package/dist/esm/event-logs/mixin.d.ts +11 -0
  148. package/dist/esm/event-logs/mixin.d.ts.map +1 -0
  149. package/dist/esm/event-logs/mixin.js +13 -0
  150. package/dist/esm/event-logs/mixin.js.map +1 -0
  151. package/dist/esm/exchanges/mixin.d.ts +77 -0
  152. package/dist/esm/exchanges/mixin.d.ts.map +1 -0
  153. package/dist/esm/exchanges/mixin.js +141 -0
  154. package/dist/esm/exchanges/mixin.js.map +1 -0
  155. package/dist/esm/funds/mixin.d.ts +42 -0
  156. package/dist/esm/funds/mixin.d.ts.map +1 -0
  157. package/dist/esm/funds/mixin.js +72 -0
  158. package/dist/esm/funds/mixin.js.map +1 -0
  159. package/dist/esm/groups/mixin.d.ts +14 -0
  160. package/dist/esm/groups/mixin.d.ts.map +1 -0
  161. package/dist/esm/groups/mixin.js +18 -0
  162. package/dist/esm/groups/mixin.js.map +1 -0
  163. package/dist/esm/meta-tx/mixin.d.ts +176 -0
  164. package/dist/esm/meta-tx/mixin.d.ts.map +1 -0
  165. package/dist/esm/meta-tx/mixin.js +351 -0
  166. package/dist/esm/meta-tx/mixin.js.map +1 -0
  167. package/dist/esm/metadata/mixin.d.ts +42 -0
  168. package/dist/esm/metadata/mixin.d.ts.map +1 -0
  169. package/dist/esm/metadata/mixin.js +60 -0
  170. package/dist/esm/metadata/mixin.js.map +1 -0
  171. package/dist/esm/metadata/subgraph.d.ts +3 -1
  172. package/dist/esm/metadata/subgraph.d.ts.map +1 -1
  173. package/dist/esm/metadata/subgraph.js +14 -0
  174. package/dist/esm/metadata/subgraph.js.map +1 -1
  175. package/dist/esm/mixins/base-core-sdk.d.ts +41 -0
  176. package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -0
  177. package/dist/esm/mixins/base-core-sdk.js +54 -0
  178. package/dist/esm/mixins/base-core-sdk.js.map +1 -0
  179. package/dist/esm/native-meta-tx/mixin.d.ts +35 -0
  180. package/dist/esm/native-meta-tx/mixin.d.ts.map +1 -0
  181. package/dist/esm/native-meta-tx/mixin.js +51 -0
  182. package/dist/esm/native-meta-tx/mixin.js.map +1 -0
  183. package/dist/esm/offers/mixin.d.ts +133 -0
  184. package/dist/esm/offers/mixin.d.ts.map +1 -0
  185. package/dist/esm/offers/mixin.js +276 -0
  186. package/dist/esm/offers/mixin.js.map +1 -0
  187. package/dist/esm/orchestration/mixin.d.ts +28 -0
  188. package/dist/esm/orchestration/mixin.d.ts.map +1 -0
  189. package/dist/esm/orchestration/mixin.js +42 -0
  190. package/dist/esm/orchestration/mixin.js.map +1 -0
  191. package/dist/esm/subgraph.d.ts +4509 -2011
  192. package/dist/esm/subgraph.d.ts.map +1 -1
  193. package/dist/esm/subgraph.js +156 -1
  194. package/dist/esm/subgraph.js.map +1 -1
  195. package/dist/esm/utils/graphql.d.ts +14 -0
  196. package/dist/esm/utils/graphql.d.ts.map +1 -1
  197. package/dist/esm/utils/logs.d.ts +10 -4
  198. package/dist/esm/utils/logs.d.ts.map +1 -1
  199. package/dist/esm/utils/logs.js +23 -1
  200. package/dist/esm/utils/logs.js.map +1 -1
  201. package/dist/esm/utils/tokenInfoManager.d.ts +8 -3
  202. package/dist/esm/utils/tokenInfoManager.d.ts.map +1 -1
  203. package/dist/esm/utils/tokenInfoManager.js +58 -15
  204. package/dist/esm/utils/tokenInfoManager.js.map +1 -1
  205. package/package.json +3 -3
  206. package/src/accounts/handler.ts +28 -2
  207. package/src/accounts/interface.ts +42 -8
  208. package/src/accounts/mixin.ts +622 -0
  209. package/src/accounts/queries.graphql +20 -0
  210. package/src/accounts/types.ts +10 -1
  211. package/src/core-sdk.ts +42 -2102
  212. package/src/disputes/mixin.ts +240 -0
  213. package/src/erc1155/handler.ts +21 -0
  214. package/src/erc1155/index.ts +2 -0
  215. package/src/erc1155/interface.ts +4 -0
  216. package/src/erc20/handler.ts +14 -0
  217. package/src/erc721/handler.ts +14 -0
  218. package/src/event-logs/mixin.ts +16 -0
  219. package/src/exchanges/mixin.ts +184 -0
  220. package/src/funds/mixin.ts +99 -0
  221. package/src/groups/mixin.ts +24 -0
  222. package/src/meta-tx/mixin.ts +515 -0
  223. package/src/metadata/mixin.ts +97 -0
  224. package/src/metadata/product-v1.graphql +77 -1
  225. package/src/metadata/subgraph.ts +31 -1
  226. package/src/mixins/base-core-sdk.ts +96 -0
  227. package/src/native-meta-tx/mixin.ts +77 -0
  228. package/src/offers/mixin.ts +376 -0
  229. package/src/offers/queries.graphql +1 -1
  230. package/src/orchestration/mixin.ts +57 -0
  231. package/src/subgraph.ts +4178 -1516
  232. package/src/utils/logs.ts +42 -8
  233. package/src/utils/tokenInfoManager.ts +71 -16
package/src/utils/logs.ts CHANGED
@@ -1,27 +1,27 @@
1
1
  import { Log } from "@bosonprotocol/common";
2
2
  import { Interface } from "@ethersproject/abi";
3
3
 
4
- export function getValueFromLogs(args: {
4
+ export function getValueFromLogs<T>(args: {
5
5
  iface: Interface;
6
6
  logs: Log[];
7
7
  eventArgsKey: string;
8
8
  eventName: string;
9
- }): string | null {
10
- const relevantLogs = getValuesFromLogs(args);
9
+ }): T | null {
10
+ const relevantLogs = getValuesFromLogs<T>(args);
11
11
 
12
12
  if (!relevantLogs || relevantLogs.length === 0) {
13
13
  return null;
14
14
  }
15
15
 
16
- return relevantLogs[0];
16
+ return relevantLogs[0] as T;
17
17
  }
18
18
 
19
- export function getValuesFromLogs(args: {
19
+ export function getValuesFromLogs<T>(args: {
20
20
  iface: Interface;
21
21
  logs: Log[];
22
22
  eventArgsKey: string;
23
23
  eventName: string;
24
- }): string[] {
24
+ }): T[] {
25
25
  const parsedLogs = args.logs
26
26
  .map((log) => {
27
27
  try {
@@ -39,7 +39,41 @@ export function getValuesFromLogs(args: {
39
39
  return null;
40
40
  }
41
41
 
42
- return relevantLogs.map((relevantLog) =>
43
- String(relevantLog.args[args.eventArgsKey])
42
+ return relevantLogs.map(
43
+ (relevantLog) => relevantLog.args[args.eventArgsKey] as T
44
44
  );
45
45
  }
46
+
47
+ export function getValuesFromLogsExt<T>(args: {
48
+ iface: Interface;
49
+ logs: Log[];
50
+ eventArgsKeys: string[];
51
+ eventNames: string[];
52
+ }): Record<string, T[]> {
53
+ const parsedLogs = args.logs
54
+ .map((log) => {
55
+ try {
56
+ return args.iface.parseLog(log);
57
+ } catch (error) {
58
+ // assume that failing to parse is irrelevant log
59
+ return null;
60
+ }
61
+ })
62
+ .filter((log) => log !== null);
63
+
64
+ const relevantLogs = parsedLogs.filter((log) =>
65
+ args.eventNames.includes(log.name)
66
+ );
67
+
68
+ if (relevantLogs.length === 0) {
69
+ return null;
70
+ }
71
+
72
+ const ret = {};
73
+ for (const eventArgsKey of args.eventArgsKeys) {
74
+ ret[eventArgsKey] = relevantLogs.map(
75
+ (relevantLog) => relevantLog.args[eventArgsKey]
76
+ );
77
+ }
78
+ return ret;
79
+ }
@@ -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
  }