sushi 3.2.4 → 4.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 (522) hide show
  1. package/dist/_cjs/calculate/fee.js +2 -2
  2. package/dist/_cjs/calculate/fee.js.map +1 -1
  3. package/dist/_cjs/index.js +0 -3
  4. package/dist/_cjs/index.js.map +1 -1
  5. package/dist/_cjs/math/functions/get-big-int.js +15 -0
  6. package/dist/_cjs/math/functions/get-big-int.js.map +1 -0
  7. package/dist/_cjs/math/functions/index.js +3 -1
  8. package/dist/_cjs/math/functions/index.js.map +1 -1
  9. package/dist/_cjs/router/index.js +27 -11
  10. package/dist/_cjs/router/index.js.map +1 -1
  11. package/dist/_cjs/router/pool-type.js +14 -0
  12. package/dist/_cjs/router/pool-type.js.map +1 -0
  13. package/dist/_cjs/router/route-status.js +10 -0
  14. package/dist/_cjs/router/route-status.js.map +1 -0
  15. package/dist/_cjs/router/router-liquidity-source.js +9 -0
  16. package/dist/_cjs/router/router-liquidity-source.js.map +1 -0
  17. package/dist/_cjs/validate/index.js +1 -0
  18. package/dist/_cjs/validate/index.js.map +1 -1
  19. package/dist/_cjs/{serializer/AddressValidation.js → validate/isAddressFast.js} +1 -1
  20. package/dist/_cjs/validate/isAddressFast.js.map +1 -0
  21. package/dist/_esm/calculate/fee.js +1 -1
  22. package/dist/_esm/calculate/fee.js.map +1 -1
  23. package/dist/_esm/index.js +0 -3
  24. package/dist/_esm/index.js.map +1 -1
  25. package/dist/_esm/math/functions/get-big-int.js +12 -0
  26. package/dist/_esm/math/functions/get-big-int.js.map +1 -0
  27. package/dist/_esm/math/functions/index.js +1 -0
  28. package/dist/_esm/math/functions/index.js.map +1 -1
  29. package/dist/_esm/router/get-currency-combinations.js +0 -2
  30. package/dist/_esm/router/get-currency-combinations.js.map +1 -1
  31. package/dist/_esm/router/index.js +21 -11
  32. package/dist/_esm/router/index.js.map +1 -1
  33. package/dist/_esm/router/pool-type.js +11 -0
  34. package/dist/_esm/router/pool-type.js.map +1 -0
  35. package/dist/_esm/router/route-status.js +7 -0
  36. package/dist/_esm/router/route-status.js.map +1 -0
  37. package/dist/_esm/router/router-liquidity-source.js +6 -0
  38. package/dist/_esm/router/router-liquidity-source.js.map +1 -0
  39. package/dist/_esm/validate/index.js +1 -0
  40. package/dist/_esm/validate/index.js.map +1 -1
  41. package/dist/_esm/{serializer/AddressValidation.js → validate/isAddressFast.js} +1 -1
  42. package/dist/_esm/validate/isAddressFast.js.map +1 -0
  43. package/dist/_types/index.d.ts +0 -3
  44. package/dist/_types/index.d.ts.map +1 -1
  45. package/dist/_types/math/functions/get-big-int.d.ts +2 -0
  46. package/dist/_types/math/functions/get-big-int.d.ts.map +1 -0
  47. package/dist/_types/math/functions/index.d.ts +1 -0
  48. package/dist/_types/math/functions/index.d.ts.map +1 -1
  49. package/dist/_types/router/get-currency-combinations.d.ts +2 -2
  50. package/dist/_types/router/get-currency-combinations.d.ts.map +1 -1
  51. package/dist/_types/router/index.d.ts +24 -11
  52. package/dist/_types/router/index.d.ts.map +1 -1
  53. package/dist/_types/router/pool-type.d.ts +10 -0
  54. package/dist/_types/router/pool-type.d.ts.map +1 -0
  55. package/dist/_types/router/route-status.d.ts +6 -0
  56. package/dist/_types/router/route-status.d.ts.map +1 -0
  57. package/dist/_types/router/router-liquidity-source.d.ts +5 -0
  58. package/dist/_types/router/router-liquidity-source.d.ts.map +1 -0
  59. package/dist/_types/validate/index.d.ts +1 -0
  60. package/dist/_types/validate/index.d.ts.map +1 -1
  61. package/dist/_types/{serializer/AddressValidation.d.ts → validate/isAddressFast.d.ts} +1 -1
  62. package/dist/_types/validate/isAddressFast.d.ts.map +1 -0
  63. package/package.json +1 -25
  64. package/dist/_cjs/pricing/IncrementalPricer.js +0 -375
  65. package/dist/_cjs/pricing/IncrementalPricer.js.map +0 -1
  66. package/dist/_cjs/pricing/PoolTokenGraph.js +0 -58
  67. package/dist/_cjs/pricing/PoolTokenGraph.js.map +0 -1
  68. package/dist/_cjs/pricing/index.js +0 -18
  69. package/dist/_cjs/pricing/index.js.map +0 -1
  70. package/dist/_cjs/router/HEXer.js +0 -112
  71. package/dist/_cjs/router/HEXer.js.map +0 -1
  72. package/dist/_cjs/router/PoolBinarySerialization.js +0 -466
  73. package/dist/_cjs/router/PoolBinarySerialization.js.map +0 -1
  74. package/dist/_cjs/router/Sankey.AnyChart.js +0 -25
  75. package/dist/_cjs/router/Sankey.AnyChart.js.map +0 -1
  76. package/dist/_cjs/router/curve-sdk.js +0 -204
  77. package/dist/_cjs/router/curve-sdk.js.map +0 -1
  78. package/dist/_cjs/router/data-fetcher.js +0 -159
  79. package/dist/_cjs/router/data-fetcher.js.map +0 -1
  80. package/dist/_cjs/router/liquidity-providers/ApeSwap.js +0 -31
  81. package/dist/_cjs/router/liquidity-providers/ApeSwap.js.map +0 -1
  82. package/dist/_cjs/router/liquidity-providers/Biswap.js +0 -26
  83. package/dist/_cjs/router/liquidity-providers/Biswap.js.map +0 -1
  84. package/dist/_cjs/router/liquidity-providers/CurvePoolsWhitelist.js +0 -3983
  85. package/dist/_cjs/router/liquidity-providers/CurvePoolsWhitelist.js.map +0 -1
  86. package/dist/_cjs/router/liquidity-providers/CurveProvider.js +0 -398
  87. package/dist/_cjs/router/liquidity-providers/CurveProvider.js.map +0 -1
  88. package/dist/_cjs/router/liquidity-providers/CurveProviderWhitelist.js +0 -99
  89. package/dist/_cjs/router/liquidity-providers/CurveProviderWhitelist.js.map +0 -1
  90. package/dist/_cjs/router/liquidity-providers/Dfyn.js +0 -31
  91. package/dist/_cjs/router/liquidity-providers/Dfyn.js.map +0 -1
  92. package/dist/_cjs/router/liquidity-providers/DovishV3.js +0 -28
  93. package/dist/_cjs/router/liquidity-providers/DovishV3.js.map +0 -1
  94. package/dist/_cjs/router/liquidity-providers/Elk.js +0 -47
  95. package/dist/_cjs/router/liquidity-providers/Elk.js.map +0 -1
  96. package/dist/_cjs/router/liquidity-providers/HoneySwap.js +0 -25
  97. package/dist/_cjs/router/liquidity-providers/HoneySwap.js.map +0 -1
  98. package/dist/_cjs/router/liquidity-providers/JetSwap.js +0 -29
  99. package/dist/_cjs/router/liquidity-providers/JetSwap.js.map +0 -1
  100. package/dist/_cjs/router/liquidity-providers/LaserSwap.js +0 -26
  101. package/dist/_cjs/router/liquidity-providers/LaserSwap.js.map +0 -1
  102. package/dist/_cjs/router/liquidity-providers/LiquidityProvider.js +0 -100
  103. package/dist/_cjs/router/liquidity-providers/LiquidityProvider.js.map +0 -1
  104. package/dist/_cjs/router/liquidity-providers/NativeWrapProvider.js +0 -46
  105. package/dist/_cjs/router/liquidity-providers/NativeWrapProvider.js.map +0 -1
  106. package/dist/_cjs/router/liquidity-providers/NetSwap.js +0 -25
  107. package/dist/_cjs/router/liquidity-providers/NetSwap.js.map +0 -1
  108. package/dist/_cjs/router/liquidity-providers/PancakeSwap.js +0 -28
  109. package/dist/_cjs/router/liquidity-providers/PancakeSwap.js.map +0 -1
  110. package/dist/_cjs/router/liquidity-providers/QuickSwap.js +0 -25
  111. package/dist/_cjs/router/liquidity-providers/QuickSwap.js.map +0 -1
  112. package/dist/_cjs/router/liquidity-providers/SpookySwap.js +0 -25
  113. package/dist/_cjs/router/liquidity-providers/SpookySwap.js.map +0 -1
  114. package/dist/_cjs/router/liquidity-providers/SushiSwapV2.js +0 -20
  115. package/dist/_cjs/router/liquidity-providers/SushiSwapV2.js.map +0 -1
  116. package/dist/_cjs/router/liquidity-providers/SushiSwapV3.js +0 -106
  117. package/dist/_cjs/router/liquidity-providers/SushiSwapV3.js.map +0 -1
  118. package/dist/_cjs/router/liquidity-providers/TraderJoe.js +0 -25
  119. package/dist/_cjs/router/liquidity-providers/TraderJoe.js.map +0 -1
  120. package/dist/_cjs/router/liquidity-providers/UbeSwap.js +0 -25
  121. package/dist/_cjs/router/liquidity-providers/UbeSwap.js.map +0 -1
  122. package/dist/_cjs/router/liquidity-providers/UniswapV2.js +0 -25
  123. package/dist/_cjs/router/liquidity-providers/UniswapV2.js.map +0 -1
  124. package/dist/_cjs/router/liquidity-providers/UniswapV2Base.js +0 -112
  125. package/dist/_cjs/router/liquidity-providers/UniswapV2Base.js.map +0 -1
  126. package/dist/_cjs/router/liquidity-providers/UniswapV3.js +0 -43
  127. package/dist/_cjs/router/liquidity-providers/UniswapV3.js.map +0 -1
  128. package/dist/_cjs/router/liquidity-providers/UniswapV3Base.js +0 -281
  129. package/dist/_cjs/router/liquidity-providers/UniswapV3Base.js.map +0 -1
  130. package/dist/_cjs/router/liquidity-providers/index.js +0 -27
  131. package/dist/_cjs/router/liquidity-providers/index.js.map +0 -1
  132. package/dist/_cjs/router/pool-codes/BentoBridge.js +0 -82
  133. package/dist/_cjs/router/pool-codes/BentoBridge.js.map +0 -1
  134. package/dist/_cjs/router/pool-codes/BentoPool.js +0 -47
  135. package/dist/_cjs/router/pool-codes/BentoPool.js.map +0 -1
  136. package/dist/_cjs/router/pool-codes/Bridge.js +0 -7
  137. package/dist/_cjs/router/pool-codes/Bridge.js.map +0 -1
  138. package/dist/_cjs/router/pool-codes/ConstantProductPool.js +0 -42
  139. package/dist/_cjs/router/pool-codes/ConstantProductPool.js.map +0 -1
  140. package/dist/_cjs/router/pool-codes/CurvePool.js +0 -43
  141. package/dist/_cjs/router/pool-codes/CurvePool.js.map +0 -1
  142. package/dist/_cjs/router/pool-codes/NativeWrapBridge.js +0 -50
  143. package/dist/_cjs/router/pool-codes/NativeWrapBridge.js.map +0 -1
  144. package/dist/_cjs/router/pool-codes/PoolCode.js +0 -35
  145. package/dist/_cjs/router/pool-codes/PoolCode.js.map +0 -1
  146. package/dist/_cjs/router/pool-codes/TridentCLPool.js +0 -27
  147. package/dist/_cjs/router/pool-codes/TridentCLPool.js.map +0 -1
  148. package/dist/_cjs/router/pool-codes/UniV3Pool.js +0 -27
  149. package/dist/_cjs/router/pool-codes/UniV3Pool.js.map +0 -1
  150. package/dist/_cjs/router/pool-codes/UniV4Pool.js +0 -40
  151. package/dist/_cjs/router/pool-codes/UniV4Pool.js.map +0 -1
  152. package/dist/_cjs/router/pool-codes/index.js +0 -22
  153. package/dist/_cjs/router/pool-codes/index.js.map +0 -1
  154. package/dist/_cjs/router/router.js +0 -352
  155. package/dist/_cjs/router/router.js.map +0 -1
  156. package/dist/_cjs/router/routingBases.js +0 -55
  157. package/dist/_cjs/router/routingBases.js.map +0 -1
  158. package/dist/_cjs/router/tines-to-route-processor-2.js +0 -187
  159. package/dist/_cjs/router/tines-to-route-processor-2.js.map +0 -1
  160. package/dist/_cjs/router/tines-to-route-processor-4.js +0 -69
  161. package/dist/_cjs/router/tines-to-route-processor-4.js.map +0 -1
  162. package/dist/_cjs/router/tines-to-route-processor-6.js +0 -17
  163. package/dist/_cjs/router/tines-to-route-processor-6.js.map +0 -1
  164. package/dist/_cjs/router/tines-to-route-processor.js +0 -192
  165. package/dist/_cjs/router/tines-to-route-processor.js.map +0 -1
  166. package/dist/_cjs/serializer/AddressValidation.js.map +0 -1
  167. package/dist/_cjs/serializer/BinarySerialization.js +0 -256
  168. package/dist/_cjs/serializer/BinarySerialization.js.map +0 -1
  169. package/dist/_cjs/serializer/index.js +0 -18
  170. package/dist/_cjs/serializer/index.js.map +0 -1
  171. package/dist/_cjs/tines/BridgeBento.js +0 -116
  172. package/dist/_cjs/tines/BridgeBento.js.map +0 -1
  173. package/dist/_cjs/tines/BridgeBidirectionalUnlimited.js +0 -26
  174. package/dist/_cjs/tines/BridgeBidirectionalUnlimited.js.map +0 -1
  175. package/dist/_cjs/tines/BridgeStargateV04OneWay.js +0 -44
  176. package/dist/_cjs/tines/BridgeStargateV04OneWay.js.map +0 -1
  177. package/dist/_cjs/tines/CLPool.js +0 -248
  178. package/dist/_cjs/tines/CLPool.js.map +0 -1
  179. package/dist/_cjs/tines/CurveMultitokenPool.js +0 -238
  180. package/dist/_cjs/tines/CurveMultitokenPool.js.map +0 -1
  181. package/dist/_cjs/tines/CurveMultitokenPoolSingle.js +0 -195
  182. package/dist/_cjs/tines/CurveMultitokenPoolSingle.js.map +0 -1
  183. package/dist/_cjs/tines/CurvePool.js +0 -121
  184. package/dist/_cjs/tines/CurvePool.js.map +0 -1
  185. package/dist/_cjs/tines/Graph.js +0 -1187
  186. package/dist/_cjs/tines/Graph.js.map +0 -1
  187. package/dist/_cjs/tines/MultiRouter.js +0 -192
  188. package/dist/_cjs/tines/MultiRouter.js.map +0 -1
  189. package/dist/_cjs/tines/PrimaryPools.js +0 -147
  190. package/dist/_cjs/tines/PrimaryPools.js.map +0 -1
  191. package/dist/_cjs/tines/RPool.js +0 -77
  192. package/dist/_cjs/tines/RPool.js.map +0 -1
  193. package/dist/_cjs/tines/StableSwapPool.js +0 -222
  194. package/dist/_cjs/tines/StableSwapPool.js.map +0 -1
  195. package/dist/_cjs/tines/StarGateFeesV04.js +0 -113
  196. package/dist/_cjs/tines/StarGateFeesV04.js.map +0 -1
  197. package/dist/_cjs/tines/UniV3Pool.js +0 -291
  198. package/dist/_cjs/tines/UniV3Pool.js.map +0 -1
  199. package/dist/_cjs/tines/UniV4Pool.js +0 -28
  200. package/dist/_cjs/tines/UniV4Pool.js.map +0 -1
  201. package/dist/_cjs/tines/Utils.js +0 -113
  202. package/dist/_cjs/tines/Utils.js.map +0 -1
  203. package/dist/_cjs/tines/constants/hybrid.js +0 -5
  204. package/dist/_cjs/tines/constants/hybrid.js.map +0 -1
  205. package/dist/_cjs/tines/constants/index.js +0 -18
  206. package/dist/_cjs/tines/constants/index.js.map +0 -1
  207. package/dist/_cjs/tines/functions/computeHybridLiquidity.js +0 -25
  208. package/dist/_cjs/tines/functions/computeHybridLiquidity.js.map +0 -1
  209. package/dist/_cjs/tines/functions/convertTokenToBento.js +0 -13
  210. package/dist/_cjs/tines/functions/convertTokenToBento.js.map +0 -1
  211. package/dist/_cjs/tines/functions/getBentoChainId.js +0 -7
  212. package/dist/_cjs/tines/functions/getBentoChainId.js.map +0 -1
  213. package/dist/_cjs/tines/functions/index.js +0 -10
  214. package/dist/_cjs/tines/functions/index.js.map +0 -1
  215. package/dist/_cjs/tines/index.js +0 -34
  216. package/dist/_cjs/tines/index.js.map +0 -1
  217. package/dist/_esm/pricing/IncrementalPricer.js +0 -430
  218. package/dist/_esm/pricing/IncrementalPricer.js.map +0 -1
  219. package/dist/_esm/pricing/PoolTokenGraph.js +0 -56
  220. package/dist/_esm/pricing/PoolTokenGraph.js.map +0 -1
  221. package/dist/_esm/pricing/index.js +0 -2
  222. package/dist/_esm/pricing/index.js.map +0 -1
  223. package/dist/_esm/router/HEXer.js +0 -110
  224. package/dist/_esm/router/HEXer.js.map +0 -1
  225. package/dist/_esm/router/PoolBinarySerialization.js +0 -471
  226. package/dist/_esm/router/PoolBinarySerialization.js.map +0 -1
  227. package/dist/_esm/router/Sankey.AnyChart.js +0 -25
  228. package/dist/_esm/router/Sankey.AnyChart.js.map +0 -1
  229. package/dist/_esm/router/curve-sdk.js +0 -215
  230. package/dist/_esm/router/curve-sdk.js.map +0 -1
  231. package/dist/_esm/router/data-fetcher.js +0 -188
  232. package/dist/_esm/router/data-fetcher.js.map +0 -1
  233. package/dist/_esm/router/liquidity-providers/ApeSwap.js +0 -27
  234. package/dist/_esm/router/liquidity-providers/ApeSwap.js.map +0 -1
  235. package/dist/_esm/router/liquidity-providers/Biswap.js +0 -22
  236. package/dist/_esm/router/liquidity-providers/Biswap.js.map +0 -1
  237. package/dist/_esm/router/liquidity-providers/CurvePoolsWhitelist.js +0 -3980
  238. package/dist/_esm/router/liquidity-providers/CurvePoolsWhitelist.js.map +0 -1
  239. package/dist/_esm/router/liquidity-providers/CurveProvider.js +0 -473
  240. package/dist/_esm/router/liquidity-providers/CurveProvider.js.map +0 -1
  241. package/dist/_esm/router/liquidity-providers/CurveProviderWhitelist.js +0 -200
  242. package/dist/_esm/router/liquidity-providers/CurveProviderWhitelist.js.map +0 -1
  243. package/dist/_esm/router/liquidity-providers/Dfyn.js +0 -27
  244. package/dist/_esm/router/liquidity-providers/Dfyn.js.map +0 -1
  245. package/dist/_esm/router/liquidity-providers/DovishV3.js +0 -24
  246. package/dist/_esm/router/liquidity-providers/DovishV3.js.map +0 -1
  247. package/dist/_esm/router/liquidity-providers/Elk.js +0 -51
  248. package/dist/_esm/router/liquidity-providers/Elk.js.map +0 -1
  249. package/dist/_esm/router/liquidity-providers/HoneySwap.js +0 -21
  250. package/dist/_esm/router/liquidity-providers/HoneySwap.js.map +0 -1
  251. package/dist/_esm/router/liquidity-providers/JetSwap.js +0 -25
  252. package/dist/_esm/router/liquidity-providers/JetSwap.js.map +0 -1
  253. package/dist/_esm/router/liquidity-providers/LaserSwap.js +0 -22
  254. package/dist/_esm/router/liquidity-providers/LaserSwap.js.map +0 -1
  255. package/dist/_esm/router/liquidity-providers/LiquidityProvider.js +0 -106
  256. package/dist/_esm/router/liquidity-providers/LiquidityProvider.js.map +0 -1
  257. package/dist/_esm/router/liquidity-providers/NativeWrapProvider.js +0 -42
  258. package/dist/_esm/router/liquidity-providers/NativeWrapProvider.js.map +0 -1
  259. package/dist/_esm/router/liquidity-providers/NetSwap.js +0 -21
  260. package/dist/_esm/router/liquidity-providers/NetSwap.js.map +0 -1
  261. package/dist/_esm/router/liquidity-providers/PancakeSwap.js +0 -24
  262. package/dist/_esm/router/liquidity-providers/PancakeSwap.js.map +0 -1
  263. package/dist/_esm/router/liquidity-providers/QuickSwap.js +0 -21
  264. package/dist/_esm/router/liquidity-providers/QuickSwap.js.map +0 -1
  265. package/dist/_esm/router/liquidity-providers/SpookySwap.js +0 -21
  266. package/dist/_esm/router/liquidity-providers/SpookySwap.js.map +0 -1
  267. package/dist/_esm/router/liquidity-providers/SushiSwapV2.js +0 -17
  268. package/dist/_esm/router/liquidity-providers/SushiSwapV2.js.map +0 -1
  269. package/dist/_esm/router/liquidity-providers/SushiSwapV3.js +0 -102
  270. package/dist/_esm/router/liquidity-providers/SushiSwapV3.js.map +0 -1
  271. package/dist/_esm/router/liquidity-providers/TraderJoe.js +0 -21
  272. package/dist/_esm/router/liquidity-providers/TraderJoe.js.map +0 -1
  273. package/dist/_esm/router/liquidity-providers/UbeSwap.js +0 -21
  274. package/dist/_esm/router/liquidity-providers/UbeSwap.js.map +0 -1
  275. package/dist/_esm/router/liquidity-providers/UniswapV2.js +0 -21
  276. package/dist/_esm/router/liquidity-providers/UniswapV2.js.map +0 -1
  277. package/dist/_esm/router/liquidity-providers/UniswapV2Base.js +0 -112
  278. package/dist/_esm/router/liquidity-providers/UniswapV2Base.js.map +0 -1
  279. package/dist/_esm/router/liquidity-providers/UniswapV3.js +0 -39
  280. package/dist/_esm/router/liquidity-providers/UniswapV3.js.map +0 -1
  281. package/dist/_esm/router/liquidity-providers/UniswapV3Base.js +0 -286
  282. package/dist/_esm/router/liquidity-providers/UniswapV3Base.js.map +0 -1
  283. package/dist/_esm/router/liquidity-providers/index.js +0 -9
  284. package/dist/_esm/router/liquidity-providers/index.js.map +0 -1
  285. package/dist/_esm/router/pool-codes/BentoBridge.js +0 -86
  286. package/dist/_esm/router/pool-codes/BentoBridge.js.map +0 -1
  287. package/dist/_esm/router/pool-codes/BentoPool.js +0 -48
  288. package/dist/_esm/router/pool-codes/BentoPool.js.map +0 -1
  289. package/dist/_esm/router/pool-codes/Bridge.js +0 -4
  290. package/dist/_esm/router/pool-codes/Bridge.js.map +0 -1
  291. package/dist/_esm/router/pool-codes/ConstantProductPool.js +0 -41
  292. package/dist/_esm/router/pool-codes/ConstantProductPool.js.map +0 -1
  293. package/dist/_esm/router/pool-codes/CurvePool.js +0 -41
  294. package/dist/_esm/router/pool-codes/CurvePool.js.map +0 -1
  295. package/dist/_esm/router/pool-codes/NativeWrapBridge.js +0 -52
  296. package/dist/_esm/router/pool-codes/NativeWrapBridge.js.map +0 -1
  297. package/dist/_esm/router/pool-codes/PoolCode.js +0 -36
  298. package/dist/_esm/router/pool-codes/PoolCode.js.map +0 -1
  299. package/dist/_esm/router/pool-codes/TridentCLPool.js +0 -25
  300. package/dist/_esm/router/pool-codes/TridentCLPool.js.map +0 -1
  301. package/dist/_esm/router/pool-codes/UniV3Pool.js +0 -25
  302. package/dist/_esm/router/pool-codes/UniV3Pool.js.map +0 -1
  303. package/dist/_esm/router/pool-codes/UniV4Pool.js +0 -37
  304. package/dist/_esm/router/pool-codes/UniV4Pool.js.map +0 -1
  305. package/dist/_esm/router/pool-codes/index.js +0 -10
  306. package/dist/_esm/router/pool-codes/index.js.map +0 -1
  307. package/dist/_esm/router/router.js +0 -351
  308. package/dist/_esm/router/router.js.map +0 -1
  309. package/dist/_esm/router/routingBases.js +0 -50
  310. package/dist/_esm/router/routingBases.js.map +0 -1
  311. package/dist/_esm/router/tines-to-route-processor-2.js +0 -189
  312. package/dist/_esm/router/tines-to-route-processor-2.js.map +0 -1
  313. package/dist/_esm/router/tines-to-route-processor-4.js +0 -75
  314. package/dist/_esm/router/tines-to-route-processor-4.js.map +0 -1
  315. package/dist/_esm/router/tines-to-route-processor-6.js +0 -14
  316. package/dist/_esm/router/tines-to-route-processor-6.js.map +0 -1
  317. package/dist/_esm/router/tines-to-route-processor.js +0 -200
  318. package/dist/_esm/router/tines-to-route-processor.js.map +0 -1
  319. package/dist/_esm/serializer/AddressValidation.js.map +0 -1
  320. package/dist/_esm/serializer/BinarySerialization.js +0 -270
  321. package/dist/_esm/serializer/BinarySerialization.js.map +0 -1
  322. package/dist/_esm/serializer/index.js +0 -2
  323. package/dist/_esm/serializer/index.js.map +0 -1
  324. package/dist/_esm/tines/BridgeBento.js +0 -116
  325. package/dist/_esm/tines/BridgeBento.js.map +0 -1
  326. package/dist/_esm/tines/BridgeBidirectionalUnlimited.js +0 -22
  327. package/dist/_esm/tines/BridgeBidirectionalUnlimited.js.map +0 -1
  328. package/dist/_esm/tines/BridgeStargateV04OneWay.js +0 -43
  329. package/dist/_esm/tines/BridgeStargateV04OneWay.js.map +0 -1
  330. package/dist/_esm/tines/CLPool.js +0 -265
  331. package/dist/_esm/tines/CLPool.js.map +0 -1
  332. package/dist/_esm/tines/CurveMultitokenPool.js +0 -268
  333. package/dist/_esm/tines/CurveMultitokenPool.js.map +0 -1
  334. package/dist/_esm/tines/CurveMultitokenPoolSingle.js +0 -194
  335. package/dist/_esm/tines/CurveMultitokenPoolSingle.js.map +0 -1
  336. package/dist/_esm/tines/CurvePool.js +0 -120
  337. package/dist/_esm/tines/CurvePool.js.map +0 -1
  338. package/dist/_esm/tines/Graph.js +0 -1324
  339. package/dist/_esm/tines/Graph.js.map +0 -1
  340. package/dist/_esm/tines/MultiRouter.js +0 -191
  341. package/dist/_esm/tines/MultiRouter.js.map +0 -1
  342. package/dist/_esm/tines/PrimaryPools.js +0 -166
  343. package/dist/_esm/tines/PrimaryPools.js.map +0 -1
  344. package/dist/_esm/tines/RPool.js +0 -80
  345. package/dist/_esm/tines/RPool.js.map +0 -1
  346. package/dist/_esm/tines/StableSwapPool.js +0 -221
  347. package/dist/_esm/tines/StableSwapPool.js.map +0 -1
  348. package/dist/_esm/tines/StarGateFeesV04.js +0 -135
  349. package/dist/_esm/tines/StarGateFeesV04.js.map +0 -1
  350. package/dist/_esm/tines/UniV3Pool.js +0 -325
  351. package/dist/_esm/tines/UniV3Pool.js.map +0 -1
  352. package/dist/_esm/tines/UniV4Pool.js +0 -40
  353. package/dist/_esm/tines/UniV4Pool.js.map +0 -1
  354. package/dist/_esm/tines/Utils.js +0 -108
  355. package/dist/_esm/tines/Utils.js.map +0 -1
  356. package/dist/_esm/tines/constants/hybrid.js +0 -2
  357. package/dist/_esm/tines/constants/hybrid.js.map +0 -1
  358. package/dist/_esm/tines/constants/index.js +0 -2
  359. package/dist/_esm/tines/constants/index.js.map +0 -1
  360. package/dist/_esm/tines/functions/computeHybridLiquidity.js +0 -22
  361. package/dist/_esm/tines/functions/computeHybridLiquidity.js.map +0 -1
  362. package/dist/_esm/tines/functions/convertTokenToBento.js +0 -11
  363. package/dist/_esm/tines/functions/convertTokenToBento.js.map +0 -1
  364. package/dist/_esm/tines/functions/getBentoChainId.js +0 -4
  365. package/dist/_esm/tines/functions/getBentoChainId.js.map +0 -1
  366. package/dist/_esm/tines/functions/index.js +0 -4
  367. package/dist/_esm/tines/functions/index.js.map +0 -1
  368. package/dist/_esm/tines/index.js +0 -18
  369. package/dist/_esm/tines/index.js.map +0 -1
  370. package/dist/_types/pricing/IncrementalPricer.d.ts +0 -48
  371. package/dist/_types/pricing/IncrementalPricer.d.ts.map +0 -1
  372. package/dist/_types/pricing/PoolTokenGraph.d.ts +0 -22
  373. package/dist/_types/pricing/PoolTokenGraph.d.ts.map +0 -1
  374. package/dist/_types/pricing/index.d.ts +0 -2
  375. package/dist/_types/pricing/index.d.ts.map +0 -1
  376. package/dist/_types/router/HEXer.d.ts +0 -20
  377. package/dist/_types/router/HEXer.d.ts.map +0 -1
  378. package/dist/_types/router/PoolBinarySerialization.d.ts +0 -11
  379. package/dist/_types/router/PoolBinarySerialization.d.ts.map +0 -1
  380. package/dist/_types/router/Sankey.AnyChart.d.ts +0 -7
  381. package/dist/_types/router/Sankey.AnyChart.d.ts.map +0 -1
  382. package/dist/_types/router/curve-sdk.d.ts +0 -214
  383. package/dist/_types/router/curve-sdk.d.ts.map +0 -1
  384. package/dist/_types/router/data-fetcher.d.ts +0 -24
  385. package/dist/_types/router/data-fetcher.d.ts.map +0 -1
  386. package/dist/_types/router/liquidity-providers/ApeSwap.d.ts +0 -10
  387. package/dist/_types/router/liquidity-providers/ApeSwap.d.ts.map +0 -1
  388. package/dist/_types/router/liquidity-providers/Biswap.d.ts +0 -11
  389. package/dist/_types/router/liquidity-providers/Biswap.d.ts.map +0 -1
  390. package/dist/_types/router/liquidity-providers/CurvePoolsWhitelist.d.ts +0 -12
  391. package/dist/_types/router/liquidity-providers/CurvePoolsWhitelist.d.ts.map +0 -1
  392. package/dist/_types/router/liquidity-providers/CurveProvider.d.ts +0 -41
  393. package/dist/_types/router/liquidity-providers/CurveProvider.d.ts.map +0 -1
  394. package/dist/_types/router/liquidity-providers/CurveProviderWhitelist.d.ts +0 -40
  395. package/dist/_types/router/liquidity-providers/CurveProviderWhitelist.d.ts.map +0 -1
  396. package/dist/_types/router/liquidity-providers/Dfyn.d.ts +0 -10
  397. package/dist/_types/router/liquidity-providers/Dfyn.d.ts.map +0 -1
  398. package/dist/_types/router/liquidity-providers/DovishV3.d.ts +0 -10
  399. package/dist/_types/router/liquidity-providers/DovishV3.d.ts.map +0 -1
  400. package/dist/_types/router/liquidity-providers/Elk.d.ts +0 -10
  401. package/dist/_types/router/liquidity-providers/Elk.d.ts.map +0 -1
  402. package/dist/_types/router/liquidity-providers/HoneySwap.d.ts +0 -10
  403. package/dist/_types/router/liquidity-providers/HoneySwap.d.ts.map +0 -1
  404. package/dist/_types/router/liquidity-providers/JetSwap.d.ts +0 -10
  405. package/dist/_types/router/liquidity-providers/JetSwap.d.ts.map +0 -1
  406. package/dist/_types/router/liquidity-providers/LaserSwap.d.ts +0 -11
  407. package/dist/_types/router/liquidity-providers/LaserSwap.d.ts.map +0 -1
  408. package/dist/_types/router/liquidity-providers/LiquidityProvider.d.ts +0 -123
  409. package/dist/_types/router/liquidity-providers/LiquidityProvider.d.ts.map +0 -1
  410. package/dist/_types/router/liquidity-providers/NativeWrapProvider.d.ts +0 -15
  411. package/dist/_types/router/liquidity-providers/NativeWrapProvider.d.ts.map +0 -1
  412. package/dist/_types/router/liquidity-providers/NetSwap.d.ts +0 -10
  413. package/dist/_types/router/liquidity-providers/NetSwap.d.ts.map +0 -1
  414. package/dist/_types/router/liquidity-providers/PancakeSwap.d.ts +0 -11
  415. package/dist/_types/router/liquidity-providers/PancakeSwap.d.ts.map +0 -1
  416. package/dist/_types/router/liquidity-providers/QuickSwap.d.ts +0 -10
  417. package/dist/_types/router/liquidity-providers/QuickSwap.d.ts.map +0 -1
  418. package/dist/_types/router/liquidity-providers/SpookySwap.d.ts +0 -10
  419. package/dist/_types/router/liquidity-providers/SpookySwap.d.ts.map +0 -1
  420. package/dist/_types/router/liquidity-providers/SushiSwapV2.d.ts +0 -10
  421. package/dist/_types/router/liquidity-providers/SushiSwapV2.d.ts.map +0 -1
  422. package/dist/_types/router/liquidity-providers/SushiSwapV3.d.ts +0 -10
  423. package/dist/_types/router/liquidity-providers/SushiSwapV3.d.ts.map +0 -1
  424. package/dist/_types/router/liquidity-providers/TraderJoe.d.ts +0 -10
  425. package/dist/_types/router/liquidity-providers/TraderJoe.d.ts.map +0 -1
  426. package/dist/_types/router/liquidity-providers/UbeSwap.d.ts +0 -10
  427. package/dist/_types/router/liquidity-providers/UbeSwap.d.ts.map +0 -1
  428. package/dist/_types/router/liquidity-providers/UniswapV2.d.ts +0 -10
  429. package/dist/_types/router/liquidity-providers/UniswapV2.d.ts.map +0 -1
  430. package/dist/_types/router/liquidity-providers/UniswapV2Base.d.ts +0 -29
  431. package/dist/_types/router/liquidity-providers/UniswapV2Base.d.ts.map +0 -1
  432. package/dist/_types/router/liquidity-providers/UniswapV3.d.ts +0 -10
  433. package/dist/_types/router/liquidity-providers/UniswapV3.d.ts.map +0 -1
  434. package/dist/_types/router/liquidity-providers/UniswapV3Base.d.ts +0 -32
  435. package/dist/_types/router/liquidity-providers/UniswapV3Base.d.ts.map +0 -1
  436. package/dist/_types/router/liquidity-providers/index.d.ts +0 -9
  437. package/dist/_types/router/liquidity-providers/index.d.ts.map +0 -1
  438. package/dist/_types/router/pool-codes/BentoBridge.d.ts +0 -11
  439. package/dist/_types/router/pool-codes/BentoBridge.d.ts.map +0 -1
  440. package/dist/_types/router/pool-codes/BentoPool.d.ts +0 -9
  441. package/dist/_types/router/pool-codes/BentoPool.d.ts.map +0 -1
  442. package/dist/_types/router/pool-codes/Bridge.d.ts +0 -5
  443. package/dist/_types/router/pool-codes/Bridge.d.ts.map +0 -1
  444. package/dist/_types/router/pool-codes/ConstantProductPool.d.ts +0 -10
  445. package/dist/_types/router/pool-codes/ConstantProductPool.d.ts.map +0 -1
  446. package/dist/_types/router/pool-codes/CurvePool.d.ts +0 -13
  447. package/dist/_types/router/pool-codes/CurvePool.d.ts.map +0 -1
  448. package/dist/_types/router/pool-codes/NativeWrapBridge.d.ts +0 -10
  449. package/dist/_types/router/pool-codes/NativeWrapBridge.d.ts.map +0 -1
  450. package/dist/_types/router/pool-codes/PoolCode.d.ts +0 -24
  451. package/dist/_types/router/pool-codes/PoolCode.d.ts.map +0 -1
  452. package/dist/_types/router/pool-codes/TridentCLPool.d.ts +0 -10
  453. package/dist/_types/router/pool-codes/TridentCLPool.d.ts.map +0 -1
  454. package/dist/_types/router/pool-codes/UniV3Pool.d.ts +0 -10
  455. package/dist/_types/router/pool-codes/UniV3Pool.d.ts.map +0 -1
  456. package/dist/_types/router/pool-codes/UniV4Pool.d.ts +0 -13
  457. package/dist/_types/router/pool-codes/UniV4Pool.d.ts.map +0 -1
  458. package/dist/_types/router/pool-codes/index.d.ts +0 -10
  459. package/dist/_types/router/pool-codes/index.d.ts.map +0 -1
  460. package/dist/_types/router/router.d.ts +0 -68
  461. package/dist/_types/router/router.d.ts.map +0 -1
  462. package/dist/_types/router/routingBases.d.ts +0 -8
  463. package/dist/_types/router/routingBases.d.ts.map +0 -1
  464. package/dist/_types/router/tines-to-route-processor-2.d.ts +0 -41
  465. package/dist/_types/router/tines-to-route-processor-2.d.ts.map +0 -1
  466. package/dist/_types/router/tines-to-route-processor-4.d.ts +0 -12
  467. package/dist/_types/router/tines-to-route-processor-4.d.ts.map +0 -1
  468. package/dist/_types/router/tines-to-route-processor-6.d.ts +0 -5
  469. package/dist/_types/router/tines-to-route-processor-6.d.ts.map +0 -1
  470. package/dist/_types/router/tines-to-route-processor.d.ts +0 -21
  471. package/dist/_types/router/tines-to-route-processor.d.ts.map +0 -1
  472. package/dist/_types/serializer/AddressValidation.d.ts.map +0 -1
  473. package/dist/_types/serializer/BinarySerialization.d.ts +0 -43
  474. package/dist/_types/serializer/BinarySerialization.d.ts.map +0 -1
  475. package/dist/_types/serializer/index.d.ts +0 -2
  476. package/dist/_types/serializer/index.d.ts.map +0 -1
  477. package/dist/_types/tines/BridgeBento.d.ts +0 -21
  478. package/dist/_types/tines/BridgeBento.d.ts.map +0 -1
  479. package/dist/_types/tines/BridgeBidirectionalUnlimited.d.ts +0 -16
  480. package/dist/_types/tines/BridgeBidirectionalUnlimited.d.ts.map +0 -1
  481. package/dist/_types/tines/BridgeStargateV04OneWay.d.ts +0 -23
  482. package/dist/_types/tines/BridgeStargateV04OneWay.d.ts.map +0 -1
  483. package/dist/_types/tines/CLPool.d.ts +0 -27
  484. package/dist/_types/tines/CLPool.d.ts.map +0 -1
  485. package/dist/_types/tines/CurveMultitokenPool.d.ts +0 -58
  486. package/dist/_types/tines/CurveMultitokenPool.d.ts.map +0 -1
  487. package/dist/_types/tines/CurveMultitokenPoolSingle.d.ts +0 -54
  488. package/dist/_types/tines/CurveMultitokenPoolSingle.d.ts.map +0 -1
  489. package/dist/_types/tines/CurvePool.d.ts +0 -28
  490. package/dist/_types/tines/CurvePool.d.ts.map +0 -1
  491. package/dist/_types/tines/Graph.d.ts +0 -135
  492. package/dist/_types/tines/Graph.d.ts.map +0 -1
  493. package/dist/_types/tines/MultiRouter.d.ts +0 -11
  494. package/dist/_types/tines/MultiRouter.d.ts.map +0 -1
  495. package/dist/_types/tines/PrimaryPools.d.ts +0 -44
  496. package/dist/_types/tines/PrimaryPools.d.ts.map +0 -1
  497. package/dist/_types/tines/RPool.d.ts +0 -54
  498. package/dist/_types/tines/RPool.d.ts.map +0 -1
  499. package/dist/_types/tines/StableSwapPool.d.ts +0 -50
  500. package/dist/_types/tines/StableSwapPool.d.ts.map +0 -1
  501. package/dist/_types/tines/StarGateFeesV04.d.ts +0 -16
  502. package/dist/_types/tines/StarGateFeesV04.d.ts.map +0 -1
  503. package/dist/_types/tines/UniV3Pool.d.ts +0 -25
  504. package/dist/_types/tines/UniV3Pool.d.ts.map +0 -1
  505. package/dist/_types/tines/UniV4Pool.d.ts +0 -13
  506. package/dist/_types/tines/UniV4Pool.d.ts.map +0 -1
  507. package/dist/_types/tines/Utils.d.ts +0 -9
  508. package/dist/_types/tines/Utils.d.ts.map +0 -1
  509. package/dist/_types/tines/constants/hybrid.d.ts +0 -2
  510. package/dist/_types/tines/constants/hybrid.d.ts.map +0 -1
  511. package/dist/_types/tines/constants/index.d.ts +0 -2
  512. package/dist/_types/tines/constants/index.d.ts.map +0 -1
  513. package/dist/_types/tines/functions/computeHybridLiquidity.d.ts +0 -2
  514. package/dist/_types/tines/functions/computeHybridLiquidity.d.ts.map +0 -1
  515. package/dist/_types/tines/functions/convertTokenToBento.d.ts +0 -4
  516. package/dist/_types/tines/functions/convertTokenToBento.d.ts.map +0 -1
  517. package/dist/_types/tines/functions/getBentoChainId.d.ts +0 -2
  518. package/dist/_types/tines/functions/getBentoChainId.d.ts.map +0 -1
  519. package/dist/_types/tines/functions/index.d.ts +0 -4
  520. package/dist/_types/tines/functions/index.d.ts.map +0 -1
  521. package/dist/_types/tines/index.d.ts +0 -18
  522. package/dist/_types/tines/index.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sushi",
