@clober/v2-sdk 0.0.10 → 0.0.11-1.dev

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 (391) 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/governance/election-governor-abi.js +838 -0
  9. package/dist/cjs/abis/governance/election-governor-abi.js.map +1 -0
  10. package/dist/cjs/abis/governance/keepers-registry-abi.js +546 -0
  11. package/dist/cjs/abis/governance/keepers-registry-abi.js.map +1 -0
  12. package/dist/cjs/abis/governance/vclob-abi.js +743 -0
  13. package/dist/cjs/abis/governance/vclob-abi.js.map +1 -0
  14. package/dist/cjs/abis/rebalancer/minter-abi.js +262 -0
  15. package/dist/cjs/abis/rebalancer/minter-abi.js.map +1 -0
  16. package/dist/cjs/abis/rebalancer/mock-swap-abi.js +95 -0
  17. package/dist/cjs/abis/rebalancer/mock-swap-abi.js.map +1 -0
  18. package/dist/cjs/abis/rebalancer/operator-abi.js +401 -0
  19. package/dist/cjs/abis/rebalancer/operator-abi.js.map +1 -0
  20. package/dist/cjs/abis/rebalancer/rebalancer-abi.js +1326 -0
  21. package/dist/cjs/abis/rebalancer/rebalancer-abi.js.map +1 -0
  22. package/dist/cjs/abis/rebalancer/strategy-abi.js +895 -0
  23. package/dist/cjs/abis/rebalancer/strategy-abi.js.map +1 -0
  24. package/dist/cjs/apis/chart-logs.js +30 -13
  25. package/dist/cjs/apis/chart-logs.js.map +1 -1
  26. package/dist/cjs/apis/market.js +45 -22
  27. package/dist/cjs/apis/market.js.map +1 -1
  28. package/dist/cjs/apis/odos.js +100 -0
  29. package/dist/cjs/apis/odos.js.map +1 -0
  30. package/dist/cjs/apis/open-order.js +76 -39
  31. package/dist/cjs/apis/open-order.js.map +1 -1
  32. package/dist/cjs/apis/pool.js +96 -0
  33. package/dist/cjs/apis/pool.js.map +1 -0
  34. package/dist/cjs/apis/strategy.js +53 -0
  35. package/dist/cjs/apis/strategy.js.map +1 -0
  36. package/dist/cjs/apis/vclob.js +47 -0
  37. package/dist/cjs/apis/vclob.js.map +1 -0
  38. package/dist/cjs/approval.js +83 -26
  39. package/dist/cjs/approval.js.map +1 -1
  40. package/dist/cjs/call.js +787 -125
  41. package/dist/cjs/call.js.map +1 -1
  42. package/dist/cjs/constants/addresses.js +104 -1
  43. package/dist/cjs/constants/addresses.js.map +1 -1
  44. package/dist/cjs/constants/bera-bartio-chain.js +30 -0
  45. package/dist/cjs/constants/bera-bartio-chain.js.map +1 -0
  46. package/dist/cjs/constants/chain.js +29 -2
  47. package/dist/cjs/constants/chain.js.map +1 -1
  48. package/dist/cjs/constants/currency.js +99 -3
  49. package/dist/cjs/constants/currency.js.map +1 -1
  50. package/dist/cjs/constants/fee.js +23 -2
  51. package/dist/cjs/constants/fee.js.map +1 -1
  52. package/dist/cjs/constants/mitosis-testnet-chain.js +30 -0
  53. package/dist/cjs/constants/mitosis-testnet-chain.js.map +1 -0
  54. package/dist/cjs/constants/monad-testnet-chain.js +40 -0
  55. package/dist/cjs/constants/monad-testnet-chain.js.map +1 -0
  56. package/dist/cjs/constants/permit.js +14 -0
  57. package/dist/cjs/constants/permit.js.map +1 -0
  58. package/dist/cjs/constants/price.js +2 -1
  59. package/dist/cjs/constants/price.js.map +1 -1
  60. package/dist/cjs/constants/sonic-mainnet-chain.js +30 -0
  61. package/dist/cjs/constants/sonic-mainnet-chain.js.map +1 -0
  62. package/dist/cjs/constants/subgraph.js +38 -0
  63. package/dist/cjs/constants/subgraph.js.map +1 -0
  64. package/dist/cjs/constants/test-chain.js +50 -0
  65. package/dist/cjs/constants/test-chain.js.map +1 -0
  66. package/dist/cjs/constants/tick.js +6 -0
  67. package/dist/cjs/constants/tick.js.map +1 -0
  68. package/dist/cjs/index.js +1 -1
  69. package/dist/cjs/index.js.map +1 -1
  70. package/dist/cjs/model/book.js +62 -35
  71. package/dist/cjs/model/book.js.map +1 -1
  72. package/dist/cjs/model/market.js +61 -26
  73. package/dist/cjs/model/market.js.map +1 -1
  74. package/dist/cjs/model/pool.js +240 -0
  75. package/dist/cjs/model/pool.js.map +1 -0
  76. package/dist/cjs/model/vclob.js +3 -0
  77. package/dist/cjs/model/vclob.js.map +1 -0
  78. package/dist/cjs/type.js +8 -1
  79. package/dist/cjs/type.js.map +1 -1
  80. package/dist/cjs/utils/allowance.js +39 -0
  81. package/dist/cjs/utils/allowance.js.map +1 -0
  82. package/dist/cjs/utils/approval.js +2 -3
  83. package/dist/cjs/utils/approval.js.map +1 -1
  84. package/dist/cjs/utils/bigint.js +5 -1
  85. package/dist/cjs/utils/bigint.js.map +1 -1
  86. package/dist/cjs/utils/book-id.js +7 -7
  87. package/dist/cjs/utils/book-id.js.map +1 -1
  88. package/dist/cjs/utils/build-transaction.js +3 -4
  89. package/dist/cjs/utils/build-transaction.js.map +1 -1
  90. package/dist/cjs/utils/currency.js +61 -27
  91. package/dist/cjs/utils/currency.js.map +1 -1
  92. package/dist/cjs/utils/market.js +1 -1
  93. package/dist/cjs/utils/market.js.map +1 -1
  94. package/dist/cjs/utils/math.js +3 -1
  95. package/dist/cjs/utils/math.js.map +1 -1
  96. package/dist/cjs/utils/open.js +35 -25
  97. package/dist/cjs/utils/open.js.map +1 -1
  98. package/dist/cjs/utils/order.js +68 -126
  99. package/dist/cjs/utils/order.js.map +1 -1
  100. package/dist/cjs/utils/pool-key.js +17 -0
  101. package/dist/cjs/utils/pool-key.js.map +1 -0
  102. package/dist/cjs/utils/pool.js +88 -0
  103. package/dist/cjs/utils/pool.js.map +1 -0
  104. package/dist/cjs/utils/prices.js +40 -5
  105. package/dist/cjs/utils/prices.js.map +1 -1
  106. package/dist/cjs/utils/tick.js +12 -1
  107. package/dist/cjs/utils/tick.js.map +1 -1
  108. package/dist/cjs/utils/time-series.js +31 -0
  109. package/dist/cjs/utils/time-series.js.map +1 -0
  110. package/dist/cjs/utils/unit-size.js +48 -0
  111. package/dist/cjs/utils/unit-size.js.map +1 -0
  112. package/dist/cjs/utils.js +18 -0
  113. package/dist/cjs/utils.js.map +1 -0
  114. package/dist/cjs/view.js +459 -44
  115. package/dist/cjs/view.js.map +1 -1
  116. package/dist/esm/abis/core/book-manager-abi.js +109 -0
  117. package/dist/esm/abis/core/book-manager-abi.js.map +1 -0
  118. package/dist/esm/abis/core/book-viewer-abi.js +137 -5
  119. package/dist/esm/abis/core/book-viewer-abi.js.map +1 -1
  120. package/dist/esm/abis/core/controller-abi.js +1 -6
  121. package/dist/esm/abis/core/controller-abi.js.map +1 -1
  122. package/dist/esm/abis/governance/election-governor-abi.js +835 -0
  123. package/dist/esm/abis/governance/election-governor-abi.js.map +1 -0
  124. package/dist/esm/abis/governance/keepers-registry-abi.js +543 -0
  125. package/dist/esm/abis/governance/keepers-registry-abi.js.map +1 -0
  126. package/dist/esm/abis/governance/vclob-abi.js +740 -0
  127. package/dist/esm/abis/governance/vclob-abi.js.map +1 -0
  128. package/dist/esm/abis/rebalancer/minter-abi.js +259 -0
  129. package/dist/esm/abis/rebalancer/minter-abi.js.map +1 -0
  130. package/dist/esm/abis/rebalancer/mock-swap-abi.js +92 -0
  131. package/dist/esm/abis/rebalancer/mock-swap-abi.js.map +1 -0
  132. package/dist/esm/abis/rebalancer/operator-abi.js +398 -0
  133. package/dist/esm/abis/rebalancer/operator-abi.js.map +1 -0
  134. package/dist/esm/abis/rebalancer/rebalancer-abi.js +1323 -0
  135. package/dist/esm/abis/rebalancer/rebalancer-abi.js.map +1 -0
  136. package/dist/esm/abis/rebalancer/strategy-abi.js +892 -0
  137. package/dist/esm/abis/rebalancer/strategy-abi.js.map +1 -0
  138. package/dist/esm/apis/chart-logs.js +29 -12
  139. package/dist/esm/apis/chart-logs.js.map +1 -1
  140. package/dist/esm/apis/market.js +47 -24
  141. package/dist/esm/apis/market.js.map +1 -1
  142. package/dist/esm/apis/odos.js +94 -0
  143. package/dist/esm/apis/odos.js.map +1 -0
  144. package/dist/esm/apis/open-order.js +78 -40
  145. package/dist/esm/apis/open-order.js.map +1 -1
  146. package/dist/esm/apis/pool.js +91 -0
  147. package/dist/esm/apis/pool.js.map +1 -0
  148. package/dist/esm/apis/strategy.js +48 -0
  149. package/dist/esm/apis/strategy.js.map +1 -0
  150. package/dist/esm/apis/vclob.js +43 -0
  151. package/dist/esm/apis/vclob.js.map +1 -0
  152. package/dist/esm/approval.js +107 -25
  153. package/dist/esm/approval.js.map +1 -1
  154. package/dist/esm/call.js +818 -166
  155. package/dist/esm/call.js.map +1 -1
  156. package/dist/esm/constants/addresses.js +105 -2
  157. package/dist/esm/constants/addresses.js.map +1 -1
  158. package/dist/esm/constants/bera-bartio-chain.js +27 -0
  159. package/dist/esm/constants/bera-bartio-chain.js.map +1 -0
  160. package/dist/esm/constants/chain.js +28 -2
  161. package/dist/esm/constants/chain.js.map +1 -1
  162. package/dist/esm/constants/currency.js +100 -2
  163. package/dist/esm/constants/currency.js.map +1 -1
  164. package/dist/esm/constants/fee.js +23 -2
  165. package/dist/esm/constants/fee.js.map +1 -1
  166. package/dist/esm/constants/mitosis-testnet-chain.js +27 -0
  167. package/dist/esm/constants/mitosis-testnet-chain.js.map +1 -0
  168. package/dist/esm/constants/monad-testnet-chain.js +37 -0
  169. package/dist/esm/constants/monad-testnet-chain.js.map +1 -0
  170. package/dist/esm/constants/permit.js +11 -0
  171. package/dist/esm/constants/permit.js.map +1 -0
  172. package/dist/esm/constants/price.js +1 -0
  173. package/dist/esm/constants/price.js.map +1 -1
  174. package/dist/esm/constants/sonic-mainnet-chain.js +27 -0
  175. package/dist/esm/constants/sonic-mainnet-chain.js.map +1 -0
  176. package/dist/esm/constants/subgraph.js +34 -0
  177. package/dist/esm/constants/subgraph.js.map +1 -0
  178. package/dist/esm/constants/test-chain.js +47 -0
  179. package/dist/esm/constants/test-chain.js.map +1 -0
  180. package/dist/esm/constants/tick.js +3 -0
  181. package/dist/esm/constants/tick.js.map +1 -0
  182. package/dist/esm/index.js +1 -1
  183. package/dist/esm/index.js.map +1 -1
  184. package/dist/esm/model/book.js +62 -35
  185. package/dist/esm/model/book.js.map +1 -1
  186. package/dist/esm/model/market.js +63 -28
  187. package/dist/esm/model/market.js.map +1 -1
  188. package/dist/esm/model/pool.js +237 -0
  189. package/dist/esm/model/pool.js.map +1 -0
  190. package/dist/esm/model/vclob.js +2 -0
  191. package/dist/esm/model/vclob.js.map +1 -0
  192. package/dist/esm/type.js +7 -0
  193. package/dist/esm/type.js.map +1 -1
  194. package/dist/esm/utils/allowance.js +35 -0
  195. package/dist/esm/utils/allowance.js.map +1 -0
  196. package/dist/esm/utils/approval.js +2 -3
  197. package/dist/esm/utils/approval.js.map +1 -1
  198. package/dist/esm/utils/bigint.js +2 -0
  199. package/dist/esm/utils/bigint.js.map +1 -1
  200. package/dist/esm/utils/book-id.js +7 -7
  201. package/dist/esm/utils/book-id.js.map +1 -1
  202. package/dist/esm/utils/build-transaction.js +3 -4
  203. package/dist/esm/utils/build-transaction.js.map +1 -1
  204. package/dist/esm/utils/currency.js +59 -25
  205. package/dist/esm/utils/currency.js.map +1 -1
  206. package/dist/esm/utils/market.js +1 -1
  207. package/dist/esm/utils/market.js.map +1 -1
  208. package/dist/esm/utils/math.js +1 -0
  209. package/dist/esm/utils/math.js.map +1 -1
  210. package/dist/esm/utils/open.js +33 -23
  211. package/dist/esm/utils/open.js.map +1 -1
  212. package/dist/esm/utils/order.js +67 -125
  213. package/dist/esm/utils/order.js.map +1 -1
  214. package/dist/esm/utils/pool-key.js +12 -0
  215. package/dist/esm/utils/pool-key.js.map +1 -0
  216. package/dist/esm/utils/pool.js +84 -0
  217. package/dist/esm/utils/pool.js.map +1 -0
  218. package/dist/esm/utils/prices.js +39 -5
  219. package/dist/esm/utils/prices.js.map +1 -1
  220. package/dist/esm/utils/tick.js +11 -1
  221. package/dist/esm/utils/tick.js.map +1 -1
  222. package/dist/esm/utils/time-series.js +27 -0
  223. package/dist/esm/utils/time-series.js.map +1 -0
  224. package/dist/esm/utils/unit-size.js +44 -0
  225. package/dist/esm/utils/unit-size.js.map +1 -0
  226. package/dist/esm/utils.js +5 -0
  227. package/dist/esm/utils.js.map +1 -0
  228. package/dist/esm/view.js +516 -61
  229. package/dist/esm/view.js.map +1 -1
  230. package/dist/tsconfig.build.tsbuildinfo +1 -1
  231. package/dist/types/abis/core/book-manager-abi.d.ts +82 -0
  232. package/dist/types/abis/core/book-manager-abi.d.ts.map +1 -0
  233. package/dist/types/abis/core/book-viewer-abi.d.ts +107 -5
  234. package/dist/types/abis/core/book-viewer-abi.d.ts.map +1 -1
  235. package/dist/types/abis/core/controller-abi.d.ts +1 -5
  236. package/dist/types/abis/core/controller-abi.d.ts.map +1 -1
  237. package/dist/types/abis/governance/election-governor-abi.d.ts +648 -0
  238. package/dist/types/abis/governance/election-governor-abi.d.ts.map +1 -0
  239. package/dist/types/abis/governance/keepers-registry-abi.d.ts +417 -0
  240. package/dist/types/abis/governance/keepers-registry-abi.d.ts.map +1 -0
  241. package/dist/types/abis/governance/vclob-abi.d.ts +568 -0
  242. package/dist/types/abis/governance/vclob-abi.d.ts.map +1 -0
  243. package/dist/types/abis/rebalancer/minter-abi.d.ts +198 -0
  244. package/dist/types/abis/rebalancer/minter-abi.d.ts.map +1 -0
  245. package/dist/types/abis/rebalancer/mock-swap-abi.d.ts +70 -0
  246. package/dist/types/abis/rebalancer/mock-swap-abi.d.ts.map +1 -0
  247. package/dist/types/abis/rebalancer/operator-abi.d.ts +308 -0
  248. package/dist/types/abis/rebalancer/operator-abi.d.ts.map +1 -0
  249. package/dist/types/abis/rebalancer/rebalancer-abi.d.ts +1023 -0
  250. package/dist/types/abis/rebalancer/rebalancer-abi.d.ts.map +1 -0
  251. package/dist/types/abis/rebalancer/strategy-abi.d.ts +690 -0
  252. package/dist/types/abis/rebalancer/strategy-abi.d.ts.map +1 -0
  253. package/dist/types/apis/chart-logs.d.ts +3 -0
  254. package/dist/types/apis/chart-logs.d.ts.map +1 -1
  255. package/dist/types/apis/market.d.ts +2 -1
  256. package/dist/types/apis/market.d.ts.map +1 -1
  257. package/dist/types/apis/odos.d.ts +28 -0
  258. package/dist/types/apis/odos.d.ts.map +1 -0
  259. package/dist/types/apis/open-order.d.ts +4 -2
  260. package/dist/types/apis/open-order.d.ts.map +1 -1
  261. package/dist/types/apis/pool.d.ts +11 -0
  262. package/dist/types/apis/pool.d.ts.map +1 -0
  263. package/dist/types/apis/strategy.d.ts +6 -0
  264. package/dist/types/apis/strategy.d.ts.map +1 -0
  265. package/dist/types/apis/vclob.d.ts +5 -0
  266. package/dist/types/apis/vclob.d.ts.map +1 -0
  267. package/dist/types/approval.d.ts +37 -3
  268. package/dist/types/approval.d.ts.map +1 -1
  269. package/dist/types/call.d.ts +275 -59
  270. package/dist/types/call.d.ts.map +1 -1
  271. package/dist/types/constants/addresses.d.ts +7 -0
  272. package/dist/types/constants/addresses.d.ts.map +1 -1
  273. package/dist/types/constants/bera-bartio-chain.d.ts +33 -0
  274. package/dist/types/constants/bera-bartio-chain.d.ts.map +1 -0
  275. package/dist/types/constants/chain.d.ts +10 -2
  276. package/dist/types/constants/chain.d.ts.map +1 -1
  277. package/dist/types/constants/currency.d.ts +9 -0
  278. package/dist/types/constants/currency.d.ts.map +1 -1
  279. package/dist/types/constants/fee.d.ts +7 -2
  280. package/dist/types/constants/fee.d.ts.map +1 -1
  281. package/dist/types/constants/mitosis-testnet-chain.d.ts +33 -0
  282. package/dist/types/constants/mitosis-testnet-chain.d.ts.map +1 -0
  283. package/dist/types/constants/monad-testnet-chain.d.ts +37 -0
  284. package/dist/types/constants/monad-testnet-chain.d.ts.map +1 -0
  285. package/dist/types/constants/permit.d.ts +10 -0
  286. package/dist/types/constants/permit.d.ts.map +1 -0
  287. package/dist/types/constants/price.d.ts +1 -0
  288. package/dist/types/constants/price.d.ts.map +1 -1
  289. package/dist/types/constants/sonic-mainnet-chain.d.ts +33 -0
  290. package/dist/types/constants/sonic-mainnet-chain.d.ts.map +1 -0
  291. package/dist/types/constants/subgraph.d.ts +5 -0
  292. package/dist/types/constants/subgraph.d.ts.map +1 -0
  293. package/dist/types/constants/test-chain.d.ts +4 -0
  294. package/dist/types/constants/test-chain.d.ts.map +1 -0
  295. package/dist/types/constants/tick.d.ts +3 -0
  296. package/dist/types/constants/tick.d.ts.map +1 -0
  297. package/dist/types/index.d.ts +1 -1
  298. package/dist/types/index.d.ts.map +1 -1
  299. package/dist/types/model/book.d.ts +25 -33
  300. package/dist/types/model/book.d.ts.map +1 -1
  301. package/dist/types/model/currency.d.ts +7 -0
  302. package/dist/types/model/currency.d.ts.map +1 -1
  303. package/dist/types/model/depth.d.ts +4 -3
  304. package/dist/types/model/depth.d.ts.map +1 -1
  305. package/dist/types/model/market.d.ts +24 -13
  306. package/dist/types/model/market.d.ts.map +1 -1
  307. package/dist/types/model/open-order.d.ts +20 -27
  308. package/dist/types/model/open-order.d.ts.map +1 -1
  309. package/dist/types/model/pool.d.ts +77 -0
  310. package/dist/types/model/pool.d.ts.map +1 -0
  311. package/dist/types/model/vclob.d.ts +7 -0
  312. package/dist/types/model/vclob.d.ts.map +1 -0
  313. package/dist/types/type.d.ts +141 -6
  314. package/dist/types/type.d.ts.map +1 -1
  315. package/dist/types/utils/allowance.d.ts +3 -0
  316. package/dist/types/utils/allowance.d.ts.map +1 -0
  317. package/dist/types/utils/approval.d.ts +2 -1
  318. package/dist/types/utils/approval.d.ts.map +1 -1
  319. package/dist/types/utils/bigint.d.ts +2 -0
  320. package/dist/types/utils/bigint.d.ts.map +1 -1
  321. package/dist/types/utils/book-id.d.ts +2 -1
  322. package/dist/types/utils/book-id.d.ts.map +1 -1
  323. package/dist/types/utils/build-transaction.d.ts +3 -3
  324. package/dist/types/utils/build-transaction.d.ts.map +1 -1
  325. package/dist/types/utils/currency.d.ts +3 -2
  326. package/dist/types/utils/currency.d.ts.map +1 -1
  327. package/dist/types/utils/math.d.ts +1 -0
  328. package/dist/types/utils/math.d.ts.map +1 -1
  329. package/dist/types/utils/open.d.ts +2 -1
  330. package/dist/types/utils/open.d.ts.map +1 -1
  331. package/dist/types/utils/order.d.ts +4 -11
  332. package/dist/types/utils/order.d.ts.map +1 -1
  333. package/dist/types/utils/pool-key.d.ts +3 -0
  334. package/dist/types/utils/pool-key.d.ts.map +1 -0
  335. package/dist/types/utils/pool.d.ts +11 -0
  336. package/dist/types/utils/pool.d.ts.map +1 -0
  337. package/dist/types/utils/prices.d.ts +13 -2
  338. package/dist/types/utils/prices.d.ts.map +1 -1
  339. package/dist/types/utils/tick.d.ts +1 -0
  340. package/dist/types/utils/tick.d.ts.map +1 -1
  341. package/dist/types/utils/time-series.d.ts +4 -0
  342. package/dist/types/utils/time-series.d.ts.map +1 -0
  343. package/dist/types/utils/unit-size.d.ts +5 -0
  344. package/dist/types/utils/unit-size.d.ts.map +1 -0
  345. package/dist/types/utils.d.ts +5 -0
  346. package/dist/types/utils.d.ts.map +1 -0
  347. package/dist/types/view.d.ts +247 -30
  348. package/dist/types/view.d.ts.map +1 -1
  349. package/package.json +3 -2
  350. package/dist/cjs/abis/core/params-abi.js +0 -62
  351. package/dist/cjs/abis/core/params-abi.js.map +0 -1
  352. package/dist/cjs/apis/subgraph.js +0 -26
  353. package/dist/cjs/apis/subgraph.js.map +0 -1
  354. package/dist/cjs/constants/client.js +0 -14
  355. package/dist/cjs/constants/client.js.map +0 -1
  356. package/dist/cjs/constants/subgraph-url.js +0 -8
  357. package/dist/cjs/constants/subgraph-url.js.map +0 -1
  358. package/dist/cjs/signature.js +0 -146
  359. package/dist/cjs/signature.js.map +0 -1
  360. package/dist/cjs/utils/decorator.js +0 -13
  361. package/dist/cjs/utils/decorator.js.map +0 -1
  362. package/dist/cjs/utils/unit.js +0 -34
  363. package/dist/cjs/utils/unit.js.map +0 -1
  364. package/dist/esm/abis/core/params-abi.js +0 -59
  365. package/dist/esm/abis/core/params-abi.js.map +0 -1
  366. package/dist/esm/apis/subgraph.js +0 -22
  367. package/dist/esm/apis/subgraph.js.map +0 -1
  368. package/dist/esm/constants/client.js +0 -10
  369. package/dist/esm/constants/client.js.map +0 -1
  370. package/dist/esm/constants/subgraph-url.js +0 -5
  371. package/dist/esm/constants/subgraph-url.js.map +0 -1
  372. package/dist/esm/signature.js +0 -170
  373. package/dist/esm/signature.js.map +0 -1
  374. package/dist/esm/utils/decorator.js +0 -9
  375. package/dist/esm/utils/decorator.js.map +0 -1
  376. package/dist/esm/utils/unit.js +0 -30
  377. package/dist/esm/utils/unit.js.map +0 -1
  378. package/dist/types/abis/core/params-abi.d.ts +0 -21
  379. package/dist/types/abis/core/params-abi.d.ts.map +0 -1
  380. package/dist/types/apis/subgraph.d.ts +0 -3
  381. package/dist/types/apis/subgraph.d.ts.map +0 -1
  382. package/dist/types/constants/client.d.ts +0 -5
  383. package/dist/types/constants/client.d.ts.map +0 -1
  384. package/dist/types/constants/subgraph-url.d.ts +0 -5
  385. package/dist/types/constants/subgraph-url.d.ts.map +0 -1
  386. package/dist/types/signature.d.ts +0 -38
  387. package/dist/types/signature.d.ts.map +0 -1
  388. package/dist/types/utils/decorator.d.ts +0 -6
  389. package/dist/types/utils/decorator.d.ts.map +0 -1
  390. package/dist/types/utils/unit.d.ts +0 -4
  391. package/dist/types/utils/unit.d.ts.map +0 -1
