@shogun-sdk/intents-sdk 1.3.0 → 1.4.1

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 (670) hide show
  1. package/README.md +15 -22
  2. package/dist/index.cjs +9008 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +1654 -0
  5. package/dist/index.d.ts +1654 -0
  6. package/dist/index.js +9257 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +28 -15
  9. package/src/auth/siwe.ts +8 -3
  10. package/src/chains.ts +24 -0
  11. package/src/constants.ts +67 -13
  12. package/src/core/evm/chain-provider.ts +4 -1
  13. package/src/core/evm/connectors/monad.ts +27 -0
  14. package/src/core/evm/cross-chain-limit-order.ts +14 -14
  15. package/src/core/evm/intent-helpers.ts +153 -19
  16. package/src/core/evm/intent-provider.ts +5 -4
  17. package/src/core/evm/permit2.ts +36 -0
  18. package/src/core/evm/single-chain-dca-order.ts +18 -18
  19. package/src/core/evm/single-chain-limit-order.ts +15 -15
  20. package/src/core/evm/types.ts +4 -4
  21. package/src/core/evm/validator.ts +1 -1
  22. package/src/core/orders/api/fetch.ts +33 -16
  23. package/src/core/orders/api/index.ts +41 -8
  24. package/src/core/orders/common.ts +2 -0
  25. package/src/core/orders/cross-chain.ts +15 -8
  26. package/src/core/orders/single-chain.ts +30 -13
  27. package/src/core/sdk.ts +11 -0
  28. package/src/core/solana/cancel-order.ts +4 -2
  29. package/src/core/solana/client.ts +1 -1
  30. package/src/core/solana/dca/cancel-order.ts +2 -1
  31. package/src/core/solana/dca/single-chain-dca-order.ts +19 -22
  32. package/src/core/solana/dca/single-chain-limit-order.ts +20 -22
  33. package/src/core/solana/generated/cross-chain/accounts/dcaOrder.ts +2 -2
  34. package/src/core/solana/generated/cross-chain/accounts/guard.ts +22 -10
  35. package/src/core/solana/generated/cross-chain/errors/sourceChainGuard.ts +37 -33
  36. package/src/core/solana/generated/cross-chain/instructions/cancelDcaOrder.ts +36 -22
  37. package/src/core/solana/generated/cross-chain/instructions/cancelOrder.ts +32 -18
  38. package/src/core/solana/generated/cross-chain/instructions/claimTokensForDcaInterval.ts +396 -0
  39. package/src/core/solana/generated/cross-chain/instructions/index.ts +5 -0
  40. package/src/core/solana/generated/cross-chain/instructions/preStartDcaOrderExecution.ts +504 -0
  41. package/src/core/solana/generated/cross-chain/instructions/setCancelAuthorities.ts +326 -0
  42. package/src/core/solana/generated/cross-chain/instructions/startDcaOrderExecution.ts +440 -0
  43. package/src/core/solana/generated/cross-chain/instructions/startDcaOrderExecutionAfterSwap.ts +322 -0
  44. package/src/core/solana/generated/cross-chain/programs/sourceChainGuard.ts +80 -0
  45. package/src/core/solana/generated/cross-chain/types/cancelAuthoritiesUpdated.ts +40 -0
  46. package/src/core/solana/generated/cross-chain/types/index.ts +1 -0
  47. package/src/core/solana/generated/single-chain/accounts/guard.ts +22 -10
  48. package/src/core/solana/generated/single-chain/errors/singleChainGuard.ts +24 -20
  49. package/src/core/solana/generated/single-chain/instructions/cancelDcaOrder.ts +28 -14
  50. package/src/core/solana/generated/single-chain/instructions/cancelLimitOrder.ts +28 -14
  51. package/src/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.ts +30 -4
  52. package/src/core/solana/generated/single-chain/instructions/fulfillLimitOrder.ts +30 -4
  53. package/src/core/solana/generated/single-chain/instructions/index.ts +1 -0
  54. package/src/core/solana/generated/single-chain/instructions/setCancelAuthorities.ts +326 -0
  55. package/src/core/solana/generated/single-chain/programs/singleChainGuard.ts +17 -1
  56. package/src/core/solana/generated/single-chain/types/cancelAuthoritiesUpdated.ts +40 -0
  57. package/src/core/solana/generated/single-chain/types/index.ts +1 -0
  58. package/src/core/solana/intent-helpers.ts +31 -23
  59. package/src/core/solana/sdk.ts +1 -1
  60. package/src/core/solana/utils.ts +10 -1
  61. package/src/core/sui/cross-chain-limit-order.ts +1 -4
  62. package/src/core/sui/intent-helpers.ts +28 -31
  63. package/src/core/sui/order-transaction.ts +1 -1
  64. package/src/core/sui/single-chain-dca-order.ts +19 -32
  65. package/src/core/sui/single-chain-limit-order.ts +19 -34
  66. package/src/index.ts +8 -2
  67. package/src/types/api.ts +22 -2
  68. package/src/types/intent.ts +40 -4
  69. package/src/types/token-list.ts +2 -2
  70. package/src/utils/base-validator.ts +0 -4
  71. package/src/utils/defillama.ts +2 -0
  72. package/src/utils/generate-execution-details-hash.ts +11 -32
  73. package/src/utils/quote/address.ts +4 -0
  74. package/src/utils/quote/aggregator.ts +266 -106
  75. package/src/utils/quote/liquidswap.ts +42 -13
  76. package/src/utils/quote/paraswap.ts +2 -0
  77. package/src/utils/quote/pricing/constants.ts +33 -0
  78. package/src/utils/quote/pricing/decimals.ts +11 -0
  79. package/src/utils/quote/pricing/estimate-amount-out.ts +36 -0
  80. package/src/utils/quote/pricing/expenses.ts +62 -0
  81. package/src/utils/quote/pricing/gas.ts +28 -0
  82. package/src/utils/quote/pumpfun/estimations.ts +206 -0
  83. package/src/utils/quote/pumpfun/estimations_amm.ts +165 -0
  84. package/src/utils/quote/pumpfun/index.ts +266 -0
  85. package/src/utils/quote/pumpfun/models.ts +163 -0
  86. package/src/utils/quote/pumpfun/utils.ts +343 -0
  87. package/src/utils/quote/raydium.ts +350 -9
  88. package/src/utils/quote/relay.ts +99 -0
  89. package/src/utils/quote/stablecoins-tokens.ts +35 -8
  90. package/src/utils/quote/utils.ts +8 -0
  91. package/dist/esm/auth/siwe.js +0 -26
  92. package/dist/esm/auth/siwe.js.map +0 -1
  93. package/dist/esm/chains.js +0 -62
  94. package/dist/esm/chains.js.map +0 -1
  95. package/dist/esm/config.js +0 -2
  96. package/dist/esm/config.js.map +0 -1
  97. package/dist/esm/constants.js +0 -107
  98. package/dist/esm/constants.js.map +0 -1
  99. package/dist/esm/core/evm/abi/erc20.js +0 -313
  100. package/dist/esm/core/evm/abi/erc20.js.map +0 -1
  101. package/dist/esm/core/evm/abi/permit2.js +0 -395
  102. package/dist/esm/core/evm/abi/permit2.js.map +0 -1
  103. package/dist/esm/core/evm/abi/single-chain-guard-limit.js +0 -768
  104. package/dist/esm/core/evm/abi/single-chain-guard-limit.js.map +0 -1
  105. package/dist/esm/core/evm/abi/source-chain-guard.js +0 -1121
  106. package/dist/esm/core/evm/abi/source-chain-guard.js.map +0 -1
  107. package/dist/esm/core/evm/cancel-order.js +0 -130
  108. package/dist/esm/core/evm/cancel-order.js.map +0 -1
  109. package/dist/esm/core/evm/chain-provider.js +0 -118
  110. package/dist/esm/core/evm/chain-provider.js.map +0 -1
  111. package/dist/esm/core/evm/connectors/hyperevm.js +0 -23
  112. package/dist/esm/core/evm/connectors/hyperevm.js.map +0 -1
  113. package/dist/esm/core/evm/cross-chain-limit-order.js +0 -43
  114. package/dist/esm/core/evm/cross-chain-limit-order.js.map +0 -1
  115. package/dist/esm/core/evm/intent-helpers.js +0 -135
  116. package/dist/esm/core/evm/intent-helpers.js.map +0 -1
  117. package/dist/esm/core/evm/intent-provider.js +0 -162
  118. package/dist/esm/core/evm/intent-provider.js.map +0 -1
  119. package/dist/esm/core/evm/order-signature.js +0 -41
  120. package/dist/esm/core/evm/order-signature.js.map +0 -1
  121. package/dist/esm/core/evm/permit2.js +0 -82
  122. package/dist/esm/core/evm/permit2.js.map +0 -1
  123. package/dist/esm/core/evm/sdk.js +0 -175
  124. package/dist/esm/core/evm/sdk.js.map +0 -1
  125. package/dist/esm/core/evm/single-chain-dca-order.js +0 -49
  126. package/dist/esm/core/evm/single-chain-dca-order.js.map +0 -1
  127. package/dist/esm/core/evm/single-chain-limit-order.js +0 -45
  128. package/dist/esm/core/evm/single-chain-limit-order.js.map +0 -1
  129. package/dist/esm/core/evm/types.js +0 -8
  130. package/dist/esm/core/evm/types.js.map +0 -1
  131. package/dist/esm/core/evm/validator.js +0 -111
  132. package/dist/esm/core/evm/validator.js.map +0 -1
  133. package/dist/esm/core/orders/api/fetch.js +0 -17
  134. package/dist/esm/core/orders/api/fetch.js.map +0 -1
  135. package/dist/esm/core/orders/api/index.js +0 -31
  136. package/dist/esm/core/orders/api/index.js.map +0 -1
  137. package/dist/esm/core/orders/common.js +0 -8
  138. package/dist/esm/core/orders/common.js.map +0 -1
  139. package/dist/esm/core/orders/cross-chain.js +0 -311
  140. package/dist/esm/core/orders/cross-chain.js.map +0 -1
  141. package/dist/esm/core/orders/dca-single-chain.js +0 -172
  142. package/dist/esm/core/orders/dca-single-chain.js.map +0 -1
  143. package/dist/esm/core/orders/single-chain.js +0 -197
  144. package/dist/esm/core/orders/single-chain.js.map +0 -1
  145. package/dist/esm/core/sdk.js +0 -86
  146. package/dist/esm/core/sdk.js.map +0 -1
  147. package/dist/esm/core/solana/cancel-order.js +0 -176
  148. package/dist/esm/core/solana/cancel-order.js.map +0 -1
  149. package/dist/esm/core/solana/client.js +0 -19
  150. package/dist/esm/core/solana/client.js.map +0 -1
  151. package/dist/esm/core/solana/dca/cancel-order.js +0 -61
  152. package/dist/esm/core/solana/dca/cancel-order.js.map +0 -1
  153. package/dist/esm/core/solana/dca/create-order.js +0 -82
  154. package/dist/esm/core/solana/dca/create-order.js.map +0 -1
  155. package/dist/esm/core/solana/dca/single-chain-dca-order.js +0 -23
  156. package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +0 -1
  157. package/dist/esm/core/solana/dca/single-chain-limit-order.js +0 -29
  158. package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +0 -1
  159. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js +0 -60
  160. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js.map +0 -1
  161. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js +0 -90
  162. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js.map +0 -1
  163. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js +0 -64
  164. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js.map +0 -1
  165. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js +0 -12
  166. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js.map +0 -1
  167. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js +0 -78
  168. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js.map +0 -1
  169. package/dist/esm/core/solana/generated/cross-chain/errors/index.js +0 -9
  170. package/dist/esm/core/solana/generated/cross-chain/errors/index.js.map +0 -1
  171. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js +0 -140
  172. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js.map +0 -1
  173. package/dist/esm/core/solana/generated/cross-chain/index.js +0 -13
  174. package/dist/esm/core/solana/generated/cross-chain/index.js.map +0 -1
  175. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js +0 -88
  176. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js.map +0 -1
  177. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js +0 -118
  178. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js.map +0 -1
  179. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js +0 -107
  180. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js.map +0 -1
  181. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js +0 -127
  182. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js.map +0 -1
  183. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js +0 -133
  184. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js.map +0 -1
  185. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js +0 -170
  186. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js.map +0 -1
  187. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js +0 -188
  188. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js.map +0 -1
  189. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js +0 -166
  190. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js.map +0 -1
  191. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js +0 -22
  192. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js.map +0 -1
  193. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js +0 -126
  194. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js.map +0 -1
  195. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js +0 -110
  196. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js.map +0 -1
  197. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js +0 -98
  198. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js.map +0 -1
  199. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js +0 -111
  200. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js.map +0 -1
  201. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js +0 -98
  202. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js.map +0 -1
  203. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js +0 -106
  204. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js.map +0 -1
  205. package/dist/esm/core/solana/generated/cross-chain/programs/index.js +0 -9
  206. package/dist/esm/core/solana/generated/cross-chain/programs/index.js.map +0 -1
  207. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js +0 -98
  208. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js.map +0 -1
  209. package/dist/esm/core/solana/generated/cross-chain/shared/index.js +0 -79
  210. package/dist/esm/core/solana/generated/cross-chain/shared/index.js.map +0 -1
  211. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js +0 -18
  212. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js.map +0 -1
  213. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js +0 -18
  214. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js.map +0 -1
  215. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js +0 -24
  216. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
  217. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js +0 -32
  218. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js.map +0 -1
  219. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js +0 -42
  220. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js.map +0 -1
  221. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js +0 -26
  222. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
  223. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js +0 -28
  224. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js.map +0 -1
  225. package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js +0 -30
  226. package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js.map +0 -1
  227. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js +0 -26
  228. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js.map +0 -1
  229. package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js +0 -28
  230. package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js.map +0 -1
  231. package/dist/esm/core/solana/generated/cross-chain/types/index.js +0 -22
  232. package/dist/esm/core/solana/generated/cross-chain/types/index.js.map +0 -1
  233. package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js +0 -18
  234. package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js.map +0 -1
  235. package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js +0 -36
  236. package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js.map +0 -1
  237. package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js +0 -18
  238. package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js.map +0 -1
  239. package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js +0 -26
  240. package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js.map +0 -1
  241. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js +0 -60
  242. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js.map +0 -1
  243. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js +0 -75
  244. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js.map +0 -1
  245. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js +0 -62
  246. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js.map +0 -1
  247. package/dist/esm/core/solana/generated/single-chain/accounts/index.js +0 -12
  248. package/dist/esm/core/solana/generated/single-chain/accounts/index.js.map +0 -1
  249. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js +0 -65
  250. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js.map +0 -1
  251. package/dist/esm/core/solana/generated/single-chain/errors/index.js +0 -9
  252. package/dist/esm/core/solana/generated/single-chain/errors/index.js.map +0 -1
  253. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js +0 -101
  254. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js.map +0 -1
  255. package/dist/esm/core/solana/generated/single-chain/index.js +0 -13
  256. package/dist/esm/core/solana/generated/single-chain/index.js.map +0 -1
  257. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js +0 -88
  258. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js.map +0 -1
  259. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js +0 -84
  260. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js.map +0 -1
  261. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js +0 -84
  262. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js.map +0 -1
  263. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js +0 -121
  264. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js.map +0 -1
  265. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js +0 -172
  266. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js.map +0 -1
  267. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js +0 -163
  268. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js.map +0 -1
  269. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js +0 -168
  270. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js.map +0 -1
  271. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js +0 -146
  272. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js.map +0 -1
  273. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js +0 -146
  274. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js.map +0 -1
  275. package/dist/esm/core/solana/generated/single-chain/instructions/index.js +0 -20
  276. package/dist/esm/core/solana/generated/single-chain/instructions/index.js.map +0 -1
  277. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js +0 -126
  278. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js.map +0 -1
  279. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js +0 -98
  280. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js.map +0 -1
  281. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js +0 -111
  282. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js.map +0 -1
  283. package/dist/esm/core/solana/generated/single-chain/programs/index.js +0 -9
  284. package/dist/esm/core/solana/generated/single-chain/programs/index.js.map +0 -1
  285. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js +0 -90
  286. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js.map +0 -1
  287. package/dist/esm/core/solana/generated/single-chain/shared/index.js +0 -79
  288. package/dist/esm/core/solana/generated/single-chain/shared/index.js.map +0 -1
  289. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js +0 -18
  290. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js.map +0 -1
  291. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js +0 -18
  292. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js.map +0 -1
  293. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js +0 -24
  294. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
  295. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js +0 -42
  296. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js.map +0 -1
  297. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js +0 -18
  298. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js.map +0 -1
  299. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js +0 -30
  300. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
  301. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js +0 -26
  302. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js.map +0 -1
  303. package/dist/esm/core/solana/generated/single-chain/types/index.js +0 -18
  304. package/dist/esm/core/solana/generated/single-chain/types/index.js.map +0 -1
  305. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js +0 -36
  306. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js.map +0 -1
  307. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js +0 -24
  308. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js.map +0 -1
  309. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js +0 -18
  310. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js.map +0 -1
  311. package/dist/esm/core/solana/inspect.js +0 -43
  312. package/dist/esm/core/solana/inspect.js.map +0 -1
  313. package/dist/esm/core/solana/intent-helpers.js +0 -180
  314. package/dist/esm/core/solana/intent-helpers.js.map +0 -1
  315. package/dist/esm/core/solana/order-instructions.js +0 -163
  316. package/dist/esm/core/solana/order-instructions.js.map +0 -1
  317. package/dist/esm/core/solana/sdk.js +0 -220
  318. package/dist/esm/core/solana/sdk.js.map +0 -1
  319. package/dist/esm/core/solana/utils.js +0 -19
  320. package/dist/esm/core/solana/utils.js.map +0 -1
  321. package/dist/esm/core/solana/validator.js +0 -28
  322. package/dist/esm/core/solana/validator.js.map +0 -1
  323. package/dist/esm/core/sui/cancel.js +0 -36
  324. package/dist/esm/core/sui/cancel.js.map +0 -1
  325. package/dist/esm/core/sui/client.js +0 -3
  326. package/dist/esm/core/sui/client.js.map +0 -1
  327. package/dist/esm/core/sui/cross-chain-limit-order.js +0 -9
  328. package/dist/esm/core/sui/cross-chain-limit-order.js.map +0 -1
  329. package/dist/esm/core/sui/intent-helpers.js +0 -140
  330. package/dist/esm/core/sui/intent-helpers.js.map +0 -1
  331. package/dist/esm/core/sui/order-transaction.js +0 -58
  332. package/dist/esm/core/sui/order-transaction.js.map +0 -1
  333. package/dist/esm/core/sui/sdk.js +0 -119
  334. package/dist/esm/core/sui/sdk.js.map +0 -1
  335. package/dist/esm/core/sui/single-chain-dca-order.js +0 -99
  336. package/dist/esm/core/sui/single-chain-dca-order.js.map +0 -1
  337. package/dist/esm/core/sui/single-chain-limit-order.js +0 -103
  338. package/dist/esm/core/sui/single-chain-limit-order.js.map +0 -1
  339. package/dist/esm/core/sui/validator.js +0 -31
  340. package/dist/esm/core/sui/validator.js.map +0 -1
  341. package/dist/esm/errors/index.js +0 -68
  342. package/dist/esm/errors/index.js.map +0 -1
  343. package/dist/esm/index.js +0 -41
  344. package/dist/esm/index.js.map +0 -1
  345. package/dist/esm/types/api.js +0 -7
  346. package/dist/esm/types/api.js.map +0 -1
  347. package/dist/esm/types/intent.js +0 -2
  348. package/dist/esm/types/intent.js.map +0 -1
  349. package/dist/esm/types/token-list.js +0 -2
  350. package/dist/esm/types/token-list.js.map +0 -1
  351. package/dist/esm/utils/base-validator.js +0 -91
  352. package/dist/esm/utils/base-validator.js.map +0 -1
  353. package/dist/esm/utils/defillama.js +0 -104
  354. package/dist/esm/utils/defillama.js.map +0 -1
  355. package/dist/esm/utils/generate-execution-details-hash.js +0 -15
  356. package/dist/esm/utils/generate-execution-details-hash.js.map +0 -1
  357. package/dist/esm/utils/logger.js +0 -109
  358. package/dist/esm/utils/logger.js.map +0 -1
  359. package/dist/esm/utils/order-validator.js +0 -112
  360. package/dist/esm/utils/order-validator.js.map +0 -1
  361. package/dist/esm/utils/parsers.js +0 -28
  362. package/dist/esm/utils/parsers.js.map +0 -1
  363. package/dist/esm/utils/quote/aftermath.js +0 -15
  364. package/dist/esm/utils/quote/aftermath.js.map +0 -1
  365. package/dist/esm/utils/quote/aggregator.js +0 -329
  366. package/dist/esm/utils/quote/aggregator.js.map +0 -1
  367. package/dist/esm/utils/quote/jupiter.js +0 -31
  368. package/dist/esm/utils/quote/jupiter.js.map +0 -1
  369. package/dist/esm/utils/quote/liquidswap.js +0 -22
  370. package/dist/esm/utils/quote/liquidswap.js.map +0 -1
  371. package/dist/esm/utils/quote/paraswap.js +0 -67
  372. package/dist/esm/utils/quote/paraswap.js.map +0 -1
  373. package/dist/esm/utils/quote/raydium.js +0 -82
  374. package/dist/esm/utils/quote/raydium.js.map +0 -1
  375. package/dist/esm/utils/quote/stablecoins-tokens.js +0 -13
  376. package/dist/esm/utils/quote/stablecoins-tokens.js.map +0 -1
  377. package/dist/esm/utils/tokens/index.js +0 -37
  378. package/dist/esm/utils/tokens/index.js.map +0 -1
  379. package/dist/esm/utils/type-utils.js +0 -2
  380. package/dist/esm/utils/type-utils.js.map +0 -1
  381. package/dist/types/auth/siwe.d.ts +0 -13
  382. package/dist/types/auth/siwe.d.ts.map +0 -1
  383. package/dist/types/chains.d.ts +0 -62
  384. package/dist/types/chains.d.ts.map +0 -1
  385. package/dist/types/config.d.ts +0 -21
  386. package/dist/types/config.d.ts.map +0 -1
  387. package/dist/types/constants.d.ts +0 -44
  388. package/dist/types/constants.d.ts.map +0 -1
  389. package/dist/types/core/evm/abi/erc20.d.ts +0 -240
  390. package/dist/types/core/evm/abi/erc20.d.ts.map +0 -1
  391. package/dist/types/core/evm/abi/permit2.d.ts +0 -304
  392. package/dist/types/core/evm/abi/permit2.d.ts.map +0 -1
  393. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts +0 -596
  394. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts.map +0 -1
  395. package/dist/types/core/evm/abi/source-chain-guard.d.ts +0 -877
  396. package/dist/types/core/evm/abi/source-chain-guard.d.ts.map +0 -1
  397. package/dist/types/core/evm/cancel-order.d.ts +0 -28
  398. package/dist/types/core/evm/cancel-order.d.ts.map +0 -1
  399. package/dist/types/core/evm/chain-provider.d.ts +0 -62338
  400. package/dist/types/core/evm/chain-provider.d.ts.map +0 -1
  401. package/dist/types/core/evm/connectors/hyperevm.d.ts +0 -38
  402. package/dist/types/core/evm/connectors/hyperevm.d.ts.map +0 -1
  403. package/dist/types/core/evm/cross-chain-limit-order.d.ts +0 -22
  404. package/dist/types/core/evm/cross-chain-limit-order.d.ts.map +0 -1
  405. package/dist/types/core/evm/intent-helpers.d.ts +0 -105
  406. package/dist/types/core/evm/intent-helpers.d.ts.map +0 -1
  407. package/dist/types/core/evm/intent-provider.d.ts +0 -19
  408. package/dist/types/core/evm/intent-provider.d.ts.map +0 -1
  409. package/dist/types/core/evm/order-signature.d.ts +0 -22
  410. package/dist/types/core/evm/order-signature.d.ts.map +0 -1
  411. package/dist/types/core/evm/permit2.d.ts +0 -261
  412. package/dist/types/core/evm/permit2.d.ts.map +0 -1
  413. package/dist/types/core/evm/sdk.d.ts +0 -63
  414. package/dist/types/core/evm/sdk.d.ts.map +0 -1
  415. package/dist/types/core/evm/single-chain-dca-order.d.ts +0 -26
  416. package/dist/types/core/evm/single-chain-dca-order.d.ts.map +0 -1
  417. package/dist/types/core/evm/single-chain-limit-order.d.ts +0 -23
  418. package/dist/types/core/evm/single-chain-limit-order.d.ts.map +0 -1
  419. package/dist/types/core/evm/types.d.ts +0 -8
  420. package/dist/types/core/evm/types.d.ts.map +0 -1
  421. package/dist/types/core/evm/validator.d.ts +0 -23
  422. package/dist/types/core/evm/validator.d.ts.map +0 -1
  423. package/dist/types/core/orders/api/fetch.d.ts +0 -3
  424. package/dist/types/core/orders/api/fetch.d.ts.map +0 -1
  425. package/dist/types/core/orders/api/index.d.ts +0 -8
  426. package/dist/types/core/orders/api/index.d.ts.map +0 -1
  427. package/dist/types/core/orders/common.d.ts +0 -12
  428. package/dist/types/core/orders/common.d.ts.map +0 -1
  429. package/dist/types/core/orders/cross-chain.d.ts +0 -123
  430. package/dist/types/core/orders/cross-chain.d.ts.map +0 -1
  431. package/dist/types/core/orders/dca-single-chain.d.ts +0 -47
  432. package/dist/types/core/orders/dca-single-chain.d.ts.map +0 -1
  433. package/dist/types/core/orders/single-chain.d.ts +0 -47
  434. package/dist/types/core/orders/single-chain.d.ts.map +0 -1
  435. package/dist/types/core/sdk.d.ts +0 -30
  436. package/dist/types/core/sdk.d.ts.map +0 -1
  437. package/dist/types/core/solana/cancel-order.d.ts +0 -18
  438. package/dist/types/core/solana/cancel-order.d.ts.map +0 -1
  439. package/dist/types/core/solana/client.d.ts +0 -11
  440. package/dist/types/core/solana/client.d.ts.map +0 -1
  441. package/dist/types/core/solana/dca/cancel-order.d.ts +0 -5
  442. package/dist/types/core/solana/dca/cancel-order.d.ts.map +0 -1
  443. package/dist/types/core/solana/dca/create-order.d.ts +0 -8
  444. package/dist/types/core/solana/dca/create-order.d.ts.map +0 -1
  445. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +0 -14
  446. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +0 -1
  447. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +0 -19
  448. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +0 -1
  449. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts +0 -40
  450. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts.map +0 -1
  451. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts +0 -110
  452. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts.map +0 -1
  453. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts +0 -52
  454. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts.map +0 -1
  455. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts +0 -12
  456. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts.map +0 -1
  457. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts +0 -92
  458. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts.map +0 -1
  459. package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts +0 -9
  460. package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts.map +0 -1
  461. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts +0 -97
  462. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts.map +0 -1
  463. package/dist/types/core/solana/generated/cross-chain/index.d.ts +0 -13
  464. package/dist/types/core/solana/generated/cross-chain/index.d.ts.map +0 -1
  465. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts +0 -56
  466. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts.map +0 -1
  467. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts +0 -124
  468. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
  469. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts +0 -108
  470. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts.map +0 -1
  471. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts +0 -131
  472. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts.map +0 -1
  473. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts +0 -91
  474. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts.map +0 -1
  475. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts +0 -130
  476. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts.map +0 -1
  477. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts +0 -137
  478. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts.map +0 -1
  479. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts +0 -122
  480. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts.map +0 -1
  481. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts +0 -22
  482. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts.map +0 -1
  483. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts +0 -86
  484. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts.map +0 -1
  485. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts +0 -105
  486. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts.map +0 -1
  487. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts +0 -61
  488. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts.map +0 -1
  489. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
  490. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
  491. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts +0 -85
  492. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts.map +0 -1
  493. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts +0 -95
  494. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts.map +0 -1
  495. package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts +0 -9
  496. package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts.map +0 -1
  497. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts +0 -69
  498. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts.map +0 -1
  499. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts +0 -52
  500. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts.map +0 -1
  501. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts +0 -16
  502. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts.map +0 -1
  503. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts +0 -16
  504. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts.map +0 -1
  505. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
  506. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
  507. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts +0 -28
  508. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts.map +0 -1
  509. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts +0 -38
  510. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts.map +0 -1
  511. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -18
  512. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
  513. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts +0 -24
  514. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts.map +0 -1
  515. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts +0 -26
  516. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts.map +0 -1
  517. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts +0 -18
  518. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts.map +0 -1
  519. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts +0 -19
  520. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts.map +0 -1
  521. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts +0 -22
  522. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts.map +0 -1
  523. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts +0 -16
  524. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts.map +0 -1
  525. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts +0 -32
  526. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts.map +0 -1
  527. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts +0 -16
  528. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts.map +0 -1
  529. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts +0 -22
  530. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts.map +0 -1
  531. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts +0 -40
  532. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts.map +0 -1
  533. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts +0 -99
  534. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts.map +0 -1
  535. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts +0 -48
  536. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts.map +0 -1
  537. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts +0 -12
  538. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts.map +0 -1
  539. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts +0 -79
  540. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts.map +0 -1
  541. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts +0 -9
  542. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts.map +0 -1
  543. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts +0 -71
  544. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts.map +0 -1
  545. package/dist/types/core/solana/generated/single-chain/index.d.ts +0 -13
  546. package/dist/types/core/solana/generated/single-chain/index.d.ts.map +0 -1
  547. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts +0 -56
  548. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts.map +0 -1
  549. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts +0 -72
  550. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
  551. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts +0 -72
  552. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts.map +0 -1
  553. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts +0 -91
  554. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts.map +0 -1
  555. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts +0 -134
  556. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts.map +0 -1
  557. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts +0 -107
  558. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts.map +0 -1
  559. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts +0 -126
  560. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts.map +0 -1
  561. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts +0 -179
  562. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts.map +0 -1
  563. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts +0 -179
  564. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts.map +0 -1
  565. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts +0 -20
  566. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts.map +0 -1
  567. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts +0 -86
  568. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts.map +0 -1
  569. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts +0 -61
  570. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts.map +0 -1
  571. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
  572. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
  573. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts +0 -9
  574. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts.map +0 -1
  575. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts +0 -63
  576. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts.map +0 -1
  577. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts +0 -52
  578. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts.map +0 -1
  579. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts +0 -16
  580. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts.map +0 -1
  581. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts +0 -16
  582. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts.map +0 -1
  583. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
  584. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
  585. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts +0 -38
  586. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts.map +0 -1
  587. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts +0 -16
  588. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts.map +0 -1
  589. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -26
  590. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
  591. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts +0 -18
  592. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts.map +0 -1
  593. package/dist/types/core/solana/generated/single-chain/types/index.d.ts +0 -18
  594. package/dist/types/core/solana/generated/single-chain/types/index.d.ts.map +0 -1
  595. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts +0 -32
  596. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts.map +0 -1
  597. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts +0 -20
  598. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts.map +0 -1
  599. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts +0 -16
  600. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts.map +0 -1
  601. package/dist/types/core/solana/inspect.d.ts +0 -14
  602. package/dist/types/core/solana/inspect.d.ts.map +0 -1
  603. package/dist/types/core/solana/intent-helpers.d.ts +0 -120
  604. package/dist/types/core/solana/intent-helpers.d.ts.map +0 -1
  605. package/dist/types/core/solana/order-instructions.d.ts +0 -16
  606. package/dist/types/core/solana/order-instructions.d.ts.map +0 -1
  607. package/dist/types/core/solana/sdk.d.ts +0 -73
  608. package/dist/types/core/solana/sdk.d.ts.map +0 -1
  609. package/dist/types/core/solana/utils.d.ts +0 -7
  610. package/dist/types/core/solana/utils.d.ts.map +0 -1
  611. package/dist/types/core/solana/validator.d.ts +0 -11
  612. package/dist/types/core/solana/validator.d.ts.map +0 -1
  613. package/dist/types/core/sui/cancel.d.ts +0 -3
  614. package/dist/types/core/sui/cancel.d.ts.map +0 -1
  615. package/dist/types/core/sui/client.d.ts +0 -3
  616. package/dist/types/core/sui/client.d.ts.map +0 -1
  617. package/dist/types/core/sui/cross-chain-limit-order.d.ts +0 -5
  618. package/dist/types/core/sui/cross-chain-limit-order.d.ts.map +0 -1
  619. package/dist/types/core/sui/intent-helpers.d.ts +0 -90
  620. package/dist/types/core/sui/intent-helpers.d.ts.map +0 -1
  621. package/dist/types/core/sui/order-transaction.d.ts +0 -11
  622. package/dist/types/core/sui/order-transaction.d.ts.map +0 -1
  623. package/dist/types/core/sui/sdk.d.ts +0 -57
  624. package/dist/types/core/sui/sdk.d.ts.map +0 -1
  625. package/dist/types/core/sui/single-chain-dca-order.d.ts +0 -22
  626. package/dist/types/core/sui/single-chain-dca-order.d.ts.map +0 -1
  627. package/dist/types/core/sui/single-chain-limit-order.d.ts +0 -26
  628. package/dist/types/core/sui/single-chain-limit-order.d.ts.map +0 -1
  629. package/dist/types/core/sui/validator.d.ts +0 -11
  630. package/dist/types/core/sui/validator.d.ts.map +0 -1
  631. package/dist/types/errors/index.d.ts +0 -20
  632. package/dist/types/errors/index.d.ts.map +0 -1
  633. package/dist/types/index.d.ts +0 -43
  634. package/dist/types/index.d.ts.map +0 -1
  635. package/dist/types/types/api.d.ts +0 -65
  636. package/dist/types/types/api.d.ts.map +0 -1
  637. package/dist/types/types/intent.d.ts +0 -136
  638. package/dist/types/types/intent.d.ts.map +0 -1
  639. package/dist/types/types/token-list.d.ts +0 -30
  640. package/dist/types/types/token-list.d.ts.map +0 -1
  641. package/dist/types/utils/base-validator.d.ts +0 -46
  642. package/dist/types/utils/base-validator.d.ts.map +0 -1
  643. package/dist/types/utils/defillama.d.ts +0 -61
  644. package/dist/types/utils/defillama.d.ts.map +0 -1
  645. package/dist/types/utils/generate-execution-details-hash.d.ts +0 -11
  646. package/dist/types/utils/generate-execution-details-hash.d.ts.map +0 -1
  647. package/dist/types/utils/logger.d.ts +0 -35
  648. package/dist/types/utils/logger.d.ts.map +0 -1
  649. package/dist/types/utils/order-validator.d.ts +0 -64
  650. package/dist/types/utils/order-validator.d.ts.map +0 -1
  651. package/dist/types/utils/parsers.d.ts +0 -6
  652. package/dist/types/utils/parsers.d.ts.map +0 -1
  653. package/dist/types/utils/quote/aftermath.d.ts +0 -9
  654. package/dist/types/utils/quote/aftermath.d.ts.map +0 -1
  655. package/dist/types/utils/quote/aggregator.d.ts +0 -80
  656. package/dist/types/utils/quote/aggregator.d.ts.map +0 -1
  657. package/dist/types/utils/quote/jupiter.d.ts +0 -16
  658. package/dist/types/utils/quote/jupiter.d.ts.map +0 -1
  659. package/dist/types/utils/quote/liquidswap.d.ts +0 -16
  660. package/dist/types/utils/quote/liquidswap.d.ts.map +0 -1
  661. package/dist/types/utils/quote/paraswap.d.ts +0 -23
  662. package/dist/types/utils/quote/paraswap.d.ts.map +0 -1
  663. package/dist/types/utils/quote/raydium.d.ts +0 -79
  664. package/dist/types/utils/quote/raydium.d.ts.map +0 -1
  665. package/dist/types/utils/quote/stablecoins-tokens.d.ts +0 -11
  666. package/dist/types/utils/quote/stablecoins-tokens.d.ts.map +0 -1
  667. package/dist/types/utils/tokens/index.d.ts +0 -20
  668. package/dist/types/utils/tokens/index.d.ts.map +0 -1
  669. package/dist/types/utils/type-utils.d.ts +0 -2
  670. package/dist/types/utils/type-utils.d.ts.map +0 -1