3
- "version": "3.2.4",
3
+ "version": "4.0.0",
4
4
  "description": "Sushi",
5
5
  "keywords": [
6
6
  "sushi"
@@ -112,31 +112,16 @@
112
112
  "import": "./dist/_esm/pool/*/index.js",
113
113
  "default": "./dist/_cjs/pool/*/index.js"
114
114
  },
115
- "./pricing": {
116
- "types": "./dist/_types/pricing/index.d.ts",
117
- "import": "./dist/_esm/pricing/index.js",
118
- "default": "./dist/_cjs/pricing/index.js"
119
- },
120
115
  "./router": {
121
116
  "types": "./dist/_types/router/index.d.ts",
122
117
  "import": "./dist/_esm/router/index.js",
123
118
  "default": "./dist/_cjs/router/index.js"
124
119
  },
125
- "./serializer": {
126
- "types": "./dist/_types/serializer/index.d.ts",
127
- "import": "./dist/_esm/serializer/index.js",
128
- "default": "./dist/_cjs/serializer/index.js"
129
- },
130
120
  "./sort": {
131
121
  "types": "./dist/_types/sort/index.d.ts",
132
122
  "import": "./dist/_esm/sort/index.js",
133
123
  "default": "./dist/_cjs/sort/index.js"
134
124
  },