package/dist/cjs/call.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cancelOrders = exports.cancelOrder = exports.claimOrders = exports.claimOrder = exports.marketOrder = exports.limitOrder = exports.openMarket = void 0;
3
+ exports.burnVCLOB = exports.mintVCLOB = exports.end = exports.register = exports.vote = exports.resumePool = exports.pausePool = exports.setStrategyConfig = exports.adjustOrderPrice = exports.refillOrder = exports.removeLiquidity = exports.addLiquidity = exports.openPool = exports.cancelOrders = exports.cancelOrder = exports.claimOrders = exports.claimOrder = exports.marketOrder = exports.limitOrder = exports.openMarket = void 0;
4
4
  const viem_1 = require("viem");
5
5
  const chain_1 = require("./constants/chain");
6
- const unit_1 = require("./utils/unit");
6
+ const unit_size_1 = require("./utils/unit-size");
7
7
  const controller_abi_1 = require("./abis/core/controller-abi");
8
8
  const time_1 = require("./utils/time");
9
9
  const build_transaction_1 = require("./utils/build-transaction");
@@ -15,17 +15,34 @@ const tick_1 = require("./utils/tick");
15
15
  const view_1 = require("./view");
16
16
  const book_id_1 = require("./utils/book-id");
17
17
  const approval_1 = require("./utils/approval");