@@ -0,0 +1,33 @@
1
+ import { ChainID } from '../../../chains.js';
2
+
3
+ /**
4
+ * Solver commission in basis points. MUST equal the solver's COMMISSION env value
5
+ * (solver/src/config.rs). Update both together to avoid quote divergence.
6
+ */
7
+ export const DEFAULT_COMMISSION_BPS = 50n; // 0.5% — placeholder, confirm against solver COMMISSION
8
+
9
+ /** Single-chain divisor — mirrors evaluate.rs:130-131 (`commission / 10_000`). */
10
+ export const SINGLE_CHAIN_COMMISSION_DENOMINATOR = 10_000n;
11
+
12
+ /**
13
+ * Cross-chain divisor — mirrors cross_chain_estimation.rs:213-214 (`commission / 100_000`).
14
+ * The asymmetry with the single-chain divisor is intentional (verbatim solver mirror);
15
+ * confirm with the solver team whether this is a unit choice or a bug before relying on it.
16
+ */
17
+ export const CROSS_CHAIN_COMMISSION_DENOMINATOR = 100_000n;
18
+
19
+ /** EVM fulfillment gas units — mirrors solver/src/constants/chains.rs (EVM single-chain). */
20
+ export const EVM_SINGLE_CHAIN_GAS_LIMIT = 3_000_000n;
21
+
22
+ /** EVM cross-chain fulfillment gas units — mirrors solver/src/constants/chains.rs (EVM cross-chain). */
23
+ export const EVM_CROSS_CHAIN_GAS_LIMIT = 2_000_000n;
24
+
25
+ /**
26
+ * Fixed native-token gas cost for non-EVM chains, in the chain's smallest unit.
27
+ * Mirrors solver/src/constants/chains.rs: Sui = 20_000_000 MIST; Solana base = 200_000 lamports
28
+ * (single-receiver default; per-receiver ATA cost is not modeled at quote time).
29
+ */
30
+ export const NON_EVM_FIXED_NATIVE_GAS_COST: Partial<Record<ChainID, bigint>> = {
31
+ [ChainID.Sui]: 20_000_000n,
32
+ [ChainID.Solana]: 200_000n,
33
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Integer decimal conversion between two tokens, mirroring solver cross_chain_estimation.rs:205-211.
3
+ * Uses BigInt powers of ten to avoid the float precision loss of `Math.floor(Number(...))`.
4
+ */
5
+ export function convertDecimals(amount: bigint, fromDecimals: number, toDecimals: number): bigint {
6
+ const diff = toDecimals - fromDecimals;
7
+ if (diff >= 0) {
8
+ return amount * 10n ** BigInt(diff);
9
+ }
10
+ return amount / 10n ** BigInt(-diff);
11
+ }
@@ -0,0 +1,36 @@
1
+ /** Expense components, all expressed in the output token's smallest units. */
2
+ export type Expenses = {
3
+ gasInTokenOut: bigint;
4
+ protocolFeeInTokenOut: bigint;
5
+ extraTransfersInTokenOut: bigint;
6
+ };
7
+
8
+ /** Thrown when total expenses meet or exceed the swap output, mirroring the solver's rejection. */
9
+ export class IntentNotViableError extends Error {
10
+ constructor(message: string) {
11
+ super(message);
12
+ this.name = 'IntentNotViableError';
13
+ }
14
+ }
15
+
16
+ /**
17
+ * Ports solver_rust evaluate.rs: final amount = swapOutput − expenses − commission.
18
+ * `commissionBps` is basis points; `commissionDenominator` selects single-chain (10_000n)
19
+ * vs cross-chain (100_000n) semantics. Throws IntentNotViableError when nothing is left.
20
+ */
21
+ export function estimateAmountOut(
22
+ swapOutput: bigint,
23
+ commissionBps: bigint,
24
+ expenses: Expenses,
25
+ commissionDenominator = 10_000n,
26
+ ): bigint {
27
+ const commissionFee = (swapOutput * commissionBps) / commissionDenominator;
28
+ const total =
29
+ expenses.gasInTokenOut + expenses.protocolFeeInTokenOut + expenses.extraTransfersInTokenOut + commissionFee;
30
+
31
+ if (total >= swapOutput) {
32
+ throw new IntentNotViableError(`Total expenses (${total}) meet or exceed swap output (${swapOutput})`);
33
+ }
34
+
35
+ return swapOutput - total;
36
+ }
@@ -0,0 +1,62 @@
1
+ import { ChainID, type SupportedChain } from '../../../chains.js';
2
+ import {
3
+ NATIVE_EVM_ETH_ADDRESSES,
4
+ NATIVE_SOLANA_TOKEN_ADDRESS,
5
+ NATIVE_SUI_TOKEN_ADDRESS,
6
+ isNativeEvmToken,
7
+ } from '../../../constants.js';
8
+ import { compareAddresses } from '../address.js';
9
+ import type { Expenses } from './estimate-amount-out.js';
10
+ import { getNativeGasCost } from './gas.js';
11
+
12
+ /** Quotes a native->tokenOut swap on the given chain. Injected to keep this module a leaf (no dependency on the aggregator). */
13
+ type GasQuoteFn = (params: {
14
+ chainId: SupportedChain;
15
+ amount: bigint;
16
+ tokenIn: string;
17
+ tokenOut: string;
18
+ }) => Promise<{ amountOut: bigint }>;
19
+
20
+ function nativeTokenAddressForChain(chainId: SupportedChain): string {
21
+ if (chainId === ChainID.Solana) return NATIVE_SOLANA_TOKEN_ADDRESS;
22
+ if (chainId === ChainID.Sui) return NATIVE_SUI_TOKEN_ADDRESS;
23
+ // EVM native sentinel addresses share the same 0xEee... value; use the first.
24
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
25
+ return NATIVE_EVM_ETH_ADDRESSES[0]!;
26
+ }
27
+
28
+ function isNativeToken(chainId: SupportedChain, address: string): boolean {
29
+ if (chainId === ChainID.Solana) return compareAddresses(address, NATIVE_SOLANA_TOKEN_ADDRESS);
30
+ if (chainId === ChainID.Sui) return compareAddresses(address, NATIVE_SUI_TOKEN_ADDRESS);
31
+ return isNativeEvmToken(address);
32
+ }
33
+
34
+ /**
35
+ * Builds the Expenses bundle in the output token. Gas is fetched in native units and
36
+ * swapped into tokenOut via the injected quote fn, mirroring how the solver converts
37
+ * expenses into the output token. protocolFee/extraTransfers are reserved (0n) for now.
38
+ */
39
+ export async function estimateExpensesInTokenOut(params: {
40
+ chainId: SupportedChain;
41
+ tokenOut: string;
42
+ gasLimit: bigint;
43
+ getQuote: GasQuoteFn;
44
+ rpcProviderUrl?: string;
45
+ }): Promise<Expenses> {
46
+ const { chainId, tokenOut, gasLimit, getQuote, rpcProviderUrl } = params;
47
+
48
+ const nativeGasCost = await getNativeGasCost({ chainId, gasLimit, rpcProviderUrl });
49
+
50
+ const gasInTokenOut = isNativeToken(chainId, tokenOut)
51
+ ? nativeGasCost
52
+ : (
53
+ await getQuote({
54
+ chainId,
55
+ amount: nativeGasCost,
56
+ tokenIn: nativeTokenAddressForChain(chainId),
57
+ tokenOut,
58
+ })
59
+ ).amountOut;
60
+
61
+ return { gasInTokenOut, protocolFeeInTokenOut: 0n, extraTransfersInTokenOut: 0n };
62
+ }
@@ -0,0 +1,28 @@
1
+ import { getGasPrice } from 'viem/actions';
2
+ import { isEvmChain, type SupportedChain } from '../../../chains.js';
3
+ import { ChainProvider } from '../../../core/evm/chain-provider.js';
4
+ import { NON_EVM_FIXED_NATIVE_GAS_COST } from './constants.js';
5
+
6
+ /**
7
+ * Gas cost in the chain's native smallest unit (wei / lamports / MIST).
8
+ * EVM: live gas price × gas limit. Non-EVM: solver-mirrored fixed cost.
9
+ */
10
+ export async function getNativeGasCost(params: {
11
+ chainId: SupportedChain;
12
+ gasLimit: bigint;
13
+ rpcProviderUrl?: string;
14
+ }): Promise<bigint> {
15
+ const { chainId, gasLimit, rpcProviderUrl } = params;
16
+
17
+ if (isEvmChain(chainId)) {
18
+ const client = ChainProvider.getClient(chainId, rpcProviderUrl);
19
+ const gasPrice = await getGasPrice(client);
20
+ return gasLimit * gasPrice;
21
+ }
22
+
23
+ const fixed = NON_EVM_FIXED_NATIVE_GAS_COST[chainId];
24
+ if (fixed === undefined) {
25
+ throw new Error(`No fixed native gas cost configured for chain ${chainId}`);
26
+ }
27
+ return fixed;
28
+ }
@@ -0,0 +1,206 @@
1
+ import type { BondingCurve, GlobalAccount } from './models.js';
2
+
3
+ export const BPS_DEN = 10000n;
4
+
5
+ export enum PreBondedTradeType {
6
+ BuyExactIn = 'BuyExactIn',
7
+ BuyExactOut = 'BuyExactOut',
8
+ SellExactIn = 'SellExactIn',
9
+ SellExactOut = 'SellExactOut',
10
+ }
11
+
12
+ class PreBondingError extends Error {
13
+ constructor(message: string) {
14
+ super(message);
15
+ this.name = 'PreBondingError';
16
+ }
17
+ }
18
+
19
+ /**
20
+ * Calculate output amount for constant product AMM: (amount_in * y_out) / (x_in + amount_in)
21
+ */
22
+ function cpAmountOut(amountIn: bigint, xIn: bigint, yOut: bigint): bigint {
23
+ if (xIn === 0n || yOut === 0n) {
24
+ throw new PreBondingError('Zero value for reserve');
25
+ }
26
+
27
+ const num = amountIn * yOut;
28
+ const den = xIn + amountIn;
29
+
30
+ return num / den;
31
+ }
32
+
33
+ /**
34
+ * Buy exact SOL in, get tokens out.
35
+ * Fee is deducted from SOL before the swap calculation.
36
+ */
37
+ export function buyExactIn(curve: BondingCurve, solIn: bigint, feeBps: bigint): bigint {
38
+ if (curve.complete) {
39
+ throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
40
+ }
41
+ if (solIn === 0n) {
42
+ return 0n;
43
+ }
44
+
45
+ const vSol = curve.virtualSolReserves;
46
+ const vTok = curve.virtualTokenReserves;
47
+
48
+ // Deduct protocol + creator fee from input SOL
49
+ const fee = (solIn * feeBps) / BPS_DEN;
50
+ const effectiveSolIn = solIn - fee;
51
+
52
+ let out = cpAmountOut(effectiveSolIn, vSol, vTok);
53
+
54
+ // Observed rounding in buy path (+1)
55
+ out = out + 1n;
56
+
57
+ // Cap by real tokens available
58
+ return out < curve.realTokenReserves ? out : curve.realTokenReserves;
59
+ }
60
+
61
+ /**
62
+ * Sell exact tokens in, get SOL out.
63
+ * Fee is deducted from SOL output.
64
+ */
65
+ export function sellExactIn(curve: BondingCurve, tokensIn: bigint, feeBps: bigint): bigint {
66
+ if (curve.complete) {
67
+ throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
68
+ }
69
+ if (tokensIn === 0n) {
70
+ return 0n;
71
+ }
72
+
73
+ const vTok = curve.virtualTokenReserves;
74
+ const vSol = curve.virtualSolReserves;
75
+
76
+ const gross = cpAmountOut(tokensIn, vTok, vSol);
77
+
78
+ // Deduct protocol + creator fee from output SOL
79
+ const fee = (gross * feeBps) / BPS_DEN;
80
+ let net = gross - fee;
81
+
82
+ // Cap by real SOL available
83
+ net = net < curve.realSolReserves ? net : curve.realSolReserves;
84
+
85
+ return net;
86
+ }
87
+
88
+ /**
89
+ * Buy exact tokens out, calculate required SOL in.
90
+ * This calculates the EXACT amount needed, but doesn't account for slippage buffer.
91
+ */
92
+ export function buyExactOut(curve: BondingCurve, tokensOut: bigint, feeBps: bigint): bigint {
93
+ if (curve.complete) {
94
+ throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
95
+ }
96
+ if (tokensOut === 0n) {
97
+ return 0n;
98
+ }
99
+ if (tokensOut > curve.realTokenReserves) {
100
+ throw new PreBondingError('Insufficient liquidity: real_token cap');
101
+ }
102
+
103
+ const vSol = curve.virtualSolReserves;
104
+ const vTok = curve.virtualTokenReserves;
105
+
106
+ if (tokensOut >= vTok) {
107
+ throw new PreBondingError('Insufficient liquidity: tokens_out >= v_tok');
108
+ }
109
+
110
+ // Calculate effective SOL needed before fees: ceil((vSol * tokensOut) / (vTok - tokensOut))
111
+ const num = vSol * tokensOut;
112
+ const den = vTok - tokensOut;
113
+ const effIn = (num + den - 1n) / den; // ceiling division
114
+
115
+ const feeNum = BPS_DEN - feeBps;
116
+ if (feeNum === 0n) {
117
+ throw new PreBondingError('Invalid fee configuration');
118
+ }
119
+
120
+ // Calculate gross SOL including fees: ceil((effIn * BPS_DEN) / feeNum)
121
+ const grossIn = (effIn * BPS_DEN + feeNum - 1n) / feeNum;
122
+
123
+ return grossIn;
124
+ }
125
+
126
+ /**
127
+ * Sell exact SOL out, calculate required tokens in.
128
+ * This calculates the EXACT amount needed, but doesn't account for slippage buffer.
129
+ */
130
+ export function sellExactOut(curve: BondingCurve, solOut: bigint, feeBps: bigint): bigint {
131
+ if (curve.complete) {
132
+ throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
133
+ }
134
+ if (solOut === 0n) {
135
+ return 0n;
136
+ }
137
+ if (solOut > curve.realSolReserves) {
138
+ throw new PreBondingError('Insufficient liquidity: real_sol cap');
139
+ }
140
+
141
+ const vTok = curve.virtualTokenReserves;
142
+ const vSol = curve.virtualSolReserves;
143
+
144
+ // fee_num = BPS_DEN - fee_bps
145
+ const feeNum = BPS_DEN - feeBps;
146
+ if (feeNum === 0n) {
147
+ throw new PreBondingError('Invalid fee configuration');
148
+ }
149
+
150
+ // Upper bound via continuous formula: gross = ceil((solOut * BPS_DEN) / feeNum)
151
+ const gross = (solOut * BPS_DEN + feeNum - 1n) / feeNum; // ceil
152
+ if (gross >= vSol) {
153
+ throw new PreBondingError('Insufficient liquidity: gross >= v_sol');
154
+ }
155
+
156
+ // hi = ceil((vTok * gross) / (vSol - gross))
157
+ const num = vTok * gross;
158
+ const den = vSol - gross;
159
+ let hi = (num + den - 1n) / den; // ceil
160
+ if (hi === 0n) {
161
+ hi = 1n;
162
+ }
163
+
164
+ // Monotonic binary search on sellExactIn using forward path (with real floors)
165
+ let lo = 0n;
166
+ let ans = hi;
167
+ while (lo <= hi) {
168
+ const mid = lo + (hi - lo) / 2n;
169
+ const got = sellExactIn(curve, mid, feeBps);
170
+ if (got >= solOut) {
171
+ ans = mid;
172
+ if (mid === 0n) break;
173
+ hi = mid - 1n;
174
+ } else {
175
+ lo = mid + 1n;
176
+ }
177
+ }
178
+
179
+ return ans;
180
+ }
181
+
182
+ export function estimatePumpFunPrebonded(
183
+ bondingCurve: BondingCurve,
184
+ globalAccount: GlobalAccount,
185
+ amount: bigint,
186
+ tradeType: PreBondedTradeType,
187
+ ): bigint {
188
+ if (bondingCurve.complete) {
189
+ throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(bondingCurve)}`);
190
+ }
191
+
192
+ const totalFeeBps = globalAccount.feeBasisPoints + globalAccount.creatorFeeBasisPoints;
193
+
194
+ switch (tradeType) {
195
+ case PreBondedTradeType.BuyExactIn:
196
+ return buyExactIn(bondingCurve, amount, totalFeeBps);
197
+ case PreBondedTradeType.BuyExactOut:
198
+ return buyExactOut(bondingCurve, amount, totalFeeBps);
199
+ case PreBondedTradeType.SellExactIn:
200
+ return sellExactIn(bondingCurve, amount, totalFeeBps);
201
+ case PreBondedTradeType.SellExactOut:
202
+ return sellExactOut(bondingCurve, amount, totalFeeBps);
203
+ default:
204
+ throw new PreBondingError(`Invalid trade type: ${tradeType}`);
205
+ }
206
+ }
@@ -0,0 +1,165 @@
1
+ import type { GlobalConfig, TokenAccount } from './models.js';
2
+ import { BPS_DEN, PreBondedTradeType } from './estimations.js';
3
+
4
+ /**
5
+ * Reserves structure for AMM calculations
6
+ * X = reserve of the token you pay (input side)
7
+ * Y = reserve of the token you receive (output side)
8
+ */
9
+ interface Reserves {
10
+ xIn: bigint;
11
+ yOut: bigint;
12
+ feeBps: bigint;
13
+ }
14
+
15
+ /**
16
+ * Ceiling division for bigints
17
+ * Returns ceil(n / d)
18
+ */
19
+ function ceilDiv(n: bigint, d: bigint): bigint {
20
+ if (d === 0n) {
21
+ throw new Error('Division by zero');
22
+ }
23
+ return (n + d - 1n) / d;
24
+ }
25
+
26
+ /**
27
+ * Calculate output amount for constant product AMM with exact input
28
+ * Formula: dy = (dx_effective * y_out) / (x_in + dx_effective)
29
+ * where dx_effective = dx * BPS_DEN / (BPS_DEN + fee_bps)
30
+ */
31
+ function amountOutExactIn(dx: bigint, r: Reserves): bigint {
32
+ if (dx === 0n) {
33
+ return 0n;
34
+ }
35
+ if (r.xIn === 0n || r.yOut === 0n) {
36
+ throw new Error('Insufficient liquidity: empty reserves');
37
+ }
38
+
39
+ const denom = BPS_DEN + r.feeBps;
40
+ const dxEff = (dx * BPS_DEN) / denom;
41
+ const num = dxEff * r.yOut;
42
+ const den = r.xIn + dxEff;
43
+
44
+ return num / den; // floor division
45
+ }
46
+
47
+ /**
48
+ * Calculate input amount needed for exact output in constant product AMM
49
+ * Formula: dx = ceil(dx_effective * (BPS_DEN + fee_bps) / BPS_DEN)
50
+ * where dx_effective = ceil((x_in * dy) / (y_out - dy))
51
+ */
52
+ function amountInExactOut(dy: bigint, r: Reserves): bigint {
53
+ if (dy === 0n) {
54
+ return 0n;
55
+ }
56
+ if (dy >= r.yOut || r.xIn === 0n) {
57
+ throw new Error('Insufficient liquidity: dy >= reserve or x_in is zero');
58
+ }
59
+
60
+ const dxEff = ceilDiv(r.xIn * dy, r.yOut - dy);
61
+ const denom = BPS_DEN + r.feeBps;
62
+
63
+ return ceilDiv(dxEff * denom, BPS_DEN);
64
+ }
65
+
66
+ /**
67
+ * Calculate base tokens received when buying with exact quote amount
68
+ * @param quoteIn Amount of quote tokens (SOL) to spend
69
+ * @param baseRes Base token reserve
70
+ * @param quoteRes Quote token reserve
71
+ * @param feeBps Fee in basis points
72
+ * @returns Amount of base tokens received
73
+ */
74
+ export function buyBaseExactInQuote(quoteIn: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
75
+ return amountOutExactIn(quoteIn, {
76
+ xIn: quoteRes,
77
+ yOut: baseRes,
78
+ feeBps,
79
+ });
80
+ }
81
+
82
+ /**
83
+ * Calculate quote tokens needed to buy exact base amount
84
+ * @param baseOut Desired amount of base tokens
85
+ * @param baseRes Base token reserve
86
+ * @param quoteRes Quote token reserve
87
+ * @param feeBps Fee in basis points
88
+ * @returns Amount of quote tokens needed
89
+ */
90
+ export function buyBaseExactOutQuote(baseOut: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
91
+ return amountInExactOut(baseOut, {
92
+ xIn: quoteRes,
93
+ yOut: baseRes,
94
+ feeBps,
95
+ });
96
+ }
97
+
98
+ /**
99
+ * Calculate quote tokens received when selling exact base amount
100
+ * @param baseIn Amount of base tokens to sell
101
+ * @param baseRes Base token reserve
102
+ * @param quoteRes Quote token reserve
103
+ * @param feeBps Fee in basis points
104
+ * @returns Amount of quote tokens received
105
+ */
106
+ export function sellBaseExactInQuote(baseIn: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
107
+ return amountOutExactIn(baseIn, {
108
+ xIn: baseRes,
109
+ yOut: quoteRes,
110
+ feeBps,
111
+ });
112
+ }
113
+
114
+ /**
115
+ * Calculate base tokens needed to receive exact quote amount
116
+ * @param quoteOut Desired amount of quote tokens
117
+ * @param baseRes Base token reserve
118
+ * @param quoteRes Quote token reserve
119
+ * @param feeBps Fee in basis points
120
+ * @returns Amount of base tokens needed
121
+ */
122
+ export function sellBaseExactOutQuote(quoteOut: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
123
+ return amountInExactOut(quoteOut, {
124
+ xIn: baseRes,
125
+ yOut: quoteRes,
126
+ feeBps,
127
+ });
128
+ }
129
+
130
+ /**
131
+ * Main estimation function for PumpFun AMM
132
+ * @param baseToken Base token account info
133
+ * @param quoteToken Quote token account info
134
+ * @param globalConfig Global configuration with fee settings
135
+ * @param amount Amount to trade
136
+ * @param tradeType Type of trade (BuyExactIn, BuyExactOut, SellExactIn, SellExactOut)
137
+ * @returns Estimated output/input amount
138
+ */
139
+ export function estimatePumpFunAmm(
140
+ baseToken: TokenAccount,
141
+ quoteToken: TokenAccount,
142
+ globalConfig: GlobalConfig,
143
+ amount: bigint,
144
+ tradeType: PreBondedTradeType,
145
+ ): bigint {
146
+ const totalFeeBps =
147
+ globalConfig.lpFeeBasisPoints + globalConfig.protocolFeeBasisPoints + globalConfig.coinCreatorFeeBasisPoints;
148
+
149
+ switch (tradeType) {
150
+ case PreBondedTradeType.BuyExactIn:
151
+ return buyBaseExactInQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
152
+
153
+ case PreBondedTradeType.BuyExactOut:
154
+ return buyBaseExactOutQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
155
+
156
+ case PreBondedTradeType.SellExactIn:
157
+ return sellBaseExactInQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
158
+
159
+ case PreBondedTradeType.SellExactOut:
160
+ return sellBaseExactOutQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
161
+
162
+ default:
163
+ throw new Error(`Invalid trade type: ${tradeType}`);
164
+ }
165
+ }