@clober/v2-sdk 0.0.11 → 0.0.12-8.dev.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 (347) hide show
  1. package/README.md +12 -4
  2. package/dist/cjs/abis/core/book-manager-abi.js +112 -0
  3. package/dist/cjs/abis/core/book-manager-abi.js.map +1 -0
  4. package/dist/cjs/abis/core/book-viewer-abi.js +137 -5
  5. package/dist/cjs/abis/core/book-viewer-abi.js.map +1 -1
  6. package/dist/cjs/abis/core/controller-abi.js +1 -6
  7. package/dist/cjs/abis/core/controller-abi.js.map +1 -1
  8. package/dist/cjs/abis/rebalancer/minter-abi.js +262 -0
  9. package/dist/cjs/abis/rebalancer/minter-abi.js.map +1 -0
  10. package/dist/cjs/abis/rebalancer/mock-swap-abi.js +95 -0
  11. package/dist/cjs/abis/rebalancer/mock-swap-abi.js.map +1 -0
  12. package/dist/cjs/abis/rebalancer/operator-abi.js +401 -0
  13. package/dist/cjs/abis/rebalancer/operator-abi.js.map +1 -0
  14. package/dist/cjs/abis/rebalancer/rebalancer-abi.js +1326 -0
  15. package/dist/cjs/abis/rebalancer/rebalancer-abi.js.map +1 -0
  16. package/dist/cjs/abis/rebalancer/strategy-abi.js +895 -0
  17. package/dist/cjs/abis/rebalancer/strategy-abi.js.map +1 -0
  18. package/dist/cjs/apis/chart-logs.js +30 -13
  19. package/dist/cjs/apis/chart-logs.js.map +1 -1
  20. package/dist/cjs/apis/market.js +45 -22
  21. package/dist/cjs/apis/market.js.map +1 -1
  22. package/dist/cjs/apis/odos.js +100 -0
  23. package/dist/cjs/apis/odos.js.map +1 -0
  24. package/dist/cjs/apis/open-order.js +75 -44
  25. package/dist/cjs/apis/open-order.js.map +1 -1
  26. package/dist/cjs/apis/pool.js +95 -0
  27. package/dist/cjs/apis/pool.js.map +1 -0
  28. package/dist/cjs/apis/strategy.js +53 -0
  29. package/dist/cjs/apis/strategy.js.map +1 -0
  30. package/dist/cjs/approval.js +83 -26
  31. package/dist/cjs/approval.js.map +1 -1
  32. package/dist/cjs/call.js +739 -107
  33. package/dist/cjs/call.js.map +1 -1
  34. package/dist/cjs/constants/addresses.js +68 -1
  35. package/dist/cjs/constants/addresses.js.map +1 -1
  36. package/dist/cjs/constants/chain.js +23 -2
  37. package/dist/cjs/constants/chain.js.map +1 -1
  38. package/dist/cjs/constants/currency.js +86 -3
  39. package/dist/cjs/constants/currency.js.map +1 -1
  40. package/dist/cjs/constants/fee.js +21 -2
  41. package/dist/cjs/constants/fee.js.map +1 -1
  42. package/dist/cjs/constants/permit.js +14 -0
  43. package/dist/cjs/constants/permit.js.map +1 -0
  44. package/dist/cjs/constants/price.js +2 -1
  45. package/dist/cjs/constants/price.js.map +1 -1
  46. package/dist/cjs/constants/rise-sepolia.js +29 -0
  47. package/dist/cjs/constants/rise-sepolia.js.map +1 -0
  48. package/dist/cjs/constants/subgraph.js +37 -0
  49. package/dist/cjs/constants/subgraph.js.map +1 -0
  50. package/dist/cjs/constants/test-chain.js +50 -0
  51. package/dist/cjs/constants/test-chain.js.map +1 -0
  52. package/dist/cjs/constants/tick.js +6 -0
  53. package/dist/cjs/constants/tick.js.map +1 -0
  54. package/dist/cjs/index.js +1 -1
  55. package/dist/cjs/index.js.map +1 -1
  56. package/dist/cjs/model/book.js +62 -35
  57. package/dist/cjs/model/book.js.map +1 -1
  58. package/dist/cjs/model/market.js +61 -26
  59. package/dist/cjs/model/market.js.map +1 -1
  60. package/dist/cjs/model/pool.js +239 -0
  61. package/dist/cjs/model/pool.js.map +1 -0
  62. package/dist/cjs/type.js.map +1 -1
  63. package/dist/cjs/utils/allowance.js +39 -0
  64. package/dist/cjs/utils/allowance.js.map +1 -0
  65. package/dist/cjs/utils/approval.js +2 -3
  66. package/dist/cjs/utils/approval.js.map +1 -1
  67. package/dist/cjs/utils/bigint.js +5 -1
  68. package/dist/cjs/utils/bigint.js.map +1 -1
  69. package/dist/cjs/utils/book-id.js +7 -7
  70. package/dist/cjs/utils/book-id.js.map +1 -1
  71. package/dist/cjs/utils/build-transaction.js +3 -4
  72. package/dist/cjs/utils/build-transaction.js.map +1 -1
  73. package/dist/cjs/utils/currency.js +61 -27
  74. package/dist/cjs/utils/currency.js.map +1 -1
  75. package/dist/cjs/utils/market.js +1 -1
  76. package/dist/cjs/utils/market.js.map +1 -1
  77. package/dist/cjs/utils/math.js +3 -1
  78. package/dist/cjs/utils/math.js.map +1 -1
  79. package/dist/cjs/utils/open.js +35 -25
  80. package/dist/cjs/utils/open.js.map +1 -1
  81. package/dist/cjs/utils/order.js +50 -126
  82. package/dist/cjs/utils/order.js.map +1 -1
  83. package/dist/cjs/utils/pool-key.js +17 -0
  84. package/dist/cjs/utils/pool-key.js.map +1 -0
  85. package/dist/cjs/utils/pool.js +88 -0
  86. package/dist/cjs/utils/pool.js.map +1 -0
  87. package/dist/cjs/utils/prices.js +40 -5
  88. package/dist/cjs/utils/prices.js.map +1 -1
  89. package/dist/cjs/utils/quotes.js +16 -0
  90. package/dist/cjs/utils/quotes.js.map +1 -0
  91. package/dist/cjs/utils/tick.js +12 -1
  92. package/dist/cjs/utils/tick.js.map +1 -1
  93. package/dist/cjs/utils/time-series.js +31 -0
  94. package/dist/cjs/utils/time-series.js.map +1 -0
  95. package/dist/cjs/utils/unit-size.js +14 -0
  96. package/dist/cjs/utils/unit-size.js.map +1 -0
  97. package/dist/cjs/utils.js +18 -0
  98. package/dist/cjs/utils.js.map +1 -0
  99. package/dist/cjs/view.js +308 -44
  100. package/dist/cjs/view.js.map +1 -1
  101. package/dist/esm/abis/core/book-manager-abi.js +109 -0
  102. package/dist/esm/abis/core/book-manager-abi.js.map +1 -0
  103. package/dist/esm/abis/core/book-viewer-abi.js +137 -5
  104. package/dist/esm/abis/core/book-viewer-abi.js.map +1 -1
  105. package/dist/esm/abis/core/controller-abi.js +1 -6
  106. package/dist/esm/abis/core/controller-abi.js.map +1 -1
  107. package/dist/esm/abis/rebalancer/minter-abi.js +259 -0
  108. package/dist/esm/abis/rebalancer/minter-abi.js.map +1 -0
  109. package/dist/esm/abis/rebalancer/mock-swap-abi.js +92 -0
  110. package/dist/esm/abis/rebalancer/mock-swap-abi.js.map +1 -0
  111. package/dist/esm/abis/rebalancer/operator-abi.js +398 -0
  112. package/dist/esm/abis/rebalancer/operator-abi.js.map +1 -0
  113. package/dist/esm/abis/rebalancer/rebalancer-abi.js +1323 -0
  114. package/dist/esm/abis/rebalancer/rebalancer-abi.js.map +1 -0
  115. package/dist/esm/abis/rebalancer/strategy-abi.js +892 -0
  116. package/dist/esm/abis/rebalancer/strategy-abi.js.map +1 -0
  117. package/dist/esm/apis/chart-logs.js +29 -12
  118. package/dist/esm/apis/chart-logs.js.map +1 -1
  119. package/dist/esm/apis/market.js +47 -24
  120. package/dist/esm/apis/market.js.map +1 -1
  121. package/dist/esm/apis/odos.js +94 -0
  122. package/dist/esm/apis/odos.js.map +1 -0
  123. package/dist/esm/apis/open-order.js +78 -44
  124. package/dist/esm/apis/open-order.js.map +1 -1
  125. package/dist/esm/apis/pool.js +96 -0
  126. package/dist/esm/apis/pool.js.map +1 -0
  127. package/dist/esm/apis/strategy.js +48 -0
  128. package/dist/esm/apis/strategy.js.map +1 -0
  129. package/dist/esm/approval.js +107 -25
  130. package/dist/esm/approval.js.map +1 -1
  131. package/dist/esm/call.js +772 -145
  132. package/dist/esm/call.js.map +1 -1
  133. package/dist/esm/constants/addresses.js +69 -2
  134. package/dist/esm/constants/addresses.js.map +1 -1
  135. package/dist/esm/constants/chain.js +23 -2
  136. package/dist/esm/constants/chain.js.map +1 -1
  137. package/dist/esm/constants/currency.js +87 -2
  138. package/dist/esm/constants/currency.js.map +1 -1
  139. package/dist/esm/constants/fee.js +21 -2
  140. package/dist/esm/constants/fee.js.map +1 -1
  141. package/dist/esm/constants/permit.js +11 -0
  142. package/dist/esm/constants/permit.js.map +1 -0
  143. package/dist/esm/constants/price.js +1 -0
  144. package/dist/esm/constants/price.js.map +1 -1
  145. package/dist/esm/constants/rise-sepolia.js +26 -0
  146. package/dist/esm/constants/rise-sepolia.js.map +1 -0
  147. package/dist/esm/constants/subgraph.js +33 -0
  148. package/dist/esm/constants/subgraph.js.map +1 -0
  149. package/dist/esm/constants/test-chain.js +47 -0
  150. package/dist/esm/constants/test-chain.js.map +1 -0
  151. package/dist/esm/constants/tick.js +3 -0
  152. package/dist/esm/constants/tick.js.map +1 -0
  153. package/dist/esm/index.js +1 -1
  154. package/dist/esm/index.js.map +1 -1
  155. package/dist/esm/model/book.js +62 -35
  156. package/dist/esm/model/book.js.map +1 -1
  157. package/dist/esm/model/market.js +63 -28
  158. package/dist/esm/model/market.js.map +1 -1
  159. package/dist/esm/model/pool.js +236 -0
  160. package/dist/esm/model/pool.js.map +1 -0
  161. package/dist/esm/type.js.map +1 -1
  162. package/dist/esm/utils/allowance.js +35 -0
  163. package/dist/esm/utils/allowance.js.map +1 -0
  164. package/dist/esm/utils/approval.js +2 -3
  165. package/dist/esm/utils/approval.js.map +1 -1
  166. package/dist/esm/utils/bigint.js +2 -0
  167. package/dist/esm/utils/bigint.js.map +1 -1
  168. package/dist/esm/utils/book-id.js +7 -7
  169. package/dist/esm/utils/book-id.js.map +1 -1
  170. package/dist/esm/utils/build-transaction.js +3 -4
  171. package/dist/esm/utils/build-transaction.js.map +1 -1
  172. package/dist/esm/utils/currency.js +59 -25
  173. package/dist/esm/utils/currency.js.map +1 -1
  174. package/dist/esm/utils/market.js +1 -1
  175. package/dist/esm/utils/market.js.map +1 -1
  176. package/dist/esm/utils/math.js +1 -0
  177. package/dist/esm/utils/math.js.map +1 -1
  178. package/dist/esm/utils/open.js +33 -23
  179. package/dist/esm/utils/open.js.map +1 -1
  180. package/dist/esm/utils/order.js +49 -125
  181. package/dist/esm/utils/order.js.map +1 -1
  182. package/dist/esm/utils/pool-key.js +12 -0
  183. package/dist/esm/utils/pool-key.js.map +1 -0
  184. package/dist/esm/utils/pool.js +84 -0
  185. package/dist/esm/utils/pool.js.map +1 -0
  186. package/dist/esm/utils/prices.js +39 -5
  187. package/dist/esm/utils/prices.js.map +1 -1
  188. package/dist/esm/utils/quotes.js +12 -0
  189. package/dist/esm/utils/quotes.js.map +1 -0
  190. package/dist/esm/utils/tick.js +11 -1
  191. package/dist/esm/utils/tick.js.map +1 -1
  192. package/dist/esm/utils/time-series.js +27 -0
  193. package/dist/esm/utils/time-series.js.map +1 -0
  194. package/dist/esm/utils/unit-size.js +10 -0
  195. package/dist/esm/utils/unit-size.js.map +1 -0
  196. package/dist/esm/utils.js +5 -0
  197. package/dist/esm/utils.js.map +1 -0
  198. package/dist/esm/view.js +379 -61
  199. package/dist/esm/view.js.map +1 -1
  200. package/dist/tsconfig.build.tsbuildinfo +1 -1
  201. package/dist/types/abis/core/book-manager-abi.d.ts +82 -0
  202. package/dist/types/abis/core/book-manager-abi.d.ts.map +1 -0
  203. package/dist/types/abis/core/book-viewer-abi.d.ts +107 -5
  204. package/dist/types/abis/core/book-viewer-abi.d.ts.map +1 -1
  205. package/dist/types/abis/core/controller-abi.d.ts +1 -5
  206. package/dist/types/abis/core/controller-abi.d.ts.map +1 -1
  207. package/dist/types/abis/rebalancer/minter-abi.d.ts +198 -0
  208. package/dist/types/abis/rebalancer/minter-abi.d.ts.map +1 -0
  209. package/dist/types/abis/rebalancer/mock-swap-abi.d.ts +70 -0
  210. package/dist/types/abis/rebalancer/mock-swap-abi.d.ts.map +1 -0
  211. package/dist/types/abis/rebalancer/operator-abi.d.ts +308 -0
  212. package/dist/types/abis/rebalancer/operator-abi.d.ts.map +1 -0
  213. package/dist/types/abis/rebalancer/rebalancer-abi.d.ts +1023 -0
  214. package/dist/types/abis/rebalancer/rebalancer-abi.d.ts.map +1 -0
  215. package/dist/types/abis/rebalancer/strategy-abi.d.ts +690 -0
  216. package/dist/types/abis/rebalancer/strategy-abi.d.ts.map +1 -0
  217. package/dist/types/apis/chart-logs.d.ts +3 -0
  218. package/dist/types/apis/chart-logs.d.ts.map +1 -1
  219. package/dist/types/apis/market.d.ts +2 -1
  220. package/dist/types/apis/market.d.ts.map +1 -1
  221. package/dist/types/apis/odos.d.ts +28 -0
  222. package/dist/types/apis/odos.d.ts.map +1 -0
  223. package/dist/types/apis/open-order.d.ts +3 -2
  224. package/dist/types/apis/open-order.d.ts.map +1 -1
  225. package/dist/types/apis/pool.d.ts +11 -0
  226. package/dist/types/apis/pool.d.ts.map +1 -0
  227. package/dist/types/apis/strategy.d.ts +6 -0
  228. package/dist/types/apis/strategy.d.ts.map +1 -0
  229. package/dist/types/approval.d.ts +37 -3
  230. package/dist/types/approval.d.ts.map +1 -1
  231. package/dist/types/call.d.ts +233 -54
  232. package/dist/types/call.d.ts.map +1 -1
  233. package/dist/types/constants/addresses.d.ts +4 -0
  234. package/dist/types/constants/addresses.d.ts.map +1 -1
  235. package/dist/types/constants/chain.d.ts +9 -2
  236. package/dist/types/constants/chain.d.ts.map +1 -1
  237. package/dist/types/constants/currency.d.ts +8 -0
  238. package/dist/types/constants/currency.d.ts.map +1 -1
  239. package/dist/types/constants/fee.d.ts +7 -2
  240. package/dist/types/constants/fee.d.ts.map +1 -1
  241. package/dist/types/constants/permit.d.ts +10 -0
  242. package/dist/types/constants/permit.d.ts.map +1 -0
  243. package/dist/types/constants/price.d.ts +1 -0
  244. package/dist/types/constants/price.d.ts.map +1 -1
  245. package/dist/types/constants/rise-sepolia.d.ts +32 -0
  246. package/dist/types/constants/rise-sepolia.d.ts.map +1 -0
  247. package/dist/types/constants/subgraph.d.ts +8 -0
  248. package/dist/types/constants/subgraph.d.ts.map +1 -0
  249. package/dist/types/constants/test-chain.d.ts +4 -0
  250. package/dist/types/constants/test-chain.d.ts.map +1 -0
  251. package/dist/types/constants/tick.d.ts +3 -0
  252. package/dist/types/constants/tick.d.ts.map +1 -0
  253. package/dist/types/index.d.ts +1 -1
  254. package/dist/types/index.d.ts.map +1 -1
  255. package/dist/types/model/book.d.ts +25 -33
  256. package/dist/types/model/book.d.ts.map +1 -1
  257. package/dist/types/model/currency.d.ts +7 -0
  258. package/dist/types/model/currency.d.ts.map +1 -1
  259. package/dist/types/model/depth.d.ts +4 -3
  260. package/dist/types/model/depth.d.ts.map +1 -1
  261. package/dist/types/model/market.d.ts +24 -13
  262. package/dist/types/model/market.d.ts.map +1 -1
  263. package/dist/types/model/open-order.d.ts +20 -27
  264. package/dist/types/model/open-order.d.ts.map +1 -1
  265. package/dist/types/model/pool.d.ts +76 -0
  266. package/dist/types/model/pool.d.ts.map +1 -0
  267. package/dist/types/type.d.ts +95 -6
  268. package/dist/types/type.d.ts.map +1 -1
  269. package/dist/types/utils/allowance.d.ts +3 -0
  270. package/dist/types/utils/allowance.d.ts.map +1 -0
  271. package/dist/types/utils/approval.d.ts +2 -1
  272. package/dist/types/utils/approval.d.ts.map +1 -1
  273. package/dist/types/utils/bigint.d.ts +2 -0
  274. package/dist/types/utils/bigint.d.ts.map +1 -1
  275. package/dist/types/utils/book-id.d.ts +2 -1
  276. package/dist/types/utils/book-id.d.ts.map +1 -1
  277. package/dist/types/utils/build-transaction.d.ts +3 -3
  278. package/dist/types/utils/build-transaction.d.ts.map +1 -1
  279. package/dist/types/utils/currency.d.ts +3 -2
  280. package/dist/types/utils/currency.d.ts.map +1 -1
  281. package/dist/types/utils/math.d.ts +1 -0
  282. package/dist/types/utils/math.d.ts.map +1 -1
  283. package/dist/types/utils/open.d.ts +2 -1
  284. package/dist/types/utils/open.d.ts.map +1 -1
  285. package/dist/types/utils/order.d.ts +4 -11
  286. package/dist/types/utils/order.d.ts.map +1 -1
  287. package/dist/types/utils/pool-key.d.ts +3 -0
  288. package/dist/types/utils/pool-key.d.ts.map +1 -0
  289. package/dist/types/utils/pool.d.ts +11 -0
  290. package/dist/types/utils/pool.d.ts.map +1 -0
  291. package/dist/types/utils/prices.d.ts +13 -2
  292. package/dist/types/utils/prices.d.ts.map +1 -1
  293. package/dist/types/utils/quotes.d.ts +2 -0
  294. package/dist/types/utils/quotes.d.ts.map +1 -0
  295. package/dist/types/utils/tick.d.ts +1 -0
  296. package/dist/types/utils/tick.d.ts.map +1 -1
  297. package/dist/types/utils/time-series.d.ts +4 -0
  298. package/dist/types/utils/time-series.d.ts.map +1 -0
  299. package/dist/types/utils/unit-size.d.ts +4 -0
  300. package/dist/types/utils/unit-size.d.ts.map +1 -0
  301. package/dist/types/utils.d.ts +5 -0
  302. package/dist/types/utils.d.ts.map +1 -0
  303. package/dist/types/view.d.ts +236 -30
  304. package/dist/types/view.d.ts.map +1 -1
  305. package/package.json +4 -3
  306. package/dist/cjs/abis/core/params-abi.js +0 -62
  307. package/dist/cjs/abis/core/params-abi.js.map +0 -1
  308. package/dist/cjs/apis/subgraph.js +0 -26
  309. package/dist/cjs/apis/subgraph.js.map +0 -1
  310. package/dist/cjs/constants/client.js +0 -14
  311. package/dist/cjs/constants/client.js.map +0 -1
  312. package/dist/cjs/constants/subgraph-url.js +0 -8
  313. package/dist/cjs/constants/subgraph-url.js.map +0 -1
  314. package/dist/cjs/signature.js +0 -145
  315. package/dist/cjs/signature.js.map +0 -1
  316. package/dist/cjs/utils/decorator.js +0 -13
  317. package/dist/cjs/utils/decorator.js.map +0 -1
  318. package/dist/cjs/utils/unit.js +0 -34
  319. package/dist/cjs/utils/unit.js.map +0 -1
  320. package/dist/esm/abis/core/params-abi.js +0 -59
  321. package/dist/esm/abis/core/params-abi.js.map +0 -1
  322. package/dist/esm/apis/subgraph.js +0 -22
  323. package/dist/esm/apis/subgraph.js.map +0 -1
  324. package/dist/esm/constants/client.js +0 -10
  325. package/dist/esm/constants/client.js.map +0 -1
  326. package/dist/esm/constants/subgraph-url.js +0 -5
  327. package/dist/esm/constants/subgraph-url.js.map +0 -1
  328. package/dist/esm/signature.js +0 -169
  329. package/dist/esm/signature.js.map +0 -1
  330. package/dist/esm/utils/decorator.js +0 -9
  331. package/dist/esm/utils/decorator.js.map +0 -1
  332. package/dist/esm/utils/unit.js +0 -30
  333. package/dist/esm/utils/unit.js.map +0 -1
  334. package/dist/types/abis/core/params-abi.d.ts +0 -21
  335. package/dist/types/abis/core/params-abi.d.ts.map +0 -1
  336. package/dist/types/apis/subgraph.d.ts +0 -3
  337. package/dist/types/apis/subgraph.d.ts.map +0 -1
  338. package/dist/types/constants/client.d.ts +0 -5
  339. package/dist/types/constants/client.d.ts.map +0 -1
  340. package/dist/types/constants/subgraph-url.d.ts +0 -5
  341. package/dist/types/constants/subgraph-url.d.ts.map +0 -1
  342. package/dist/types/signature.d.ts +0 -38
  343. package/dist/types/signature.d.ts.map +0 -1
  344. package/dist/types/utils/decorator.d.ts +0 -6
  345. package/dist/types/utils/decorator.d.ts.map +0 -1
  346. package/dist/types/utils/unit.d.ts +0 -4
  347. package/dist/types/utils/unit.d.ts.map +0 -1
