@shogun-sdk/intents-sdk 1.2.31 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/README.md +76 -25
  2. package/dist/index.cjs +8997 -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 +9246 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +44 -30
  9. package/src/auth/siwe.ts +8 -3
  10. package/src/chains.ts +6 -0
  11. package/src/constants.ts +71 -15
  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 +162 -21
  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 +39 -8
  24. package/src/core/orders/common.ts +2 -0
  25. package/src/core/orders/cross-chain.ts +15 -18
  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 +38 -27
  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 -29
  62. package/src/core/sui/intent-helpers.ts +39 -41
  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 +22 -9
  67. package/src/types/api.ts +22 -2
  68. package/src/types/intent.ts +42 -5
  69. package/src/types/token-list.ts +35 -0
  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 +13 -0
  73. package/src/utils/quote/address.ts +4 -0
  74. package/src/utils/quote/aggregator.ts +326 -76
  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 +506 -0
  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/src/utils/tokens/index.ts +38 -0
  92. package/dist/esm/auth/siwe.js +0 -26
  93. package/dist/esm/auth/siwe.js.map +0 -1
  94. package/dist/esm/chains.js +0 -62
  95. package/dist/esm/chains.js.map +0 -1
  96. package/dist/esm/config.js +0 -2
  97. package/dist/esm/config.js.map +0 -1
  98. package/dist/esm/constants.js +0 -106
  99. package/dist/esm/constants.js.map +0 -1
  100. package/dist/esm/core/evm/abi/erc20.js +0 -313
  101. package/dist/esm/core/evm/abi/erc20.js.map +0 -1
  102. package/dist/esm/core/evm/abi/permit2.js +0 -395
  103. package/dist/esm/core/evm/abi/permit2.js.map +0 -1
  104. package/dist/esm/core/evm/abi/single-chain-guard-limit.js +0 -768
  105. package/dist/esm/core/evm/abi/single-chain-guard-limit.js.map +0 -1
  106. package/dist/esm/core/evm/abi/source-chain-guard.js +0 -1121
  107. package/dist/esm/core/evm/abi/source-chain-guard.js.map +0 -1
  108. package/dist/esm/core/evm/cancel-order.js +0 -130
  109. package/dist/esm/core/evm/cancel-order.js.map +0 -1
  110. package/dist/esm/core/evm/chain-provider.js +0 -118
  111. package/dist/esm/core/evm/chain-provider.js.map +0 -1
  112. package/dist/esm/core/evm/connectors/hyperevm.js +0 -23
  113. package/dist/esm/core/evm/connectors/hyperevm.js.map +0 -1
  114. package/dist/esm/core/evm/cross-chain-limit-order.js +0 -43
  115. package/dist/esm/core/evm/cross-chain-limit-order.js.map +0 -1
  116. package/dist/esm/core/evm/intent-helpers.js +0 -130
  117. package/dist/esm/core/evm/intent-helpers.js.map +0 -1
  118. package/dist/esm/core/evm/intent-provider.js +0 -162
  119. package/dist/esm/core/evm/intent-provider.js.map +0 -1
  120. package/dist/esm/core/evm/order-signature.js +0 -41
  121. package/dist/esm/core/evm/order-signature.js.map +0 -1
  122. package/dist/esm/core/evm/permit2.js +0 -82
  123. package/dist/esm/core/evm/permit2.js.map +0 -1
  124. package/dist/esm/core/evm/sdk.js +0 -175
  125. package/dist/esm/core/evm/sdk.js.map +0 -1
  126. package/dist/esm/core/evm/single-chain-dca-order.js +0 -49
  127. package/dist/esm/core/evm/single-chain-dca-order.js.map +0 -1
  128. package/dist/esm/core/evm/single-chain-limit-order.js +0 -45
  129. package/dist/esm/core/evm/single-chain-limit-order.js.map +0 -1
  130. package/dist/esm/core/evm/types.js +0 -8
  131. package/dist/esm/core/evm/types.js.map +0 -1
  132. package/dist/esm/core/evm/validator.js +0 -111
  133. package/dist/esm/core/evm/validator.js.map +0 -1
  134. package/dist/esm/core/orders/api/fetch.js +0 -17
  135. package/dist/esm/core/orders/api/fetch.js.map +0 -1
  136. package/dist/esm/core/orders/api/index.js +0 -31
  137. package/dist/esm/core/orders/api/index.js.map +0 -1
  138. package/dist/esm/core/orders/common.js +0 -8
  139. package/dist/esm/core/orders/common.js.map +0 -1
  140. package/dist/esm/core/orders/cross-chain.js +0 -319
  141. package/dist/esm/core/orders/cross-chain.js.map +0 -1
  142. package/dist/esm/core/orders/dca-single-chain.js +0 -172
  143. package/dist/esm/core/orders/dca-single-chain.js.map +0 -1
  144. package/dist/esm/core/orders/single-chain.js +0 -197
  145. package/dist/esm/core/orders/single-chain.js.map +0 -1
  146. package/dist/esm/core/sdk.js +0 -86
  147. package/dist/esm/core/sdk.js.map +0 -1
  148. package/dist/esm/core/solana/cancel-order.js +0 -176
  149. package/dist/esm/core/solana/cancel-order.js.map +0 -1
  150. package/dist/esm/core/solana/client.js +0 -19
  151. package/dist/esm/core/solana/client.js.map +0 -1
  152. package/dist/esm/core/solana/cross-chain-limit-order.js +0 -18
  153. package/dist/esm/core/solana/cross-chain-limit-order.js.map +0 -1
  154. package/dist/esm/core/solana/dca/cancel-order.js +0 -61
  155. package/dist/esm/core/solana/dca/cancel-order.js.map +0 -1
  156. package/dist/esm/core/solana/dca/create-order.js +0 -82
  157. package/dist/esm/core/solana/dca/create-order.js.map +0 -1
  158. package/dist/esm/core/solana/dca/single-chain-dca-order.js +0 -23
  159. package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +0 -1
  160. package/dist/esm/core/solana/dca/single-chain-limit-order.js +0 -29
  161. package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +0 -1
  162. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js +0 -60
  163. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js.map +0 -1
  164. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js +0 -90
  165. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js.map +0 -1
  166. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js +0 -64
  167. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js.map +0 -1
  168. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js +0 -12
  169. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js.map +0 -1
  170. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js +0 -78
  171. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js.map +0 -1
  172. package/dist/esm/core/solana/generated/cross-chain/errors/index.js +0 -9
  173. package/dist/esm/core/solana/generated/cross-chain/errors/index.js.map +0 -1
  174. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js +0 -140
  175. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js.map +0 -1
  176. package/dist/esm/core/solana/generated/cross-chain/index.js +0 -13
  177. package/dist/esm/core/solana/generated/cross-chain/index.js.map +0 -1
  178. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js +0 -88
  179. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js.map +0 -1
  180. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js +0 -118
  181. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js.map +0 -1
  182. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js +0 -107
  183. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js.map +0 -1
  184. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js +0 -127
  185. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js.map +0 -1
  186. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js +0 -133
  187. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js.map +0 -1
  188. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js +0 -170
  189. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js.map +0 -1
  190. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js +0 -188
  191. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js.map +0 -1
  192. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js +0 -166
  193. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js.map +0 -1
  194. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js +0 -22
  195. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js.map +0 -1
  196. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js +0 -126
  197. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js.map +0 -1
  198. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js +0 -110
  199. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js.map +0 -1
  200. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js +0 -98
  201. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js.map +0 -1
  202. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js +0 -111
  203. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js.map +0 -1
  204. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js +0 -98
  205. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js.map +0 -1
  206. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js +0 -106
  207. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js.map +0 -1
  208. package/dist/esm/core/solana/generated/cross-chain/programs/index.js +0 -9
  209. package/dist/esm/core/solana/generated/cross-chain/programs/index.js.map +0 -1
  210. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js +0 -98
  211. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js.map +0 -1
  212. package/dist/esm/core/solana/generated/cross-chain/shared/index.js +0 -79
  213. package/dist/esm/core/solana/generated/cross-chain/shared/index.js.map +0 -1
  214. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js +0 -18
  215. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js.map +0 -1
  216. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js +0 -18
  217. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js.map +0 -1
  218. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js +0 -24
  219. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
  220. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js +0 -32
  221. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js.map +0 -1
  222. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js +0 -42
  223. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js.map +0 -1
  224. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js +0 -26
  225. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
  226. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js +0 -28
  227. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js.map +0 -1
  228. package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js +0 -30
  229. package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js.map +0 -1
  230. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js +0 -26
  231. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js.map +0 -1
  232. package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js +0 -28
  233. package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js.map +0 -1
  234. package/dist/esm/core/solana/generated/cross-chain/types/index.js +0 -22
  235. package/dist/esm/core/solana/generated/cross-chain/types/index.js.map +0 -1
  236. package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js +0 -18
  237. package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js.map +0 -1
  238. package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js +0 -36
  239. package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js.map +0 -1
  240. package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js +0 -18
  241. package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js.map +0 -1
  242. package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js +0 -26
  243. package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js.map +0 -1
  244. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js +0 -60
  245. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js.map +0 -1
  246. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js +0 -75
  247. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js.map +0 -1
  248. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js +0 -62
  249. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js.map +0 -1
  250. package/dist/esm/core/solana/generated/single-chain/accounts/index.js +0 -12
  251. package/dist/esm/core/solana/generated/single-chain/accounts/index.js.map +0 -1
  252. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js +0 -65
  253. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js.map +0 -1
  254. package/dist/esm/core/solana/generated/single-chain/errors/index.js +0 -9
  255. package/dist/esm/core/solana/generated/single-chain/errors/index.js.map +0 -1
  256. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js +0 -101
  257. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js.map +0 -1
  258. package/dist/esm/core/solana/generated/single-chain/index.js +0 -13
  259. package/dist/esm/core/solana/generated/single-chain/index.js.map +0 -1
  260. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js +0 -88
  261. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js.map +0 -1
  262. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js +0 -84
  263. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js.map +0 -1
  264. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js +0 -84
  265. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js.map +0 -1
  266. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js +0 -121
  267. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js.map +0 -1
  268. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js +0 -172
  269. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js.map +0 -1
  270. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js +0 -163
  271. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js.map +0 -1
  272. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js +0 -168
  273. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js.map +0 -1
  274. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js +0 -146
  275. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js.map +0 -1
  276. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js +0 -146
  277. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js.map +0 -1
  278. package/dist/esm/core/solana/generated/single-chain/instructions/index.js +0 -20
  279. package/dist/esm/core/solana/generated/single-chain/instructions/index.js.map +0 -1
  280. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js +0 -126
  281. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js.map +0 -1
  282. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js +0 -98
  283. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js.map +0 -1
  284. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js +0 -111
  285. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js.map +0 -1
  286. package/dist/esm/core/solana/generated/single-chain/programs/index.js +0 -9
  287. package/dist/esm/core/solana/generated/single-chain/programs/index.js.map +0 -1
  288. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js +0 -90
  289. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js.map +0 -1
  290. package/dist/esm/core/solana/generated/single-chain/shared/index.js +0 -79
  291. package/dist/esm/core/solana/generated/single-chain/shared/index.js.map +0 -1
  292. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js +0 -18
  293. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js.map +0 -1
  294. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js +0 -18
  295. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js.map +0 -1
  296. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js +0 -24
  297. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
  298. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js +0 -42
  299. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js.map +0 -1
  300. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js +0 -18
  301. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js.map +0 -1
  302. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js +0 -30
  303. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
  304. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js +0 -26
  305. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js.map +0 -1
  306. package/dist/esm/core/solana/generated/single-chain/types/index.js +0 -18
  307. package/dist/esm/core/solana/generated/single-chain/types/index.js.map +0 -1
  308. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js +0 -36
  309. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js.map +0 -1
  310. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js +0 -24
  311. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js.map +0 -1
  312. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js +0 -18
  313. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js.map +0 -1
  314. package/dist/esm/core/solana/inspect.js +0 -43
  315. package/dist/esm/core/solana/inspect.js.map +0 -1
  316. package/dist/esm/core/solana/intent-helpers.js +0 -177
  317. package/dist/esm/core/solana/intent-helpers.js.map +0 -1
  318. package/dist/esm/core/solana/order-instructions.js +0 -163
  319. package/dist/esm/core/solana/order-instructions.js.map +0 -1
  320. package/dist/esm/core/solana/sdk.js +0 -220
  321. package/dist/esm/core/solana/sdk.js.map +0 -1
  322. package/dist/esm/core/solana/utils.js +0 -19
  323. package/dist/esm/core/solana/utils.js.map +0 -1
  324. package/dist/esm/core/solana/validator.js +0 -28
  325. package/dist/esm/core/solana/validator.js.map +0 -1
  326. package/dist/esm/core/sui/cancel.js +0 -36
  327. package/dist/esm/core/sui/cancel.js.map +0 -1
  328. package/dist/esm/core/sui/client.js +0 -3
  329. package/dist/esm/core/sui/client.js.map +0 -1
  330. package/dist/esm/core/sui/cross-chain-limit-order.js +0 -26
  331. package/dist/esm/core/sui/cross-chain-limit-order.js.map +0 -1
  332. package/dist/esm/core/sui/intent-helpers.js +0 -136
  333. package/dist/esm/core/sui/intent-helpers.js.map +0 -1
  334. package/dist/esm/core/sui/order-transaction.js +0 -58
  335. package/dist/esm/core/sui/order-transaction.js.map +0 -1
  336. package/dist/esm/core/sui/sdk.js +0 -119
  337. package/dist/esm/core/sui/sdk.js.map +0 -1
  338. package/dist/esm/core/sui/single-chain-dca-order.js +0 -99
  339. package/dist/esm/core/sui/single-chain-dca-order.js.map +0 -1
  340. package/dist/esm/core/sui/single-chain-limit-order.js +0 -103
  341. package/dist/esm/core/sui/single-chain-limit-order.js.map +0 -1
  342. package/dist/esm/core/sui/validator.js +0 -31
  343. package/dist/esm/core/sui/validator.js.map +0 -1
  344. package/dist/esm/errors/index.js +0 -68
  345. package/dist/esm/errors/index.js.map +0 -1
  346. package/dist/esm/index.js +0 -38
  347. package/dist/esm/index.js.map +0 -1
  348. package/dist/esm/types/api.js +0 -7
  349. package/dist/esm/types/api.js.map +0 -1
  350. package/dist/esm/types/intent.js +0 -2
  351. package/dist/esm/types/intent.js.map +0 -1
  352. package/dist/esm/utils/base-validator.js +0 -91
  353. package/dist/esm/utils/base-validator.js.map +0 -1
  354. package/dist/esm/utils/defillama.js +0 -104
  355. package/dist/esm/utils/defillama.js.map +0 -1
  356. package/dist/esm/utils/logger.js +0 -109
  357. package/dist/esm/utils/logger.js.map +0 -1
  358. package/dist/esm/utils/order-validator.js +0 -112
  359. package/dist/esm/utils/order-validator.js.map +0 -1
  360. package/dist/esm/utils/parsers.js +0 -28
  361. package/dist/esm/utils/parsers.js.map +0 -1
  362. package/dist/esm/utils/quote/aftermath.js +0 -15
  363. package/dist/esm/utils/quote/aftermath.js.map +0 -1
  364. package/dist/esm/utils/quote/aggregator.js +0 -254
  365. package/dist/esm/utils/quote/aggregator.js.map +0 -1
  366. package/dist/esm/utils/quote/jupiter.js +0 -31
  367. package/dist/esm/utils/quote/jupiter.js.map +0 -1
  368. package/dist/esm/utils/quote/liquidswap.js +0 -22
  369. package/dist/esm/utils/quote/liquidswap.js.map +0 -1
  370. package/dist/esm/utils/quote/paraswap.js +0 -67
  371. package/dist/esm/utils/quote/paraswap.js.map +0 -1
  372. package/dist/esm/utils/quote/stablecoins-tokens.js +0 -13
  373. package/dist/esm/utils/quote/stablecoins-tokens.js.map +0 -1
  374. package/dist/esm/utils/type-utils.js +0 -2
  375. package/dist/esm/utils/type-utils.js.map +0 -1
  376. package/dist/types/auth/siwe.d.ts +0 -13
  377. package/dist/types/auth/siwe.d.ts.map +0 -1
  378. package/dist/types/chains.d.ts +0 -62
  379. package/dist/types/chains.d.ts.map +0 -1
  380. package/dist/types/config.d.ts +0 -21
  381. package/dist/types/config.d.ts.map +0 -1
  382. package/dist/types/constants.d.ts +0 -43
  383. package/dist/types/constants.d.ts.map +0 -1
  384. package/dist/types/core/evm/abi/erc20.d.ts +0 -240
  385. package/dist/types/core/evm/abi/erc20.d.ts.map +0 -1
  386. package/dist/types/core/evm/abi/permit2.d.ts +0 -304
  387. package/dist/types/core/evm/abi/permit2.d.ts.map +0 -1
  388. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts +0 -596
  389. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts.map +0 -1
  390. package/dist/types/core/evm/abi/source-chain-guard.d.ts +0 -877
  391. package/dist/types/core/evm/abi/source-chain-guard.d.ts.map +0 -1
  392. package/dist/types/core/evm/cancel-order.d.ts +0 -28
  393. package/dist/types/core/evm/cancel-order.d.ts.map +0 -1
  394. package/dist/types/core/evm/chain-provider.d.ts +0 -62338
  395. package/dist/types/core/evm/chain-provider.d.ts.map +0 -1
  396. package/dist/types/core/evm/connectors/hyperevm.d.ts +0 -38
  397. package/dist/types/core/evm/connectors/hyperevm.d.ts.map +0 -1
  398. package/dist/types/core/evm/cross-chain-limit-order.d.ts +0 -22
  399. package/dist/types/core/evm/cross-chain-limit-order.d.ts.map +0 -1
  400. package/dist/types/core/evm/intent-helpers.d.ts +0 -105
  401. package/dist/types/core/evm/intent-helpers.d.ts.map +0 -1
  402. package/dist/types/core/evm/intent-provider.d.ts +0 -19
  403. package/dist/types/core/evm/intent-provider.d.ts.map +0 -1
  404. package/dist/types/core/evm/order-signature.d.ts +0 -22
  405. package/dist/types/core/evm/order-signature.d.ts.map +0 -1
  406. package/dist/types/core/evm/permit2.d.ts +0 -261
  407. package/dist/types/core/evm/permit2.d.ts.map +0 -1
  408. package/dist/types/core/evm/sdk.d.ts +0 -63
  409. package/dist/types/core/evm/sdk.d.ts.map +0 -1
  410. package/dist/types/core/evm/single-chain-dca-order.d.ts +0 -26
  411. package/dist/types/core/evm/single-chain-dca-order.d.ts.map +0 -1
  412. package/dist/types/core/evm/single-chain-limit-order.d.ts +0 -23
  413. package/dist/types/core/evm/single-chain-limit-order.d.ts.map +0 -1
  414. package/dist/types/core/evm/types.d.ts +0 -8
  415. package/dist/types/core/evm/types.d.ts.map +0 -1
  416. package/dist/types/core/evm/validator.d.ts +0 -23
  417. package/dist/types/core/evm/validator.d.ts.map +0 -1
  418. package/dist/types/core/orders/api/fetch.d.ts +0 -3
  419. package/dist/types/core/orders/api/fetch.d.ts.map +0 -1
  420. package/dist/types/core/orders/api/index.d.ts +0 -8
  421. package/dist/types/core/orders/api/index.d.ts.map +0 -1
  422. package/dist/types/core/orders/common.d.ts +0 -12
  423. package/dist/types/core/orders/common.d.ts.map +0 -1
  424. package/dist/types/core/orders/cross-chain.d.ts +0 -125
  425. package/dist/types/core/orders/cross-chain.d.ts.map +0 -1
  426. package/dist/types/core/orders/dca-single-chain.d.ts +0 -47
  427. package/dist/types/core/orders/dca-single-chain.d.ts.map +0 -1
  428. package/dist/types/core/orders/single-chain.d.ts +0 -47
  429. package/dist/types/core/orders/single-chain.d.ts.map +0 -1
  430. package/dist/types/core/sdk.d.ts +0 -30
  431. package/dist/types/core/sdk.d.ts.map +0 -1
  432. package/dist/types/core/solana/cancel-order.d.ts +0 -18
  433. package/dist/types/core/solana/cancel-order.d.ts.map +0 -1
  434. package/dist/types/core/solana/client.d.ts +0 -11
  435. package/dist/types/core/solana/client.d.ts.map +0 -1
  436. package/dist/types/core/solana/cross-chain-limit-order.d.ts +0 -9
  437. package/dist/types/core/solana/cross-chain-limit-order.d.ts.map +0 -1
  438. package/dist/types/core/solana/dca/cancel-order.d.ts +0 -5
  439. package/dist/types/core/solana/dca/cancel-order.d.ts.map +0 -1
  440. package/dist/types/core/solana/dca/create-order.d.ts +0 -8
  441. package/dist/types/core/solana/dca/create-order.d.ts.map +0 -1
  442. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +0 -14
  443. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +0 -1
  444. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +0 -19
  445. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +0 -1
  446. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts +0 -40
  447. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts.map +0 -1
  448. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts +0 -110
  449. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts.map +0 -1
  450. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts +0 -52
  451. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts.map +0 -1
  452. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts +0 -12
  453. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts.map +0 -1
  454. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts +0 -92
  455. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts.map +0 -1
  456. package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts +0 -9
  457. package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts.map +0 -1
  458. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts +0 -97
  459. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts.map +0 -1
  460. package/dist/types/core/solana/generated/cross-chain/index.d.ts +0 -13
  461. package/dist/types/core/solana/generated/cross-chain/index.d.ts.map +0 -1
  462. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts +0 -56
  463. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts.map +0 -1
  464. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts +0 -124
  465. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
  466. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts +0 -108
  467. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts.map +0 -1
  468. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts +0 -131
  469. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts.map +0 -1
  470. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts +0 -91
  471. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts.map +0 -1
  472. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts +0 -130
  473. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts.map +0 -1
  474. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts +0 -137
  475. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts.map +0 -1
  476. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts +0 -122
  477. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts.map +0 -1
  478. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts +0 -22
  479. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts.map +0 -1
  480. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts +0 -86
  481. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts.map +0 -1
  482. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts +0 -105
  483. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts.map +0 -1
  484. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts +0 -61
  485. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts.map +0 -1
  486. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
  487. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
  488. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts +0 -85
  489. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts.map +0 -1
  490. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts +0 -95
  491. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts.map +0 -1
  492. package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts +0 -9
  493. package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts.map +0 -1
  494. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts +0 -69
  495. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts.map +0 -1
  496. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts +0 -52
  497. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts.map +0 -1
  498. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts +0 -16
  499. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts.map +0 -1
  500. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts +0 -16
  501. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts.map +0 -1
  502. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
  503. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
  504. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts +0 -28
  505. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts.map +0 -1
  506. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts +0 -38
  507. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts.map +0 -1
  508. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -18
  509. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
  510. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts +0 -24
  511. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts.map +0 -1
  512. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts +0 -26
  513. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts.map +0 -1
  514. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts +0 -18
  515. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts.map +0 -1
  516. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts +0 -19
  517. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts.map +0 -1
  518. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts +0 -22
  519. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts.map +0 -1
  520. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts +0 -16
  521. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts.map +0 -1
  522. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts +0 -32
  523. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts.map +0 -1
  524. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts +0 -16
  525. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts.map +0 -1
  526. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts +0 -22
  527. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts.map +0 -1
  528. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts +0 -40
  529. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts.map +0 -1
  530. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts +0 -99
  531. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts.map +0 -1
  532. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts +0 -48
  533. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts.map +0 -1
  534. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts +0 -12
  535. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts.map +0 -1
  536. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts +0 -79
  537. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts.map +0 -1
  538. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts +0 -9
  539. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts.map +0 -1
  540. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts +0 -71
  541. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts.map +0 -1
  542. package/dist/types/core/solana/generated/single-chain/index.d.ts +0 -13
  543. package/dist/types/core/solana/generated/single-chain/index.d.ts.map +0 -1
  544. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts +0 -56
  545. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts.map +0 -1
  546. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts +0 -72
  547. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
  548. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts +0 -72
  549. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts.map +0 -1
  550. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts +0 -91
  551. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts.map +0 -1
  552. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts +0 -134
  553. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts.map +0 -1
  554. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts +0 -107
  555. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts.map +0 -1
  556. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts +0 -126
  557. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts.map +0 -1
  558. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts +0 -179
  559. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts.map +0 -1
  560. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts +0 -179
  561. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts.map +0 -1
  562. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts +0 -20
  563. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts.map +0 -1
  564. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts +0 -86
  565. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts.map +0 -1
  566. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts +0 -61
  567. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts.map +0 -1
  568. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
  569. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
  570. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts +0 -9
  571. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts.map +0 -1
  572. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts +0 -63
  573. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts.map +0 -1
  574. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts +0 -52
  575. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts.map +0 -1
  576. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts +0 -16
  577. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts.map +0 -1
  578. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts +0 -16
  579. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts.map +0 -1
  580. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
  581. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
  582. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts +0 -38
  583. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts.map +0 -1
  584. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts +0 -16
  585. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts.map +0 -1
  586. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -26
  587. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
  588. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts +0 -18
  589. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts.map +0 -1
  590. package/dist/types/core/solana/generated/single-chain/types/index.d.ts +0 -18
  591. package/dist/types/core/solana/generated/single-chain/types/index.d.ts.map +0 -1
  592. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts +0 -32
  593. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts.map +0 -1
  594. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts +0 -20
  595. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts.map +0 -1
  596. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts +0 -16
  597. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts.map +0 -1
  598. package/dist/types/core/solana/inspect.d.ts +0 -14
  599. package/dist/types/core/solana/inspect.d.ts.map +0 -1
  600. package/dist/types/core/solana/intent-helpers.d.ts +0 -120
  601. package/dist/types/core/solana/intent-helpers.d.ts.map +0 -1
  602. package/dist/types/core/solana/order-instructions.d.ts +0 -16
  603. package/dist/types/core/solana/order-instructions.d.ts.map +0 -1
  604. package/dist/types/core/solana/sdk.d.ts +0 -73
  605. package/dist/types/core/solana/sdk.d.ts.map +0 -1
  606. package/dist/types/core/solana/utils.d.ts +0 -7
  607. package/dist/types/core/solana/utils.d.ts.map +0 -1
  608. package/dist/types/core/solana/validator.d.ts +0 -11
  609. package/dist/types/core/solana/validator.d.ts.map +0 -1
  610. package/dist/types/core/sui/cancel.d.ts +0 -3
  611. package/dist/types/core/sui/cancel.d.ts.map +0 -1
  612. package/dist/types/core/sui/client.d.ts +0 -3
  613. package/dist/types/core/sui/client.d.ts.map +0 -1
  614. package/dist/types/core/sui/cross-chain-limit-order.d.ts +0 -14
  615. package/dist/types/core/sui/cross-chain-limit-order.d.ts.map +0 -1
  616. package/dist/types/core/sui/intent-helpers.d.ts +0 -89
  617. package/dist/types/core/sui/intent-helpers.d.ts.map +0 -1
  618. package/dist/types/core/sui/order-transaction.d.ts +0 -11
  619. package/dist/types/core/sui/order-transaction.d.ts.map +0 -1
  620. package/dist/types/core/sui/sdk.d.ts +0 -57
  621. package/dist/types/core/sui/sdk.d.ts.map +0 -1
  622. package/dist/types/core/sui/single-chain-dca-order.d.ts +0 -22
  623. package/dist/types/core/sui/single-chain-dca-order.d.ts.map +0 -1
  624. package/dist/types/core/sui/single-chain-limit-order.d.ts +0 -26
  625. package/dist/types/core/sui/single-chain-limit-order.d.ts.map +0 -1
  626. package/dist/types/core/sui/validator.d.ts +0 -11
  627. package/dist/types/core/sui/validator.d.ts.map +0 -1
  628. package/dist/types/errors/index.d.ts +0 -20
  629. package/dist/types/errors/index.d.ts.map +0 -1
  630. package/dist/types/index.d.ts +0 -42
  631. package/dist/types/index.d.ts.map +0 -1
  632. package/dist/types/types/api.d.ts +0 -65
  633. package/dist/types/types/api.d.ts.map +0 -1
  634. package/dist/types/types/intent.d.ts +0 -136
  635. package/dist/types/types/intent.d.ts.map +0 -1
  636. package/dist/types/utils/base-validator.d.ts +0 -46
  637. package/dist/types/utils/base-validator.d.ts.map +0 -1
  638. package/dist/types/utils/defillama.d.ts +0 -61
  639. package/dist/types/utils/defillama.d.ts.map +0 -1
  640. package/dist/types/utils/logger.d.ts +0 -35
  641. package/dist/types/utils/logger.d.ts.map +0 -1
  642. package/dist/types/utils/order-validator.d.ts +0 -64
  643. package/dist/types/utils/order-validator.d.ts.map +0 -1
  644. package/dist/types/utils/parsers.d.ts +0 -6
  645. package/dist/types/utils/parsers.d.ts.map +0 -1
  646. package/dist/types/utils/quote/aftermath.d.ts +0 -9
  647. package/dist/types/utils/quote/aftermath.d.ts.map +0 -1
  648. package/dist/types/utils/quote/aggregator.d.ts +0 -64
  649. package/dist/types/utils/quote/aggregator.d.ts.map +0 -1
  650. package/dist/types/utils/quote/jupiter.d.ts +0 -16
  651. package/dist/types/utils/quote/jupiter.d.ts.map +0 -1
  652. package/dist/types/utils/quote/liquidswap.d.ts +0 -16
  653. package/dist/types/utils/quote/liquidswap.d.ts.map +0 -1
  654. package/dist/types/utils/quote/paraswap.d.ts +0 -23
  655. package/dist/types/utils/quote/paraswap.d.ts.map +0 -1
  656. package/dist/types/utils/quote/stablecoins-tokens.d.ts +0 -11
  657. package/dist/types/utils/quote/stablecoins-tokens.d.ts.map +0 -1
  658. package/dist/types/utils/type-utils.d.ts +0 -2
  659. package/dist/types/utils/type-utils.d.ts.map +0 -1
  660. package/src/core/solana/cross-chain-limit-order.ts +0 -24
@@ -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
+ }