135
- "./tines": {
136
- "types": "./dist/_types/tines/index.d.ts",
137
- "import": "./dist/_esm/tines/index.js",
138
- "default": "./dist/_cjs/tines/index.js"
139
- },
140
125
  "./token-list": {
141
126
  "types": "./dist/_types/token-list/index.d.ts",
142
127
  "import": "./dist/_esm/token-list/index.js",
@@ -207,21 +192,12 @@
207
192
  "pool": [
208
193
  "./dist/_types/pool/index.d.ts"
209
194
  ],
210
- "pricing": [
211
- "./dist/_types/pricing/index.d.ts"
212
- ],
213
195
  "router": [
214
196
  "./dist/_types/router/index.d.ts"
215
197
  ],
216
- "serializer": [
217
- "./dist/_types/serializer/index.d.ts"
218
- ],
219
198
  "sort": [
220
199
  "./dist/_types/sort/index.d.ts"
221
200
  ],
222
- "tines": [
223
- "./dist/_types/tines/index.d.ts"
224
- ],
225
201
  "token-list": [
226
202
  "./dist/_types/token-list/index.d.ts"
227
203
  ],
@@ -1,375 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IncrementalPricer = void 0;
4
- exports.compareCommonPrices = compareCommonPrices;
5
- const index_js_1 = require("../tines/index.js");
6
- const PoolTokenGraph_js_1 = require("./PoolTokenGraph.js");
7
- const DEBUG_COMPARE_FULL_RECALC_WITH_TINES_PRICES = false;
8
- const DEBUG_PARTIAL_UPDATE_AFTER_FULL_RECALC_CHECK = 0;
9
- const DEBUG_COMPARE_PARTIAL_UPDATE_WITH_TINES_PRICES = false;
10
- const FULL_RECALC_INTERVAL = 6 * 3600 * 1000;
11
- const MIN_PRICABLE_LIQUIDITY = 0.8;
12
- const MIN_VALUABLE_PRICE_CHANGE = 1.001;
13
- function makePricesRecalcForPool(oldPoolPrice, newPoolPrice, sensability = MIN_VALUABLE_PRICE_CHANGE) {
14
- if (oldPoolPrice === 0)
15
- return newPoolPrice !== 0;
16
- const diff = newPoolPrice / oldPoolPrice;
17
- return diff > sensability || diff < 1 / sensability;
18
- }
19
- class TokenInfo {
20
- constructor(token, direction, poolPrice, parent, poolAddress, poolLiquidity) {
21
- this.children = [];
22
- this.totalSuccessors = 0;
23
- this.token = token;
24
- this.address = token.address;
25
- this.decExp = 10 ** token.decimals;
26
- this.direction = direction;
27
- this.poolPrice = poolPrice;
28
- this.parent = parent;
29
- if (parent)
30
- parent.children.push(this);
31
- this.poolAddress = poolAddress;
32
- this.poolLiquidity = poolLiquidity;
33
- }
34
- }
35
- class IncrementalPricer {
36
- constructor(baseTokens, prices, trustedTokens, minLiquidity) {
37
- this.poolTokenMap = new Map();
38
- this.tokenMap = new Map();
39
- this.prices = {};
40
- this.pricesSize = 0;
41
- this.lastfullPricesRecalcDate = 0;
42
- this.fullPricesRecalcFlag = false;
43
- this.baseTokens = new Array(baseTokens.length);
44
- this.baseTokenPrices = prices.slice();
45
- baseTokens.forEach((t, i) => {
46
- this.baseTokens[i] = new TokenInfo(t, true, 1);
47
- });
48
- this.trustedTokenSet = new Set();
49
- const trustedTokenMap = new Map();
50
- trustedTokens.forEach((t) => {
51
- this.trustedTokenSet.add(t.address);
52
- trustedTokenMap.set(t.address, t);
53
- });
54
- baseTokens.forEach((t) => {
55
- this.trustedTokenSet.add(t.address);
56
- trustedTokenMap.set(t.address, t);
57
- });
58
- this.trustedTokensForTinesCheck = Array.from(trustedTokenMap.values());
59
- this.minLiquidity = minLiquidity;
60
- }
61
- updatePrices(updatedPools, allPoolsOnDemand, logging = false) {
62
- if (this.isFullPricesRecalcNeeded())
63
- return this._fullPricesRecalculation(allPoolsOnDemand(), logging);
64
- else {
65
- const res = this._updatePricesForPools(updatedPools, DEBUG_COMPARE_PARTIAL_UPDATE_WITH_TINES_PRICES ? 0.9 : undefined);
66
- if (DEBUG_COMPARE_PARTIAL_UPDATE_WITH_TINES_PRICES) {
67
- const baseToken = this.baseTokens.find((b) => this.prices[b.address] === 1);
68
- checkNotEqual(baseToken, undefined, 'Prices partial upd error: no basetoken found');
69
- const tinesPrices = (0, index_js_1.calcTokenAddressPrices)(allPoolsOnDemand(), baseToken.token, this.minLiquidity * baseToken.decExp, this.trustedTokensForTinesCheck);
70
- comparePrices('Prices partial upd', this.prices, this.pricesSize, tinesPrices);
71
- }
72
- return res;
73
- }
74
- }
75
- reasoning(token) {
76
- let ti = this.tokenMap.get(token);
77
- if (ti === undefined)
78
- return ['Token is not priced'];
79
- const lines = [];
80
- while (ti !== undefined) {
81
- const parentDecExp = ti.parent?.decExp ?? ti.decExp;
82
- lines.push(`Token ${ti.token.symbol} (${ti.address}) price is ${this.prices[ti.address]}$`);
83
- if (ti.poolAddress !== undefined) {
84
- lines.push(`Pool ${ti.poolAddress} liquidity ${Math.round(ti.poolLiquidity ?? 0)}$ price ${(ti.poolPrice / parentDecExp) * ti.decExp}`);
85
- }
86
- ti = ti.parent;
87
- }
88
- return lines.reverse();
89
- }
90
- isFullPricesRecalcNeeded() {
91
- return (this.fullPricesRecalcFlag ||
92
- Date.now() - this.lastfullPricesRecalcDate > FULL_RECALC_INTERVAL);
93
- }
94
- _fullPricesRecalculation(pools, logging = false) {
95
- this.poolTokenMap.clear();
96
- this.tokenMap.clear();
97
- this.prices = {};
98
- this.pricesSize = 0;
99
- const baseVerts = (0, PoolTokenGraph_js_1.makePoolTokenGraph)(pools, this.baseTokens.map((t) => t.address));
100
- const sortedBaseVerts = this._sortBaseVerts(baseVerts);
101
- sortedBaseVerts.forEach(([baseVert, baseIndex], i) => {
102
- if (this.prices[baseVert.address] !== undefined)
103
- return;
104
- const baseToken = this.baseTokens[baseIndex];
105
- const baseTokenPrice = this.baseTokenPrices[baseIndex];
106
- const nextEdges = [];
107
- if (logging)
108
- console.log(`Pricing: Initial token ${baseVert.token.symbol} price=${baseTokenPrice}`);
109
- baseVert.obj = baseToken;
110
- this._addVertice(nextEdges, baseVert, baseTokenPrice / baseVert.decExp);
111
- while (nextEdges.length > 0) {
112
- const bestEdge = nextEdges.pop();
113
- let vFrom = bestEdge.token0;
114
- let vTo = bestEdge.token1;
115
- let direction = true;
116
- if (vTo.price !== undefined) {
117
- if (vFrom.price !== undefined)
118
- continue;
119
- const tmp = vFrom;
120
- vFrom = vTo;
121
- vTo = tmp;
122
- direction = false;
123
- }
124
- const p = bestEdge.pool.calcCurrentPriceWithoutFee(!direction);
125
- if (logging)
126
- console.log(`Pricing: + Token ${vTo.token.symbol} price=${p * vTo.decExp * vFrom.price}` +
127
- ` from ${vFrom.token.symbol} pool=${bestEdge.pool.address} liquidity=${bestEdge.poolLiquidity}`);
128
- vTo.obj = new TokenInfo(vTo.token, direction, p, vFrom.obj, bestEdge.pool.address, bestEdge.poolLiquidity);
129
- this.poolTokenMap.set(bestEdge.pool.uniqueID(), vTo.obj);
130
- this._addVertice(nextEdges, vTo, p * vFrom.price);
131
- }
132
- this._updateTotalSuccessor(baseToken);
133
- this.lastfullPricesRecalcDate = Date.now();
134
- this.fullPricesRecalcFlag = false;
135
- if (DEBUG_COMPARE_FULL_RECALC_WITH_TINES_PRICES && i === 0) {
136
- const tinesPrices = (0, index_js_1.calcTokenAddressPrices)(pools, baseToken.token, this.minLiquidity * baseToken.decExp, this.trustedTokensForTinesCheck);
137
- comparePrices('Prices full recalc', this.prices, this.pricesSize, tinesPrices);
138
- }
139
- });
140
- if (DEBUG_PARTIAL_UPDATE_AFTER_FULL_RECALC_CHECK) {
141
- const pricesBefore = { ...this.prices };
142
- const pricesSizeBefore = this.pricesSize;
143
- const pn = Math.round((pools.length * DEBUG_PARTIAL_UPDATE_AFTER_FULL_RECALC_CHECK) / 100);
144
- const newPools = pools.slice(0, pn);
145
- const updatePrices = this._updatePricesForPools(newPools, 0.9);
146
- checkNotEqual(updatePrices, 0, 'Prices upd check error');
147
- checkEqual(pricesSizeBefore, this.pricesSize);
148
- comparePrices('Prices upd', pricesBefore, pricesSizeBefore, this.prices);
149
- this.prices = pricesBefore;
150
- this.pricesSize = pricesSizeBefore;
151
- }
152
- return this.pricesSize;
153
- }
154
- _sortBaseVerts(baseVerts) {
155
- const tmp = baseVerts
156
- .map((b, i) => {
157
- if (b === undefined)
158
- return;
159
- const price = this.baseTokenPrices[i];
160
- const reserve = b.pools.reduce((a, p) => a + price * Number(p.reserve(b)), 0);
161
- const decExp = this.baseTokens[i]?.decExp;
162
- return [(reserve * price) / decExp, [b, i]];
163
- })
164
- .filter((p) => p !== undefined);
165
- return tmp.sort((a, b) => b[0] - a[0]).map((a) => a[1]);
166
- }
167
- _updateTotalSuccessor(token) {
168
- let count = 0;
169
- for (let i = token.children.length - 1; i >= 0; --i)
170
- count += this._updateTotalSuccessor(token.children[i]);
171
- token.totalSuccessors = count;
172
- return count + 1;
173
- }
174
- _addVertice(nextEdges, v, price) {
175
- v.price = price;
176
- this.tokenMap.set(v.address, v.obj);
177
- this.prices[v.address] = price * v.decExp;
178
- ++this.pricesSize;
179
- if (!this.trustedTokenSet.has(v.address))
180
- return;
181
- for (let i = v.pools.length - 1; i >= 0; --i) {
182
- const edge = v.pools[i];
183
- if (v.getNeibour(edge).price !== undefined)
184
- continue;
185
- const liquidity = price * Number(edge.reserve(v));
186
- edge.poolLiquidity = liquidity;
187
- if (edge.pool.alwaysAppropriateForPricing() ||
188
- (liquidity >= this.minLiquidity &&
189
- edge.pool.isPoolAppropriateForPricing())) {
190
- let low = 0;
191
- let up = nextEdges.length;
192
- while (low < up) {
193
- const middle = (low + up) >> 1;
194
- const diff = nextEdges[middle]?.poolLiquidity - liquidity;
195
- if (diff > 0)
196
- up = middle;
197
- else if (diff < 0)
198
- low = middle + 1;
199
- else {
200
- low = middle;
201
- break;
202
- }
203
- }
204
- nextEdges.splice(low, 0, edge);
205
- }
206
- }
207
- }
208
- _updatePricesForPools(pools, sensability = MIN_VALUABLE_PRICE_CHANGE) {
209
- const tokens = new Array(pools.length);
210
- let changedPrices = 0;
211
- for (let i = pools.length - 1; i >= 0; --i) {
212
- const pool = pools[i];
213
- tokens[i] = undefined;
214
- const token = this.poolTokenMap.get(pool.uniqueID());
215
- if (token) {
216
- if (!this._isPoolStillPricable(pool, token)) {
217
- if (token.totalSuccessors === 0) {
218
- this._deleteChildlessToken(pool, token);
219
- continue;
220
- }
221
- this.fullPricesRecalcFlag = true;
222
- }
223
- if (token.changedPoolIndex === undefined) {
224
- const newPoolPrice = pool.calcCurrentPriceWithoutFee(!token.direction);
225
- if (makePricesRecalcForPool(token.poolPrice, newPoolPrice, sensability)) {
226
- tokens[i] = token;
227
- token.changedPoolIndex = i;
228
- }
229
- }
230
- }
231
- else if (this._checkAndAddNewToken(pool) !== undefined) {
232
- ++changedPrices;
233
- }
234
- }
235
- for (let i = pools.length - 1; i >= 0; --i) {
236
- if (tokens[i] === undefined)
237
- continue;
238
- let firstChangedToken = undefined;
239
- for (let token = tokens[i]; token !== undefined; token = token.parent) {
240
- if (token?.changedPoolIndex !== undefined)
241
- firstChangedToken = token;
242
- }
243
- if (firstChangedToken) {
244
- this._updatePricesForToken(firstChangedToken, 1, pools, tokens);
245
- changedPrices += firstChangedToken.totalSuccessors + 1;
246
- }
247
- }
248
- return changedPrices;
249
- }
250
- _updatePricesForToken(token, priceMultiplicator, pools, tokens) {
251
- const poolIndex = token.changedPoolIndex;
252
- if (poolIndex !== undefined) {
253
- const newPoolPrice = pools[poolIndex]?.calcCurrentPriceWithoutFee(!token.direction);
254
- priceMultiplicator = (priceMultiplicator / token.poolPrice) * newPoolPrice;
255
- tokens[poolIndex] = undefined;
256
- token.changedPoolIndex = undefined;
257
- token.poolPrice = newPoolPrice;
258
- }
259
- this.prices[token.address] *= priceMultiplicator;
260
- for (let i = token.children.length - 1; i >= 0; --i)
261
- this._updatePricesForToken(token.children[i], priceMultiplicator, pools, tokens);
262
- }
263
- _isPoolStillPricable(pool, tokenInfo) {
264
- let token;
265
- let reserve;
266
- if (tokenInfo.direction) {
267
- token = pool.token0;
268
- reserve = Number(pool.getReserve0());
269
- }
270
- else {
271
- token = pool.token1;
272
- reserve = Number(pool.getReserve1());
273
- }
274
- const price = this.prices[token.address];
275
- const liquidity = (reserve * price) / 10 ** token.decimals;
276
- tokenInfo.poolLiquidity = liquidity;
277
- const minLiquidityK = DEBUG_COMPARE_PARTIAL_UPDATE_WITH_TINES_PRICES
278
- ? 1
279
- : MIN_PRICABLE_LIQUIDITY;
280
- if (liquidity < this.minLiquidity * minLiquidityK) {
281
- return false;
282
- }
283
- return true;
284
- }
285
- _checkAndAddNewToken(pool) {
286
- const price0 = this.prices[pool.token0.address];
287
- const price1 = this.prices[pool.token1.address];
288
- if (price1 === undefined) {
289
- if (price0 === undefined)
290
- return;
291
- if (!this.trustedTokenSet.has(pool.token0.address))
292
- return;
293
- const liquidity = (Number(pool.reserve0) * price0) / 10 ** pool.token0.decimals;
294
- if (liquidity < this.minLiquidity)
295
- return;
296
- return this._addNewToken(pool, true, price0, liquidity);
297
- }
298
- else {
299
- if (price0 !== undefined)
300
- return;
301
- if (!this.trustedTokenSet.has(pool.token1.address))
302
- return;
303
- const liquidity = (Number(pool.reserve1) * price1) / 10 ** pool.token1.decimals;
304
- if (liquidity < this.minLiquidity)
305
- return;
306
- return this._addNewToken(pool, false, price1, liquidity);
307
- }
308
- }
309
- _addNewToken(pool, direction, priceFrom, liquidity) {
310
- const [tokenFrom, tokenTo] = direction
311
- ? [pool.token0, pool.token1]
312
- : [pool.token1, pool.token0];
313
- const tokenFromInfo = this.tokenMap.get(tokenFrom.address);
314
- const poolPrice = pool.calcCurrentPriceWithoutFee(!direction);
315
- const tokenToInfo = new TokenInfo(tokenTo, direction, poolPrice, tokenFromInfo, pool.address, liquidity);
316
- this.poolTokenMap.set(pool.uniqueID(), tokenToInfo);
317
- this.tokenMap.set(tokenTo.address, tokenToInfo);
318
- this.prices[tokenTo.address] =
319
- (priceFrom / tokenFromInfo.decExp) * poolPrice * tokenToInfo.decExp;
320
- ++this.pricesSize;
321
- return tokenToInfo;
322
- }
323
- _deleteChildlessToken(pool, token) {
324
- this.poolTokenMap.delete(pool.uniqueID());
325
- this.tokenMap.delete(token.address);
326
- delete this.prices[token.address];
327
- --this.pricesSize;
328
- const place = token.parent?.children.indexOf(token);
329
- if (place !== undefined && place >= 0)
330
- token.parent?.children.splice(place, 1);
331
- token.parent = undefined;
332
- }
333
- }
334
- exports.IncrementalPricer = IncrementalPricer;
335
- function comparePrices(errMsg, prices0, prices0Length, prices1, precision = 1e-10) {
336
- const tokens0 = Object.keys(prices0);
337
- checkEqual(tokens0.length, prices0Length, errMsg, 'pricesSize is incorrect');
338
- tokens0.forEach((t) => {
339
- const price0 = prices0?.[t];
340
- const price1 = prices1?.[t];
341
- if (price1 === undefined ||
342
- (price0 === 0 && price1 !== 0) ||
343
- Math.abs(price1 / price0 - 1) > precision)
344
- console.error(`${errMsg}: token ${t} wrong prices: ${price0} != ${price1}`);
345
- });
346
- Object.keys(prices1).forEach((t) => {
347
- if (prices0[t] === undefined) {
348
- console.error(`${errMsg}: token ${t} wrong prices: ${prices0[t]} != ${prices1[t]}`);
349
- }
350
- });
351
- }
352
- function compareCommonPrices(errMsg, prices0, prices1, precision = 1e-10) {
353
- const tokens0 = Object.keys(prices0);
354
- let quantity = 0;
355
- tokens0.forEach((t) => {
356
- if (prices1[t] === undefined)
357
- return;
358
- ++quantity;
359
- const price0 = prices0?.[t];
360
- const price1 = prices1?.[t];
361
- if ((price0 === 0 && price1 !== 0) ||
362
- Math.abs(price1 / price0 - 1) > precision)
363
- console.error(`${errMsg}: token ${t} wrong prices: ${price0} != ${price1}`);
364
- });
365
- return quantity;
366
- }
367
- function checkEqual(v0, v1, ...errMsg) {
368
- if (v0 !== v1)
369
- console.error(`${errMsg.join(': ')}: ${v0} != ${v1}`);
370
- }
371
- function checkNotEqual(v0, v1, ...errMsg) {
372
- if (v0 === v1)
373
- console.error(`${errMsg.join(': ')}: ${v0} != ${v1}`);
374
- }
375
- //# sourceMappingURL=IncrementalPricer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IncrementalPricer.js","sourceRoot":"","sources":["../../../src/pricing/IncrementalPricer.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PoolEdge = exports.TokenVert = void 0;
4
- exports.makePoolTokenGraph = makePoolTokenGraph;
5
- class TokenVert {
6
- constructor(token) {
7
- this.pools = [];
8
- this.token = token;
9
- this.address = token.address;
10
- this.decExp = 10 ** token.decimals;
11
- }
12
- getNeibour(edge) {
13
- const token0 = edge.token0;
14
- return token0 === this ? edge.token1 : token0;
15
- }
16
- }
17
- exports.TokenVert = TokenVert;
18
- class PoolEdge {
19
- constructor(pool, token0, token1) {
20
- this.poolLiquidity = 0;
21
- this.pool = pool;
22
- this.token0 = token0;
23
- this.token1 = token1;
24
- }
25
- reserve(token) {
26
- return token === this.token0
27
- ? this.pool.getReserve0()
28
- : this.pool.getReserve1();
29
- }
30
- }
31
- exports.PoolEdge = PoolEdge;
32
- function makePoolTokenGraph(pools, baseTokens) {
33
- const tokens = new Map();
34
- const poolsDeduplication = new Set();
35
- pools.forEach((p) => {
36
- const poolId = p.address.toLowerCase();
37
- if (poolsDeduplication.has(poolId))
38
- return;
39
- poolsDeduplication.add(poolId);
40
- const addr0 = p.token0.address;
41
- let v0 = tokens.get(addr0);
42
- if (v0 === undefined) {
43
- v0 = new TokenVert(p.token0);
44
- tokens.set(addr0, v0);
45
- }
46
- const addr1 = p.token1.address;
47
- let v1 = tokens.get(addr1);
48
- if (v1 === undefined) {
49
- v1 = new TokenVert(p.token1);
50
- tokens.set(addr1, v1);
51
- }
52
- const edge = new PoolEdge(p, v0, v1);
53
- v0.pools.push(edge);
54
- v1.pools.push(edge);
55
- });
56
- return baseTokens.map((t) => tokens.get(t));
57
- }
58
- //# sourceMappingURL=PoolTokenGraph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoolTokenGraph.js","sourceRoot":"","sources":["../../../src/pricing/PoolTokenGraph.ts"],"names":[],"mappings":";;;AA0CA,gDAmCC;AA1ED,MAAa,SAAS;IAQpB,YAAY,KAAa;QAJzB,UAAK,GAAe,EAAE,CAAA;QAKpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAkB,CAAA;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAA;IACpC,CAAC;IAED,UAAU,CAAC,IAAc;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IAC/C,CAAC;CACF;AAlBD,8BAkBC;AAED,MAAa,QAAQ;IAMnB,YAAY,IAAW,EAAE,MAAiB,EAAE,MAAiB;QAF7D,kBAAa,GAAG,CAAC,CAAA;QAGf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,OAAO,CAAC,KAAgB;QACtB,OAAO,KAAK,KAAK,IAAI,CAAC,MAAM;YAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IAC7B,CAAC;CACF;AAjBD,4BAiBC;AAED,SAAgB,kBAAkB,CAChC,KAAc,EACd,UAAqB;IAIrB,MAAM,MAAM,GAA4B,IAAI,GAAG,EAAE,CAAA;IACjD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC5C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QACtC,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAM;QAC1C,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAG9B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,OAAkB,CAAA;QACzC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACvB,CAAC;QAGD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,OAAkB,CAAA;QACzC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACvB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACpC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./IncrementalPricer.js"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pricing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC"}
@@ -1,112 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HEXer = void 0;
4
- class HEXer {
5
- constructor() {
6
- this.hex = '';
7
- }
8
- toString() {
9
- return this.hex;
10
- }
11
- toHexString() {
12
- return `0x${this.hex}`;
13
- }
14
- toString0x() {
15
- return this.toHexString();
16
- }
17
- uint8(data) {
18
- if (data > 255 || data < 0 || data !== Math.round(data)) {
19
- throw new Error(`Wrong uint8: ${data}`);
20
- }
21
- this.hex += data.toString(16).padStart(2, '0');
22
- return this;
23
- }
24
- bool(data) {
25
- return this.uint8(data ? 1 : 0);
26
- }
27
- uint16(data) {
28
- if (data >= 256 * 256 || data < 0 || data !== Math.round(data)) {
29
- throw new Error(`Wrong uint16: ${data}`);
30
- }
31
- this.hex += data.toString(16).padStart(4, '0');
32
- return this;
33
- }
34
- uint24(data) {
35
- if (data >= 256 * 256 * 256 || data < 0 || data !== Math.round(data)) {
36
- throw new Error(`Wrong uint24: ${data}`);
37
- }
38
- this.hex += data.toString(16).padStart(6, '0');
39
- return this;
40
- }
41
- share16(share) {
42
- return this.uint16(Math.round(share * 65535));
43
- }
44
- uint32(data) {
45
- if (data >= 256 * 256 * 256 * 256 ||
46
- data < 0 ||
47
- data !== Math.round(data)) {
48
- throw new Error(`Wrong uint32: ${data}`);
49
- }
50
- this.hex += data.toString(16).padStart(8, '0');
51
- return this;
52
- }
53
- uint256(data) {
54
- if (typeof data === 'number') {
55
- if (data > Number.MAX_SAFE_INTEGER ||
56
- data < 0 ||
57
- data !== Math.round(data)) {
58
- throw new Error(`Wrong uint256: ${data}`);
59
- }
60
- this.hex += data.toString(16).padStart(64, '0');
61
- return this;
62
- }
63
- else {
64
- const hex = data.toString(16).padStart(64, '0');
65
- if (data < 0n || hex.length > 64) {
66
- throw new Error(`Wrong uin256: ${data.toString()}`);
67
- }
68
- this.hex += hex;
69
- return this;
70
- }
71
- }
72
- uint(data) {
73
- return this.uint256(data);
74
- }
75
- address(addr) {
76
- if (addr.length > 42 || addr === 'RouteProcessor') {
77
- throw new Error(`Wrong address: ${addr}`);
78
- }
79
- this.hex += addr.slice(2).padStart(40, '0');
80
- return this;
81
- }
82
- hexData(data) {
83
- if (data.length % 2 !== 0) {
84
- throw new Error(`Wrong hex data length: ${data.length}`);
85
- }
86
- if (data.startsWith('0x'))
87
- data = data.slice(2);
88
- this.hex += data;
89
- return this;
90
- }
91
- bytes(data) {
92
- if (data.length % 2 !== 0) {
93
- throw new Error(`Wrong bytes length: ${data.length}`);
94
- }
95
- if (data.startsWith('0x'))
96
- data = data.slice(2);
97
- this.uint(data.length / 2);
98
- this.hex += data;
99
- return this;
100
- }
101
- bytes32(data) {
102
- if (data.startsWith('0x'))
103
- data = data.slice(2);
104
- if (data.length > 64) {
105
- throw new Error(`Wrong bytes32 length: ${data.length}`);
106
- }
107
- this.hex += data.padEnd(64, '0');
108
- return this;
109
- }
110
- }
111
- exports.HEXer = HEXer;
112
- //# sourceMappingURL=HEXer.js.map