@@ -1,133 +1,30 @@
1
- import { getAddress } from 'viem';
2
- import { cachedPublicClients } from '../constants/client';
1
+ import { formatUnits, getAddress, isAddressEqual } from 'viem';
2
+ import { getMarketPrice } from '../index';
3
3
  import { CONTRACT_ADDRESSES } from '../constants/addresses';
4
+ import { MAKER_DEFAULT_POLICY } from '../constants/fee';
5
+ import { BOOK_MANAGER_ABI } from '../abis/core/book-manager-abi';
4
6
  import { fetchCurrencyMap } from './currency';
5
- const _abi = [
6
- {
7
- inputs: [
8
- {
9
- internalType: 'OrderId',
10
- name: 'id',
11
- type: 'uint256',
12
- },
13
- ],
14
- name: 'getOrder',
15
- outputs: [
16
- {
17
- components: [
18
- {
19
- internalType: 'address',
20
- name: 'provider',
21
- type: 'address',
22
- },
23
- {
24
- internalType: 'uint64',
25
- name: 'open',
26
- type: 'uint64',
27
- },
28
- {
29
- internalType: 'uint64',
30
- name: 'claimable',
31
- type: 'uint64',
32
- },
33
- ],
34
- internalType: 'struct IBookManager.OrderInfo',
35
- name: '',
36
- type: 'tuple',
37
- },
38
- ],
39
- stateMutability: 'view',
40
- type: 'function',
41
- },
42
- {
43
- inputs: [
44
- {
45
- internalType: 'uint256',
46
- name: 'tokenId',
47
- type: 'uint256',
48
- },
49
- ],
50
- name: 'ownerOf',
51
- outputs: [
52
- {
53
- internalType: 'address',
54
- name: '',
55
- type: 'address',
56
- },
57
- ],
58
- stateMutability: 'view',
59
- type: 'function',
60
- },
61
- {
62
- inputs: [
63
- {
64
- internalType: 'BookId',
65
- name: 'id',
66
- type: 'uint192',
67
- },
68
- ],
69
- name: 'getBookKey',
70
- outputs: [
71
- {
72
- components: [
73
- {
74
- internalType: 'Currency',
75
- name: 'base',
76
- type: 'address',
77
- },
78
- {
79
- internalType: 'uint64',
80
- name: 'unit',
81
- type: 'uint64',
82
- },
83
- {
84
- internalType: 'Currency',
85
- name: 'quote',
86
- type: 'address',
87
- },
88
- {
89
- internalType: 'FeePolicy',
90
- name: 'makerPolicy',
91
- type: 'uint24',
92
- },
93
- {
94
- internalType: 'contract IHooks',
95
- name: 'hooks',
96
- type: 'address',
97
- },
98
- {
99
- internalType: 'FeePolicy',
100
- name: 'takerPolicy',
101
- type: 'uint24',
102
- },
103
- ],
104
- internalType: 'struct IBookManager.BookKey',
105
- name: '',
106
- type: 'tuple',
107
- },
108
- ],
109
- stateMutability: 'view',
110
- type: 'function',
111
- },
112
- ];
113
- export const fetchOrders = async (chainId, orderIds) => {
114
- const result = await cachedPublicClients[chainId].multicall({
7
+ import { quoteToBase } from './decimals';
8
+ import { getMarketId } from './market';
9
+ import { applyPercent } from './bigint';
10
+ export const fetchOnChainOrders = async (publicClient, chainId, orderIds) => {
11
+ const result = await publicClient.multicall({
115
12
  contracts: [
116
13
  ...orderIds.map((orderId) => ({
117
14
  address: CONTRACT_ADDRESSES[chainId].BookManager,
118
- abi: _abi,
15
+ abi: BOOK_MANAGER_ABI,
119
16
  functionName: 'getOrder',
120
17
  args: [orderId],
121
18
  })),
122
19
  ...orderIds.map((orderId) => ({
123
20
  address: CONTRACT_ADDRESSES[chainId].BookManager,
124
- abi: _abi,
21
+ abi: BOOK_MANAGER_ABI,
125
22
  functionName: 'ownerOf',
126
23
  args: [orderId],
127
24
  })),
128
25
  ...orderIds.map((orderId) => ({
129
26
  address: CONTRACT_ADDRESSES[chainId].BookManager,
130
- abi: _abi,
27
+ abi: BOOK_MANAGER_ABI,
131
28
  functionName: 'getBookKey',
132
29
  args: [fromOrderId(orderId).bookId],
133
30
  })),
@@ -139,21 +36,48 @@ export const fetchOrders = async (chainId, orderIds) => {
139
36
  return [base, quote];
140
37
  })
141
38
  .flat();
142
- const currencyMap = await fetchCurrencyMap(chainId, addresses);
39
+ const currencyMap = await fetchCurrencyMap(publicClient, chainId, addresses);
143
40
  return orderIds.map((orderId, index) => {
144
41
  const order = result[index].result;
145
42
  const owner = result[index + orderIds.length].result;
146
- const { base, quote, unit } = result[index + orderIds.length * 2]
43
+ const { base, quote, unitSize } = result[index + orderIds.length * 2]
147
44
  .result;
45
+ const cancelable = applyPercent(unitSize * order.open, 100 +
46
+ (Number(MAKER_DEFAULT_POLICY[chainId].rate) * 100) /
47
+ Number(MAKER_DEFAULT_POLICY[chainId].RATE_PRECISION), 6);
48
+ const claimable = quoteToBase(fromOrderId(orderId).tick, unitSize * order.claimable, false);
49
+ const isBid = isAddressEqual(quote, getMarketId(chainId, [base, quote]).quoteTokenAddress);
50
+ const { tick, index: orderIndex } = fromOrderId(orderId);
51
+ const [quoteCurrency, baseCurrency] = isBid
52
+ ? [currencyMap[quote], currencyMap[base]]
53
+ : [currencyMap[base], currencyMap[quote]];
148
54
  return {
149
- open: order.open,
150
- claimable: order.claimable,
151
- orderId,
152
- owner,
153
- unit,
154
- tick: fromOrderId(orderId).tick,
155
- baseCurrency: currencyMap[getAddress(base)],
156
- quoteCurrency: currencyMap[getAddress(quote)],
55
+ id: orderId.toString(),
56
+ user: owner,
57
+ isBid,
58
+ price: isBid
59
+ ? getMarketPrice({
60
+ marketQuoteCurrency: quoteCurrency,
61
+ marketBaseCurrency: baseCurrency,
62
+ bidTick: tick,
63
+ })
64
+ : getMarketPrice({
65
+ marketQuoteCurrency: quoteCurrency,
66
+ marketBaseCurrency: baseCurrency,
67
+ askTick: tick,
68
+ }),
69
+ tick: Number(tick),
70
+ orderIndex: orderIndex.toString(),
71
+ inputCurrency: currencyMap[getAddress(quote)],
72
+ outputCurrency: currencyMap[getAddress(base)],
73
+ cancelable: {
74
+ currency: currencyMap[getAddress(quote)],
75
+ value: formatUnits(cancelable, currencyMap[getAddress(quote)].decimals),
76
+ },
77
+ claimable: {
78
+ currency: currencyMap[getAddress(base)],
79
+ value: formatUnits(claimable, currencyMap[getAddress(base)].decimals),
80
+ },
157
81
  };
158
82
  });
159
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/utils/order.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/utils/order.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { encodePacked, keccak256 } from 'viem';
2
+ export const toPoolKey = (bookIdA, bookIdB, salt) => {
3
+ if (bookIdA > bookIdB) {
4
+ ;
5
+ [bookIdA, bookIdB] = [bookIdB, bookIdA];
6
+ }
7
+ return keccak256(encodePacked(['uint192', 'uint192', 'bytes32'], [bookIdA, bookIdB, toBytes32(salt)]));
8
+ };
9
+ export const toBytes32 = (value) => {
10
+ return `0x${value.slice(2, 66).padStart(64, '0')}`;
11
+ };
12
+ //# sourceMappingURL=pool-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool-key.js","sourceRoot":"","sources":["../../../src/utils/pool-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAAe,EACf,OAAe,EACf,IAAmB,EACnB,EAAE;IACF,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;QACtB,CAAC;QAAA,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,SAAS,CACd,YAAY,CACV,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACjC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CACpC,CACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAiB,EAAE;IAC/D,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAA;AACpD,CAAC,CAAA"}
@@ -0,0 +1,84 @@
1
+ // @dev: This function is ported from the contract code
2
+ export function getExpectedMintResult(totalSupply, liquidityA, liquidityB, amountA, amountB, currencyA, currencyB) {
3
+ if (totalSupply === 0n) {
4
+ if (amountA === 0n || amountB === 0n) {
5
+ return {
6
+ mintAmount: 0n,
7
+ inAmountA: 0n,
8
+ inAmountB: 0n,
9
+ };
10
+ }
11
+ const complementA = BigInt(10 ** (18 - currencyA.decimals));
12
+ const complementB = BigInt(10 ** (18 - currencyB.decimals));
13
+ const _amountA = amountA * complementA;
14
+ const _amountB = amountB * complementB;
15
+ return {
16
+ mintAmount: _amountA > _amountB ? _amountA : _amountB,
17
+ inAmountA: amountA,
18
+ inAmountB: amountB,
19
+ };
20
+ }
21
+ else {
22
+ if (liquidityA === 0n && liquidityB === 0n) {
23
+ return {
24
+ mintAmount: 0n,
25
+ inAmountA: 0n,
26
+ inAmountB: 0n,
27
+ };
28
+ }
29
+ else if (liquidityA === 0n) {
30
+ return {
31
+ mintAmount: (amountB * totalSupply) / liquidityB,
32
+ inAmountA: 0n,
33
+ inAmountB: amountB,
34
+ };
35
+ }
36
+ else if (liquidityB === 0n) {
37
+ return {
38
+ mintAmount: (amountA * totalSupply) / liquidityA,
39
+ inAmountA: amountA,
40
+ inAmountB: 0n,
41
+ };
42
+ }
43
+ else {
44
+ const mintA = (amountA * totalSupply) / liquidityA;
45
+ const mintB = (amountB * totalSupply) / liquidityB;
46
+ if (mintA > mintB) {
47
+ return {
48
+ mintAmount: mintB,
49
+ inAmountA: (liquidityA * mintB) / totalSupply,
50
+ inAmountB: amountB,
51
+ };
52
+ }
53
+ else {
54
+ return {
55
+ mintAmount: mintA,
56
+ inAmountA: amountA,
57
+ inAmountB: (liquidityB * mintA) / totalSupply,
58
+ };
59
+ }
60
+ }
61
+ }
62
+ }
63
+ export function getIdealDelta(amountA, amountB, liquidityA, liquidityB, swapAmountA, swapAmountB) {
64
+ if (swapAmountA === 0n || swapAmountB === 0n) {
65
+ throw new Error('Invalid swap amount information');
66
+ }
67
+ if (liquidityA === 0n && liquidityB === 0n) {
68
+ return {
69
+ deltaA: 0n,
70
+ deltaB: 0n,
71
+ };
72
+ }
73
+ else {
74
+ const deltaA = ((liquidityA * amountB - liquidityB * amountA) * swapAmountA) /
75
+ (swapAmountA * liquidityB + swapAmountB * liquidityA);
76
+ const deltaB = -((liquidityA * amountB - liquidityB * amountA) * swapAmountB) /
77
+ (swapAmountA * liquidityB + swapAmountB * liquidityA);
78
+ return {
79
+ deltaA,
80
+ deltaB,
81
+ };
82
+ }
83
+ }
84
+ //# sourceMappingURL=pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../src/utils/pool.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,51 @@
1
1
  import BigNumber from 'bignumber.js';
2
- import { PRICE_PRECISION } from '../constants/price';
2
+ import { MAX_PRICE, MIN_PRICE, PRICE_PRECISION } from '../constants/price';
3
+ import { fromPrice, invertTick, toPrice } from './tick';
4
+ import { max, min } from './bigint';
5
+ BigNumber.config({
6
+ DECIMAL_PLACES: 100,
7
+ });
8
+ // @dev: Use this function only for display purposes not logic
3
9
  export const formatPrice = (price, quoteDecimals, baseDecimals) => {
4
10
  return new BigNumber(price.toString())
5
11
  .div(new BigNumber(2).pow(PRICE_PRECISION.toString()))
6
12
  .times(new BigNumber(10).pow(baseDecimals))
7
13
  .div(new BigNumber(10).pow(quoteDecimals))
8
- .toNumber();
14
+ .toFixed();
9
15
  };
10
- export const parsePrice = (price, quoteDecimals, baseDecimals) => {
11
- const value = new BigNumber(price)
16
+ export const convertHumanReadablePriceToRawPrice = (humanReadablePrice, quoteDecimals, baseDecimals) => {
17
+ const value = new BigNumber(humanReadablePrice)
12
18
  .times(new BigNumber(2).pow(PRICE_PRECISION.toString()))
13
19
  .times(new BigNumber(10).pow(quoteDecimals))
14
20
  .div(new BigNumber(10).pow(baseDecimals));
15
- return BigInt(value.isInteger() ? value.toFixed() : value.integerValue().toFixed());
21
+ const rawPrice = BigInt(value.isInteger() ? value.toFixed() : value.integerValue().toFixed());
22
+ return rawPrice;
23
+ };
24
+ export const parsePrice = (humanReadablePrice, quoteDecimals, baseDecimals) => {
25
+ const rawPrice = convertHumanReadablePriceToRawPrice(humanReadablePrice, quoteDecimals, baseDecimals);
26
+ const cutOffRawPrice = max(MIN_PRICE, min(rawPrice, MAX_PRICE));
27
+ const tick = fromPrice(cutOffRawPrice);
28
+ const flooredPrice = toPrice(tick);
29
+ if (rawPrice === flooredPrice) {
30
+ return {
31
+ roundingDownTick: tick,
32
+ roundingUpTick: tick,
33
+ };
34
+ }
35
+ return {
36
+ roundingDownTick: tick,
37
+ roundingUpTick: tick + 1n,
38
+ };
39
+ };
40
+ export const getMarketPrice = ({ marketQuoteCurrency, marketBaseCurrency, bidTick, askTick, }) => {
41
+ if (bidTick !== undefined) {
42
+ return formatPrice(toPrice(bidTick), marketQuoteCurrency.decimals, marketBaseCurrency.decimals);
43
+ }
44
+ else if (askTick !== undefined) {
45
+ return formatPrice(toPrice(invertTick(askTick)), marketQuoteCurrency.decimals, marketBaseCurrency.decimals);
46
+ }
47
+ else {
48
+ throw new Error('Either bidTick or askTick must be provided');
49
+ }
16
50
  };
17
51
  //# sourceMappingURL=prices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAa,EACb,aAAqB,EACrB,YAAoB,EACZ,EAAE;IACV,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACnC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;SACrD,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC1C,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SACzC,QAAQ,EAAE,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAa,EACb,aAAqB,EACrB,YAAoB,EACZ,EAAE;IACV,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC;SAC/B,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;SACvD,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SAC3C,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;IAC3C,OAAO,MAAM,CACX,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CACrE,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import BigNumber from 'bignumber.js';
2
+ BigNumber.config({
3
+ DECIMAL_PLACES: 100,
4
+ });
5
+ const PRICE_PRECISION = 18;
6
+ export const quotes = (amountIn, inputCurrencyPrice, outputCurrencyPrice, inputCurrencyDecimals, outputCurrencyDecimals) => {
7
+ const bnPriceA = BigInt(new BigNumber(inputCurrencyPrice).times(10 ** PRICE_PRECISION).toFixed(0));
8
+ const bnPriceB = BigInt(new BigNumber(outputCurrencyPrice).times(10 ** PRICE_PRECISION).toFixed(0));
9
+ return ((amountIn * bnPriceA * 10n ** BigInt(outputCurrencyDecimals)) /
10
+ (bnPriceB * 10n ** BigInt(inputCurrencyDecimals)));
11
+ };
12
+ //# sourceMappingURL=quotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../../src/utils/quotes.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,SAAS,CAAC,MAAM,CAAC;IACf,cAAc,EAAE,GAAG;CACpB,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,QAAgB,EAChB,kBAA0B,EAC1B,mBAA2B,EAC3B,qBAA6B,EAC7B,sBAA8B,EACtB,EAAE;IACV,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAC1E,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAC3E,CAAA;IACD,OAAO,CACL,CAAC,QAAQ,GAAG,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC7D,CAAC,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAClD,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
- import { PRICE_PRECISION } from '../constants/price';
1
+ import { MAX_PRICE, MIN_PRICE, PRICE_PRECISION } from '../constants/price';
2
+ import { MAX_TICK, MIN_TICK } from '../constants/tick';
2
3
  import { lnWad } from './math';
3
4
  const _R0 = 0xfff97272373d413259a46990n;
4
5
  const _R1 = 0xfff2e50f5f656932ef12357cn;
@@ -19,10 +20,16 @@ const _R15 = 0x9aa508b5b7a84e1c677de54n;
19
20
  const _R16 = 0x5d6af8dedb81196699c329n;
20
21
  const _R17 = 0x2216e584f5fa1ea92604n;
21
22
  const _R18 = 0x48a170391f7dc42n;
23
+ export const invertTick = (tick) => {
24
+ return -tick;
25
+ };
22
26
  export const invertPrice = (price) => {
23
27
  return price ? (1n << (PRICE_PRECISION * 2n)) / price : 0n;
24
28
  };
25
29
  export const fromPrice = (price) => {
30
+ if (price > MAX_PRICE || price < MIN_PRICE) {
31
+ throw new Error('price is out of range');
32
+ }
26
33
  const tick = (lnWad(price) * 42951820407860n) / 2n ** 128n;
27
34
  if (toPrice(tick) > price) {
28
35
  return tick - 1n;
@@ -30,6 +37,9 @@ export const fromPrice = (price) => {
30
37
  return tick;
31
38
  };
32
39
  export const toPrice = (tick) => {
40
+ if (tick > MAX_TICK || tick < MIN_TICK) {
41
+ throw new Error('tick is out of range');
42
+ }
33
43
  const absTick = tick < 0n ? -tick : tick;
34
44
  let price = 0n;
35
45
  if ((absTick & 0x1n) !== 0n) {
@@ -1 +1 @@
1
- {"version":3,"file":"tick.js","sourceRoot":"","sources":["../../../src/utils/tick.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tick.js","sourceRoot":"","sources":["../../../src/utils/tick.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export function fillAndSortByTimestamp(data, granularity, fromTimestamp, toTimestamp, emptyObjectGenerator) {
2
+ const sortedData = data.sort((a, b) => Number(a.timestamp) - Number(b.timestamp));
3
+ if (sortedData.findIndex((d) => Number(d.timestamp) === fromTimestamp) === -1) {
4
+ const before = sortedData.filter((d) => Number(d.timestamp) < fromTimestamp).pop() ||
5
+ null;
6
+ sortedData.unshift(emptyObjectGenerator(fromTimestamp, before));
7
+ }
8
+ if (sortedData.findIndex((d) => Number(d.timestamp) === toTimestamp) === -1) {
9
+ const before = sortedData.filter((d) => Number(d.timestamp) < toTimestamp).pop() || null;
10
+ null;
11
+ sortedData.push(emptyObjectGenerator(toTimestamp, before));
12
+ }
13
+ const result = [];
14
+ for (let i = 0; i < sortedData.length; i++) {
15
+ result.push(sortedData[i]);
16
+ if (i < sortedData.length - 1) {
17
+ const currentTimestamp = sortedData[i].timestamp;
18
+ const nextTimestamp = sortedData[i + 1].timestamp;
19
+ for (let ts = Number(currentTimestamp) + granularity; ts < Number(nextTimestamp); ts += granularity) {
20
+ result.push(emptyObjectGenerator(ts, sortedData[i]));
21
+ }
22
+ }
23
+ }
24
+ return result.filter((d) => Number(d.timestamp) >= fromTimestamp &&
25
+ Number(d.timestamp) <= toTimestamp);
26
+ }
27
+ //# sourceMappingURL=time-series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-series.js","sourceRoot":"","sources":["../../../src/utils/time-series.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAGpC,IAAS,EACT,WAAmB,EACnB,aAAqB,EACrB,WAAmB,EACnB,oBAA8D;IAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CACpD,CAAA;IAED,IACE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,EACzE,CAAC;QACD,MAAM,MAAM,GACV,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,EAAE;YACnE,IAAI,CAAA;QACN,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,MAAM,GACV,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAA;QAC3E,IAAI,CAAA;QACJ,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,MAAM,GAAQ,EAAE,CAAA;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1B,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAChD,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;YACjD,KACE,IAAI,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW,EAC/C,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,EAC1B,EAAE,IAAI,WAAW,EACjB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,aAAa;QACpC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,WAAW,CACrC,CAAA;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { isAddressEqual, zeroAddress } from 'viem';
2
+ import { WETH_ADDRESSES } from '../constants/currency';
3
+ export const calculateUnitSize = (chainId, quote) => {
4
+ if (isAddressEqual(quote.address, zeroAddress) ||
5
+ WETH_ADDRESSES[chainId].includes(quote.address)) {
6
+ return 10n ** 12n;
7
+ }
8
+ return 10n ** BigInt(Math.max(quote.decimals - 6, 0));
9
+ };
10
+ //# sourceMappingURL=unit-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit-size.js","sourceRoot":"","sources":["../../../src/utils/unit-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAkB,EAAE,KAAe,EAAE,EAAE;IACvE,IACE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;QAC1C,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAC/C,CAAC;QACD,OAAO,GAAG,IAAI,GAAG,CAAA;IACnB,CAAC;IACD,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { formatPrice, parsePrice, getMarketPrice } from './utils/prices';
2
+ export { toPrice, fromPrice, invertPrice, invertTick } from './utils/tick';
3
+ export { baseToQuote, quoteToBase } from './utils/decimals';
4
+ export { getMarketId } from './utils/market';
5
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}