@xyo-network/uniswap-crypto-market-plugin 2.99.6 → 3.0.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 (265) hide show
  1. package/dist/neutral/index.d.ts +107 -5
  2. package/package.json +19 -38
  3. package/src/index.ts +1 -1
  4. package/xy.config.ts +4 -5
  5. package/dist/browser/Config.d.cts +0 -7
  6. package/dist/browser/Config.d.cts.map +0 -1
  7. package/dist/browser/Config.d.mts +0 -7
  8. package/dist/browser/Config.d.mts.map +0 -1
  9. package/dist/browser/Config.d.ts +0 -7
  10. package/dist/browser/Config.d.ts.map +0 -1
  11. package/dist/browser/Plugin.d.cts +0 -22
  12. package/dist/browser/Plugin.d.cts.map +0 -1
  13. package/dist/browser/Plugin.d.mts +0 -22
  14. package/dist/browser/Plugin.d.mts.map +0 -1
  15. package/dist/browser/Plugin.d.ts +0 -22
  16. package/dist/browser/Plugin.d.ts.map +0 -1
  17. package/dist/browser/Witness.d.cts +0 -19
  18. package/dist/browser/Witness.d.cts.map +0 -1
  19. package/dist/browser/Witness.d.mts +0 -19
  20. package/dist/browser/Witness.d.mts.map +0 -1
  21. package/dist/browser/Witness.d.ts +0 -19
  22. package/dist/browser/Witness.d.ts.map +0 -1
  23. package/dist/browser/index.cjs +0 -289
  24. package/dist/browser/index.cjs.map +0 -1
  25. package/dist/browser/index.d.cts +0 -5
  26. package/dist/browser/index.d.cts.map +0 -1
  27. package/dist/browser/index.d.mts +0 -5
  28. package/dist/browser/index.d.mts.map +0 -1
  29. package/dist/browser/index.d.ts +0 -5
  30. package/dist/browser/index.d.ts.map +0 -1
  31. package/dist/browser/index.mjs +0 -269
  32. package/dist/browser/index.mjs.map +0 -1
  33. package/dist/browser/lib/Ethers/UniSwap3Pair.d.cts +0 -36
  34. package/dist/browser/lib/Ethers/UniSwap3Pair.d.cts.map +0 -1
  35. package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts +0 -36
  36. package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts.map +0 -1
  37. package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts +0 -36
  38. package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts.map +0 -1
  39. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts +0 -13
  40. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts.map +0 -1
  41. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +0 -13
  42. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts.map +0 -1
  43. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +0 -13
  44. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +0 -1
  45. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.cts +0 -2
  46. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.cts.map +0 -1
  47. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.mts +0 -2
  48. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.mts.map +0 -1
  49. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.ts +0 -2
  50. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +0 -1
  51. package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.cts +0 -4
  52. package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.cts.map +0 -1
  53. package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.mts +0 -4
  54. package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.mts.map +0 -1
  55. package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.ts +0 -4
  56. package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.ts.map +0 -1
  57. package/dist/browser/lib/Ethers/index.d.cts +0 -5
  58. package/dist/browser/lib/Ethers/index.d.cts.map +0 -1
  59. package/dist/browser/lib/Ethers/index.d.mts +0 -5
  60. package/dist/browser/lib/Ethers/index.d.mts.map +0 -1
  61. package/dist/browser/lib/Ethers/index.d.ts +0 -5
  62. package/dist/browser/lib/Ethers/index.d.ts.map +0 -1
  63. package/dist/browser/lib/UniswapPoolContracts.d.cts +0 -2
  64. package/dist/browser/lib/UniswapPoolContracts.d.cts.map +0 -1
  65. package/dist/browser/lib/UniswapPoolContracts.d.mts +0 -2
  66. package/dist/browser/lib/UniswapPoolContracts.d.mts.map +0 -1
  67. package/dist/browser/lib/UniswapPoolContracts.d.ts +0 -2
  68. package/dist/browser/lib/UniswapPoolContracts.d.ts.map +0 -1
  69. package/dist/browser/lib/UniswapV3Slot0Fields.d.cts +0 -2
  70. package/dist/browser/lib/UniswapV3Slot0Fields.d.cts.map +0 -1
  71. package/dist/browser/lib/UniswapV3Slot0Fields.d.mts +0 -2
  72. package/dist/browser/lib/UniswapV3Slot0Fields.d.mts.map +0 -1
  73. package/dist/browser/lib/UniswapV3Slot0Fields.d.ts +0 -2
  74. package/dist/browser/lib/UniswapV3Slot0Fields.d.ts.map +0 -1
  75. package/dist/browser/lib/index.d.cts +0 -4
  76. package/dist/browser/lib/index.d.cts.map +0 -1
  77. package/dist/browser/lib/index.d.mts +0 -4
  78. package/dist/browser/lib/index.d.mts.map +0 -1
  79. package/dist/browser/lib/index.d.ts +0 -4
  80. package/dist/browser/lib/index.d.ts.map +0 -1
  81. package/dist/browser/lib/logErrors.d.cts +0 -3
  82. package/dist/browser/lib/logErrors.d.cts.map +0 -1
  83. package/dist/browser/lib/logErrors.d.mts +0 -3
  84. package/dist/browser/lib/logErrors.d.mts.map +0 -1
  85. package/dist/browser/lib/logErrors.d.ts +0 -3
  86. package/dist/browser/lib/logErrors.d.ts.map +0 -1
  87. package/dist/browser/lib/pricesFromUniswap3.d.cts +0 -4
  88. package/dist/browser/lib/pricesFromUniswap3.d.cts.map +0 -1
  89. package/dist/browser/lib/pricesFromUniswap3.d.mts +0 -4
  90. package/dist/browser/lib/pricesFromUniswap3.d.mts.map +0 -1
  91. package/dist/browser/lib/pricesFromUniswap3.d.ts +0 -4
  92. package/dist/browser/lib/pricesFromUniswap3.d.ts.map +0 -1
  93. package/dist/neutral/Config.d.cts +0 -7
  94. package/dist/neutral/Config.d.cts.map +0 -1
  95. package/dist/neutral/Config.d.mts +0 -7
  96. package/dist/neutral/Config.d.mts.map +0 -1
  97. package/dist/neutral/Config.d.ts +0 -7
  98. package/dist/neutral/Config.d.ts.map +0 -1
  99. package/dist/neutral/Plugin.d.cts +0 -22
  100. package/dist/neutral/Plugin.d.cts.map +0 -1
  101. package/dist/neutral/Plugin.d.mts +0 -22
  102. package/dist/neutral/Plugin.d.mts.map +0 -1
  103. package/dist/neutral/Plugin.d.ts +0 -22
  104. package/dist/neutral/Plugin.d.ts.map +0 -1
  105. package/dist/neutral/Witness.d.cts +0 -19
  106. package/dist/neutral/Witness.d.cts.map +0 -1
  107. package/dist/neutral/Witness.d.mts +0 -19
  108. package/dist/neutral/Witness.d.mts.map +0 -1
  109. package/dist/neutral/Witness.d.ts +0 -19
  110. package/dist/neutral/Witness.d.ts.map +0 -1
  111. package/dist/neutral/index.cjs +0 -289
  112. package/dist/neutral/index.cjs.map +0 -1
  113. package/dist/neutral/index.d.cts +0 -5
  114. package/dist/neutral/index.d.cts.map +0 -1
  115. package/dist/neutral/index.d.mts +0 -5
  116. package/dist/neutral/index.d.mts.map +0 -1
  117. package/dist/neutral/index.d.ts.map +0 -1
  118. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.cts +0 -36
  119. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.cts.map +0 -1
  120. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.mts +0 -36
  121. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.mts.map +0 -1
  122. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.ts +0 -36
  123. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.ts.map +0 -1
  124. package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts +0 -13
  125. package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts.map +0 -1
  126. package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +0 -13
  127. package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts.map +0 -1
  128. package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +0 -13
  129. package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +0 -1
  130. package/dist/neutral/lib/Ethers/UniswapV3Slot0Fields.d.cts +0 -2
  131. package/dist/neutral/lib/Ethers/UniswapV3Slot0Fields.d.cts.map +0 -1
  132. package/dist/neutral/lib/Ethers/UniswapV3Slot0Fields.d.mts +0 -2
  133. package/dist/neutral/lib/Ethers/UniswapV3Slot0Fields.d.mts.map +0 -1
  134. package/dist/neutral/lib/Ethers/UniswapV3Slot0Fields.d.ts +0 -2
  135. package/dist/neutral/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +0 -1
  136. package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.cts +0 -4
  137. package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.cts.map +0 -1
  138. package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.mts +0 -4
  139. package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.mts.map +0 -1
  140. package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.ts +0 -4
  141. package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.ts.map +0 -1
  142. package/dist/neutral/lib/Ethers/index.d.cts +0 -5
  143. package/dist/neutral/lib/Ethers/index.d.cts.map +0 -1
  144. package/dist/neutral/lib/Ethers/index.d.mts +0 -5
  145. package/dist/neutral/lib/Ethers/index.d.mts.map +0 -1
  146. package/dist/neutral/lib/Ethers/index.d.ts +0 -5
  147. package/dist/neutral/lib/Ethers/index.d.ts.map +0 -1
  148. package/dist/neutral/lib/UniswapPoolContracts.d.cts +0 -2
  149. package/dist/neutral/lib/UniswapPoolContracts.d.cts.map +0 -1
  150. package/dist/neutral/lib/UniswapPoolContracts.d.mts +0 -2
  151. package/dist/neutral/lib/UniswapPoolContracts.d.mts.map +0 -1
  152. package/dist/neutral/lib/UniswapPoolContracts.d.ts +0 -2
  153. package/dist/neutral/lib/UniswapPoolContracts.d.ts.map +0 -1
  154. package/dist/neutral/lib/UniswapV3Slot0Fields.d.cts +0 -2
  155. package/dist/neutral/lib/UniswapV3Slot0Fields.d.cts.map +0 -1
  156. package/dist/neutral/lib/UniswapV3Slot0Fields.d.mts +0 -2
  157. package/dist/neutral/lib/UniswapV3Slot0Fields.d.mts.map +0 -1
  158. package/dist/neutral/lib/UniswapV3Slot0Fields.d.ts +0 -2
  159. package/dist/neutral/lib/UniswapV3Slot0Fields.d.ts.map +0 -1
  160. package/dist/neutral/lib/index.d.cts +0 -4
  161. package/dist/neutral/lib/index.d.cts.map +0 -1
  162. package/dist/neutral/lib/index.d.mts +0 -4
  163. package/dist/neutral/lib/index.d.mts.map +0 -1
  164. package/dist/neutral/lib/index.d.ts +0 -4
  165. package/dist/neutral/lib/index.d.ts.map +0 -1
  166. package/dist/neutral/lib/logErrors.d.cts +0 -3
  167. package/dist/neutral/lib/logErrors.d.cts.map +0 -1
  168. package/dist/neutral/lib/logErrors.d.mts +0 -3
  169. package/dist/neutral/lib/logErrors.d.mts.map +0 -1
  170. package/dist/neutral/lib/logErrors.d.ts +0 -3
  171. package/dist/neutral/lib/logErrors.d.ts.map +0 -1
  172. package/dist/neutral/lib/pricesFromUniswap3.d.cts +0 -4
  173. package/dist/neutral/lib/pricesFromUniswap3.d.cts.map +0 -1
  174. package/dist/neutral/lib/pricesFromUniswap3.d.mts +0 -4
  175. package/dist/neutral/lib/pricesFromUniswap3.d.mts.map +0 -1
  176. package/dist/neutral/lib/pricesFromUniswap3.d.ts +0 -4
  177. package/dist/neutral/lib/pricesFromUniswap3.d.ts.map +0 -1
  178. package/dist/node/Config.d.cts +0 -7
  179. package/dist/node/Config.d.cts.map +0 -1
  180. package/dist/node/Config.d.mts +0 -7
  181. package/dist/node/Config.d.mts.map +0 -1
  182. package/dist/node/Config.d.ts +0 -7
  183. package/dist/node/Config.d.ts.map +0 -1
  184. package/dist/node/Plugin.d.cts +0 -22
  185. package/dist/node/Plugin.d.cts.map +0 -1
  186. package/dist/node/Plugin.d.mts +0 -22
  187. package/dist/node/Plugin.d.mts.map +0 -1
  188. package/dist/node/Plugin.d.ts +0 -22
  189. package/dist/node/Plugin.d.ts.map +0 -1
  190. package/dist/node/Witness.d.cts +0 -19
  191. package/dist/node/Witness.d.cts.map +0 -1
  192. package/dist/node/Witness.d.mts +0 -19
  193. package/dist/node/Witness.d.mts.map +0 -1
  194. package/dist/node/Witness.d.ts +0 -19
  195. package/dist/node/Witness.d.ts.map +0 -1
  196. package/dist/node/index.cjs +0 -301
  197. package/dist/node/index.cjs.map +0 -1
  198. package/dist/node/index.d.cts +0 -5
  199. package/dist/node/index.d.cts.map +0 -1
  200. package/dist/node/index.d.mts +0 -5
  201. package/dist/node/index.d.mts.map +0 -1
  202. package/dist/node/index.d.ts +0 -5
  203. package/dist/node/index.d.ts.map +0 -1
  204. package/dist/node/index.mjs +0 -270
  205. package/dist/node/index.mjs.map +0 -1
  206. package/dist/node/lib/Ethers/UniSwap3Pair.d.cts +0 -36
  207. package/dist/node/lib/Ethers/UniSwap3Pair.d.cts.map +0 -1
  208. package/dist/node/lib/Ethers/UniSwap3Pair.d.mts +0 -36
  209. package/dist/node/lib/Ethers/UniSwap3Pair.d.mts.map +0 -1
  210. package/dist/node/lib/Ethers/UniSwap3Pair.d.ts +0 -36
  211. package/dist/node/lib/Ethers/UniSwap3Pair.d.ts.map +0 -1
  212. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts +0 -13
  213. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts.map +0 -1
  214. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +0 -13
  215. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts.map +0 -1
  216. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +0 -13
  217. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +0 -1
  218. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.cts +0 -2
  219. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.cts.map +0 -1
  220. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.mts +0 -2
  221. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.mts.map +0 -1
  222. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.ts +0 -2
  223. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +0 -1
  224. package/dist/node/lib/Ethers/createUniswapPoolContracts.d.cts +0 -4
  225. package/dist/node/lib/Ethers/createUniswapPoolContracts.d.cts.map +0 -1
  226. package/dist/node/lib/Ethers/createUniswapPoolContracts.d.mts +0 -4
  227. package/dist/node/lib/Ethers/createUniswapPoolContracts.d.mts.map +0 -1
  228. package/dist/node/lib/Ethers/createUniswapPoolContracts.d.ts +0 -4
  229. package/dist/node/lib/Ethers/createUniswapPoolContracts.d.ts.map +0 -1
  230. package/dist/node/lib/Ethers/index.d.cts +0 -5
  231. package/dist/node/lib/Ethers/index.d.cts.map +0 -1
  232. package/dist/node/lib/Ethers/index.d.mts +0 -5
  233. package/dist/node/lib/Ethers/index.d.mts.map +0 -1
  234. package/dist/node/lib/Ethers/index.d.ts +0 -5
  235. package/dist/node/lib/Ethers/index.d.ts.map +0 -1
  236. package/dist/node/lib/UniswapPoolContracts.d.cts +0 -2
  237. package/dist/node/lib/UniswapPoolContracts.d.cts.map +0 -1
  238. package/dist/node/lib/UniswapPoolContracts.d.mts +0 -2
  239. package/dist/node/lib/UniswapPoolContracts.d.mts.map +0 -1
  240. package/dist/node/lib/UniswapPoolContracts.d.ts +0 -2
  241. package/dist/node/lib/UniswapPoolContracts.d.ts.map +0 -1
  242. package/dist/node/lib/UniswapV3Slot0Fields.d.cts +0 -2
  243. package/dist/node/lib/UniswapV3Slot0Fields.d.cts.map +0 -1
  244. package/dist/node/lib/UniswapV3Slot0Fields.d.mts +0 -2
  245. package/dist/node/lib/UniswapV3Slot0Fields.d.mts.map +0 -1
  246. package/dist/node/lib/UniswapV3Slot0Fields.d.ts +0 -2
  247. package/dist/node/lib/UniswapV3Slot0Fields.d.ts.map +0 -1
  248. package/dist/node/lib/index.d.cts +0 -4
  249. package/dist/node/lib/index.d.cts.map +0 -1
  250. package/dist/node/lib/index.d.mts +0 -4
  251. package/dist/node/lib/index.d.mts.map +0 -1
  252. package/dist/node/lib/index.d.ts +0 -4
  253. package/dist/node/lib/index.d.ts.map +0 -1
  254. package/dist/node/lib/logErrors.d.cts +0 -3
  255. package/dist/node/lib/logErrors.d.cts.map +0 -1
  256. package/dist/node/lib/logErrors.d.mts +0 -3
  257. package/dist/node/lib/logErrors.d.mts.map +0 -1
  258. package/dist/node/lib/logErrors.d.ts +0 -3
  259. package/dist/node/lib/logErrors.d.ts.map +0 -1
  260. package/dist/node/lib/pricesFromUniswap3.d.cts +0 -4
  261. package/dist/node/lib/pricesFromUniswap3.d.cts.map +0 -1
  262. package/dist/node/lib/pricesFromUniswap3.d.mts +0 -4
  263. package/dist/node/lib/pricesFromUniswap3.d.mts.map +0 -1
  264. package/dist/node/lib/pricesFromUniswap3.d.ts +0 -4
  265. package/dist/node/lib/pricesFromUniswap3.d.ts.map +0 -1
