sushi 2.1.0 → 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 (481) hide show
  1. package/README.md +3 -0
  2. package/dist/abi/StargateFeeLibraryV03.d.ts +266 -0
  3. package/dist/abi/StargateFeeLibraryV03.d.ts.map +1 -0
  4. package/dist/abi/StargateFeeLibraryV03.js +176 -0
  5. package/dist/abi/StargateFeeLibraryV03.js.map +1 -0
  6. package/dist/abi/StargatePool.d.ts +1511 -0
  7. package/dist/abi/StargatePool.d.ts.map +1 -0
  8. package/dist/abi/StargatePool.js +1123 -0
  9. package/dist/abi/StargatePool.js.map +1 -0
  10. package/dist/abi/balanceOfAbi.d.ts +16 -0
  11. package/dist/abi/balanceOfAbi.d.ts.map +1 -0
  12. package/dist/abi/balanceOfAbi.js +25 -0
  13. package/dist/abi/balanceOfAbi.js.map +1 -0
  14. package/dist/abi/bentoBoxV1Abi.d.ts +899 -0
  15. package/dist/abi/bentoBoxV1Abi.d.ts.map +1 -0
  16. package/dist/abi/bentoBoxV1Abi.js +1158 -0
  17. package/dist/abi/bentoBoxV1Abi.js.map +1 -0
  18. package/dist/abi/bentoBoxV1TotalsAbi.d.ts +20 -0
  19. package/dist/abi/bentoBoxV1TotalsAbi.d.ts.map +1 -0
  20. package/dist/abi/bentoBoxV1TotalsAbi.js +30 -0
  21. package/dist/abi/bentoBoxV1TotalsAbi.js.map +1 -0
  22. package/dist/abi/cloneRewarderTime.d.ts +379 -0
  23. package/dist/abi/cloneRewarderTime.d.ts.map +1 -0
  24. package/dist/abi/cloneRewarderTime.js +298 -0
  25. package/dist/abi/cloneRewarderTime.js.map +1 -0
  26. package/dist/abi/complexRewarderTimeAbi.d.ts +417 -0
  27. package/dist/abi/complexRewarderTimeAbi.d.ts.map +1 -0
  28. package/dist/abi/complexRewarderTimeAbi.js +310 -0
  29. package/dist/abi/complexRewarderTimeAbi.js.map +1 -0
  30. package/dist/abi/erc20Abi.d.ts +185 -0
  31. package/dist/abi/erc20Abi.d.ts.map +1 -0
  32. package/dist/abi/erc20Abi.js +247 -0
  33. package/dist/abi/erc20Abi.js.map +1 -0
  34. package/dist/abi/furoStreamAbi.d.ts +796 -0
  35. package/dist/abi/furoStreamAbi.d.ts.map +1 -0
  36. package/dist/abi/furoStreamAbi.js +1027 -0
  37. package/dist/abi/furoStreamAbi.js.map +1 -0
  38. package/dist/abi/furoStreamRouterAbi.d.ts +134 -0
  39. package/dist/abi/furoStreamRouterAbi.d.ts.map +1 -0
  40. package/dist/abi/furoStreamRouterAbi.js +177 -0
  41. package/dist/abi/furoStreamRouterAbi.js.map +1 -0
  42. package/dist/abi/furoVestingAbi.d.ts +742 -0
  43. package/dist/abi/furoVestingAbi.d.ts.map +1 -0
  44. package/dist/abi/furoVestingAbi.js +955 -0
  45. package/dist/abi/furoVestingAbi.js.map +1 -0
  46. package/dist/abi/furoVestingRouterAbi.d.ts +159 -0
  47. package/dist/abi/furoVestingRouterAbi.d.ts.map +1 -0
  48. package/dist/abi/furoVestingRouterAbi.js +209 -0
  49. package/dist/abi/furoVestingRouterAbi.js.map +1 -0
  50. package/dist/abi/gasDataArbitrumAbi.d.ts +32 -0
  51. package/dist/abi/gasDataArbitrumAbi.d.ts.map +1 -0
  52. package/dist/abi/gasDataArbitrumAbi.js +44 -0
  53. package/dist/abi/gasDataArbitrumAbi.js.map +1 -0
  54. package/dist/abi/gasPriceOracleAbi.d.ts +229 -0
  55. package/dist/abi/gasPriceOracleAbi.d.ts.map +1 -0
  56. package/dist/abi/gasPriceOracleAbi.js +302 -0
  57. package/dist/abi/gasPriceOracleAbi.js.map +1 -0
  58. package/dist/abi/getPoolsAbi.d.ts +28 -0
  59. package/dist/abi/getPoolsAbi.d.ts.map +1 -0
  60. package/dist/abi/getPoolsAbi.js +40 -0
  61. package/dist/abi/getPoolsAbi.js.map +1 -0
  62. package/dist/abi/getReservesAbi.d.ts +20 -0
  63. package/dist/abi/getReservesAbi.d.ts.map +1 -0
  64. package/dist/abi/getReservesAbi.js +29 -0
  65. package/dist/abi/getReservesAbi.js.map +1 -0
  66. package/dist/abi/index.d.ts +47 -0
  67. package/dist/abi/index.d.ts.map +1 -0
  68. package/dist/abi/index.js +97 -0
  69. package/dist/abi/index.js.map +1 -0
  70. package/dist/abi/masterChefV1Abi.d.ts +421 -0
  71. package/dist/abi/masterChefV1Abi.d.ts.map +1 -0
  72. package/dist/abi/masterChefV1Abi.js +546 -0
  73. package/dist/abi/masterChefV1Abi.js.map +1 -0
  74. package/dist/abi/masterChefV2Abi.d.ts +667 -0
  75. package/dist/abi/masterChefV2Abi.d.ts.map +1 -0
  76. package/dist/abi/masterChefV2Abi.js +858 -0
  77. package/dist/abi/masterChefV2Abi.js.map +1 -0
  78. package/dist/abi/miniChefAbi.d.ts +638 -0
  79. package/dist/abi/miniChefAbi.d.ts.map +1 -0
  80. package/dist/abi/miniChefAbi.js +471 -0
  81. package/dist/abi/miniChefAbi.js.map +1 -0
  82. package/dist/abi/multicall2Abi.d.ts +237 -0
  83. package/dist/abi/multicall2Abi.d.ts.map +1 -0
  84. package/dist/abi/multicall2Abi.js +171 -0
  85. package/dist/abi/multicall2Abi.js.map +1 -0
  86. package/dist/abi/multicall3Abi.d.ts +333 -0
  87. package/dist/abi/multicall3Abi.d.ts.map +1 -0
  88. package/dist/abi/multicall3Abi.js +242 -0
  89. package/dist/abi/multicall3Abi.js.map +1 -0
  90. package/dist/abi/nonfungiblePositionManagerAbi.d.ts +948 -0
  91. package/dist/abi/nonfungiblePositionManagerAbi.d.ts.map +1 -0
  92. package/dist/abi/nonfungiblePositionManagerAbi.js +1225 -0
  93. package/dist/abi/nonfungiblePositionManagerAbi.js.map +1 -0
  94. package/dist/abi/permit2Abi.d.ts +701 -0
  95. package/dist/abi/permit2Abi.d.ts.map +1 -0
  96. package/dist/abi/permit2Abi.js +905 -0
  97. package/dist/abi/permit2Abi.js.map +1 -0
  98. package/dist/abi/poolsCountAbi.d.ts +20 -0
  99. package/dist/abi/poolsCountAbi.d.ts.map +1 -0
  100. package/dist/abi/poolsCountAbi.js +30 -0
  101. package/dist/abi/poolsCountAbi.js.map +1 -0
  102. package/dist/abi/routeProcessor2Abi.d.ts +228 -0
  103. package/dist/abi/routeProcessor2Abi.d.ts.map +1 -0
  104. package/dist/abi/routeProcessor2Abi.js +293 -0
  105. package/dist/abi/routeProcessor2Abi.js.map +1 -0
  106. package/dist/abi/routeProcessor3Abi.d.ts +228 -0
  107. package/dist/abi/routeProcessor3Abi.d.ts.map +1 -0
  108. package/dist/abi/routeProcessor3Abi.js +293 -0
  109. package/dist/abi/routeProcessor3Abi.js.map +1 -0
  110. package/dist/abi/routeProcessor3_1Abi.d.ts +228 -0
  111. package/dist/abi/routeProcessor3_1Abi.d.ts.map +1 -0
  112. package/dist/abi/routeProcessor3_1Abi.js +293 -0
  113. package/dist/abi/routeProcessor3_1Abi.js.map +1 -0
  114. package/dist/abi/routeProcessor4Abi.d.ts +228 -0
  115. package/dist/abi/routeProcessor4Abi.d.ts.map +1 -0
  116. package/dist/abi/routeProcessor4Abi.js +293 -0
  117. package/dist/abi/routeProcessor4Abi.js.map +1 -0
  118. package/dist/abi/routeProcessorAbi.d.ts +99 -0
  119. package/dist/abi/routeProcessorAbi.d.ts.map +1 -0
  120. package/dist/abi/routeProcessorAbi.js +132 -0
  121. package/dist/abi/routeProcessorAbi.js.map +1 -0
  122. package/dist/abi/slot0Abi.d.ts +36 -0
  123. package/dist/abi/slot0Abi.d.ts.map +1 -0
  124. package/dist/abi/slot0Abi.js +29 -0
  125. package/dist/abi/slot0Abi.js.map +1 -0
  126. package/dist/abi/sushiV3FactoryAbi.d.ts +184 -0
  127. package/dist/abi/sushiV3FactoryAbi.d.ts.map +1 -0
  128. package/dist/abi/sushiV3FactoryAbi.js +240 -0
  129. package/dist/abi/sushiV3FactoryAbi.js.map +1 -0
  130. package/dist/abi/sushiV3PoolAbi.d.ts +775 -0
  131. package/dist/abi/sushiV3PoolAbi.d.ts.map +1 -0
  132. package/dist/abi/sushiV3PoolAbi.js +992 -0
  133. package/dist/abi/sushiV3PoolAbi.js.map +1 -0
  134. package/dist/abi/sushiXSwapAbi.d.ts +208 -0
  135. package/dist/abi/sushiXSwapAbi.d.ts.map +1 -0
  136. package/dist/abi/sushiXSwapAbi.js +271 -0
  137. package/dist/abi/sushiXSwapAbi.js.map +1 -0
  138. package/dist/abi/swapFeeAbi.d.ts +12 -0
  139. package/dist/abi/swapFeeAbi.d.ts.map +1 -0
  140. package/dist/abi/swapFeeAbi.js +19 -0
  141. package/dist/abi/swapFeeAbi.js.map +1 -0
  142. package/dist/abi/tickLensAbi.d.ts +33 -0
  143. package/dist/abi/tickLensAbi.d.ts.map +1 -0
  144. package/dist/abi/tickLensAbi.js +27 -0
  145. package/dist/abi/tickLensAbi.js.map +1 -0
  146. package/dist/abi/totalsAbi.d.ts +20 -0
  147. package/dist/abi/totalsAbi.d.ts.map +1 -0
  148. package/dist/abi/totalsAbi.js +30 -0
  149. package/dist/abi/totalsAbi.js.map +1 -0
  150. package/dist/abi/tridentConstantPoolAbi.d.ts +658 -0
  151. package/dist/abi/tridentConstantPoolAbi.d.ts.map +1 -0
  152. package/dist/abi/tridentConstantPoolAbi.js +856 -0
  153. package/dist/abi/tridentConstantPoolAbi.js.map +1 -0
  154. package/dist/abi/tridentConstantPoolFactoryAbi.d.ts +176 -0
  155. package/dist/abi/tridentConstantPoolFactoryAbi.d.ts.map +1 -0
  156. package/dist/abi/tridentConstantPoolFactoryAbi.js +235 -0
  157. package/dist/abi/tridentConstantPoolFactoryAbi.js.map +1 -0
  158. package/dist/abi/tridentGetPoolsAbi.d.ts +28 -0
  159. package/dist/abi/tridentGetPoolsAbi.d.ts.map +1 -0
  160. package/dist/abi/tridentGetPoolsAbi.js +40 -0
  161. package/dist/abi/tridentGetPoolsAbi.js.map +1 -0
  162. package/dist/abi/tridentPoolsCountAbi.d.ts +20 -0
  163. package/dist/abi/tridentPoolsCountAbi.d.ts.map +1 -0
  164. package/dist/abi/tridentPoolsCountAbi.js +30 -0
  165. package/dist/abi/tridentPoolsCountAbi.js.map +1 -0
  166. package/dist/abi/tridentRouterAbi.d.ts +589 -0
  167. package/dist/abi/tridentRouterAbi.d.ts.map +1 -0
  168. package/dist/abi/tridentRouterAbi.js +767 -0
  169. package/dist/abi/tridentRouterAbi.js.map +1 -0
  170. package/dist/abi/tridentStablePoolAbi.d.ts +649 -0
  171. package/dist/abi/tridentStablePoolAbi.d.ts.map +1 -0
  172. package/dist/abi/tridentStablePoolAbi.js +845 -0
  173. package/dist/abi/tridentStablePoolAbi.js.map +1 -0
  174. package/dist/abi/tridentStablePoolFactoryAbi.d.ts +172 -0
  175. package/dist/abi/tridentStablePoolFactoryAbi.d.ts.map +1 -0
  176. package/dist/abi/tridentStablePoolFactoryAbi.js +230 -0
  177. package/dist/abi/tridentStablePoolFactoryAbi.js.map +1 -0
  178. package/dist/abi/tridentSwapFeeAbi.d.ts +12 -0
  179. package/dist/abi/tridentSwapFeeAbi.d.ts.map +1 -0
  180. package/dist/abi/tridentSwapFeeAbi.js +19 -0
  181. package/dist/abi/tridentSwapFeeAbi.js.map +1 -0
  182. package/dist/abi/uniswapV2PairAbi.d.ts +561 -0
  183. package/dist/abi/uniswapV2PairAbi.d.ts.map +1 -0
  184. package/dist/abi/uniswapV2PairAbi.js +711 -0
  185. package/dist/abi/uniswapV2PairAbi.js.map +1 -0
  186. package/dist/abi/uniswapV2RouterAbi.d.ts +753 -0
  187. package/dist/abi/uniswapV2RouterAbi.d.ts.map +1 -0
  188. package/dist/abi/uniswapV2RouterAbi.js +360 -0
  189. package/dist/abi/uniswapV2RouterAbi.js.map +1 -0
  190. package/dist/abi/v3baseAbi.d.ts +42 -0
  191. package/dist/abi/v3baseAbi.d.ts.map +1 -0
  192. package/dist/abi/v3baseAbi.js +34 -0
  193. package/dist/abi/v3baseAbi.js.map +1 -0
  194. package/dist/abi/weth9Abi.d.ts +214 -0
  195. package/dist/abi/weth9Abi.d.ts.map +1 -0
  196. package/dist/abi/weth9Abi.js +157 -0
  197. package/dist/abi/weth9Abi.js.map +1 -0
  198. package/dist/calculate/gasMargin.d.ts +2 -0
  199. package/dist/calculate/gasMargin.d.ts.map +1 -0
  200. package/dist/calculate/gasMargin.js +9 -0
  201. package/dist/calculate/gasMargin.js.map +1 -0
  202. package/dist/calculate/index.d.ts +2 -0
  203. package/dist/calculate/index.d.ts.map +1 -0
  204. package/dist/calculate/index.js +6 -0
  205. package/dist/calculate/index.js.map +1 -0
  206. package/dist/chain/constants.d.ts +94 -0
  207. package/dist/chain/constants.d.ts.map +1 -0
  208. package/dist/chain/constants.js +121 -0
  209. package/dist/chain/constants.js.map +1 -0
  210. package/dist/chain/generated.d.ts +687 -0
  211. package/dist/chain/generated.d.ts.map +1 -0
  212. package/dist/chain/generated.js +836 -0
  213. package/dist/chain/generated.js.map +1 -0
  214. package/dist/chain/index.d.ts +760 -0
  215. package/dist/chain/index.d.ts.map +1 -0
  216. package/dist/chain/index.js +146 -0
  217. package/dist/chain/index.js.map +1 -0
  218. package/dist/convert/index.d.ts +2 -0
  219. package/dist/convert/index.d.ts.map +1 -0
  220. package/dist/convert/index.js +6 -0
  221. package/dist/convert/index.js.map +1 -0
  222. package/dist/convert/toHex.d.ts +8 -0
  223. package/dist/convert/toHex.d.ts.map +1 -0
  224. package/dist/convert/toHex.js +18 -0
  225. package/dist/convert/toHex.js.map +1 -0
  226. package/dist/currency/AddressMapper.d.ts +8 -0
  227. package/dist/currency/AddressMapper.d.ts.map +1 -0
  228. package/dist/currency/AddressMapper.js +55 -0
  229. package/dist/currency/AddressMapper.js.map +1 -0
  230. package/dist/currency/AddressMapper.test.d.ts +2 -0
  231. package/dist/currency/AddressMapper.test.d.ts.map +1 -0
  232. package/dist/currency/AddressMapper.test.js +226 -0
  233. package/dist/currency/AddressMapper.test.js.map +1 -0
  234. package/dist/currency/Amount.d.ts +43 -0
  235. package/dist/currency/Amount.d.ts.map +1 -0
  236. package/dist/currency/Amount.js +112 -0
  237. package/dist/currency/Amount.js.map +1 -0
  238. package/dist/currency/Amount.test.d.ts +2 -0
  239. package/dist/currency/Amount.test.d.ts.map +1 -0
  240. package/dist/currency/Amount.test.js +141 -0
  241. package/dist/currency/Amount.test.js.map +1 -0
  242. package/dist/currency/Currency.d.ts +56 -0
  243. package/dist/currency/Currency.d.ts.map +1 -0
  244. package/dist/currency/Currency.js +48 -0
  245. package/dist/currency/Currency.js.map +1 -0
  246. package/dist/currency/Native.d.ts +24 -0
  247. package/dist/currency/Native.d.ts.map +1 -0
  248. package/dist/currency/Native.js +72 -0
  249. package/dist/currency/Native.js.map +1 -0
  250. package/dist/currency/Native.test.d.ts +2 -0
  251. package/dist/currency/Native.test.d.ts.map +1 -0
  252. package/dist/currency/Native.test.js +38 -0
  253. package/dist/currency/Native.test.js.map +1 -0
  254. package/dist/currency/Price.d.ts +40 -0
  255. package/dist/currency/Price.d.ts.map +1 -0
  256. package/dist/currency/Price.js +80 -0
  257. package/dist/currency/Price.js.map +1 -0
  258. package/dist/currency/Price.test.d.ts +2 -0
  259. package/dist/currency/Price.test.d.ts.map +1 -0
  260. package/dist/currency/Price.test.js +59 -0
  261. package/dist/currency/Price.test.js.map +1 -0
  262. package/dist/currency/Share.d.ts +28 -0
  263. package/dist/currency/Share.d.ts.map +1 -0
  264. package/dist/currency/Share.js +75 -0
  265. package/dist/currency/Share.js.map +1 -0
  266. package/dist/currency/Token.d.ts +44 -0
  267. package/dist/currency/Token.d.ts.map +1 -0
  268. package/dist/currency/Token.js +93 -0
  269. package/dist/currency/Token.js.map +1 -0
  270. package/dist/currency/Token.test.d.ts +2 -0
  271. package/dist/currency/Token.test.d.ts.map +1 -0
  272. package/dist/currency/Token.test.js +66 -0
  273. package/dist/currency/Token.test.js.map +1 -0
  274. package/dist/currency/Type.d.ts +4 -0
  275. package/dist/currency/Type.d.ts.map +1 -0
  276. package/dist/currency/Type.js +3 -0
  277. package/dist/currency/Type.js.map +1 -0
  278. package/dist/currency/constants/default-quote.d.ts +38 -0
  279. package/dist/currency/constants/default-quote.d.ts.map +1 -0
  280. package/dist/currency/constants/default-quote.js +68 -0
  281. package/dist/currency/constants/default-quote.js.map +1 -0
  282. package/dist/currency/constants/governance.d.ts +4 -0
  283. package/dist/currency/constants/governance.d.ts.map +1 -0
  284. package/dist/currency/constants/governance.js +9 -0
  285. package/dist/currency/constants/governance.js.map +1 -0
  286. package/dist/currency/constants/index.d.ts +10 -0
  287. package/dist/currency/constants/index.d.ts.map +1 -0
  288. package/dist/currency/constants/index.js +26 -0
  289. package/dist/currency/constants/index.js.map +1 -0
  290. package/dist/currency/constants/lsds.d.ts +4 -0
  291. package/dist/currency/constants/lsds.d.ts.map +1 -0
  292. package/dist/currency/constants/lsds.js +8 -0
  293. package/dist/currency/constants/lsds.js.map +1 -0
  294. package/dist/currency/constants/native-ids.d.ts +46 -0
  295. package/dist/currency/constants/native-ids.d.ts.map +1 -0
  296. package/dist/currency/constants/native-ids.js +55 -0
  297. package/dist/currency/constants/native-ids.js.map +1 -0
  298. package/dist/currency/constants/short-name-to-currency.d.ts +221 -0
  299. package/dist/currency/constants/short-name-to-currency.d.ts.map +1 -0
  300. package/dist/currency/constants/short-name-to-currency.js +267 -0
  301. package/dist/currency/constants/short-name-to-currency.js.map +1 -0
  302. package/dist/currency/constants/stables.d.ts +4 -0
  303. package/dist/currency/constants/stables.d.ts.map +1 -0
  304. package/dist/currency/constants/stables.js +14 -0
  305. package/dist/currency/constants/stables.js.map +1 -0
  306. package/dist/currency/constants/token-addresses.d.ts +476 -0
  307. package/dist/currency/constants/token-addresses.d.ts.map +1 -0
  308. package/dist/currency/constants/token-addresses.js +494 -0
  309. package/dist/currency/constants/token-addresses.js.map +1 -0
  310. package/dist/currency/constants/token-map.d.ts +5 -0
  311. package/dist/currency/constants/token-map.d.ts.map +1 -0
  312. package/dist/currency/constants/token-map.js +91 -0
  313. package/dist/currency/constants/token-map.js.map +1 -0
  314. package/dist/currency/constants/tokens.d.ts +99 -0
  315. package/dist/currency/constants/tokens.d.ts.map +1 -0
  316. package/dist/currency/constants/tokens.js +511 -0
  317. package/dist/currency/constants/tokens.js.map +1 -0
  318. package/dist/currency/functions/address-map-to-token-map.d.ts +9 -0
  319. package/dist/currency/functions/address-map-to-token-map.d.ts.map +1 -0
  320. package/dist/currency/functions/address-map-to-token-map.js +18 -0
  321. package/dist/currency/functions/address-map-to-token-map.js.map +1 -0
  322. package/dist/currency/functions/index.d.ts +4 -0
  323. package/dist/currency/functions/index.d.ts.map +1 -0
  324. package/dist/currency/functions/index.js +20 -0
  325. package/dist/currency/functions/index.js.map +1 -0
  326. package/dist/currency/functions/try-parse-amount.d.ts +4 -0
  327. package/dist/currency/functions/try-parse-amount.d.ts.map +1 -0
  328. package/dist/currency/functions/try-parse-amount.js +25 -0
  329. package/dist/currency/functions/try-parse-amount.js.map +1 -0
  330. package/dist/currency/functions/unwrap.d.ts +3 -0
  331. package/dist/currency/functions/unwrap.d.ts.map +1 -0
  332. package/dist/currency/functions/unwrap.js +12 -0
  333. package/dist/currency/functions/unwrap.js.map +1 -0
  334. package/dist/currency/index.d.ts +11 -0
  335. package/dist/currency/index.d.ts.map +1 -0
  336. package/dist/currency/index.js +29 -0
  337. package/dist/currency/index.js.map +1 -0
  338. package/dist/currency/zod.d.ts +121 -0
  339. package/dist/currency/zod.d.ts.map +1 -0
  340. package/dist/currency/zod.js +27 -0
  341. package/dist/currency/zod.js.map +1 -0
  342. package/dist/format/address.d.ts +2 -0
  343. package/dist/format/address.d.ts.map +1 -0
  344. package/dist/format/address.js +16 -0
  345. package/dist/format/address.js.map +1 -0
  346. package/dist/format/index.d.ts +5 -0
  347. package/dist/format/index.d.ts.map +1 -0
  348. package/dist/format/index.js +21 -0
  349. package/dist/format/index.js.map +1 -0
  350. package/dist/format/number.d.ts +2 -0
  351. package/dist/format/number.d.ts.map +1 -0
  352. package/dist/format/number.js +12 -0
  353. package/dist/format/number.js.map +1 -0
  354. package/dist/format/percent.d.ts +2 -0
  355. package/dist/format/percent.d.ts.map +1 -0
  356. package/dist/format/percent.js +12 -0
  357. package/dist/format/percent.js.map +1 -0
  358. package/dist/format/price.d.ts +2 -0
  359. package/dist/format/price.d.ts.map +1 -0
  360. package/dist/format/price.js +24 -0
  361. package/dist/format/price.js.map +1 -0
  362. package/dist/gas/calculateGasMargin.d.ts +2 -0
  363. package/dist/gas/calculateGasMargin.d.ts.map +1 -0
  364. package/dist/gas/calculateGasMargin.js +9 -0
  365. package/dist/gas/calculateGasMargin.js.map +1 -0
  366. package/dist/gas/index.d.ts +2 -0
  367. package/dist/gas/index.d.ts.map +1 -0
  368. package/dist/gas/index.js +6 -0
  369. package/dist/gas/index.js.map +1 -0
  370. package/dist/index.d.ts +7 -0
  371. package/dist/index.d.ts.map +1 -0
  372. package/dist/index.js +23 -0
  373. package/dist/index.js.map +1 -0
  374. package/dist/log/index.d.ts +2 -0
  375. package/dist/log/index.d.ts.map +1 -0
  376. package/dist/log/index.js +6 -0
  377. package/dist/log/index.js.map +1 -0
  378. package/dist/log/log.d.ts +2 -0
  379. package/dist/log/log.d.ts.map +1 -0
  380. package/dist/log/log.js +9 -0
  381. package/dist/log/log.js.map +1 -0
  382. package/dist/log/log.test.d.ts +2 -0
  383. package/dist/log/log.test.d.ts.map +1 -0
  384. package/dist/log/log.test.js +12 -0
  385. package/dist/log/log.test.js.map +1 -0
  386. package/dist/math/Big.d.ts +3 -0
  387. package/dist/math/Big.d.ts.map +1 -0
  388. package/dist/math/Big.js +10 -0
  389. package/dist/math/Big.js.map +1 -0
  390. package/dist/math/BigintIsh.d.ts +2 -0
  391. package/dist/math/BigintIsh.d.ts.map +1 -0
  392. package/dist/math/BigintIsh.js +3 -0
  393. package/dist/math/BigintIsh.js.map +1 -0
  394. package/dist/math/Decimal.d.ts +3 -0
  395. package/dist/math/Decimal.d.ts.map +1 -0
  396. package/dist/math/Decimal.js +9 -0
  397. package/dist/math/Decimal.js.map +1 -0
  398. package/dist/math/Fraction.d.ts +30 -0
  399. package/dist/math/Fraction.d.ts.map +1 -0
  400. package/dist/math/Fraction.js +123 -0
  401. package/dist/math/Fraction.js.map +1 -0
  402. package/dist/math/Fraction.test.d.ts +2 -0
  403. package/dist/math/Fraction.test.d.ts.map +1 -0
  404. package/dist/math/Fraction.test.js +88 -0
  405. package/dist/math/Fraction.test.js.map +1 -0
  406. package/dist/math/Percent.d.ts +18 -0
  407. package/dist/math/Percent.d.ts.map +1 -0
  408. package/dist/math/Percent.js +47 -0
  409. package/dist/math/Percent.js.map +1 -0
  410. package/dist/math/Percent.test.d.ts +2 -0
  411. package/dist/math/Percent.test.d.ts.map +1 -0
  412. package/dist/math/Percent.test.js +57 -0
  413. package/dist/math/Percent.test.js.map +1 -0
  414. package/dist/math/Rounding.d.ts +7 -0
  415. package/dist/math/Rounding.d.ts.map +1 -0
  416. package/dist/math/Rounding.js +10 -0
  417. package/dist/math/Rounding.js.map +1 -0
  418. package/dist/math/constants/index.d.ts +2 -0
  419. package/dist/math/constants/index.d.ts.map +1 -0
  420. package/dist/math/constants/index.js +18 -0
  421. package/dist/math/constants/index.js.map +1 -0
  422. package/dist/math/constants/numbers.d.ts +22 -0
  423. package/dist/math/constants/numbers.d.ts.map +1 -0
  424. package/dist/math/constants/numbers.js +29 -0
  425. package/dist/math/constants/numbers.js.map +1 -0
  426. package/dist/math/functions/abs.d.ts +2 -0
  427. package/dist/math/functions/abs.d.ts.map +1 -0
  428. package/dist/math/functions/abs.js +8 -0
  429. package/dist/math/functions/abs.js.map +1 -0
  430. package/dist/math/functions/difference.d.ts +2 -0
  431. package/dist/math/functions/difference.d.ts.map +1 -0
  432. package/dist/math/functions/difference.js +11 -0
  433. package/dist/math/functions/difference.js.map +1 -0
  434. package/dist/math/functions/index.d.ts +6 -0
  435. package/dist/math/functions/index.d.ts.map +1 -0
  436. package/dist/math/functions/index.js +14 -0
  437. package/dist/math/functions/index.js.map +1 -0
  438. package/dist/math/functions/maximum.d.ts +7 -0
  439. package/dist/math/functions/maximum.d.ts.map +1 -0
  440. package/dist/math/functions/maximum.js +20 -0
  441. package/dist/math/functions/maximum.js.map +1 -0
  442. package/dist/math/functions/minimum.d.ts +4 -0
  443. package/dist/math/functions/minimum.d.ts.map +1 -0
  444. package/dist/math/functions/minimum.js +20 -0
  445. package/dist/math/functions/minimum.js.map +1 -0
  446. package/dist/math/functions/sqrt.d.ts +6 -0
  447. package/dist/math/functions/sqrt.d.ts.map +1 -0
  448. package/dist/math/functions/sqrt.js +30 -0
  449. package/dist/math/functions/sqrt.js.map +1 -0
  450. package/dist/math/index.d.ts +9 -0
  451. package/dist/math/index.d.ts.map +1 -0
  452. package/dist/math/index.js +33 -0
  453. package/dist/math/index.js.map +1 -0
  454. package/dist/types/contract.d.ts +3 -0
  455. package/dist/types/contract.d.ts.map +1 -0
  456. package/dist/types/contract.js +3 -0
  457. package/dist/types/contract.js.map +1 -0
  458. package/dist/types/index.d.ts +2 -0
  459. package/dist/types/index.d.ts.map +1 -0
  460. package/dist/types/index.js +18 -0
  461. package/dist/types/index.js.map +1 -0
  462. package/dist/validate/index.d.ts +4 -0
  463. package/dist/validate/index.d.ts.map +1 -0
  464. package/dist/validate/index.js +20 -0
  465. package/dist/validate/index.js.map +1 -0
  466. package/dist/validate/isPromiseFulfilled.d.ts +2 -0
  467. package/dist/validate/isPromiseFulfilled.d.ts.map +1 -0
  468. package/dist/validate/isPromiseFulfilled.js +6 -0
  469. package/dist/validate/isPromiseFulfilled.js.map +1 -0
  470. package/dist/validate/isPromiseRejected.d.ts +2 -0
  471. package/dist/validate/isPromiseRejected.d.ts.map +1 -0
  472. package/dist/validate/isPromiseRejected.js +6 -0
  473. package/dist/validate/isPromiseRejected.js.map +1 -0
  474. package/dist/validate/isZero.d.ts +6 -0
  475. package/dist/validate/isZero.d.ts.map +1 -0
  476. package/dist/validate/isZero.js +12 -0
  477. package/dist/validate/isZero.js.map +1 -0
  478. package/package.json +99 -26
  479. package/License.md +0 -21
  480. package/Readme.md +0 -182
  481. package/index.js +0 -116
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Amount = void 0;
7
+ const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
8
+ const index_js_1 = require("../math/index.js");
9
+ const Native_js_1 = require("./Native.js");
10
+ const Share_js_1 = require("./Share.js");
11
+ const Token_js_1 = require("./Token.js");
12
+ const zod_js_1 = require("./zod.js");
13
+ class Amount extends index_js_1.Fraction {
14
+ currency;
15
+ scale;
16
+ /**
17
+ * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount
18
+ * @param currency the currency in the amount
19
+ * @param rawAmount the raw token or ether amount
20
+ */
21
+ static fromRawAmount(currency, rawAmount) {
22
+ return new Amount(currency, rawAmount);
23
+ }
24
+ static fromShare(currency, shares, rebase, roundUp = false) {
25
+ if (rebase.base === index_js_1.ZERO)
26
+ return new Amount(currency, shares);
27
+ const sharesBI = typeof shares === 'bigint' ? shares : BigInt(shares.toString());
28
+ const elastic = (sharesBI * rebase.elastic) / rebase.base;
29
+ if (roundUp && (elastic * rebase.base) / rebase.elastic < sharesBI) {
30
+ return new Amount(currency, elastic + 1n);
31
+ }
32
+ return new Amount(currency, elastic);
33
+ }
34
+ toShare(rebase, roundUp = false) {
35
+ if (rebase.elastic === index_js_1.ZERO)
36
+ return Share_js_1.Share.fromRawShare(this.currency, this.quotient);
37
+ const base = (this.quotient * rebase.base) / rebase.elastic;
38
+ if (roundUp && (base * rebase.elastic) / rebase.base < this.quotient) {
39
+ return Share_js_1.Share.fromRawShare(this.currency, base + 1n);
40
+ }
41
+ return Share_js_1.Share.fromRawShare(this.currency, base);
42
+ }
43
+ /**
44
+ * Construct a currency amount with a denominator that is not equal to 1
45
+ * @param currency the currency
46
+ * @param numerator the numerator of the fractional token amount
47
+ * @param denominator the denominator of the fractional token amount
48
+ */
49
+ static fromFractionalAmount(currency, numerator, denominator) {
50
+ return new Amount(currency, numerator, denominator);
51
+ }
52
+ constructor(currency, numerator, denominator) {
53
+ super(numerator, denominator);
54
+ (0, tiny_invariant_1.default)(this.quotient <= index_js_1.MAX_UINT256, 'AMOUNT');
55
+ this.currency = currency;
56
+ this.scale = 10n ** BigInt(currency.decimals);
57
+ }
58
+ add(other) {
59
+ (0, tiny_invariant_1.default)(this.currency.equals(other.currency), 'CURRENCY');
60
+ const added = super.add(other);
61
+ return Amount.fromFractionalAmount(this.currency, added.numerator, added.denominator);
62
+ }
63
+ subtract(other) {
64
+ (0, tiny_invariant_1.default)(this.currency.equals(other.currency), 'CURRENCY');
65
+ const subtracted = super.subtract(other);
66
+ return Amount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator);
67
+ }
68
+ multiply(other) {
69
+ const multiplied = super.multiply(other);
70
+ return Amount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator);
71
+ }
72
+ divide(other) {
73
+ const divided = super.divide(other);
74
+ return Amount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator);
75
+ }
76
+ toSignificant(significantDigits = 6, format, rounding = index_js_1.Rounding.ROUND_DOWN) {
77
+ return super
78
+ .divide(this.scale)
79
+ .toSignificant(significantDigits, format, rounding);
80
+ }
81
+ toFixed(decimalPlaces = this.currency.decimals, format, rounding = index_js_1.Rounding.ROUND_DOWN) {
82
+ (0, tiny_invariant_1.default)(decimalPlaces <= this.currency.decimals, 'DECIMALS');
83
+ return super.divide(this.scale).toFixed(decimalPlaces, format, rounding);
84
+ }
85
+ toHex() {
86
+ return `0x${this.quotient.toString(16)}`;
87
+ }
88
+ toExact(format = { groupSeparator: '' }) {
89
+ index_js_1.Big.DP = this.currency.decimals;
90
+ return new index_js_1.Big(this.quotient.toString())
91
+ .div(this.scale.toString())
92
+ .toFormat(format);
93
+ }
94
+ get wrapped() {
95
+ if (this.currency.isToken)
96
+ return this;
97
+ return Amount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator);
98
+ }
99
+ serialize() {
100
+ return zod_js_1.amountSchema.parse({
101
+ amount: this.quotient.toString(),
102
+ currency: this.currency.serialize(),
103
+ });
104
+ }
105
+ static deserialize(amount) {
106
+ if (amount.currency.isNative)
107
+ return Amount.fromRawAmount(Native_js_1.Native.deserialize(amount.currency), amount.amount);
108
+ return Amount.fromRawAmount(Token_js_1.Token.deserialize(amount.currency), amount.amount);
109
+ }
110
+ }
111
+ exports.Amount = Amount;
112
+ //# sourceMappingURL=Amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Amount.js","sourceRoot":"","sources":["../../src/currency/Amount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Amount.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Amount.test.d.ts","sourceRoot":"","sources":["../../src/currency/Amount.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const Amount_js_1 = require("./Amount.js");
5
+ const Native_js_1 = require("./Native.js");
6
+ const Token_js_1 = require("./Token.js");
7
+ const index_js_1 = require("../math/index.js");
8
+ (0, vitest_1.describe)('Amount', () => {
9
+ const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
10
+ (0, vitest_1.describe)('constructor', () => {
11
+ (0, vitest_1.it)('works', () => {
12
+ const token = new Token_js_1.Token({
13
+ chainId: 1,
14
+ address: ADDRESS_ONE,
15
+ decimals: 18,
16
+ });
17
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 100);
18
+ (0, vitest_1.expect)(amount.quotient).toEqual(100n);
19
+ });
20
+ });
21
+ (0, vitest_1.describe)('#quotient', () => {
22
+ (0, vitest_1.it)('returns the amount after multiplication', () => {
23
+ const token = new Token_js_1.Token({
24
+ chainId: 1,
25
+ address: ADDRESS_ONE,
26
+ decimals: 18,
27
+ });
28
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 100).multiply(new index_js_1.Percent(15, 100));
29
+ (0, vitest_1.expect)(amount.quotient).toEqual(15n);
30
+ });
31
+ });
32
+ (0, vitest_1.describe)('#ether', () => {
33
+ (0, vitest_1.it)('produces ether amount', () => {
34
+ const amount = Amount_js_1.Amount.fromRawAmount(Native_js_1.Native.onChain(1), 100);
35
+ (0, vitest_1.expect)(amount.quotient).toEqual(100n);
36
+ (0, vitest_1.expect)(amount.currency).toEqual(Native_js_1.Native.onChain(1));
37
+ });
38
+ });
39
+ (0, vitest_1.it)('token amount can be max uint256', () => {
40
+ const amount = Amount_js_1.Amount.fromRawAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256);
41
+ (0, vitest_1.expect)(amount.quotient).toEqual(index_js_1.MAX_UINT256);
42
+ });
43
+ (0, vitest_1.it)('token amount cannot exceed max uint256', () => {
44
+ (0, vitest_1.expect)(() => Amount_js_1.Amount.fromRawAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256 + 1n)).toThrow('AMOUNT');
45
+ });
46
+ (0, vitest_1.it)('token amount quotient cannot exceed max uint256', () => {
47
+ (0, vitest_1.expect)(() => Amount_js_1.Amount.fromFractionalAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256 * 2n + 2n, 2n)).toThrow('AMOUNT');
48
+ });
49
+ (0, vitest_1.it)('token amount numerator can be gt. uint256 if denominator is gt. 1', () => {
50
+ const amount = Amount_js_1.Amount.fromFractionalAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256 + 2n, 2);
51
+ (0, vitest_1.expect)(amount.numerator).toEqual(2n + index_js_1.MAX_UINT256);
52
+ });
53
+ (0, vitest_1.describe)('#toFixed', () => {
54
+ (0, vitest_1.it)('throws for decimals > currency.decimals', () => {
55
+ const token = new Token_js_1.Token({
56
+ chainId: 1,
57
+ address: ADDRESS_ONE,
58
+ decimals: 0,
59
+ });
60
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 1000);
61
+ (0, vitest_1.expect)(() => amount.toFixed(3)).toThrow('DECIMALS');
62
+ });
63
+ (0, vitest_1.it)('is correct for 0 decimals', () => {
64
+ const token = new Token_js_1.Token({
65
+ chainId: 1,
66
+ address: ADDRESS_ONE,
67
+ decimals: 0,
68
+ });
69
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 123456);
70
+ (0, vitest_1.expect)(amount.toFixed(0)).toEqual('123456');
71
+ });
72
+ (0, vitest_1.it)('is correct for 18 decimals', () => {
73
+ const token = new Token_js_1.Token({
74
+ chainId: 1,
75
+ address: ADDRESS_ONE,
76
+ decimals: 18,
77
+ });
78
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 1e15);
79
+ (0, vitest_1.expect)(amount.toFixed(9)).toEqual('0.001000000');
80
+ });
81
+ });
82
+ (0, vitest_1.describe)('#toSignificant', () => {
83
+ (0, vitest_1.it)('does not throw for sig figs > currency.decimals', () => {
84
+ const token = new Token_js_1.Token({
85
+ chainId: 1,
86
+ address: ADDRESS_ONE,
87
+ decimals: 0,
88
+ });
89
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 1000);
90
+ (0, vitest_1.expect)(amount.toSignificant(3)).toEqual('1000');
91
+ });
92
+ (0, vitest_1.it)('is correct for 0 decimals', () => {
93
+ const token = new Token_js_1.Token({
94
+ chainId: 1,
95
+ address: ADDRESS_ONE,
96
+ decimals: 0,
97
+ });
98
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 123456);
99
+ (0, vitest_1.expect)(amount.toSignificant(4)).toEqual('123400');
100
+ });
101
+ (0, vitest_1.it)('is correct for 18 decimals', () => {
102
+ const token = new Token_js_1.Token({
103
+ chainId: 1,
104
+ address: ADDRESS_ONE,
105
+ decimals: 18,
106
+ });
107
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 1e15);
108
+ (0, vitest_1.expect)(amount.toSignificant(9)).toEqual('0.001');
109
+ });
110
+ });
111
+ (0, vitest_1.describe)('#toExact', () => {
112
+ (0, vitest_1.it)('does not throw for sig figs > currency.decimals', () => {
113
+ const token = new Token_js_1.Token({
114
+ chainId: 1,
115
+ address: ADDRESS_ONE,
116
+ decimals: 0,
117
+ });
118
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 1000);
119
+ (0, vitest_1.expect)(amount.toExact()).toEqual('1000');
120
+ });
121
+ (0, vitest_1.it)('is correct for 0 decimals', () => {
122
+ const token = new Token_js_1.Token({
123
+ chainId: 1,
124
+ address: ADDRESS_ONE,
125
+ decimals: 0,
126
+ });
127
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 123456);
128
+ (0, vitest_1.expect)(amount.toExact()).toEqual('123456');
129
+ });
130
+ (0, vitest_1.it)('is correct for 18 decimals', () => {
131
+ const token = new Token_js_1.Token({
132
+ chainId: 1,
133
+ address: ADDRESS_ONE,
134
+ decimals: 18,
135
+ });
136
+ const amount = Amount_js_1.Amount.fromRawAmount(token, 123e13);
137
+ (0, vitest_1.expect)(amount.toExact()).toEqual('0.00123');
138
+ });
139
+ });
140
+ });
141
+ //# sourceMappingURL=Amount.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Amount.test.js","sourceRoot":"","sources":["../../src/currency/Amount.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { ChainId } from '../chain/index.js';
2
+ import { Native } from './Native.js';
3
+ import { Token } from './Token.js';
4
+ /**
5
+ * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies
6
+ */
7
+ export declare abstract class Currency {
8
+ /**
9
+ * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)
10
+ */
11
+ abstract readonly isNative: boolean;
12
+ /**
13
+ * Returns whether the currency is a token that is usable in Uniswap without wrapping
14
+ */
15
+ abstract readonly isToken: boolean;
16
+ /**
17
+ * The chain ID on which this currency resides
18
+ */
19
+ readonly chainId: ChainId;
20
+ /**
21
+ * The decimals used in representing currency amounts
22
+ */
23
+ readonly decimals: number;
24
+ /**
25
+ * The symbol of the currency, i.e. a short textual non-unique identifier
26
+ */
27
+ readonly symbol?: string | undefined;
28
+ /**
29
+ * The name of the currency, i.e. a descriptive textual non-unique identifier
30
+ */
31
+ readonly name?: string | undefined;
32
+ /**
33
+ * Constructs an instance of the abstract class `Currency`.
34
+ * @param chainId the chain ID on which this currency resides
35
+ * @param decimals decimals of the currency
36
+ * @param symbol symbol of the currency
37
+ * @param name of the currency
38
+ * @param rebase of the currency
39
+ */
40
+ protected constructor({ chainId: _chainId, decimals: _decimals, symbol, name, }: {
41
+ chainId: number | string;
42
+ decimals: number | string;
43
+ symbol?: string | undefined;
44
+ name?: string | undefined;
45
+ });
46
+ /**
47
+ * Returns whether this currency is functionally equivalent to the other currency
48
+ * @param other the other currency
49
+ */
50
+ abstract equals(other: Native | Token): boolean;
51
+ /**
52
+ * Return the wrapped version of this currency
53
+ */
54
+ abstract get wrapped(): Token;
55
+ }
56
+ //# sourceMappingURL=Currency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Currency.d.ts","sourceRoot":"","sources":["../../src/currency/Currency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;GAEG;AACH,8BAAsB,QAAQ;IAC5B;;OAEG;IACH,kBAAyB,QAAQ,EAAE,OAAO,CAAA;IAC1C;;OAEG;IACH,kBAAyB,OAAO,EAAE,OAAO,CAAA;IACzC;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC;;OAEG;IACH,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAChC;;OAEG;IACH,SAAgB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C;;OAEG;IACH,SAAgB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzC;;;;;;;OAOG;IACH,SAAS,aAAa,EACpB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,IAAI,GACL,EAAE;QACD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;QACxB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;QACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B;IAeD;;;OAGG;aACa,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO;IAEtD;;OAEG;IACH,aAAoB,OAAO,IAAI,KAAK,CAAA;CACrC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Currency = void 0;
7
+ const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
8
+ /**
9
+ * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies
10
+ */
11
+ class Currency {
12
+ /**
13
+ * The chain ID on which this currency resides
14
+ */
15
+ chainId;
16
+ /**
17
+ * The decimals used in representing currency amounts
18
+ */
19
+ decimals;
20
+ /**
21
+ * The symbol of the currency, i.e. a short textual non-unique identifier
22
+ */
23
+ symbol;
24
+ /**
25
+ * The name of the currency, i.e. a descriptive textual non-unique identifier
26
+ */
27
+ name;
28
+ /**
29
+ * Constructs an instance of the abstract class `Currency`.
30
+ * @param chainId the chain ID on which this currency resides
31
+ * @param decimals decimals of the currency
32
+ * @param symbol symbol of the currency
33
+ * @param name of the currency
34
+ * @param rebase of the currency
35
+ */
36
+ constructor({ chainId: _chainId, decimals: _decimals, symbol, name, }) {
37
+ const chainId = Number(_chainId);
38
+ const decimals = Number(_decimals);
39
+ (0, tiny_invariant_1.default)(Number.isSafeInteger(chainId), 'CHAIN_ID');
40
+ (0, tiny_invariant_1.default)(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS');
41
+ this.chainId = chainId;
42
+ this.decimals = decimals;
43
+ this.symbol = symbol;
44
+ this.name = name;
45
+ }
46
+ }
47
+ exports.Currency = Currency;
48
+ //# sourceMappingURL=Currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Currency.js","sourceRoot":"","sources":["../../src/currency/Currency.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AAMtC;;GAEG;AACH,MAAsB,QAAQ;IAS5B;;OAEG;IACa,OAAO,CAAS;IAChC;;OAEG;IACa,QAAQ,CAAQ;IAChC;;OAEG;IACa,MAAM,CAAqB;IAC3C;;OAEG;IACa,IAAI,CAAqB;IAEzC;;;;;;;OAOG;IACH,YAAsB,EACpB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,IAAI,GAML;QACC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAY,CAAA;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,IAAA,wBAAS,EAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAA;QACpD,IAAA,wBAAS,EACP,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC7D,UAAU,CACX,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CAYF;AArED,4BAqEC"}
@@ -0,0 +1,24 @@
1
+ import { Currency } from './Currency.js';
2
+ import { Token } from './Token.js';
3
+ import { type Type } from './Type.js';
4
+ import { type SerializedNative } from './zod.js';
5
+ export declare class Native extends Currency {
6
+ readonly id: string;
7
+ readonly isNative: true;
8
+ readonly isToken: false;
9
+ readonly symbol: string;
10
+ readonly name: string;
11
+ protected constructor(native: {
12
+ chainId: number;
13
+ decimals: number;
14
+ symbol: string;
15
+ name: string;
16
+ });
17
+ get wrapped(): Token;
18
+ private static cache;
19
+ static onChain(chainId: number): Native;
20
+ equals(other: Type): boolean;
21
+ serialize(): SerializedNative;
22
+ static deserialize(native: SerializedNative): Native;
23
+ }
24
+ //# sourceMappingURL=Native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Native.d.ts","sourceRoot":"","sources":["../../src/currency/Native.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,KAAK,gBAAgB,EAAgB,MAAM,UAAU,CAAA;AAE9D,qBAAa,MAAO,SAAQ,QAAQ;IAClC,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,QAAQ,OAAgB;IACxC,SAAgB,OAAO,QAAiB;IACxC,SAAyB,MAAM,EAAE,MAAM,CAAA;IACvC,SAAyB,IAAI,EAAE,MAAM,CAAA;IACrC,SAAS,aAAa,MAAM,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;KACb;IAMD,IAAW,OAAO,IAAI,KAAK,CAI1B;IAMD,OAAO,CAAC,MAAM,CAAC,KAAK,CAA6B;WAEnC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA8BvC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAI5B,SAAS,IAAI,gBAAgB;WAUtB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAG5D"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Native = void 0;
7
+ const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
8
+ const index_js_1 = require("../chain/index.js");
9
+ const Currency_js_1 = require("./Currency.js");
10
+ const tokens_js_1 = require("./constants/tokens.js");
11
+ const zod_js_1 = require("./zod.js");
12
+ class Native extends Currency_js_1.Currency {
13
+ id;
14
+ isNative = true;
15
+ isToken = false;
16
+ symbol;
17
+ name;
18
+ constructor(native) {
19
+ super(native);
20
+ this.id = `${native.chainId}:NATIVE`;
21
+ this.symbol = native.symbol;
22
+ this.name = native.name;
23
+ }
24
+ get wrapped() {
25
+ const wnative = tokens_js_1.WNATIVE[this.chainId];
26
+ (0, tiny_invariant_1.default)(!!wnative, 'WRAPPED');
27
+ return wnative;
28
+ }
29
+ // public get tokenURI(): string {
30
+ // return `native-currency/${this.symbol.toLowerCase()}.svg`
31
+ // }
32
+ static cache = {};
33
+ static onChain(chainId) {
34
+ const cached = this.cache[chainId];
35
+ if (typeof cached !== 'undefined') {
36
+ return cached;
37
+ }
38
+ const nativeCurrency = index_js_1.natives?.[chainId];
39
+ (0, tiny_invariant_1.default)(!!nativeCurrency, 'NATIVE_CURRENCY');
40
+ const { decimals, name, symbol } = nativeCurrency;
41
+ const native = new Native({
42
+ chainId,
43
+ decimals,
44
+ name,
45
+ symbol,
46
+ });
47
+ this.cache[chainId] = new Native({
48
+ chainId,
49
+ decimals,
50
+ name,
51
+ symbol,
52
+ });
53
+ return native;
54
+ }
55
+ equals(other) {
56
+ return other.isNative && other.chainId === this.chainId;
57
+ }
58
+ serialize() {
59
+ return zod_js_1.nativeSchema.parse({
60
+ isNative: this.isNative,
61
+ name: this.name,
62
+ symbol: this.symbol,
63
+ decimals: this.decimals,
64
+ chainId: this.chainId,
65
+ });
66
+ }
67
+ static deserialize(native) {
68
+ return Native.onChain(native.chainId);
69
+ }
70
+ }
71
+ exports.Native = Native;
72
+ //# sourceMappingURL=Native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Native.js","sourceRoot":"","sources":["../../src/currency/Native.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AACtC,gDAA2C;AAE3C,+CAAwC;AAGxC,qDAA+C;AAC/C,qCAA8D;AAE9D,MAAa,MAAO,SAAQ,sBAAQ;IAClB,EAAE,CAAQ;IACV,QAAQ,GAAG,IAAa,CAAA;IACxB,OAAO,GAAG,KAAc,CAAA;IACf,MAAM,CAAQ;IACd,IAAI,CAAQ;IACrC,YAAsB,MAKrB;QACC,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,SAAS,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IACD,IAAW,OAAO;QAChB,MAAM,OAAO,GAAG,mBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACrC,IAAA,wBAAS,EAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC/B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,kCAAkC;IAClC,8DAA8D;IAC9D,IAAI;IAEI,MAAM,CAAC,KAAK,GAA2B,EAAE,CAAA;IAE1C,MAAM,CAAC,OAAO,CAAC,OAAe;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAElC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO,MAAM,CAAA;SACd;QAED,MAAM,cAAc,GAAG,kBAAO,EAAE,CAAC,OAAO,CAAC,CAAA;QAEzC,IAAA,wBAAS,EAAC,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;QAE9C,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAA;QAEjD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,OAAO;YACP,QAAQ;YACR,IAAI;YACJ,MAAM;SACP,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC;YAC/B,OAAO;YACP,QAAQ;YACR,IAAI;YACJ,MAAM;SACP,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,MAAM,CAAC,KAAW;QACvB,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAA;IACzD,CAAC;IAEM,SAAS;QACd,OAAO,qBAAY,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;;AA3EH,wBA4EC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Native.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Native.test.d.ts","sourceRoot":"","sources":["../../src/currency/Native.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const Native_js_1 = require("./Native.js");
5
+ const Token_js_1 = require("./Token.js");
6
+ (0, vitest_1.describe)('Currency', () => {
7
+ const ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';
8
+ const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
9
+ const t0 = new Token_js_1.Token({ chainId: 1, address: ADDRESS_ZERO, decimals: 18 });
10
+ const t1 = new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 });
11
+ (0, vitest_1.describe)('#equals', () => {
12
+ (0, vitest_1.it)('ether on same chains is ether', () => {
13
+ (0, vitest_1.expect)(Native_js_1.Native.onChain(1).equals(Native_js_1.Native.onChain(1)));
14
+ });
15
+ (0, vitest_1.it)('ether is not token0', () => {
16
+ (0, vitest_1.expect)(Native_js_1.Native.onChain(1).equals(t0)).toStrictEqual(false);
17
+ });
18
+ (0, vitest_1.it)('token1 is not token0', () => {
19
+ (0, vitest_1.expect)(t1.equals(t0)).toStrictEqual(false);
20
+ });
21
+ (0, vitest_1.it)('token0 is token0', () => {
22
+ (0, vitest_1.expect)(t0.equals(t0)).toStrictEqual(true);
23
+ });
24
+ (0, vitest_1.it)('token0 is equal to another token0', () => {
25
+ (0, vitest_1.expect)(t0.equals(new Token_js_1.Token({
26
+ chainId: 1,
27
+ address: ADDRESS_ZERO,
28
+ decimals: 18,
29
+ symbol: 'symbol',
30
+ name: 'name',
31
+ }))).toStrictEqual(true);
32
+ });
33
+ (0, vitest_1.it)('throws if chain id is not known', () => {
34
+ (0, vitest_1.expect)(() => Native_js_1.Native.onChain(Number.MAX_SAFE_INTEGER)).toThrow('NATIVE_CURRENCY');
35
+ });
36
+ });
37
+ });
38
+ //# sourceMappingURL=Native.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Native.test.js","sourceRoot":"","sources":["../../src/currency/Native.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,2CAAoC;AACpC,yCAAkC;AAElC,IAAA,iBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,YAAY,GAAG,4CAA4C,CAAA;IACjE,MAAM,WAAW,GAAG,4CAA4C,CAAA;IAEhE,MAAM,EAAE,GAAG,IAAI,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IACzE,MAAM,EAAE,GAAG,IAAI,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IAExE,IAAA,iBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;QACvB,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,IAAA,eAAM,EAAC,kBAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,IAAA,eAAM,EAAC,kBAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,IAAA,eAAM,EAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,IAAA,eAAM,EAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,IAAA,eAAM,EACJ,EAAE,CAAC,MAAM,CACP,IAAI,gBAAK,CAAC;gBACR,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,MAAM;aACb,CAAC,CACH,CACF,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,kBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAC3D,iBAAiB,CAClB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { type BigintIsh, Fraction, Rounding } from '../math/index.js';
2
+ import { Amount } from './Amount.js';
3
+ import { type Type } from './Type.js';
4
+ export declare class Price<TBase extends Type, TQuote extends Type> extends Fraction {
5
+ readonly baseCurrency: TBase;
6
+ readonly quoteCurrency: TQuote;
7
+ readonly scalar: Fraction;
8
+ /**
9
+ * Construct a price, either with the base and quote currency amount, or the
10
+ * @param args
11
+ */
12
+ constructor(...args: [TBase, TQuote, BigintIsh, BigintIsh] | [
13
+ {
14
+ baseAmount: Amount<TBase>;
15
+ quoteAmount: Amount<TQuote>;
16
+ }
17
+ ]);
18
+ /**
19
+ * Flip the price, switching the base and quote currency
20
+ */
21
+ invert(): Price<TQuote, TBase>;
22
+ /**
23
+ * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency
24
+ * @param other the other price
25
+ */
26
+ multiply<TOtherQuote extends Type>(other: Price<TQuote, TOtherQuote>): Price<TBase, TOtherQuote>;
27
+ /**
28
+ * Return the amount of quote currency corresponding to a given amount of the base currency
29
+ * @param currencyAmount the amount of base currency to quote against the price
30
+ */
31
+ quote(currencyAmount: Amount<TBase>): Amount<TQuote>;
32
+ /**
33
+ * Get the value scaled by decimals for formatting
34
+ * @private
35
+ */
36
+ private get adjustedForDecimals();
37
+ toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
38
+ toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
39
+ }
40
+ //# sourceMappingURL=Price.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Price.d.ts","sourceRoot":"","sources":["../../src/currency/Price.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,qBAAa,KAAK,CAAC,KAAK,SAAS,IAAI,EAAE,MAAM,SAAS,IAAI,CAAE,SAAQ,QAAQ;IAC1E,SAAgB,YAAY,EAAE,KAAK,CAAA;IACnC,SAAgB,aAAa,EAAE,MAAM,CAAA;IACrC,SAAgB,MAAM,EAAE,QAAQ,CAAA;IAEhC;;;OAGG;gBAED,GAAG,IAAI,EACH,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,GACrC;QACE;YACE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACzB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;SAC5B;KACF;IA4BP;;OAEG;IACa,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;IAS9C;;;OAGG;IACa,QAAQ,CAAC,WAAW,SAAS,IAAI,EAC/C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,GAChC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;IAW5B;;;OAGG;IACI,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAU3D;;;OAGG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAEe,aAAa,CAC3B,iBAAiB,SAAI,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM;IAQO,OAAO,CACrB,aAAa,SAAI,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM;CAGV"}