18
- const decorator_1 = require("./utils/decorator");
19
18
  const order_1 = require("./utils/order");
20
- const decimals_1 = require("./utils/decimals");
21
19
  const bigint_1 = require("./utils/bigint");
22
- exports.openMarket = (0, decorator_1.decorator)(async ({ chainId, inputToken, outputToken, options, }) => {
23
- const market = await (0, market_1.fetchMarket)(chainId, [inputToken, outputToken]);
20
+ const pool_1 = require("./apis/pool");
21
+ const rebalancer_abi_1 = require("./abis/rebalancer/rebalancer-abi");
22
+ const pool_2 = require("./utils/pool");
23
+ const odos_1 = require("./apis/odos");
24
+ const minter_abi_1 = require("./abis/rebalancer/minter-abi");
25
+ const permit_1 = require("./constants/permit");
26
+ const math_1 = require("./utils/math");
27
+ const pool_key_1 = require("./utils/pool-key");
28
+ const operator_abi_1 = require("./abis/rebalancer/operator-abi");
29
+ const strategy_abi_1 = require("./abis/rebalancer/strategy-abi");
30
+ const election_governor_abi_1 = require("./abis/governance/election-governor-abi");
31
+ const vclob_abi_1 = require("./abis/governance/vclob-abi");
32
+ const openMarket = async ({ chainId, userAddress, inputToken, outputToken, options, }) => {
33
+ const publicClient = (0, viem_1.createPublicClient)({
34
+ chain: chain_1.CHAIN_MAP[chainId],
35
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
36
+ });
37
+ const market = await (0, market_1.fetchMarket)(publicClient, chainId, [inputToken, outputToken], !!(options && options.useSubgraph));
24
38
  const isBid = (0, viem_1.isAddressEqual)(market.quote.address, inputToken);
25
- if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
26
- const unit = await (0, unit_1.calculateUnit)(chainId, isBid ? market.quote : market.base);
27
- return (0, build_transaction_1.buildTransaction)(chainId, {
39
+ if ((isBid && !market.bidBook.isOpened) ||
40
+ (!isBid && !market.askBook.isOpened)) {
41
+ const unitSize = await (0, unit_size_1.calculateUnitSize)(publicClient, chainId, isBid ? market.quote : market.base);
42
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
43
+ chain: chain_1.CHAIN_MAP[chainId],
28
44
  address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
45
+ account: userAddress,
29
46
  abi: controller_abi_1.CONTROLLER_ABI,
30
47
  functionName: 'open',
31
48
  args: [
@@ -33,11 +50,11 @@ exports.openMarket = (0, decorator_1.decorator)(async ({ chainId, inputToken, ou
33
50
  {
34
51
  key: {
35
52
  base: outputToken,
36
- unit,
53
+ unitSize,
37
54
  quote: inputToken,
38
- makerPolicy: fee_1.MAKER_DEFAULT_POLICY.value,
55
+ makerPolicy: fee_1.MAKER_DEFAULT_POLICY[chainId].value,
39
56
  hooks: viem_1.zeroAddress,
40
- takerPolicy: fee_1.TAKER_DEFAULT_POLICY.value,
57
+ takerPolicy: fee_1.TAKER_DEFAULT_POLICY[chainId].value,
41
58
  },
42
59
  hookData: viem_1.zeroHash,
43
60
  },
@@ -47,14 +64,26 @@ exports.openMarket = (0, decorator_1.decorator)(async ({ chainId, inputToken, ou
47
64
  }, options?.gasLimit);
48
65
  }
49
66
  return undefined;
50
- });
51
- exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, inputToken, outputToken, amount, price, options, }) => {
52
- const market = await (0, market_1.fetchMarket)(chainId, [inputToken, outputToken]);
67
+ };
68
+ exports.openMarket = openMarket;
69
+ const limitOrder = async ({ chainId, userAddress, inputToken, outputToken, amount, price, options, }) => {
70
+ const [roundingUpMakeBid, roundingDownMakeAsk, roundingDownTakenBid, roundingUpTakenAsk,] = [
71
+ options?.roundingUpMakeBid ? options.roundingUpMakeBid : false,
72
+ options?.roundingDownMakeAsk ? options.roundingDownMakeAsk : false,
73
+ options?.roundingDownTakenBid ? options.roundingDownTakenBid : false,
74
+ options?.roundingUpTakenAsk ? options.roundingUpTakenAsk : false,
75
+ ];
76
+ const publicClient = (0, viem_1.createPublicClient)({
77
+ chain: chain_1.CHAIN_MAP[chainId],
78
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
79
+ });
80
+ const market = await (0, market_1.fetchMarket)(publicClient, chainId, [inputToken, outputToken], !!(options && options.useSubgraph));
53
81
  const isBid = (0, viem_1.isAddressEqual)(market.quote.address, inputToken);
54
82
  const [inputCurrency, outputCurrency] = isBid
55
83
  ? [market.quote, market.base]
56
84
  : [market.base, market.quote];
57
- if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
85
+ if ((isBid && !market.bidBook.isOpened) ||
86
+ (!isBid && !market.askBook.isOpened)) {
58
87
  throw new Error(`
59
88
  Open the market before placing a limit order.
60
89
  import { openMarket } from '@clober/v2-sdk'
@@ -66,12 +95,11 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
66
95
  })
67
96
  `);
68
97
  }
69
- const rawPrice = (0, prices_1.parsePrice)(Number(price), market.quote.decimals, market.base.decimals);
70
- const tick = isBid ? (0, tick_1.fromPrice)(rawPrice) : (0, tick_1.fromPrice)((0, tick_1.invertPrice)(rawPrice));
98
+ const { roundingDownTick, roundingUpTick } = (0, prices_1.parsePrice)(Number(price), market.quote.decimals, market.base.decimals);
71
99
  const tokensToSettle = [inputToken, outputToken].filter((address) => !(0, viem_1.isAddressEqual)(address, viem_1.zeroAddress));
72
100
  const quoteAmount = (0, viem_1.parseUnits)(amount, inputCurrency.decimals);
73
- const [unit, { spendAmount, bookId }] = await Promise.all([
74
- (0, unit_1.calculateUnit)(chainId, inputCurrency),
101
+ const [unitSize, { takenAmount, spentAmount, bookId, events }] = await Promise.all([
102
+ (0, unit_size_1.calculateUnitSize)(publicClient, chainId, inputCurrency),
75
103
  (0, view_1.getExpectedOutput)({
76
104
  chainId,
77
105
  inputToken,
@@ -84,24 +112,21 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
84
112
  }),
85
113
  ]);
86
114
  const isETH = (0, viem_1.isAddressEqual)(inputToken, viem_1.zeroAddress);
87
- const permitParamsList = options?.signature && !isETH
88
- ? [
89
- {
90
- token: inputToken,
91
- permitAmount: quoteAmount,
92
- signature: options.signature,
93
- },
94
- ]
95
- : [];
96
115
  const makeParam = {
97
- id: (0, book_id_1.toBookId)(inputToken, outputToken, unit),
98
- tick: Number(tick),
116
+ id: (0, book_id_1.toBookId)(chainId, inputToken, outputToken, unitSize),
117
+ tick: options?.makeTick
118
+ ? Number(options.makeTick)
119
+ : Number(isBid
120
+ ? roundingUpMakeBid
121
+ ? roundingUpTick
122
+ : roundingDownTick
123
+ : (0, tick_1.invertTick)(roundingDownMakeAsk ? roundingDownTick : roundingUpTick)),
99
124
  quoteAmount,
100
125
  hookData: viem_1.zeroHash,
101
126
  };
102
- if (options?.postOnly === true || spendAmount === '0') {
127
+ if (options?.postOnly === true || spentAmount === '0') {
103
128
  return {
104
- transaction: await (0, build_transaction_1.buildTransaction)(chainId, {
129
+ transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
105
130
  chain: chain_1.CHAIN_MAP[chainId],
106
131
  account: userAddress,
107
132
  address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
@@ -110,7 +135,7 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
110
135
  args: [
111
136
  [makeParam],
112
137
  tokensToSettle,
113
- permitParamsList,
138
+ options?.erc20PermitParam ? [options.erc20PermitParam] : [],
114
139
  (0, time_1.getDeadlineTimestampInSeconds)(),
115
140
  ],
116
141
  value: isETH ? quoteAmount : 0n,
@@ -120,18 +145,28 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
120
145
  amount: (0, viem_1.formatUnits)(quoteAmount, inputCurrency.decimals),
121
146
  currency: inputCurrency,
122
147
  direction: 'in',
148
+ price: (0, prices_1.formatPrice)(isBid
149
+ ? (0, tick_1.toPrice)(BigInt(makeParam.tick))
150
+ : (0, tick_1.toPrice)((0, tick_1.invertTick)(BigInt(makeParam.tick))), market.quote.decimals, market.base.decimals),
151
+ },
152
+ spent: {
153
+ amount: '0',
154
+ currency: inputCurrency,
155
+ direction: 'in',
156
+ events: [],
123
157
  },
124
- take: {
158
+ taken: {
125
159
  amount: '0',
126
160
  currency: outputCurrency,
127
161
  direction: 'out',
162
+ events: [],
128
163
  },
129
164
  },
130
165
  };
131
166
  }
132
167
  else {
133
168
  return {
134
- transaction: await (0, build_transaction_1.buildTransaction)(chainId, {
169
+ transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
135
170
  chain: chain_1.CHAIN_MAP[chainId],
136
171
  account: userAddress,
137
172
  address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
@@ -142,7 +177,15 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
142
177
  {
143
178
  takeBookId: bookId,
144
179
  makeBookId: makeParam.id,
145
- limitPrice: isBid ? (0, tick_1.invertPrice)(rawPrice) : rawPrice,
180
+ limitPrice: options?.takeLimitTick
181
+ ? (0, tick_1.toPrice)(options.takeLimitTick)
182
+ : (0, tick_1.toPrice)(isBid
183
+ ? (0, tick_1.invertTick)(roundingUpTakenAsk
184
+ ? roundingUpTick
185
+ : roundingDownTick)
186
+ : roundingDownTakenBid
187
+ ? roundingDownTick
188
+ : roundingUpTick),
146
189
  tick: makeParam.tick,
147
190
  quoteAmount,
148
191
  takeHookData: viem_1.zeroHash,
@@ -150,34 +193,61 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
150
193
  },
151
194
  ],
152
195
  tokensToSettle,
153
- permitParamsList,
196
+ options?.erc20PermitParam ? [options.erc20PermitParam] : [],
154
197
  (0, time_1.getDeadlineTimestampInSeconds)(),
155
198
  ],
156
199
  value: isETH ? quoteAmount : 0n,
157
200
  }, options?.gasLimit),
158
201
  result: {
159
202
  make: {
160
- amount: (0, viem_1.formatUnits)(quoteAmount, inputCurrency.decimals),
203
+ amount: (0, viem_1.formatUnits)(quoteAmount - (0, viem_1.parseUnits)(spentAmount, inputCurrency.decimals), inputCurrency.decimals),
204
+ currency: inputCurrency,
205
+ direction: 'in',
206
+ price: (0, prices_1.formatPrice)(isBid
207
+ ? (0, tick_1.toPrice)(BigInt(makeParam.tick))
208
+ : (0, tick_1.toPrice)((0, tick_1.invertTick)(BigInt(makeParam.tick))), market.quote.decimals, market.base.decimals),
209
+ },
210
+ spent: {
211
+ amount: spentAmount,
161
212
  currency: inputCurrency,
162
213
  direction: 'in',
214
+ events: events.map(({ price, spentAmount }) => ({
215
+ price,
216
+ amount: spentAmount,
217
+ })),
163
218
  },
164
- take: {
165
- amount: spendAmount,
219
+ taken: {
220
+ amount: takenAmount,
166
221
  currency: outputCurrency,
167
222
  direction: 'out',
223
+ events: events.map(({ price, takenAmount }) => ({
224
+ price,
225
+ amount: takenAmount,
226
+ })),
168
227
  },
169
228
  },
170
229
  };
171
230
  }
172
- });
173
- exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, inputToken, outputToken, amountIn, amountOut, options, }) => {
174
- const market = await (0, market_1.fetchMarket)(chainId, [inputToken, outputToken]);
231
+ };
232
+ exports.limitOrder = limitOrder;
233
+ const marketOrder = async ({ chainId, userAddress, inputToken, outputToken, amountIn, amountOut, options, }) => {
234
+ if (!amountIn && !amountOut) {
235
+ throw new Error('Either amountIn or amountOut must be provided');
236
+ }
237
+ else if (amountIn && amountOut) {
238
+ throw new Error('Only one of amountIn or amountOut can be provided');
239
+ }
240
+ const publicClient = (0, viem_1.createPublicClient)({
241
+ chain: chain_1.CHAIN_MAP[chainId],
242
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
243
+ });
244
+ const market = await (0, market_1.fetchMarket)(publicClient, chainId, [inputToken, outputToken], !!(options && options.useSubgraph));
175
245
  const isTakingBid = (0, viem_1.isAddressEqual)(market.base.address, inputToken);
176
246
  const [inputCurrency, outputCurrency] = isTakingBid
177
247
  ? [market.base, market.quote]
178
248
  : [market.quote, market.base];
179
- if ((isTakingBid && !market.bidBookOpen) ||
180
- (!isTakingBid && !market.askBookOpen)) {
249
+ if ((isTakingBid && !market.bidBook.isOpened) ||
250
+ (!isTakingBid && !market.askBook.isOpened)) {
181
251
  throw new Error(`
182
252
  Open the market before placing a market order.
183
253
  import { openMarket } from '@clober/v2-sdk'
@@ -192,7 +262,7 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
192
262
  const tokensToSettle = [inputToken, outputToken].filter((address) => !(0, viem_1.isAddressEqual)(address, viem_1.zeroAddress));
193
263
  const isETH = (0, viem_1.isAddressEqual)(inputToken, viem_1.zeroAddress);
194
264
  if (amountIn && !amountOut) {
195
- const { bookId, takenAmount, spendAmount } = await (0, view_1.getExpectedOutput)({
265
+ const { bookId, takenAmount, spentAmount, events } = await (0, view_1.getExpectedOutput)({
196
266
  chainId,
197
267
  inputToken,
198
268
  outputToken,
@@ -203,7 +273,7 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
203
273
  });
204
274
  const baseAmount = (0, viem_1.parseUnits)(amountIn, inputCurrency.decimals);
205
275
  return {
206
- transaction: await (0, build_transaction_1.buildTransaction)(chainId, {
276
+ transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
207
277
  chain: chain_1.CHAIN_MAP[chainId],
208
278
  account: userAddress,
209
279
  address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
@@ -222,35 +292,35 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
222
292
  },
223
293
  ],
224
294
  tokensToSettle,
225
- options?.signature && !isETH
226
- ? [
227
- {
228
- token: inputToken,
229
- permitAmount: baseAmount,
230
- signature: options.signature,
231
- },
232
- ]
233
- : [],
295
+ options?.erc20PermitParam ? [options.erc20PermitParam] : [],
234
296
  (0, time_1.getDeadlineTimestampInSeconds)(),
235
297
  ],
236
298
  value: isETH ? baseAmount : 0n,
237
299
  }, options?.gasLimit),
238
300
  result: {
239
- spend: {
240
- amount: spendAmount,
301
+ spent: {
302
+ amount: spentAmount,
241
303
  currency: inputCurrency,
242
304
  direction: 'in',
305
+ events: events.map(({ price, spentAmount }) => ({
306
+ price,
307
+ amount: spentAmount,
308
+ })),
243
309
  },
244
- take: {
310
+ taken: {
245
311
  amount: takenAmount,
246
312
  currency: outputCurrency,
247
313
  direction: 'out',
314
+ events: events.map(({ price, takenAmount }) => ({
315
+ price,
316
+ amount: takenAmount,
317
+ })),
248
318
  },
249
319
  },
250
320
  };
251
321
  }
252
- else if (amountIn && amountOut) {
253
- const { bookId, spendAmount, takenAmount } = await (0, view_1.getExpectedInput)({
322
+ else if (!amountIn && amountOut) {
323
+ const { bookId, spentAmount, takenAmount, events } = await (0, view_1.getExpectedInput)({
254
324
  chainId,
255
325
  inputToken,
256
326
  outputToken,
@@ -260,9 +330,15 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
260
330
  },
261
331
  });
262
332
  const quoteAmount = (0, viem_1.parseUnits)(amountOut, outputCurrency.decimals);
263
- const baseAmount = (0, viem_1.parseUnits)(amountIn ?? spendAmount, inputCurrency.decimals);
333
+ const baseAmount = (0, viem_1.parseUnits)(spentAmount, inputCurrency.decimals);
334
+ const maxBaseAmount = options?.erc20PermitParam?.permitAmount ??
335
+ (options?.slippage
336
+ ? (0, bigint_1.applyPercent)(baseAmount, 100 + options.slippage)
337
+ : isETH
338
+ ? baseAmount
339
+ : 2n ** 256n - 1n);
264
340
  return {
265
- transaction: await (0, build_transaction_1.buildTransaction)(chainId, {
341
+ transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
266
342
  chain: chain_1.CHAIN_MAP[chainId],
267
343
  account: userAddress,
268
344
  address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
@@ -274,36 +350,34 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
274
350
  id: bookId,
275
351
  limitPrice: 0n,
276
352
  quoteAmount,
277
- maxBaseAmount: options?.slippage
278
- ? (0, bigint_1.applyPercent)(baseAmount, 100 + options.slippage)
279
- : 2n ** 256n - 1n,
353
+ maxBaseAmount,
280
354
  hookData: viem_1.zeroHash,
281
355
  },
282
356
  ],
283
357
  tokensToSettle,
284
- options?.signature && !isETH
285
- ? [
286
- {
287
- token: inputToken,
288
- permitAmount: baseAmount,
289
- signature: options.signature,
290
- },
291
- ]
292
- : [],
358
+ options?.erc20PermitParam ? [options.erc20PermitParam] : [],
293
359
  (0, time_1.getDeadlineTimestampInSeconds)(),
294
360
  ],
295
- value: isETH ? baseAmount : 0n,
361
+ value: isETH ? maxBaseAmount : 0n,
296
362
  }, options?.gasLimit),
297
363
  result: {
298
- spend: {
299
- amount: spendAmount,
364
+ spent: {
365
+ amount: spentAmount,
300
366
  currency: inputCurrency,
301
367
  direction: 'in',
368
+ events: events.map(({ price, spentAmount }) => ({
369
+ price,
370
+ amount: spentAmount,
371
+ })),
302
372
  },
303
- take: {
373
+ taken: {
304
374
  amount: takenAmount,
305
375
  currency: outputCurrency,
306
376
  direction: 'out',
377
+ events: events.map(({ price, takenAmount }) => ({
378
+ price,
379
+ amount: takenAmount,
380
+ })),
307
381
  },
308
382
  },
309
383
  };
@@ -311,8 +385,9 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
311
385
  else {
312
386
  throw new Error('Either amountIn or amountOut must be provided');
313
387
  }
314
- });
315
- exports.claimOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, id, options, }) => {
388
+ };
389
+ exports.marketOrder = marketOrder;
390
+ const claimOrder = async ({ chainId, userAddress, id, options, }) => {
316
391
  const { transaction, result } = await (0, exports.claimOrders)({
317
392
  chainId,
318
393
  userAddress,
@@ -323,9 +398,14 @@ exports.claimOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
323
398
  transaction,
324
399
  result: result[0],
325
400
  };
326
- });
327
- exports.claimOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress, ids, options, }) => {
328
- const isApprovedForAll = await (0, approval_1.fetchIsApprovedForAll)(chainId, userAddress);
401
+ };
402
+ exports.claimOrder = claimOrder;
403
+ const claimOrders = async ({ chainId, userAddress, ids, options, }) => {
404
+ const publicClient = (0, viem_1.createPublicClient)({
405
+ chain: chain_1.CHAIN_MAP[chainId],
406
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
407
+ });
408
+ const isApprovedForAll = await (0, approval_1.fetchIsApprovedForAll)(publicClient, chainId, userAddress);
329
409
  if (!isApprovedForAll) {
330
410
  throw new Error(`
331
411
  Set ApprovalForAll before calling this function.
@@ -337,22 +417,22 @@ exports.claimOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
337
417
  })
338
418
  `);
339
419
  }
340
- const orders = (await (0, order_1.fetchOrders)(chainId, ids.map((id) => BigInt(id)))).filter((order) => (0, viem_1.isAddressEqual)(order.owner, userAddress) && order.claimable > 0n);
420
+ const orders = (await (0, order_1.fetchOnChainOrders)(publicClient, chainId, ids.map((id) => BigInt(id)), !!(options && options.useSubgraph))).filter((order) => (0, viem_1.isAddressEqual)(order.user, userAddress) && order.claimable.value !== '0');
341
421
  const tokensToSettle = orders
342
- .map((order) => [order.baseCurrency.address, order.quoteCurrency.address])
422
+ .map((order) => [order.inputCurrency.address, order.outputCurrency.address])
343
423
  .flat()
344
424
  .filter((address, index, self) => self.findIndex((c) => (0, viem_1.isAddressEqual)(c, address)) === index)
345
425
  .filter((address) => !(0, viem_1.isAddressEqual)(address, viem_1.zeroAddress));
346
426
  return {
347
- transaction: await (0, build_transaction_1.buildTransaction)(chainId, {
427
+ transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
348
428
  chain: chain_1.CHAIN_MAP[chainId],
349
429
  account: userAddress,
350
430
  address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
351
431
  abi: controller_abi_1.CONTROLLER_ABI,
352
432
  functionName: 'claim',
353
433
  args: [
354
- orders.map(({ orderId }) => ({
355
- id: orderId,
434
+ orders.map(({ id }) => ({
435
+ id,
356
436
  hookData: viem_1.zeroHash,
357
437
  })),
358
438
  tokensToSettle,
@@ -360,25 +440,18 @@ exports.claimOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
360
440
  (0, time_1.getDeadlineTimestampInSeconds)(),
361
441
  ],
362
442
  }, options?.gasLimit),
363
- result: orders
364
- .map((order) => {
365
- const amount = (0, decimals_1.quoteToBase)(order.tick, order.unit * order.claimable, false);
366
- return {
367
- currency: order.baseCurrency,
368
- amount: (0, viem_1.formatUnits)(amount, order.baseCurrency.decimals),
369
- };
370
- })
371
- .reduce((acc, { currency, amount }) => {
443
+ result: orders.reduce((acc, { claimable: { currency, value } }) => {
372
444
  const index = acc.findIndex((c) => (0, viem_1.isAddressEqual)(c.currency.address, currency.address));
373
445
  if (index === -1) {
374
- return [...acc, { currency, amount, direction: 'out' }];
446
+ return [...acc, { currency, amount: value, direction: 'out' }];
375
447
  }
376
- acc[index].amount = (Number(acc[index].amount) + Number(amount)).toString();
448
+ acc[index].amount = (Number(acc[index].amount) + Number(value)).toString();
377
449
  return acc;
378
450
  }, []),
379
451
  };
380
- });
381
- exports.cancelOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, id, options, }) => {
452
+ };
453
+ exports.claimOrders = claimOrders;
454
+ const cancelOrder = async ({ chainId, userAddress, id, options, }) => {
382
455
  const { transaction, result } = await (0, exports.cancelOrders)({
383
456
  chainId,
384
457
  userAddress,
@@ -389,9 +462,14 @@ exports.cancelOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
389
462
  transaction,
390
463
  result: result[0],
391
464
  };
392
- });
393
- exports.cancelOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress, ids, options, }) => {
394
- const isApprovedForAll = await (0, approval_1.fetchIsApprovedForAll)(chainId, userAddress);
465
+ };
466
+ exports.cancelOrder = cancelOrder;
467
+ const cancelOrders = async ({ chainId, userAddress, ids, options, }) => {
468
+ const publicClient = (0, viem_1.createPublicClient)({
469
+ chain: chain_1.CHAIN_MAP[chainId],
470
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
471
+ });
472
+ const isApprovedForAll = await (0, approval_1.fetchIsApprovedForAll)(publicClient, chainId, userAddress);
395
473
  if (!isApprovedForAll) {
396
474
  throw new Error(`
397
475
  Set ApprovalForAll before calling this function.
@@ -403,22 +481,22 @@ exports.cancelOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
403
481
  })
404
482
  `);
405
483
  }
406
- const orders = (await (0, order_1.fetchOrders)(chainId, ids.map((id) => BigInt(id)))).filter((order) => (0, viem_1.isAddressEqual)(order.owner, userAddress) && order.open > 0n);
484
+ const orders = (await (0, order_1.fetchOnChainOrders)(publicClient, chainId, ids.map((id) => BigInt(id)), !!(options && options.useSubgraph))).filter((order) => (0, viem_1.isAddressEqual)(order.user, userAddress) && order.cancelable.value !== '0');
407
485
  const tokensToSettle = orders
408
- .map((order) => [order.baseCurrency.address, order.quoteCurrency.address])
486
+ .map((order) => [order.inputCurrency.address, order.outputCurrency.address])
409
487
  .flat()
410
488
  .filter((address, index, self) => self.findIndex((c) => (0, viem_1.isAddressEqual)(c, address)) === index)
411
489
  .filter((address) => !(0, viem_1.isAddressEqual)(address, viem_1.zeroAddress));
412
490
  return {
413
- transaction: await (0, build_transaction_1.buildTransaction)(chainId, {
491
+ transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
414
492
  chain: chain_1.CHAIN_MAP[chainId],
415
493
  account: userAddress,
416
494
  address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
417
495
  abi: controller_abi_1.CONTROLLER_ABI,
418
496
  functionName: 'cancel',
419
497
  args: [
420
- orders.map(({ orderId }) => ({
421
- id: orderId,
498
+ orders.map(({ id }) => ({
499
+ id,
422
500
  leftQuoteAmount: 0n,
423
501
  hookData: viem_1.zeroHash,
424
502
  })),
@@ -427,24 +505,608 @@ exports.cancelOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
427
505
  (0, time_1.getDeadlineTimestampInSeconds)(),
428
506
  ],
429
507
  }, options?.gasLimit),
430
- result: orders
431
- .map((order) => {
432
- const amount = (0, bigint_1.applyPercent)(order.unit * order.open, 100 +
433
- (Number(fee_1.MAKER_DEFAULT_POLICY.rate) * 100) /
434
- Number(fee_1.MAKER_DEFAULT_POLICY.RATE_PRECISION), 6);
435
- return {
436
- currency: order.quoteCurrency,
437
- amount: (0, viem_1.formatUnits)(amount, order.quoteCurrency.decimals),
438
- };
439
- })
440
- .reduce((acc, { currency, amount }) => {
508
+ result: orders.reduce((acc, { cancelable: { currency, value } }) => {
441
509
  const index = acc.findIndex((c) => (0, viem_1.isAddressEqual)(c.currency.address, currency.address));
442
510
  if (index === -1) {
443
- return [...acc, { currency, amount, direction: 'out' }];
511
+ return [...acc, { currency, amount: value, direction: 'out' }];
444
512
  }
445
- acc[index].amount = (Number(acc[index].amount) + Number(amount)).toString();
513
+ acc[index].amount = (Number(acc[index].amount) + Number(value)).toString();
446
514
  return acc;
447
515
  }, []),
448
516
  };
449
- });
517
+ };
518
+ exports.cancelOrders = cancelOrders;
519
+ const openPool = async ({ chainId, userAddress, tokenA, tokenB, salt, options, }) => {
520
+ const publicClient = (0, viem_1.createPublicClient)({
521
+ chain: chain_1.CHAIN_MAP[chainId],
522
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
523
+ });
524
+ const pool = await (0, pool_1.fetchPool)(publicClient, chainId, [tokenA, tokenB], salt, !!(options && options.useSubgraph));
525
+ if (!pool.isOpened) {
526
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
527
+ chain: chain_1.CHAIN_MAP[chainId],
528
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Rebalancer,
529
+ account: userAddress,
530
+ abi: rebalancer_abi_1.REBALANCER_ABI,
531
+ functionName: 'open',
532
+ args: [
533
+ {
534
+ base: pool.market.bidBook.base.address,
535
+ unitSize: pool.market.bidBook.unitSize,
536
+ quote: pool.market.bidBook.quote.address,
537
+ makerPolicy: fee_1.MAKER_DEFAULT_POLICY[chainId].value,
538
+ hooks: viem_1.zeroAddress,
539
+ takerPolicy: fee_1.TAKER_DEFAULT_POLICY[chainId].value,
540
+ },
541
+ {
542
+ base: pool.market.askBook.base.address,
543
+ unitSize: pool.market.askBook.unitSize,
544
+ quote: pool.market.askBook.quote.address,
545
+ makerPolicy: fee_1.MAKER_DEFAULT_POLICY[chainId].value,
546
+ hooks: viem_1.zeroAddress,
547
+ takerPolicy: fee_1.TAKER_DEFAULT_POLICY[chainId].value,
548
+ },
549
+ (0, pool_key_1.toBytes32)(salt),
550
+ addresses_1.CONTRACT_ADDRESSES[chainId].Strategy,
551
+ ],
552
+ }, options?.gasLimit);
553
+ }
554
+ return undefined;
555
+ };
556
+ exports.openPool = openPool;
557
+ const addLiquidity = async ({ chainId, userAddress, token0, token1, salt, amount0, amount1, options, }) => {
558
+ const publicClient = (0, viem_1.createPublicClient)({
559
+ chain: chain_1.CHAIN_MAP[chainId],
560
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
561
+ });
562
+ const pool = await (0, pool_1.fetchPool)(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph));
563
+ if (!pool.isOpened) {
564
+ throw new Error(`
565
+ Open the pool before adding liquidity.
566
+ import { openPool } from '@clober/v2-sdk'
567
+
568
+ const transaction = await openPool({
569
+ chainId: ${chainId},
570
+ tokenA: '${token0}',
571
+ tokenB: '${token1}',
572
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
573
+ })
574
+ `);
575
+ }
576
+ const [amountAOrigin, amountBOrigin] = (0, viem_1.isAddressEqual)(pool.currencyA.address, (0, viem_1.getAddress)(token0))
577
+ ? [
578
+ (0, viem_1.parseUnits)(amount0 ?? '0', pool.currencyA.decimals),
579
+ (0, viem_1.parseUnits)(amount1 ?? '0', pool.currencyB.decimals),
580
+ ]
581
+ : [
582
+ (0, viem_1.parseUnits)(amount1 ?? '0', pool.currencyA.decimals),
583
+ (0, viem_1.parseUnits)(amount0 ?? '0', pool.currencyB.decimals),
584
+ ];
585
+ let [amountA, amountB] = [amountAOrigin, amountBOrigin];
586
+ const tokenAPermitParams = (0, viem_1.isAddressEqual)(pool.currencyA.address, (0, viem_1.getAddress)(token0))
587
+ ? options?.token0PermitParams ?? permit_1.emptyERC20PermitParams
588
+ : options?.token1PermitParams ?? permit_1.emptyERC20PermitParams;
589
+ const tokenBPermitParams = (0, viem_1.isAddressEqual)(pool.currencyA.address, (0, viem_1.getAddress)(token0))
590
+ ? options?.token1PermitParams ?? permit_1.emptyERC20PermitParams
591
+ : options?.token0PermitParams ?? permit_1.emptyERC20PermitParams;
592
+ let disableSwap = !!(options && options.disableSwap);
593
+ if (pool.totalSupply === 0n ||
594
+ (pool.liquidityA === 0n && pool.liquidityB === 0n)) {
595
+ disableSwap = true;
596
+ }
597
+ const slippageLimitPercent = options?.slippage ?? 2;
598
+ const swapParams = {
599
+ inCurrency: viem_1.zeroAddress,
600
+ amount: 0n,
601
+ data: '0x',
602
+ };
603
+ if (!disableSwap) {
604
+ const currencyBPerCurrencyA = options?.testnetPrice
605
+ ? (0, viem_1.isAddressEqual)((0, view_1.getQuoteToken)({
606
+ chainId,
607
+ token0,
608
+ token1,
609
+ }), pool.currencyA.address)
610
+ ? 1 / Number(options.testnetPrice)
611
+ : Number(options.testnetPrice)
612
+ : undefined;
613
+ const swapAmountA = (0, viem_1.parseUnits)('1', pool.currencyA.decimals);
614
+ const { amountOut: swapAmountB } = await (0, odos_1.fetchQuote)({
615
+ chainId,
616
+ amountIn: swapAmountA,
617
+ tokenIn: pool.currencyA,
618
+ tokenOut: pool.currencyB,
619
+ slippageLimitPercent: 20,
620
+ userAddress: addresses_1.CONTRACT_ADDRESSES[chainId].Minter,
621
+ testnetPrice: currencyBPerCurrencyA,
622
+ });
623
+ const { deltaA, deltaB } = (0, pool_2.getIdealDelta)(amountA, amountB, pool.liquidityA, pool.liquidityB, swapAmountA, swapAmountB);
624
+ if (deltaA < 0n) {
625
+ swapParams.inCurrency = pool.currencyA.address;
626
+ swapParams.amount = -deltaA;
627
+ const { amountOut: actualDeltaB, data: calldata } = await (0, odos_1.fetchCallData)({
628
+ chainId,
629
+ amountIn: swapParams.amount,
630
+ tokenIn: pool.currencyA,
631
+ tokenOut: pool.currencyB,
632
+ slippageLimitPercent,
633
+ userAddress: addresses_1.CONTRACT_ADDRESSES[chainId].Minter,
634
+ testnetPrice: currencyBPerCurrencyA,
635
+ });
636
+ swapParams.data = calldata;
637
+ amountA += deltaA;
638
+ amountB += actualDeltaB;
639
+ }
640
+ else if (deltaB < 0n) {
641
+ swapParams.inCurrency = pool.currencyB.address;
642
+ swapParams.amount = -deltaB;
643
+ const { amountOut: actualDeltaA, data: calldata } = await (0, odos_1.fetchCallData)({
644
+ chainId,
645
+ amountIn: swapParams.amount,
646
+ tokenIn: pool.currencyB,
647
+ tokenOut: pool.currencyA,
648
+ slippageLimitPercent,
649
+ userAddress: addresses_1.CONTRACT_ADDRESSES[chainId].Minter,
650
+ testnetPrice: currencyBPerCurrencyA
651
+ ? 1 / currencyBPerCurrencyA
652
+ : undefined,
653
+ });
654
+ swapParams.data = calldata;
655
+ amountA += actualDeltaA;
656
+ amountB += deltaB;
657
+ }
658
+ }
659
+ const { mintAmount, inAmountA, inAmountB } = (0, pool_2.getExpectedMintResult)(pool.totalSupply, pool.liquidityA, pool.liquidityB, amountA, amountB, pool.currencyA, pool.currencyB);
660
+ if (mintAmount === 0n) {
661
+ return {
662
+ transaction: undefined,
663
+ result: {
664
+ currencyA: {
665
+ currency: pool.currencyA,
666
+ amount: '0',
667
+ direction: 'in',
668
+ },
669
+ currencyB: {
670
+ currency: pool.currencyB,
671
+ amount: '0',
672
+ direction: 'in',
673
+ },
674
+ lpCurrency: {
675
+ currency: pool.currencyLp,
676
+ amount: '0',
677
+ direction: 'out',
678
+ },
679
+ },
680
+ };
681
+ }
682
+ const minMintAmount = (0, bigint_1.applyPercent)(mintAmount, 100 - slippageLimitPercent);
683
+ const transaction = await (0, build_transaction_1.buildTransaction)(publicClient, {
684
+ chain: chain_1.CHAIN_MAP[chainId],
685
+ account: userAddress,
686
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Minter,
687
+ abi: minter_abi_1.MINTER_ABI,
688
+ functionName: 'mint',
689
+ args: [
690
+ pool.key,
691
+ amountAOrigin,
692
+ amountBOrigin,
693
+ minMintAmount,
694
+ {
695
+ permitAmount: tokenAPermitParams.permitAmount,
696
+ signature: tokenAPermitParams.signature,
697
+ },
698
+ {
699
+ permitAmount: tokenBPermitParams.permitAmount,
700
+ signature: tokenBPermitParams.signature,
701
+ },
702
+ swapParams,
703
+ ],
704
+ value: (0, viem_1.isAddressEqual)(token0, viem_1.zeroAddress)
705
+ ? amountAOrigin
706
+ : (0, viem_1.isAddressEqual)(token1, viem_1.zeroAddress)
707
+ ? amountBOrigin
708
+ : undefined,
709
+ }, options?.gasLimit);
710
+ const currencyARefund = amountA - inAmountA;
711
+ const currencyBRefund = amountB - inAmountB;
712
+ const currencyAResultAmount = amountAOrigin - currencyARefund;
713
+ const currencyBResultAmount = amountBOrigin - currencyBRefund;
714
+ return {
715
+ transaction,
716
+ result: {
717
+ currencyA: {
718
+ currency: pool.currencyA,
719
+ amount: (0, viem_1.formatUnits)((0, math_1.abs)(currencyAResultAmount), pool.currencyA.decimals),
720
+ direction: currencyAResultAmount >= 0 ? 'in' : 'out',
721
+ },
722
+ currencyB: {
723
+ currency: pool.currencyB,
724
+ amount: (0, viem_1.formatUnits)((0, math_1.abs)(currencyBResultAmount), pool.currencyB.decimals),
725
+ direction: currencyBResultAmount >= 0 ? 'in' : 'out',
726
+ },
727
+ lpCurrency: {
728
+ currency: pool.currencyLp,
729
+ amount: (0, viem_1.formatUnits)(mintAmount, pool.currencyLp.decimals),
730
+ direction: 'out',
731
+ },
732
+ },
733
+ };
734
+ };
735
+ exports.addLiquidity = addLiquidity;
736
+ const removeLiquidity = async ({ chainId, userAddress, token0, token1, salt, amount, options, }) => {
737
+ const publicClient = (0, viem_1.createPublicClient)({
738
+ chain: chain_1.CHAIN_MAP[chainId],
739
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
740
+ });
741
+ const pool = await (0, pool_1.fetchPool)(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph));
742
+ if (!pool.isOpened) {
743
+ throw new Error(`
744
+ Open the pool before removing liquidity.
745
+ import { openPool } from '@clober/v2-sdk'
746
+
747
+ const transaction = await openPool({
748
+ chainId: ${chainId},
749
+ tokenA: '${token0}',
750
+ tokenB: '${token1}',
751
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
752
+ })
753
+ `);
754
+ }
755
+ const burnAmount = (0, viem_1.parseUnits)(amount, pool.currencyLp.decimals);
756
+ const slippageLimitPercent = options?.slippage ?? 2;
757
+ const withdrawAmountA = (burnAmount * pool.liquidityA) / pool.totalSupply;
758
+ const withdrawAmountB = (burnAmount * pool.liquidityB) / pool.totalSupply;
759
+ const minWithdrawAmountA = (0, bigint_1.applyPercent)(withdrawAmountA, 100 - slippageLimitPercent);
760
+ const minWithdrawAmountB = (0, bigint_1.applyPercent)(withdrawAmountB, 100 - slippageLimitPercent);
761
+ if (burnAmount === 0n) {
762
+ return {
763
+ transaction: undefined,
764
+ result: {
765
+ currencyA: {
766
+ currency: pool.currencyA,
767
+ amount: '0',
768
+ direction: 'out',
769
+ },
770
+ currencyB: {
771
+ currency: pool.currencyB,
772
+ amount: '0',
773
+ direction: 'out',
774
+ },
775
+ lpCurrency: {
776
+ currency: pool.currencyLp,
777
+ amount: '0',
778
+ direction: 'in',
779
+ },
780
+ },
781
+ };
782
+ }
783
+ const transaction = await (0, build_transaction_1.buildTransaction)(publicClient, {
784
+ chain: chain_1.CHAIN_MAP[chainId],
785
+ account: userAddress,
786
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Rebalancer,
787
+ abi: rebalancer_abi_1.REBALANCER_ABI,
788
+ functionName: 'burn',
789
+ args: [pool.key, burnAmount, minWithdrawAmountA, minWithdrawAmountB],
790
+ }, options?.gasLimit);
791
+ return {
792
+ transaction,
793
+ result: {
794
+ currencyA: {
795
+ currency: pool.currencyA,
796
+ amount: (0, viem_1.formatUnits)(withdrawAmountA, pool.currencyA.decimals),
797
+ direction: 'out',
798
+ },
799
+ currencyB: {
800
+ currency: pool.currencyB,
801
+ amount: (0, viem_1.formatUnits)(withdrawAmountB, pool.currencyB.decimals),
802
+ direction: 'out',
803
+ },
804
+ lpCurrency: {
805
+ currency: pool.currencyLp,
806
+ amount: amount,
807
+ direction: 'in',
808
+ },
809
+ },
810
+ };
811
+ };
812
+ exports.removeLiquidity = removeLiquidity;
813
+ const refillOrder = async ({ chainId, userAddress, token0, token1, salt, options, }) => {
814
+ const publicClient = (0, viem_1.createPublicClient)({
815
+ chain: chain_1.CHAIN_MAP[chainId],
816
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
817
+ });
818
+ const pool = options?.pool
819
+ ? options.pool
820
+ : (await (0, pool_1.fetchPool)(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph))).toJson();
821
+ if (!pool.isOpened) {
822
+ throw new Error(`
823
+ Open the pool before rebalancing pool.
824
+ import { openPool } from '@clober/v2-sdk'
825
+
826
+ const transaction = await openPool({
827
+ chainId: ${chainId},
828
+ tokenA: '${token0}',
829
+ tokenB: '${token1}',
830
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
831
+ })
832
+ `);
833
+ }
834
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
835
+ chain: chain_1.CHAIN_MAP[chainId],
836
+ account: userAddress,
837
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Rebalancer,
838
+ abi: rebalancer_abi_1.REBALANCER_ABI,
839
+ functionName: 'rebalance',
840
+ args: [pool.key],
841
+ }, options?.gasLimit, options?.gasPriceLimit);
842
+ };
843
+ exports.refillOrder = refillOrder;
844
+ const adjustOrderPrice = async ({ chainId, userAddress, token0, token1, salt, oraclePrice, bidPrice, askPrice, alpha, options, }) => {
845
+ if (Number(alpha) <= 0 || Number(alpha) > 1) {
846
+ throw new Error('Alpha value must be in the range (0, 1]');
847
+ }
848
+ if (Number(bidPrice) <= 0 || Number(askPrice) <= 0) {
849
+ throw new Error('Price must be greater than 0');
850
+ }
851
+ if (Number(bidPrice) >= Number(askPrice)) {
852
+ throw new Error('Bid price must be less than ask price');
853
+ }
854
+ const publicClient = (0, viem_1.createPublicClient)({
855
+ chain: chain_1.CHAIN_MAP[chainId],
856
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
857
+ });
858
+ const pool = options?.pool
859
+ ? options.pool
860
+ : (await (0, pool_1.fetchPool)(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph))).toJson();
861
+ if (!pool.isOpened) {
862
+ throw new Error(`
863
+ Open the pool before updating strategy price.
864
+ import { openPool } from '@clober/v2-sdk'
865
+
866
+ const transaction = await openPool({
867
+ chainId: ${chainId},
868
+ tokenA: '${token0}',
869
+ tokenB: '${token1}',
870
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
871
+ })
872
+ `);
873
+ }
874
+ const [roundingUpBidPrice, roundingUpAskPrice] = [
875
+ options?.roundingUpBidPrice ? options.roundingUpBidPrice : false,
876
+ options?.roundingUpAskPrice ? options.roundingUpAskPrice : false,
877
+ ];
878
+ const { roundingDownTick: roundingDownTickA, roundingUpTick: roundingUpTickA, } = (0, prices_1.parsePrice)(Number(bidPrice), pool.currencyA.decimals, pool.currencyB.decimals);
879
+ const { roundingDownTick: roundingDownTickB, roundingUpTick: roundingUpTickB, } = (0, prices_1.parsePrice)(Number(askPrice), pool.currencyA.decimals, pool.currencyB.decimals);
880
+ const oracleRawPrice = (0, prices_1.convertHumanReadablePriceToRawPrice)(Number(oraclePrice), pool.currencyA.decimals, pool.currencyB.decimals);
881
+ const tickA = options?.bidTick
882
+ ? Number(options.bidTick)
883
+ : Number(roundingUpBidPrice ? roundingUpTickA : roundingDownTickA);
884
+ let tickB = options?.askTick
885
+ ? Number(options.askTick)
886
+ : Number((0, tick_1.invertTick)(roundingUpAskPrice ? roundingUpTickB : roundingDownTickB));
887
+ if ((0, tick_1.invertTick)(BigInt(tickB)) <= BigInt(tickA)) {
888
+ tickB = Number((0, tick_1.invertTick)(BigInt(tickA + 1)));
889
+ }
890
+ const rateRaw = (0, viem_1.parseUnits)(alpha, 6);
891
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
892
+ chain: chain_1.CHAIN_MAP[chainId],
893
+ account: userAddress,
894
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Operator,
895
+ abi: operator_abi_1.OPERATOR_ABI,
896
+ functionName: 'updatePosition',
897
+ args: [pool.key, oracleRawPrice, tickA, tickB, rateRaw],
898
+ }, options?.gasLimit, options?.gasPriceLimit);
899
+ };
900
+ exports.adjustOrderPrice = adjustOrderPrice;
901
+ const setStrategyConfig = async ({ chainId, userAddress, token0, token1, salt, config, options, }) => {
902
+ if (Number(config.referenceThreshold) < 0 ||
903
+ Number(config.referenceThreshold) > 1) {
904
+ throw new Error('Reference threshold must be in the range [0, 1]');
905
+ }
906
+ if (Number(config.rebalanceThreshold) < 0 ||
907
+ Number(config.rebalanceThreshold) > 1) {
908
+ throw new Error('Rebalance threshold must be in the range [0, 1]');
909
+ }
910
+ if (Number(config.priceThresholdA) < 0 ||
911
+ Number(config.priceThresholdA) > 1 ||
912
+ Number(config.priceThresholdB) < 0 ||
913
+ Number(config.priceThresholdB) > 1) {
914
+ throw new Error('Price threshold must be in the range [0, 1]');
915
+ }
916
+ if (Number(config.rateA) < 0 ||
917
+ Number(config.rateA) > 1 ||
918
+ Number(config.rateB) < 0 ||
919
+ Number(config.rateB) > 1) {
920
+ throw new Error('Rate must be in the range [0, 1]');
921
+ }
922
+ if (Number(config.minRateA) < 0 ||
923
+ Number(config.minRateA) > 1 ||
924
+ Number(config.minRateB) < 0 ||
925
+ Number(config.minRateB) > 1) {
926
+ throw new Error('Min rate must be in the range [0, 1]');
927
+ }
928
+ if (Number(config.minRateA) > Number(config.rateA) ||
929
+ Number(config.minRateB) > Number(config.rateB)) {
930
+ throw new Error('Min rate must be less or equal to rate');
931
+ }
932
+ const publicClient = (0, viem_1.createPublicClient)({
933
+ chain: chain_1.CHAIN_MAP[chainId],
934
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
935
+ });
936
+ const pool = await (0, pool_1.fetchPool)(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph));
937
+ if (!pool.isOpened) {
938
+ throw new Error(`
939
+ Open the pool before set strategy config.
940
+ import { openPool } from '@clober/v2-sdk'
941
+
942
+ const transaction = await openPool({
943
+ chainId: ${chainId},
944
+ tokenA: '${token0}',
945
+ tokenB: '${token1}',
946
+ })
947
+ `);
948
+ }
949
+ const configRaw = {
950
+ referenceThreshold: (0, viem_1.parseUnits)(config.referenceThreshold, 6),
951
+ rebalanceThreshold: (0, viem_1.parseUnits)(config.rebalanceThreshold, 6),
952
+ rateA: (0, viem_1.parseUnits)(config.rateA, 6),
953
+ rateB: (0, viem_1.parseUnits)(config.rateB, 6),
954
+ minRateA: (0, viem_1.parseUnits)(config.minRateA, 6),
955
+ minRateB: (0, viem_1.parseUnits)(config.minRateB, 6),
956
+ priceThresholdA: (0, viem_1.parseUnits)(config.priceThresholdA, 6),
957
+ priceThresholdB: (0, viem_1.parseUnits)(config.priceThresholdB, 6),
958
+ };
959
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
960
+ chain: chain_1.CHAIN_MAP[chainId],
961
+ account: userAddress,
962
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Strategy,
963
+ abi: strategy_abi_1.STRATEGY_ABI,
964
+ functionName: 'setConfig',
965
+ args: [pool.key, configRaw],
966
+ }, options?.gasLimit);
967
+ };
968
+ exports.setStrategyConfig = setStrategyConfig;
969
+ const pausePool = async ({ chainId, userAddress, token0, token1, salt, options, }) => {
970
+ const publicClient = (0, viem_1.createPublicClient)({
971
+ chain: chain_1.CHAIN_MAP[chainId],
972
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
973
+ });
974
+ const pool = options?.pool
975
+ ? options.pool
976
+ : (await (0, pool_1.fetchPool)(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph))).toJson();
977
+ if (!pool.isOpened) {
978
+ throw new Error(`
979
+ Open the pool before trying pause.
980
+ import { openPool } from '@clober/v2-sdk'
981
+
982
+ const transaction = await openPool({
983
+ chainId: ${chainId},
984
+ tokenA: '${token0}',
985
+ tokenB: '${token1}',
986
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
987
+ })
988
+ `);
989
+ }
990
+ if (pool.paused) {
991
+ return undefined;
992
+ }
993
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
994
+ chain: chain_1.CHAIN_MAP[chainId],
995
+ account: userAddress,
996
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Operator,
997
+ abi: operator_abi_1.OPERATOR_ABI,
998
+ functionName: 'pause',
999
+ args: [pool.key],
1000
+ }, options?.gasLimit, options?.gasPriceLimit);
1001
+ };
1002
+ exports.pausePool = pausePool;
1003
+ const resumePool = async ({ chainId, userAddress, token0, token1, salt, options, }) => {
1004
+ const publicClient = (0, viem_1.createPublicClient)({
1005
+ chain: chain_1.CHAIN_MAP[chainId],
1006
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
1007
+ });
1008
+ const pool = options?.pool
1009
+ ? options.pool
1010
+ : (await (0, pool_1.fetchPool)(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph))).toJson();
1011
+ if (!pool.isOpened) {
1012
+ throw new Error(`
1013
+ Open the pool before trying resume.
1014
+ import { openPool } from '@clober/v2-sdk'
1015
+
1016
+ const transaction = await openPool({
1017
+ chainId: ${chainId},
1018
+ tokenA: '${token0}',
1019
+ tokenB: '${token1}',
1020
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
1021
+ })
1022
+ `);
1023
+ }
1024
+ if (!pool.paused) {
1025
+ return undefined;
1026
+ }
1027
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
1028
+ chain: chain_1.CHAIN_MAP[chainId],
1029
+ account: userAddress,
1030
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].Strategy,
1031
+ abi: strategy_abi_1.STRATEGY_ABI,
1032
+ functionName: 'unpause',
1033
+ args: [pool.key],
1034
+ }, options?.gasLimit, options?.gasPriceLimit);
1035
+ };
1036
+ exports.resumePool = resumePool;
1037
+ const vote = async ({ chainId, userAddress, candidateAddress, inFavor, options, }) => {
1038
+ const publicClient = (0, viem_1.createPublicClient)({
1039
+ chain: chain_1.CHAIN_MAP[chainId],
1040
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
1041
+ });
1042
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
1043
+ chain: chain_1.CHAIN_MAP[chainId],
1044
+ account: userAddress,
1045
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].ElectionGovernor,
1046
+ abi: election_governor_abi_1.ELECTION_GOVERNOR_ABI,
1047
+ functionName: 'vote',
1048
+ args: [candidateAddress, inFavor],
1049
+ }, options?.gasLimit, options?.gasPriceLimit);
1050
+ };
1051
+ exports.vote = vote;
1052
+ const register = async ({ chainId, userAddress, options, }) => {
1053
+ const publicClient = (0, viem_1.createPublicClient)({
1054
+ chain: chain_1.CHAIN_MAP[chainId],
1055
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
1056
+ });
1057
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
1058
+ chain: chain_1.CHAIN_MAP[chainId],
1059
+ account: userAddress,
1060
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].ElectionGovernor,
1061
+ abi: election_governor_abi_1.ELECTION_GOVERNOR_ABI,
1062
+ functionName: 'register',
1063
+ args: [],
1064
+ }, options?.gasLimit, options?.gasPriceLimit);
1065
+ };
1066
+ exports.register = register;
1067
+ const end = async ({ chainId, userAddress, options, }) => {
1068
+ const publicClient = (0, viem_1.createPublicClient)({
1069
+ chain: chain_1.CHAIN_MAP[chainId],
1070
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
1071
+ });
1072
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
1073
+ chain: chain_1.CHAIN_MAP[chainId],
1074
+ account: userAddress,
1075
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].ElectionGovernor,
1076
+ abi: election_governor_abi_1.ELECTION_GOVERNOR_ABI,
1077
+ functionName: 'end',
1078
+ args: [],
1079
+ }, options?.gasLimit, options?.gasPriceLimit);
1080
+ };
1081
+ exports.end = end;
1082
+ const mintVCLOB = async ({ chainId, userAddress, amount, options, }) => {
1083
+ const publicClient = (0, viem_1.createPublicClient)({
1084
+ chain: chain_1.CHAIN_MAP[chainId],
1085
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
1086
+ });
1087
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
1088
+ chain: chain_1.CHAIN_MAP[chainId],
1089
+ account: userAddress,
1090
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].VoteLockedCloberToken,
1091
+ abi: vclob_abi_1.VCLOB_ABI,
1092
+ functionName: 'mint',
1093
+ args: [amount, userAddress],
1094
+ }, options?.gasLimit, options?.gasPriceLimit);
1095
+ };
1096
+ exports.mintVCLOB = mintVCLOB;
1097
+ const burnVCLOB = async ({ chainId, userAddress, id, options, }) => {
1098
+ const publicClient = (0, viem_1.createPublicClient)({
1099
+ chain: chain_1.CHAIN_MAP[chainId],
1100
+ transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
1101
+ });
1102
+ return (0, build_transaction_1.buildTransaction)(publicClient, {
1103
+ chain: chain_1.CHAIN_MAP[chainId],
1104
+ account: userAddress,
1105
+ address: addresses_1.CONTRACT_ADDRESSES[chainId].VoteLockedCloberToken,
1106
+ abi: vclob_abi_1.VCLOB_ABI,
1107
+ functionName: 'burn',
1108
+ args: [Number(id), userAddress],
1109
+ }, options?.gasLimit, options?.gasPriceLimit);
1110
+ };
1111
+ exports.burnVCLOB = burnVCLOB;
450
1112
  //# sourceMappingURL=call.js.map