@@ -1,289 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- ChainId: () => ChainId,
24
- EthersUniSwap3Pair: () => EthersUniSwap3Pair,
25
- EthersUniswap3PoolSlot0Wrapper: () => EthersUniswap3PoolSlot0Wrapper,
26
- UniswapCryptoMarketPlugin: () => UniswapCryptoMarketPlugin,
27
- UniswapCryptoMarketWitness: () => UniswapCryptoMarketWitness,
28
- UniswapPoolContracts: () => UniswapPoolContracts,
29
- createUniswapPoolContracts: () => createUniswapPoolContracts,
30
- default: () => UniswapCryptoMarketPlugin,
31
- pricesFromUniswap3: () => pricesFromUniswap3
32
- });
33
- module.exports = __toCommonJS(src_exports);
34
-
35
- // src/lib/logErrors.ts
36
- var logErrors = (func) => {
37
- try {
38
- return func();
39
- } catch (ex) {
40
- console.error(ex);
41
- throw ex;
42
- }
43
- };
44
- var logErrorsAsync = async (func) => {
45
- try {
46
- return await func();
47
- } catch (ex) {
48
- console.error(ex);
49
- throw ex;
50
- }
51
- };
52
-
53
- // src/lib/Ethers/UniSwap3Pair.ts
54
- var import_assert = require("@xylabs/assert");
55
- var import_delay = require("@xylabs/delay");
56
- var import_typechain = require("@xyo-network/typechain");
57
- var import_uniswap_sdk_core = require("@xyo-network/uniswap-sdk-core");
58
- var import_uniswap_typechain = require("@xyo-network/uniswap-typechain");
59
- var import_uniswap_v3_sdk = require("@xyo-network/uniswap-v3-sdk");
60
-
61
- // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
62
- var EthersUniswap3PoolSlot0Wrapper = class {
63
- values;
64
- constructor(values) {
65
- this.values = values;
66
- }
67
- get feeProtocol() {
68
- return this.values[5];
69
- }
70
- get observationCardinality() {
71
- return this.values[3];
72
- }
73
- get observationCardinalityNext() {
74
- return this.values[4];
75
- }
76
- get observationIndex() {
77
- return this.values[2];
78
- }
79
- get sqrtPriceX96() {
80
- return this.values[0];
81
- }
82
- get tick() {
83
- return this.values[1];
84
- }
85
- get unlocked() {
86
- return this.values[6];
87
- }
88
- };
89
-
90
- // src/lib/Ethers/UniSwap3Pair.ts
91
- var ChainId = /* @__PURE__ */ ((ChainId2) => {
92
- ChainId2[ChainId2["MAINNET"] = 1] = "MAINNET";
93
- ChainId2[ChainId2["ROPSTEN"] = 3] = "ROPSTEN";
94
- ChainId2[ChainId2["RINKEBY"] = 4] = "RINKEBY";
95
- ChainId2[ChainId2["G\xD6RLI"] = 5] = "G\xD6RLI";
96
- ChainId2[ChainId2["KOVAN"] = 42] = "KOVAN";
97
- return ChainId2;
98
- })(ChainId || {});
99
- var waitNotNull = async (closure) => {
100
- while (closure() === null) await (0, import_delay.delay)(10);
101
- };
102
- var EthersUniSwap3Pair = class {
103
- address;
104
- provider;
105
- _pool;
106
- _poolContract;
107
- _slot0;
108
- _tokenContracts = [void 0, void 0];
109
- _tokens = [void 0, void 0];
110
- constructor(address, provider) {
111
- this.address = address;
112
- this.provider = provider;
113
- }
114
- async pool() {
115
- return await logErrorsAsync(async () => {
116
- await waitNotNull(() => this._pool);
117
- this._pool = this._pool || null;
118
- const slot0 = await this.slot0();
119
- this._pool = this._pool === null ? new import_uniswap_v3_sdk.Pool(
120
- await this.token(0),
121
- await this.token(1),
122
- Number(slot0.feeProtocol),
123
- `0x${slot0.sqrtPriceX96.toString(16)}`,
124
- `0x${(await this.poolContract().liquidity()).toString(16)}`,
125
- Number(slot0.tick)
126
- ) : this._pool;
127
- return (0, import_assert.assertEx)(this._pool);
128
- });
129
- }
130
- poolContract() {
131
- return logErrors(() => {
132
- this._poolContract = this._poolContract ?? import_uniswap_typechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
133
- return (0, import_assert.assertEx)(this._poolContract);
134
- });
135
- }
136
- async price() {
137
- return await logErrorsAsync(async () => {
138
- const tokenIndexes = [0, 1];
139
- const pool = await this.pool();
140
- const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
141
- const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
142
- const tokenPrices = tokens.map((token) => Number.parseFloat(pool.priceOf(token).toSignificant()));
143
- const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase());
144
- const result = {
145
- tokens: await Promise.all(
146
- tokenIndexes.map(async (value) => {
147
- return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] };
148
- })
149
- )
150
- };
151
- return result;
152
- });
153
- }
154
- async slot0() {
155
- return await logErrorsAsync(async () => {
156
- await waitNotNull(() => this._slot0);
157
- this._slot0 = this._slot0 || null;
158
- if (this._slot0 === null) {
159
- const poolContract = this.poolContract();
160
- const slot = await poolContract.slot0();
161
- this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot);
162
- }
163
- return (0, import_assert.assertEx)(this._slot0);
164
- });
165
- }
166
- async token(index) {
167
- return await logErrorsAsync(async () => {
168
- await waitNotNull(() => this._tokens[index]);
169
- this._tokens[index] = this._tokens[index] || null;
170
- const tokenContract = await this.tokenContract(index);
171
- this._tokens[index] = this._tokens[index] ?? new import_uniswap_sdk_core.Token(
172
- 1 /* MAINNET */,
173
- await tokenContract.getAddress(),
174
- Number(await tokenContract.decimals()),
175
- await tokenContract.symbol(),
176
- await tokenContract.name()
177
- );
178
- return (0, import_assert.assertEx)(this._tokens[index]);
179
- });
180
- }
181
- async tokenContract(index) {
182
- return await logErrorsAsync(async () => {
183
- await waitNotNull(() => this._tokenContracts[index]);
184
- this._tokenContracts[index] = this._tokenContracts[index] || null;
185
- this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
186
- return (0, import_assert.assertEx)(this._tokenContracts[index]);
187
- });
188
- }
189
- };
190
-
191
- // src/lib/Ethers/createUniswapPoolContracts.ts
192
- var createUniswapPoolContracts = (provider, contracts) => {
193
- return logErrors(() => {
194
- return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
195
- });
196
- };
197
-
198
- // src/lib/pricesFromUniswap3.ts
199
- var import_promise = require("@xylabs/promise");
200
- var pricesFromUniswap3 = async (pools) => {
201
- return await logErrorsAsync(async () => {
202
- const promiseResults = await Promise.allSettled(
203
- pools.map(async (pool) => {
204
- const result = await pool.price();
205
- return result;
206
- })
207
- );
208
- return promiseResults.filter(import_promise.fulfilled).map((result) => result.value);
209
- });
210
- };
211
-
212
- // src/lib/UniswapPoolContracts.ts
213
- var UniswapPoolContracts = [
214
- /* xyo/weth */
215
- "0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA",
216
- /* xyo/usdt */
217
- "0xd0AF1981f52146a6939385451dAeA0726e13a484",
218
- /* xyo/dai */
219
- "0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe",
220
- /* wbtc/xyo */
221
- "0x0cF7494c9dE661467403aBeE8454b3BBf0179a84",
222
- /* link/xyo */
223
- "0x4693456599a8a4975862A0E720C5de7E1D09A1e4",
224
- /* wbtc/weth */
225
- "0xCBCdF9626bC03E24f779434178A73a0B4bad62eD",
226
- /* dai/usdc */
227
- "0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168",
228
- /* usdc/weth */
229
- "0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8",
230
- /* usdc/weth */
231
- "0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
232
- /* dai/usdc */
233
- "0x6c6Bc977E13Df9b0de53b251522280BB72383700",
234
- /* frax/usdc */
235
- "0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52",
236
- /* wbtc/usdc */
237
- "0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35",
238
- /* usdc/usdt */
239
- "0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
240
- ];
241
-
242
- // src/Plugin.ts
243
- var import_payload_model = require("@xyo-network/payload-model");
244
- var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
245
- var import_uniswap_crypto_market_payload_plugin2 = require("@xyo-network/uniswap-crypto-market-payload-plugin");
246
-
247
- // src/Witness.ts
248
- var import_assert2 = require("@xylabs/assert");
249
- var import_abstract_witness = require("@xyo-network/abstract-witness");
250
- var import_uniswap_crypto_market_payload_plugin = require("@xyo-network/uniswap-crypto-market-payload-plugin");
251
- var UniswapCryptoMarketWitness = class extends import_abstract_witness.AbstractWitness {
252
- static configSchemas = [...super.configSchemas, import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema];
253
- static defaultConfigSchema = import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema;
254
- pairs;
255
- get provider() {
256
- return this.params.provider;
257
- }
258
- async observeHandler() {
259
- await this.started("throw");
260
- const pairs = await pricesFromUniswap3((0, import_assert2.assertEx)(this.pairs));
261
- const timestamp = Date.now();
262
- const payload = {
263
- pairs,
264
- schema: import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketSchema,
265
- timestamp
266
- };
267
- return [payload];
268
- }
269
- async startHandler() {
270
- await super.startHandler();
271
- this.pairs = createUniswapPoolContracts(
272
- (0, import_assert2.assertEx)(this.provider, () => "Provider Required"),
273
- this.config?.pools ?? UniswapPoolContracts
274
- );
275
- return true;
276
- }
277
- };
278
-
279
- // src/Plugin.ts
280
- var UniswapCryptoMarketPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
281
- { required: { [import_uniswap_crypto_market_payload_plugin2.UniswapCryptoMarketSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
282
- {
283
- witness: async (params) => {
284
- const result = await UniswapCryptoMarketWitness.create(params);
285
- return result;
286
- }
287
- }
288
- );
289
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts'\nexport * from './Witness.ts'\n","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { Token } from '@xyo-network/uniswap-sdk-core'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\nimport { Pool } from '@xyo-network/uniswap-v3-sdk'\nimport { Provider } from 'ethers'\n\nimport { logErrors, logErrorsAsync } from '../logErrors.ts'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts'\n\nexport enum ChainId {\n MAINNET = 1,\n ROPSTEN = 3,\n RINKEBY = 4,\n GÖRLI = 5,\n KOVAN = 42,\n}\n\n// null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) await delay(10)\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool\n = this._pool === null\n ? new Pool(\n await this.token(0),\n await this.token(1),\n Number(slot0.feeProtocol),\n `0x${slot0.sqrtPriceX96.toString(16)}`,\n `0x${(await this.poolContract().liquidity()).toString(16)}`,\n Number(slot0.tick),\n )\n : this._pool\n return assertEx(this._pool)\n })\n }\n\n poolContract() {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map(value => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map(value => this.tokenContract(value)))\n const tokenPrices = tokens.map(token => Number.parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: await Promise.all(\n tokenIndexes.map(async (value) => {\n return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n ),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n if (this._slot0 === null) {\n const poolContract = this.poolContract()\n const slot = await poolContract.slot0()\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot)\n }\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index]\n = this._tokens[index]\n ?? new Token(\n ChainId.MAINNET,\n await tokenContract.getAddress(),\n Number(await tokenContract.decimals()),\n await tokenContract.symbol(),\n await tokenContract.name(),\n )\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index]\n = this._tokenContracts[index]\n ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from 'ethers'\n\nimport { logErrors } from '../logErrors.ts'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair.ts'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map(contract => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers/index.ts'\nimport { logErrorsAsync } from './logErrors.ts'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map(result => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /* xyo/weth */ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /* xyo/usdt */ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /* xyo/dai */ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /* wbtc/xyo */ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /* link/xyo */ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /* wbtc/weth */ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /* dai/usdc */ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /* usdc/weth */ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /* usdc/weth */ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /* dai/usdc */ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /* frax/usdc */ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /* wbtc/usdc */ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /* usdc/usdt */ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { UniswapCryptoMarketWitness } from './Witness.ts'\n\nexport const UniswapCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<UniswapCryptoMarketWitness>(\n { required: { [UniswapCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UniswapCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Provider } from 'ethers'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config.ts'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.ts'\n\nexport type UniswapCryptoMarketWitnessParams = WitnessParams<\n AnyConfigSchema<UniswapCryptoMarketWitnessConfig>,\n {\n provider?: Provider\n }\n>\n\nexport class UniswapCryptoMarketWitness<\n TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UniswapCryptoMarketWitnessConfigSchema\n\n protected pairs?: EthersUniSwap3Pair[]\n protected get provider() {\n return this.params.provider\n }\n\n protected override async observeHandler(): Promise<Payload[]> {\n await this.started('throw')\n const pairs = await pricesFromUniswap3(assertEx(this.pairs))\n const timestamp = Date.now()\n\n const payload: UniswapCryptoMarketPayload = {\n pairs,\n schema: UniswapCryptoMarketSchema,\n timestamp,\n }\n\n return [payload]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this.pairs = createUniswapPoolContracts(\n assertEx(this.provider, () => 'Provider Required'),\n this.config?.pools ?? UniswapPoolContracts,\n )\n return true\n }\n}\n"],"mappings":"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","names":["ChainId","import_uniswap_crypto_market_payload_plugin","import_assert"]}
@@ -1,5 +0,0 @@
1
- export * from './Config.ts';
2
- export * from './lib/index.ts';
3
- export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts';
4
- export * from './Witness.ts';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAE9B,OAAO,EAAE,yBAAyB,IAAI,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC7F,cAAc,cAAc,CAAA"}
@@ -1,5 +0,0 @@
1
- export * from './Config.ts';
2
- export * from './lib/index.ts';
3
- export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts';
4
- export * from './Witness.ts';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAE9B,OAAO,EAAE,yBAAyB,IAAI,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC7F,cAAc,cAAc,CAAA"}
@@ -1,5 +0,0 @@
1
- export * from './Config.ts';
2
- export * from './lib/index.ts';
3
- export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts';
4
- export * from './Witness.ts';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAE9B,OAAO,EAAE,yBAAyB,IAAI,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC7F,cAAc,cAAc,CAAA"}
@@ -1,269 +0,0 @@
1
- // src/lib/logErrors.ts
2
- var logErrors = (func) => {
3
- try {
4
- return func();
5
- } catch (ex) {
6
- console.error(ex);
7
- throw ex;
8
- }
9
- };
10
- var logErrorsAsync = async (func) => {
11
- try {
12
- return await func();
13
- } catch (ex) {
14
- console.error(ex);
15
- throw ex;
16
- }
17
- };
18
-
19
- // src/lib/Ethers/UniSwap3Pair.ts
20
- import { assertEx } from "@xylabs/assert";
21
- import { delay } from "@xylabs/delay";
22
- import { IERC20Metadata__factory } from "@xyo-network/typechain";
23
- import { Token } from "@xyo-network/uniswap-sdk-core";
24
- import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
25
- import { Pool } from "@xyo-network/uniswap-v3-sdk";
26
-
27
- // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
28
- var EthersUniswap3PoolSlot0Wrapper = class {
29
- values;
30
- constructor(values) {
31
- this.values = values;
32
- }
33
- get feeProtocol() {
34
- return this.values[5];
35
- }
36
- get observationCardinality() {
37
- return this.values[3];
38
- }
39
- get observationCardinalityNext() {
40
- return this.values[4];
41
- }
42
- get observationIndex() {
43
- return this.values[2];
44
- }
45
- get sqrtPriceX96() {
46
- return this.values[0];
47
- }
48
- get tick() {
49
- return this.values[1];
50
- }
51
- get unlocked() {
52
- return this.values[6];
53
- }
54
- };
55
-
56
- // src/lib/Ethers/UniSwap3Pair.ts
57
- var ChainId = /* @__PURE__ */ ((ChainId2) => {
58
- ChainId2[ChainId2["MAINNET"] = 1] = "MAINNET";
59
- ChainId2[ChainId2["ROPSTEN"] = 3] = "ROPSTEN";
60
- ChainId2[ChainId2["RINKEBY"] = 4] = "RINKEBY";
61
- ChainId2[ChainId2["G\xD6RLI"] = 5] = "G\xD6RLI";
62
- ChainId2[ChainId2["KOVAN"] = 42] = "KOVAN";
63
- return ChainId2;
64
- })(ChainId || {});
65
- var waitNotNull = async (closure) => {
66
- while (closure() === null) await delay(10);
67
- };
68
- var EthersUniSwap3Pair = class {
69
- address;
70
- provider;
71
- _pool;
72
- _poolContract;
73
- _slot0;
74
- _tokenContracts = [void 0, void 0];
75
- _tokens = [void 0, void 0];
76
- constructor(address, provider) {
77
- this.address = address;
78
- this.provider = provider;
79
- }
80
- async pool() {
81
- return await logErrorsAsync(async () => {
82
- await waitNotNull(() => this._pool);
83
- this._pool = this._pool || null;
84
- const slot0 = await this.slot0();
85
- this._pool = this._pool === null ? new Pool(
86
- await this.token(0),
87
- await this.token(1),
88
- Number(slot0.feeProtocol),
89
- `0x${slot0.sqrtPriceX96.toString(16)}`,
90
- `0x${(await this.poolContract().liquidity()).toString(16)}`,
91
- Number(slot0.tick)
92
- ) : this._pool;
93
- return assertEx(this._pool);
94
- });
95
- }
96
- poolContract() {
97
- return logErrors(() => {
98
- this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider);
99
- return assertEx(this._poolContract);
100
- });
101
- }
102
- async price() {
103
- return await logErrorsAsync(async () => {
104
- const tokenIndexes = [0, 1];
105
- const pool = await this.pool();
106
- const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
107
- const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
108
- const tokenPrices = tokens.map((token) => Number.parseFloat(pool.priceOf(token).toSignificant()));
109
- const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase());
110
- const result = {
111
- tokens: await Promise.all(
112
- tokenIndexes.map(async (value) => {
113
- return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] };
114
- })
115
- )
116
- };
117
- return result;
118
- });
119
- }
120
- async slot0() {
121
- return await logErrorsAsync(async () => {
122
- await waitNotNull(() => this._slot0);
123
- this._slot0 = this._slot0 || null;
124
- if (this._slot0 === null) {
125
- const poolContract = this.poolContract();
126
- const slot = await poolContract.slot0();
127
- this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot);
128
- }
129
- return assertEx(this._slot0);
130
- });
131
- }
132
- async token(index) {
133
- return await logErrorsAsync(async () => {
134
- await waitNotNull(() => this._tokens[index]);
135
- this._tokens[index] = this._tokens[index] || null;
136
- const tokenContract = await this.tokenContract(index);
137
- this._tokens[index] = this._tokens[index] ?? new Token(
138
- 1 /* MAINNET */,
139
- await tokenContract.getAddress(),
140
- Number(await tokenContract.decimals()),
141
- await tokenContract.symbol(),
142
- await tokenContract.name()
143
- );
144
- return assertEx(this._tokens[index]);
145
- });
146
- }
147
- async tokenContract(index) {
148
- return await logErrorsAsync(async () => {
149
- await waitNotNull(() => this._tokenContracts[index]);
150
- this._tokenContracts[index] = this._tokenContracts[index] || null;
151
- this._tokenContracts[index] = this._tokenContracts[index] ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
152
- return assertEx(this._tokenContracts[index]);
153
- });
154
- }
155
- };
156
-
157
- // src/lib/Ethers/createUniswapPoolContracts.ts
158
- var createUniswapPoolContracts = (provider, contracts) => {
159
- return logErrors(() => {
160
- return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
161
- });
162
- };
163
-
164
- // src/lib/pricesFromUniswap3.ts
165
- import { fulfilled } from "@xylabs/promise";
166
- var pricesFromUniswap3 = async (pools) => {
167
- return await logErrorsAsync(async () => {
168
- const promiseResults = await Promise.allSettled(
169
- pools.map(async (pool) => {
170
- const result = await pool.price();
171
- return result;
172
- })
173
- );
174
- return promiseResults.filter(fulfilled).map((result) => result.value);
175
- });
176
- };
177
-
178
- // src/lib/UniswapPoolContracts.ts
179
- var UniswapPoolContracts = [
180
- /* xyo/weth */
181
- "0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA",
182
- /* xyo/usdt */
183
- "0xd0AF1981f52146a6939385451dAeA0726e13a484",
184
- /* xyo/dai */
185
- "0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe",
186
- /* wbtc/xyo */
187
- "0x0cF7494c9dE661467403aBeE8454b3BBf0179a84",
188
- /* link/xyo */
189
- "0x4693456599a8a4975862A0E720C5de7E1D09A1e4",
190
- /* wbtc/weth */
191
- "0xCBCdF9626bC03E24f779434178A73a0B4bad62eD",
192
- /* dai/usdc */
193
- "0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168",
194
- /* usdc/weth */
195
- "0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8",
196
- /* usdc/weth */
197
- "0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
198
- /* dai/usdc */
199
- "0x6c6Bc977E13Df9b0de53b251522280BB72383700",
200
- /* frax/usdc */
201
- "0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52",
202
- /* wbtc/usdc */
203
- "0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35",
204
- /* usdc/usdt */
205
- "0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
206
- ];
207
-
208
- // src/Plugin.ts
209
- import { PayloadSetSchema } from "@xyo-network/payload-model";
210
- import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
211
- import { UniswapCryptoMarketSchema as UniswapCryptoMarketSchema2 } from "@xyo-network/uniswap-crypto-market-payload-plugin";
212
-
213
- // src/Witness.ts
214
- import { assertEx as assertEx2 } from "@xylabs/assert";
215
- import { AbstractWitness } from "@xyo-network/abstract-witness";
216
- import {
217
- UniswapCryptoMarketSchema,
218
- UniswapCryptoMarketWitnessConfigSchema
219
- } from "@xyo-network/uniswap-crypto-market-payload-plugin";
220
- var UniswapCryptoMarketWitness = class extends AbstractWitness {
221
- static configSchemas = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema];
222
- static defaultConfigSchema = UniswapCryptoMarketWitnessConfigSchema;
223
- pairs;
224
- get provider() {
225
- return this.params.provider;
226
- }
227
- async observeHandler() {
228
- await this.started("throw");
229
- const pairs = await pricesFromUniswap3(assertEx2(this.pairs));
230
- const timestamp = Date.now();
231
- const payload = {
232
- pairs,
233
- schema: UniswapCryptoMarketSchema,
234
- timestamp
235
- };
236
- return [payload];
237
- }
238
- async startHandler() {
239
- await super.startHandler();
240
- this.pairs = createUniswapPoolContracts(
241
- assertEx2(this.provider, () => "Provider Required"),
242
- this.config?.pools ?? UniswapPoolContracts
243
- );
244
- return true;
245
- }
246
- };
247
-
248
- // src/Plugin.ts
249
- var UniswapCryptoMarketPlugin = () => createPayloadSetWitnessPlugin(
250
- { required: { [UniswapCryptoMarketSchema2]: 1 }, schema: PayloadSetSchema },
251
- {
252
- witness: async (params) => {
253
- const result = await UniswapCryptoMarketWitness.create(params);
254
- return result;
255
- }
256
- }
257
- );
258
- export {
259
- ChainId,
260
- EthersUniSwap3Pair,
261
- EthersUniswap3PoolSlot0Wrapper,
262
- UniswapCryptoMarketPlugin,
263
- UniswapCryptoMarketWitness,
264
- UniswapPoolContracts,
265
- createUniswapPoolContracts,
266
- UniswapCryptoMarketPlugin as default,
267
- pricesFromUniswap3
268
- };
269
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { Token } from '@xyo-network/uniswap-sdk-core'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\nimport { Pool } from '@xyo-network/uniswap-v3-sdk'\nimport { Provider } from 'ethers'\n\nimport { logErrors, logErrorsAsync } from '../logErrors.ts'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts'\n\nexport enum ChainId {\n MAINNET = 1,\n ROPSTEN = 3,\n RINKEBY = 4,\n GÖRLI = 5,\n KOVAN = 42,\n}\n\n// null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) await delay(10)\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool\n = this._pool === null\n ? new Pool(\n await this.token(0),\n await this.token(1),\n Number(slot0.feeProtocol),\n `0x${slot0.sqrtPriceX96.toString(16)}`,\n `0x${(await this.poolContract().liquidity()).toString(16)}`,\n Number(slot0.tick),\n )\n : this._pool\n return assertEx(this._pool)\n })\n }\n\n poolContract() {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map(value => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map(value => this.tokenContract(value)))\n const tokenPrices = tokens.map(token => Number.parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: await Promise.all(\n tokenIndexes.map(async (value) => {\n return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n ),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n if (this._slot0 === null) {\n const poolContract = this.poolContract()\n const slot = await poolContract.slot0()\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot)\n }\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index]\n = this._tokens[index]\n ?? new Token(\n ChainId.MAINNET,\n await tokenContract.getAddress(),\n Number(await tokenContract.decimals()),\n await tokenContract.symbol(),\n await tokenContract.name(),\n )\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index]\n = this._tokenContracts[index]\n ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from 'ethers'\n\nimport { logErrors } from '../logErrors.ts'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair.ts'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map(contract => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers/index.ts'\nimport { logErrorsAsync } from './logErrors.ts'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map(result => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /* xyo/weth */ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /* xyo/usdt */ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /* xyo/dai */ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /* wbtc/xyo */ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /* link/xyo */ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /* wbtc/weth */ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /* dai/usdc */ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /* usdc/weth */ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /* usdc/weth */ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /* dai/usdc */ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /* frax/usdc */ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /* wbtc/usdc */ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /* usdc/usdt */ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { UniswapCryptoMarketWitness } from './Witness.ts'\n\nexport const UniswapCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<UniswapCryptoMarketWitness>(\n { required: { [UniswapCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UniswapCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Provider } from 'ethers'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config.ts'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.ts'\n\nexport type UniswapCryptoMarketWitnessParams = WitnessParams<\n AnyConfigSchema<UniswapCryptoMarketWitnessConfig>,\n {\n provider?: Provider\n }\n>\n\nexport class UniswapCryptoMarketWitness<\n TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UniswapCryptoMarketWitnessConfigSchema\n\n protected pairs?: EthersUniSwap3Pair[]\n protected get provider() {\n return this.params.provider\n }\n\n protected override async observeHandler(): Promise<Payload[]> {\n await this.started('throw')\n const pairs = await pricesFromUniswap3(assertEx(this.pairs))\n const timestamp = Date.now()\n\n const payload: UniswapCryptoMarketPayload = {\n pairs,\n schema: UniswapCryptoMarketSchema,\n timestamp,\n }\n\n return [payload]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this.pairs = createUniswapPoolContracts(\n assertEx(this.provider, () => 'Provider Required'),\n this.config?.pools ?? UniswapPoolContracts,\n )\n return true\n }\n}\n"],"mappings":";AAAO,IAAM,YAAY,CAAI,SAAkB;AAC7C,MAAI;AACF,WAAO,KAAK;AAAA,EACd,SAAS,IAAI;AACX,YAAQ,MAAM,EAAE;AAChB,UAAM;AAAA,EACR;AACF;AAEO,IAAM,iBAAiB,OAAU,SAA2B;AACjE,MAAI;AACF,WAAO,MAAM,KAAK;AAAA,EACpB,SAAS,IAAI;AACX,YAAQ,MAAM,EAAE;AAChB,UAAM;AAAA,EACR;AACF;;;AChBA,SAAS,gBAAgB;AACzB,SAAS,aAAa;AACtB,SAAyB,+BAA+B;AACxD,SAAS,aAAa;AACtB,SAAyB,+BAA+B;AACxD,SAAS,YAAY;;;ACHd,IAAM,iCAAN,MAAqC;AAAA,EAChC;AAAA,EACV,YAAY,QAAoC;AAC9C,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,yBAAyB;AAC3B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,6BAA6B;AAC/B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,mBAAmB;AACrB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AACF;;;ADxBO,IAAK,UAAL,kBAAKA,aAAL;AACL,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,cAAQ,KAAR;AACA,EAAAA,kBAAA,WAAQ,MAAR;AALU,SAAAA;AAAA,GAAA;AASZ,IAAM,cAAc,OAAO,YAA2B;AACpD,SAAO,QAAQ,MAAM,KAAM,OAAM,MAAM,EAAE;AAC3C;AAEO,IAAM,qBAAN,MAAyB;AAAA,EACpB;AAAA,EACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAyD,CAAC,QAAW,MAAS;AAAA,EAC9E,UAAwC,CAAC,QAAW,MAAS;AAAA,EAErE,YAAY,SAAiB,UAAoB;AAC/C,SAAK,UAAU;AACf,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,OAAsB;AAC1B,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,KAAK;AAClC,WAAK,QAAQ,KAAK,SAAS;AAC3B,YAAM,QAAQ,MAAM,KAAK,MAAM;AAC/B,WAAK,QACD,KAAK,UAAU,OACb,IAAI;AAAA,QACJ,MAAM,KAAK,MAAM,CAAC;AAAA,QAClB,MAAM,KAAK,MAAM,CAAC;AAAA,QAClB,OAAO,MAAM,WAAW;AAAA,QACxB,KAAK,MAAM,aAAa,SAAS,EAAE,CAAC;AAAA,QACpC,MAAM,MAAM,KAAK,aAAa,EAAE,UAAU,GAAG,SAAS,EAAE,CAAC;AAAA,QACzD,OAAO,MAAM,IAAI;AAAA,MACnB,IACE,KAAK;AACX,aAAO,SAAS,KAAK,KAAK;AAAA,IAC5B,CAAC;AAAA,EACH;AAAA,EAEA,eAAe;AACb,WAAO,UAAU,MAAM;AACrB,WAAK,gBAAgB,KAAK,iBAAiB,wBAAwB,QAAQ,KAAK,SAAS,KAAK,QAAQ;AACtG,aAAO,SAAS,KAAK,aAAa;AAAA,IACpC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAAQ;AACZ,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,eAA0B,CAAC,GAAG,CAAC;AACrC,YAAM,OAAO,MAAM,KAAK,KAAK;AAC7B,YAAM,SAAS,MAAM,QAAQ,IAAI,aAAa,IAAI,WAAS,KAAK,MAAM,KAAK,CAAC,CAAC;AAC7E,YAAM,iBAAiB,MAAM,QAAQ,IAAI,aAAa,IAAI,WAAS,KAAK,cAAc,KAAK,CAAC,CAAC;AAC7F,YAAM,cAAc,OAAO,IAAI,WAAS,OAAO,WAAW,KAAK,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC;AAC9F,YAAM,eAAe,OAAO,IAAI,CAAC,OAAO,UAAU,SAAS,MAAM,QAAQ,MAAM,SAAS,KAAK,mBAAmB,EAAE,YAAY,CAAC;AAC/H,YAAM,SAAS;AAAA,QACb,QAAQ,MAAM,QAAQ;AAAA,UACpB,aAAa,IAAI,OAAO,UAAU;AAChC,mBAAO,EAAE,SAAS,MAAM,eAAe,KAAK,EAAE,WAAW,GAAG,QAAQ,aAAa,KAAK,GAAG,OAAO,YAAY,KAAK,EAAE;AAAA,UACrH,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAAiD;AACrD,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,MAAM;AACnC,WAAK,SAAS,KAAK,UAAU;AAC7B,UAAI,KAAK,WAAW,MAAM;AACxB,cAAM,eAAe,KAAK,aAAa;AACvC,cAAM,OAAO,MAAM,aAAa,MAAM;AACtC,aAAK,SAAS,KAAK,UAAU,IAAI,+BAA+B,IAAI;AAAA,MACtE;AACA,aAAO,SAAS,KAAK,MAAM;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAM,OAA8B;AACxC,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,QAAQ,KAAK,CAAC;AAC3C,WAAK,QAAQ,KAAK,IAAI,KAAK,QAAQ,KAAK,KAAK;AAC7C,YAAM,gBAAgB,MAAM,KAAK,cAAc,KAAK;AACpD,WAAK,QAAQ,KAAK,IACd,KAAK,QAAQ,KAAK,KACjB,IAAI;AAAA,QACL;AAAA,QACA,MAAM,cAAc,WAAW;AAAA,QAC/B,OAAO,MAAM,cAAc,SAAS,CAAC;AAAA,QACrC,MAAM,cAAc,OAAO;AAAA,QAC3B,MAAM,cAAc,KAAK;AAAA,MAC3B;AACF,aAAO,SAAS,KAAK,QAAQ,KAAK,CAAC;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,cAAc,OAAuC;AACzD,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,gBAAgB,KAAK,CAAC;AACnD,WAAK,gBAAgB,KAAK,IAAI,KAAK,gBAAgB,KAAK,KAAK;AAC7D,WAAK,gBAAgB,KAAK,IACtB,KAAK,gBAAgB,KAAK,KACzB,wBAAwB,QAAQ,OAAO,UAAU,IAAI,KAAK,aAAa,EAAE,OAAO,IAAI,KAAK,aAAa,EAAE,OAAO,IAAI,KAAK,QAAQ;AACrI,aAAO,SAAS,KAAK,gBAAgB,KAAK,CAAC;AAAA,IAC7C,CAAC;AAAA,EACH;AACF;;;AEzHO,IAAM,6BAA6B,CAAC,UAAoB,cAAwB;AACrF,SAAO,UAAU,MAAM;AACrB,WAAO,UAAU,IAAI,cAAY,IAAI,mBAAmB,UAAU,QAAQ,CAAC;AAAA,EAC7E,CAAC;AACH;;;ACTA,SAAS,iBAAiB;AAMnB,IAAM,qBAAqB,OAAO,UAA8D;AACrG,SAAO,MAAM,eAAe,YAAY;AACtC,UAAM,iBAAiB,MAAM,QAAQ;AAAA,MACnC,MAAM,IAAI,OAAO,SAAqC;AACpD,cAAM,SAAS,MAAM,KAAK,MAAM;AAChC,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AACA,WAAO,eAAe,OAAO,SAAS,EAAE,IAAI,YAAU,OAAO,KAAK;AAAA,EACpE,CAAC;AACH;;;AChBO,IAAM,uBAAuB;AAAA;AAAA,EACnB;AAAA;AAAA,EACA;AAAA;AAAA,EACD;AAAA;AAAA,EACC;AAAA;AAAA,EACA;AAAA;AAAA,EACC;AAAA;AAAA,EACD;AAAA;AAAA,EACC;AAAA;AAAA,EACA;AAAA;AAAA,EACD;AAAA;AAAA,EACC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAClB;;;ACdA,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;AAC9C,SAAS,6BAAAC,kCAAiC;;;ACF1C,SAAS,YAAAC,iBAAgB;AACzB,SAAS,uBAAuB;AAGhC;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AAcA,IAAM,6BAAN,cAEG,gBAAyB;AAAA,EACjC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,sCAAsC;AAAA,EAClH,OAAyB,sBAA8B;AAAA,EAE7C;AAAA,EACV,IAAc,WAAW;AACvB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,MAAyB,iBAAqC;AAC5D,UAAM,KAAK,QAAQ,OAAO;AAC1B,UAAM,QAAQ,MAAM,mBAAmBC,UAAS,KAAK,KAAK,CAAC;AAC3D,UAAM,YAAY,KAAK,IAAI;AAE3B,UAAM,UAAsC;AAAA,MAC1C;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AAEA,WAAO,CAAC,OAAO;AAAA,EACjB;AAAA,EAEA,MAAyB,eAAe;AACtC,UAAM,MAAM,aAAa;AACzB,SAAK,QAAQ;AAAA,MACXA,UAAS,KAAK,UAAU,MAAM,mBAAmB;AAAA,MACjD,KAAK,QAAQ,SAAS;AAAA,IACxB;AACA,WAAO;AAAA,EACT;AACF;;;ADjDO,IAAM,4BAA4B,MACvC;AAAA,EACE,EAAE,UAAU,EAAE,CAACC,0BAAyB,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACzE;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,2BAA2B,OAAO,MAAM;AAC7D,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["ChainId","UniswapCryptoMarketSchema","assertEx","assertEx","UniswapCryptoMarketSchema"]}