@shogun-sdk/intents-sdk 1.0.2 → 1.1.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 (619) hide show
  1. package/README.md +0 -1
  2. package/dist/esm/auth/siwe.js +26 -0
  3. package/dist/esm/auth/siwe.js.map +1 -0
  4. package/dist/esm/chains.js +21 -8
  5. package/dist/esm/chains.js.map +1 -1
  6. package/dist/esm/constants.js +73 -35
  7. package/dist/esm/constants.js.map +1 -1
  8. package/dist/esm/core/evm/abi/single-chain-guard-limit.js +768 -0
  9. package/dist/esm/core/evm/abi/single-chain-guard-limit.js.map +1 -0
  10. package/dist/esm/core/evm/cancel-order.js +130 -0
  11. package/dist/esm/core/evm/cancel-order.js.map +1 -0
  12. package/dist/esm/core/evm/{viem-provider.js → chain-provider.js} +18 -3
  13. package/dist/esm/core/evm/chain-provider.js.map +1 -0
  14. package/dist/esm/core/evm/connectors/hyperevm.js +23 -0
  15. package/dist/esm/core/evm/connectors/hyperevm.js.map +1 -0
  16. package/dist/esm/core/evm/intent-provider.js +58 -8
  17. package/dist/esm/core/evm/intent-provider.js.map +1 -1
  18. package/dist/esm/core/evm/order-signature.js +15 -15
  19. package/dist/esm/core/evm/order-signature.js.map +1 -1
  20. package/dist/esm/core/evm/permit2.js +31 -3
  21. package/dist/esm/core/evm/permit2.js.map +1 -1
  22. package/dist/esm/core/evm/sdk.js +94 -78
  23. package/dist/esm/core/evm/sdk.js.map +1 -1
  24. package/dist/esm/core/evm/validator.js +52 -8
  25. package/dist/esm/core/evm/validator.js.map +1 -1
  26. package/dist/esm/core/orders/api/fetch.js +17 -0
  27. package/dist/esm/core/orders/api/fetch.js.map +1 -0
  28. package/dist/esm/core/orders/api/index.js +31 -0
  29. package/dist/esm/core/orders/api/index.js.map +1 -0
  30. package/dist/esm/core/orders/common.js +8 -0
  31. package/dist/esm/core/orders/common.js.map +1 -0
  32. package/dist/esm/core/orders/cross-chain.js +316 -0
  33. package/dist/esm/core/orders/cross-chain.js.map +1 -0
  34. package/dist/esm/core/orders/single-chain.js +185 -0
  35. package/dist/esm/core/orders/single-chain.js.map +1 -0
  36. package/dist/esm/core/sdk.js +77 -109
  37. package/dist/esm/core/sdk.js.map +1 -1
  38. package/dist/esm/core/solana/cancel-order.js +176 -0
  39. package/dist/esm/core/solana/cancel-order.js.map +1 -0
  40. package/dist/esm/core/solana/generated/{accounts → cross-chain/accounts}/adminSingleton.js +3 -1
  41. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js.map +1 -0
  42. package/dist/esm/core/solana/generated/{accounts → cross-chain/accounts}/guard.js +1 -1
  43. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js.map +1 -0
  44. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js.map +1 -0
  45. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js.map +1 -0
  46. package/dist/esm/core/solana/generated/cross-chain/errors/index.js.map +1 -0
  47. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js.map +1 -0
  48. package/dist/esm/core/solana/generated/cross-chain/index.js.map +1 -0
  49. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js +91 -0
  50. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js.map +1 -0
  51. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js.map +1 -0
  52. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js.map +1 -0
  53. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js.map +1 -0
  54. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js.map +1 -0
  55. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js.map +1 -0
  56. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/index.js +1 -0
  57. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js.map +1 -0
  58. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/initialize.js +19 -1
  59. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js.map +1 -0
  60. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js.map +1 -0
  61. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js.map +1 -0
  62. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js.map +1 -0
  63. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js.map +1 -0
  64. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js.map +1 -0
  65. package/dist/esm/core/solana/generated/cross-chain/programs/index.js.map +1 -0
  66. package/dist/esm/core/solana/generated/{programs → cross-chain/programs}/sourceChainGuard.js +16 -12
  67. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js.map +1 -0
  68. package/dist/esm/core/solana/generated/cross-chain/shared/index.js.map +1 -0
  69. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js +18 -0
  70. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js.map +1 -0
  71. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js.map +1 -0
  72. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js.map +1 -0
  73. package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js.map +1 -0
  74. package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js.map +1 -0
  75. package/dist/esm/core/solana/generated/{types → cross-chain/types}/index.js +1 -0
  76. package/dist/esm/core/solana/generated/cross-chain/types/index.js.map +1 -0
  77. package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js.map +1 -0
  78. package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js.map +1 -0
  79. package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js.map +1 -0
  80. package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js.map +1 -0
  81. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js +58 -0
  82. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js.map +1 -0
  83. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js +75 -0
  84. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js.map +1 -0
  85. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js +62 -0
  86. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js.map +1 -0
  87. package/dist/esm/core/solana/generated/single-chain/accounts/index.js +12 -0
  88. package/dist/esm/core/solana/generated/single-chain/accounts/index.js.map +1 -0
  89. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js +65 -0
  90. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js.map +1 -0
  91. package/dist/esm/core/solana/generated/single-chain/errors/index.js +9 -0
  92. package/dist/esm/core/solana/generated/single-chain/errors/index.js.map +1 -0
  93. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js +101 -0
  94. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js.map +1 -0
  95. package/dist/esm/core/solana/generated/single-chain/index.js +13 -0
  96. package/dist/esm/core/solana/generated/single-chain/index.js.map +1 -0
  97. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js +91 -0
  98. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js.map +1 -0
  99. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js +91 -0
  100. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js.map +1 -0
  101. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js +91 -0
  102. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js.map +1 -0
  103. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js +140 -0
  104. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js.map +1 -0
  105. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js +188 -0
  106. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js.map +1 -0
  107. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js +173 -0
  108. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js.map +1 -0
  109. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js +184 -0
  110. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js.map +1 -0
  111. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js +170 -0
  112. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js.map +1 -0
  113. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js +167 -0
  114. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js.map +1 -0
  115. package/dist/esm/core/solana/generated/single-chain/instructions/index.js +20 -0
  116. package/dist/esm/core/solana/generated/single-chain/instructions/index.js.map +1 -0
  117. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js +127 -0
  118. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js.map +1 -0
  119. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js +98 -0
  120. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js.map +1 -0
  121. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js +104 -0
  122. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js.map +1 -0
  123. package/dist/esm/core/solana/generated/single-chain/programs/index.js +9 -0
  124. package/dist/esm/core/solana/generated/single-chain/programs/index.js.map +1 -0
  125. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js +90 -0
  126. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js.map +1 -0
  127. package/dist/esm/core/solana/generated/single-chain/shared/index.js +82 -0
  128. package/dist/esm/core/solana/generated/single-chain/shared/index.js.map +1 -0
  129. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js +18 -0
  130. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js.map +1 -0
  131. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js +18 -0
  132. package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js.map +1 -0
  133. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js +24 -0
  134. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js.map +1 -0
  135. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js +42 -0
  136. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js.map +1 -0
  137. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js +18 -0
  138. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js.map +1 -0
  139. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js +30 -0
  140. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js.map +1 -0
  141. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js +26 -0
  142. package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js.map +1 -0
  143. package/dist/esm/core/solana/generated/single-chain/types/index.js +18 -0
  144. package/dist/esm/core/solana/generated/single-chain/types/index.js.map +1 -0
  145. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js +36 -0
  146. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js.map +1 -0
  147. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js +24 -0
  148. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js.map +1 -0
  149. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js +18 -0
  150. package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js.map +1 -0
  151. package/dist/esm/core/solana/order-instructions.js +89 -28
  152. package/dist/esm/core/solana/order-instructions.js.map +1 -1
  153. package/dist/esm/core/solana/sdk.js +86 -26
  154. package/dist/esm/core/solana/sdk.js.map +1 -1
  155. package/dist/esm/core/solana/utils.js +19 -0
  156. package/dist/esm/core/solana/utils.js.map +1 -0
  157. package/dist/esm/core/solana/validator.js +4 -1
  158. package/dist/esm/core/solana/validator.js.map +1 -1
  159. package/dist/esm/core/sui/cancel.js +36 -0
  160. package/dist/esm/core/sui/cancel.js.map +1 -0
  161. package/dist/esm/core/sui/order-transaction.js +10 -19
  162. package/dist/esm/core/sui/order-transaction.js.map +1 -1
  163. package/dist/esm/core/sui/sdk.js +49 -24
  164. package/dist/esm/core/sui/sdk.js.map +1 -1
  165. package/dist/esm/core/sui/validator.js +4 -1
  166. package/dist/esm/core/sui/validator.js.map +1 -1
  167. package/dist/esm/errors/index.js +0 -32
  168. package/dist/esm/errors/index.js.map +1 -1
  169. package/dist/esm/index.js +16 -6
  170. package/dist/esm/index.js.map +1 -1
  171. package/dist/esm/types/api.js +6 -1
  172. package/dist/esm/types/api.js.map +1 -1
  173. package/dist/esm/utils/base-validator.js +16 -4
  174. package/dist/esm/utils/base-validator.js.map +1 -1
  175. package/dist/esm/utils/defillama.js +12 -23
  176. package/dist/esm/utils/defillama.js.map +1 -1
  177. package/dist/esm/utils/order-validator.js +17 -11
  178. package/dist/esm/utils/order-validator.js.map +1 -1
  179. package/dist/esm/utils/parsers.js +8 -31
  180. package/dist/esm/utils/parsers.js.map +1 -1
  181. package/dist/esm/utils/quote/aftermath.js +15 -0
  182. package/dist/esm/utils/quote/aftermath.js.map +1 -0
  183. package/dist/esm/utils/quote/aggregator.js +254 -0
  184. package/dist/esm/utils/quote/aggregator.js.map +1 -0
  185. package/dist/esm/utils/quote/jupiter.js +31 -0
  186. package/dist/esm/utils/quote/jupiter.js.map +1 -0
  187. package/dist/esm/utils/quote/liquidswap.js +22 -0
  188. package/dist/esm/utils/quote/liquidswap.js.map +1 -0
  189. package/dist/esm/utils/quote/paraswap.js +67 -0
  190. package/dist/esm/utils/quote/paraswap.js.map +1 -0
  191. package/dist/esm/utils/quote/stablecoins-tokens.js +13 -0
  192. package/dist/esm/utils/quote/stablecoins-tokens.js.map +1 -0
  193. package/dist/types/auth/siwe.d.ts +13 -0
  194. package/dist/types/auth/siwe.d.ts.map +1 -0
  195. package/dist/types/chains.d.ts +11 -9
  196. package/dist/types/chains.d.ts.map +1 -1
  197. package/dist/types/constants.d.ts +29 -11
  198. package/dist/types/constants.d.ts.map +1 -1
  199. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts +596 -0
  200. package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts.map +1 -0
  201. package/dist/types/core/evm/cancel-order.d.ts +28 -0
  202. package/dist/types/core/evm/cancel-order.d.ts.map +1 -0
  203. package/dist/types/core/evm/chain-provider.d.ts +62338 -0
  204. package/dist/types/core/evm/chain-provider.d.ts.map +1 -0
  205. package/dist/types/core/evm/connectors/hyperevm.d.ts +38 -0
  206. package/dist/types/core/evm/connectors/hyperevm.d.ts.map +1 -0
  207. package/dist/types/core/evm/intent-provider.d.ts +9 -6
  208. package/dist/types/core/evm/intent-provider.d.ts.map +1 -1
  209. package/dist/types/core/evm/order-signature.d.ts +9 -17
  210. package/dist/types/core/evm/order-signature.d.ts.map +1 -1
  211. package/dist/types/core/evm/permit2.d.ts +100 -4
  212. package/dist/types/core/evm/permit2.d.ts.map +1 -1
  213. package/dist/types/core/evm/sdk.d.ts +34 -27
  214. package/dist/types/core/evm/sdk.d.ts.map +1 -1
  215. package/dist/types/core/evm/validator.d.ts +8 -2
  216. package/dist/types/core/evm/validator.d.ts.map +1 -1
  217. package/dist/types/core/orders/api/fetch.d.ts +3 -0
  218. package/dist/types/core/orders/api/fetch.d.ts.map +1 -0
  219. package/dist/types/core/orders/api/index.d.ts +8 -0
  220. package/dist/types/core/orders/api/index.d.ts.map +1 -0
  221. package/dist/types/core/orders/common.d.ts +12 -0
  222. package/dist/types/core/orders/common.d.ts.map +1 -0
  223. package/dist/types/core/{order.d.ts → orders/cross-chain.d.ts} +36 -33
  224. package/dist/types/core/orders/cross-chain.d.ts.map +1 -0
  225. package/dist/types/core/orders/single-chain.d.ts +46 -0
  226. package/dist/types/core/orders/single-chain.d.ts.map +1 -0
  227. package/dist/types/core/sdk.d.ts +13 -77
  228. package/dist/types/core/sdk.d.ts.map +1 -1
  229. package/dist/types/core/solana/cancel-order.d.ts +18 -0
  230. package/dist/types/core/solana/cancel-order.d.ts.map +1 -0
  231. package/dist/types/core/solana/generated/{accounts → cross-chain/accounts}/adminSingleton.d.ts +5 -1
  232. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts.map +1 -0
  233. package/dist/types/core/solana/generated/{accounts → cross-chain/accounts}/guard.d.ts +1 -1
  234. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts.map +1 -0
  235. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts.map +1 -0
  236. package/dist/types/core/solana/generated/{accounts → cross-chain/accounts}/order.d.ts +1 -1
  237. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts.map +1 -0
  238. package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts.map +1 -0
  239. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts.map +1 -0
  240. package/dist/types/core/solana/generated/cross-chain/index.d.ts.map +1 -0
  241. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts +56 -0
  242. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts.map +1 -0
  243. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts.map +1 -0
  244. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/claimTokens.d.ts +6 -6
  245. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts.map +1 -0
  246. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/collectProtocolFees.d.ts +3 -3
  247. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts.map +1 -0
  248. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts.map +1 -0
  249. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts.map +1 -0
  250. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/index.d.ts +1 -0
  251. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts.map +1 -0
  252. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/initialize.d.ts +30 -7
  253. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts.map +1 -0
  254. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts.map +1 -0
  255. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/setAdmin.d.ts +3 -3
  256. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts.map +1 -0
  257. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/setAuctioneerPubKey.d.ts +3 -3
  258. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts.map +1 -0
  259. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts.map +1 -0
  260. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts.map +1 -0
  261. package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts.map +1 -0
  262. package/dist/types/core/solana/generated/{programs → cross-chain/programs}/sourceChainGuard.d.ts +17 -14
  263. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts.map +1 -0
  264. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts.map +1 -0
  265. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts +16 -0
  266. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts.map +1 -0
  267. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts.map +1 -0
  268. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts.map +1 -0
  269. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts.map +1 -0
  270. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts.map +1 -0
  271. package/dist/types/core/solana/generated/{types → cross-chain/types}/index.d.ts +1 -0
  272. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts.map +1 -0
  273. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts.map +1 -0
  274. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts.map +1 -0
  275. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts.map +1 -0
  276. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts.map +1 -0
  277. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts +40 -0
  278. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts.map +1 -0
  279. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts +99 -0
  280. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts.map +1 -0
  281. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts +48 -0
  282. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts.map +1 -0
  283. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts +12 -0
  284. package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts.map +1 -0
  285. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts +79 -0
  286. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts.map +1 -0
  287. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts +9 -0
  288. package/dist/types/core/solana/generated/single-chain/errors/index.d.ts.map +1 -0
  289. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts +71 -0
  290. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts.map +1 -0
  291. package/dist/types/core/solana/generated/single-chain/index.d.ts +13 -0
  292. package/dist/types/core/solana/generated/single-chain/index.d.ts.map +1 -0
  293. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts +56 -0
  294. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts.map +1 -0
  295. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts +72 -0
  296. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts.map +1 -0
  297. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts +72 -0
  298. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts.map +1 -0
  299. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts +91 -0
  300. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts.map +1 -0
  301. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts +134 -0
  302. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts.map +1 -0
  303. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts +107 -0
  304. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts.map +1 -0
  305. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts +126 -0
  306. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts.map +1 -0
  307. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts +179 -0
  308. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts.map +1 -0
  309. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts +179 -0
  310. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts.map +1 -0
  311. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts +20 -0
  312. package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts.map +1 -0
  313. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts +86 -0
  314. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts.map +1 -0
  315. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts +61 -0
  316. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts.map +1 -0
  317. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts +68 -0
  318. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts.map +1 -0
  319. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts +9 -0
  320. package/dist/types/core/solana/generated/single-chain/programs/index.d.ts.map +1 -0
  321. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts +63 -0
  322. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts.map +1 -0
  323. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts +52 -0
  324. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts.map +1 -0
  325. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts +16 -0
  326. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts.map +1 -0
  327. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts +16 -0
  328. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts.map +1 -0
  329. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts +17 -0
  330. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts.map +1 -0
  331. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts +38 -0
  332. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts.map +1 -0
  333. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts +16 -0
  334. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts.map +1 -0
  335. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts +26 -0
  336. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts.map +1 -0
  337. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts +18 -0
  338. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts.map +1 -0
  339. package/dist/types/core/solana/generated/single-chain/types/index.d.ts +18 -0
  340. package/dist/types/core/solana/generated/single-chain/types/index.d.ts.map +1 -0
  341. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts +32 -0
  342. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts.map +1 -0
  343. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts +20 -0
  344. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts.map +1 -0
  345. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts +16 -0
  346. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts.map +1 -0
  347. package/dist/types/core/solana/order-instructions.d.ts +14 -15
  348. package/dist/types/core/solana/order-instructions.d.ts.map +1 -1
  349. package/dist/types/core/solana/sdk.d.ts +8 -4
  350. package/dist/types/core/solana/sdk.d.ts.map +1 -1
  351. package/dist/types/core/solana/utils.d.ts +6 -0
  352. package/dist/types/core/solana/utils.d.ts.map +1 -0
  353. package/dist/types/core/solana/validator.d.ts +2 -1
  354. package/dist/types/core/solana/validator.d.ts.map +1 -1
  355. package/dist/types/core/sui/cancel.d.ts +3 -0
  356. package/dist/types/core/sui/cancel.d.ts.map +1 -0
  357. package/dist/types/core/sui/order-transaction.d.ts +2 -7
  358. package/dist/types/core/sui/order-transaction.d.ts.map +1 -1
  359. package/dist/types/core/sui/sdk.d.ts +6 -4
  360. package/dist/types/core/sui/sdk.d.ts.map +1 -1
  361. package/dist/types/core/sui/validator.d.ts +2 -1
  362. package/dist/types/core/sui/validator.d.ts.map +1 -1
  363. package/dist/types/errors/index.d.ts +0 -15
  364. package/dist/types/errors/index.d.ts.map +1 -1
  365. package/dist/types/index.d.ts +20 -8
  366. package/dist/types/index.d.ts.map +1 -1
  367. package/dist/types/types/api.d.ts +59 -2
  368. package/dist/types/types/api.d.ts.map +1 -1
  369. package/dist/types/types/intent.d.ts +33 -57
  370. package/dist/types/types/intent.d.ts.map +1 -1
  371. package/dist/types/utils/base-validator.d.ts +15 -4
  372. package/dist/types/utils/base-validator.d.ts.map +1 -1
  373. package/dist/types/utils/defillama.d.ts +1 -1
  374. package/dist/types/utils/defillama.d.ts.map +1 -1
  375. package/dist/types/utils/order-validator.d.ts +20 -11
  376. package/dist/types/utils/order-validator.d.ts.map +1 -1
  377. package/dist/types/utils/parsers.d.ts +0 -13
  378. package/dist/types/utils/parsers.d.ts.map +1 -1
  379. package/dist/types/utils/quote/aftermath.d.ts +9 -0
  380. package/dist/types/utils/quote/aftermath.d.ts.map +1 -0
  381. package/dist/types/utils/quote/aggregator.d.ts +64 -0
  382. package/dist/types/utils/quote/aggregator.d.ts.map +1 -0
  383. package/dist/types/utils/quote/jupiter.d.ts +16 -0
  384. package/dist/types/utils/quote/jupiter.d.ts.map +1 -0
  385. package/dist/types/utils/quote/liquidswap.d.ts +16 -0
  386. package/dist/types/utils/quote/liquidswap.d.ts.map +1 -0
  387. package/dist/types/utils/quote/paraswap.d.ts +23 -0
  388. package/dist/types/utils/quote/paraswap.d.ts.map +1 -0
  389. package/dist/types/utils/quote/stablecoins-tokens.d.ts +11 -0
  390. package/dist/types/utils/quote/stablecoins-tokens.d.ts.map +1 -0
  391. package/package.json +14 -2
  392. package/src/auth/siwe.ts +41 -0
  393. package/src/chains.ts +21 -10
  394. package/src/constants.ts +86 -38
  395. package/src/core/evm/abi/single-chain-guard-limit.ts +767 -0
  396. package/src/core/evm/cancel-order.ts +163 -0
  397. package/src/core/evm/{viem-provider.ts → chain-provider.ts} +18 -2
  398. package/src/core/evm/connectors/hyperevm.ts +23 -0
  399. package/src/core/evm/intent-provider.ts +71 -12
  400. package/src/core/evm/order-signature.ts +25 -38
  401. package/src/core/evm/permit2.ts +82 -12
  402. package/src/core/evm/sdk.ts +147 -89
  403. package/src/core/evm/validator.ts +73 -11
  404. package/src/core/orders/api/fetch.ts +22 -0
  405. package/src/core/orders/api/index.ts +33 -0
  406. package/src/core/orders/common.ts +19 -0
  407. package/src/core/orders/cross-chain.ts +323 -0
  408. package/src/core/orders/single-chain.ts +174 -0
  409. package/src/core/sdk.ts +102 -136
  410. package/src/core/solana/cancel-order.ts +264 -0
  411. package/src/core/solana/generated/{accounts → cross-chain/accounts}/adminSingleton.ts +15 -9
  412. package/src/core/solana/generated/{accounts → cross-chain/accounts}/guard.ts +10 -10
  413. package/src/core/solana/generated/{accounts → cross-chain/accounts}/order.ts +8 -8
  414. package/src/core/solana/generated/cross-chain/instructions/acceptAdmin.ts +200 -0
  415. package/src/core/solana/generated/{instructions → cross-chain/instructions}/claimTokens.ts +10 -10
  416. package/src/core/solana/generated/{instructions → cross-chain/instructions}/collectProtocolFees.ts +8 -8
  417. package/src/core/solana/generated/{instructions → cross-chain/instructions}/createGuard.ts +5 -5
  418. package/src/core/solana/generated/{instructions → cross-chain/instructions}/createOrder.ts +5 -5
  419. package/src/core/solana/generated/{instructions → cross-chain/instructions}/index.ts +1 -0
  420. package/src/core/solana/generated/{instructions → cross-chain/instructions}/initialize.ts +104 -12
  421. package/src/core/solana/generated/{instructions → cross-chain/instructions}/setAdmin.ts +8 -8
  422. package/src/core/solana/generated/{instructions → cross-chain/instructions}/setAuctioneerPubKey.ts +8 -8
  423. package/src/core/solana/generated/{programs → cross-chain/programs}/sourceChainGuard.ts +16 -2
  424. package/src/core/solana/generated/{shared → cross-chain/shared}/index.ts +2 -2
  425. package/src/core/solana/generated/cross-chain/types/adminUpdateStarted.ts +35 -0
  426. package/src/core/solana/generated/{types → cross-chain/types}/index.ts +1 -0
  427. package/src/core/solana/generated/single-chain/accounts/adminSingleton.ts +142 -0
  428. package/src/core/solana/generated/single-chain/accounts/dcaOrder.ts +222 -0
  429. package/src/core/solana/generated/single-chain/accounts/guard.ts +156 -0
  430. package/src/core/solana/generated/single-chain/accounts/index.ts +12 -0
  431. package/src/core/solana/generated/single-chain/accounts/limitOrder.ts +192 -0
  432. package/src/core/solana/generated/single-chain/errors/index.ts +9 -0
  433. package/src/core/solana/generated/single-chain/errors/singleChainGuard.ts +140 -0
  434. package/src/core/solana/generated/single-chain/index.ts +13 -0
  435. package/src/core/solana/generated/single-chain/instructions/acceptAdmin.ts +200 -0
  436. package/src/core/solana/generated/single-chain/instructions/cancelDcaOrder.ts +251 -0
  437. package/src/core/solana/generated/single-chain/instructions/cancelLimitOrder.ts +254 -0
  438. package/src/core/solana/generated/single-chain/instructions/collectProtocolFees.ts +373 -0
  439. package/src/core/solana/generated/single-chain/instructions/createDcaOrder.ts +500 -0
  440. package/src/core/solana/generated/single-chain/instructions/createGuard.ts +437 -0
  441. package/src/core/solana/generated/single-chain/instructions/createLimitOrder.ts +491 -0
  442. package/src/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.ts +538 -0
  443. package/src/core/solana/generated/single-chain/instructions/fulfillLimitOrder.ts +532 -0
  444. package/src/core/solana/generated/single-chain/instructions/index.ts +20 -0
  445. package/src/core/solana/generated/single-chain/instructions/initialize.ts +323 -0
  446. package/src/core/solana/generated/single-chain/instructions/setAdmin.ts +211 -0
  447. package/src/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.ts +241 -0
  448. package/src/core/solana/generated/single-chain/programs/index.ts +9 -0
  449. package/src/core/solana/generated/single-chain/programs/singleChainGuard.ts +247 -0
  450. package/src/core/solana/generated/single-chain/shared/index.ts +124 -0
  451. package/src/core/solana/generated/single-chain/types/adminUpdateStarted.ts +35 -0
  452. package/src/core/solana/generated/single-chain/types/adminUpdated.ts +35 -0
  453. package/src/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.ts +44 -0
  454. package/src/core/solana/generated/single-chain/types/dcaOrderCreated.ts +89 -0
  455. package/src/core/solana/generated/single-chain/types/dcaOrderFulfilled.ts +35 -0
  456. package/src/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.ts +63 -0
  457. package/src/core/solana/generated/single-chain/types/guardCreated.ts +47 -0
  458. package/src/core/solana/generated/single-chain/types/index.ts +18 -0
  459. package/src/core/solana/generated/single-chain/types/limitOrderCreated.ts +77 -0
  460. package/src/core/solana/generated/single-chain/types/limitOrderFulfilled.ts +46 -0
  461. package/src/core/solana/generated/single-chain/types/orderCancelled.ts +35 -0
  462. package/src/core/solana/order-instructions.ts +166 -52
  463. package/src/core/solana/sdk.ts +134 -31
  464. package/src/core/solana/utils.ts +31 -0
  465. package/src/core/solana/validator.ts +5 -1
  466. package/src/core/sui/cancel.ts +44 -0
  467. package/src/core/sui/order-transaction.ts +14 -31
  468. package/src/core/sui/sdk.ts +75 -30
  469. package/src/core/sui/validator.ts +5 -1
  470. package/src/errors/index.ts +1 -37
  471. package/src/index.ts +36 -14
  472. package/src/types/api.ts +73 -4
  473. package/src/types/intent.ts +42 -63
  474. package/src/utils/base-validator.ts +26 -8
  475. package/src/utils/defillama.ts +15 -30
  476. package/src/utils/order-validator.ts +21 -23
  477. package/src/utils/parsers.ts +10 -35
  478. package/src/utils/quote/aftermath.ts +24 -0
  479. package/src/utils/quote/aggregator.ts +331 -0
  480. package/src/utils/quote/jupiter.ts +39 -0
  481. package/src/utils/quote/liquidswap.ts +42 -0
  482. package/src/utils/quote/paraswap.ts +87 -0
  483. package/src/utils/quote/stablecoins-tokens.ts +22 -0
  484. package/dist/esm/core/evm/viem-provider.js.map +0 -1
  485. package/dist/esm/core/order.js +0 -190
  486. package/dist/esm/core/order.js.map +0 -1
  487. package/dist/esm/core/solana/generated/accounts/adminSingleton.js.map +0 -1
  488. package/dist/esm/core/solana/generated/accounts/guard.js.map +0 -1
  489. package/dist/esm/core/solana/generated/accounts/index.js.map +0 -1
  490. package/dist/esm/core/solana/generated/accounts/order.js.map +0 -1
  491. package/dist/esm/core/solana/generated/errors/index.js.map +0 -1
  492. package/dist/esm/core/solana/generated/errors/sourceChainGuard.js.map +0 -1
  493. package/dist/esm/core/solana/generated/index.js.map +0 -1
  494. package/dist/esm/core/solana/generated/instructions/cancelOrder.js.map +0 -1
  495. package/dist/esm/core/solana/generated/instructions/claimTokens.js.map +0 -1
  496. package/dist/esm/core/solana/generated/instructions/collectProtocolFees.js.map +0 -1
  497. package/dist/esm/core/solana/generated/instructions/createGuard.js.map +0 -1
  498. package/dist/esm/core/solana/generated/instructions/createOrder.js.map +0 -1
  499. package/dist/esm/core/solana/generated/instructions/index.js.map +0 -1
  500. package/dist/esm/core/solana/generated/instructions/initialize.js.map +0 -1
  501. package/dist/esm/core/solana/generated/instructions/preStartOrderExecution.js.map +0 -1
  502. package/dist/esm/core/solana/generated/instructions/setAdmin.js.map +0 -1
  503. package/dist/esm/core/solana/generated/instructions/setAuctioneerPubKey.js.map +0 -1
  504. package/dist/esm/core/solana/generated/instructions/startOrderExecution.js.map +0 -1
  505. package/dist/esm/core/solana/generated/instructions/startOrderExecutionAfterSwap.js.map +0 -1
  506. package/dist/esm/core/solana/generated/programs/index.js.map +0 -1
  507. package/dist/esm/core/solana/generated/programs/sourceChainGuard.js.map +0 -1
  508. package/dist/esm/core/solana/generated/shared/index.js.map +0 -1
  509. package/dist/esm/core/solana/generated/types/adminUpdated.js.map +0 -1
  510. package/dist/esm/core/solana/generated/types/auctioneerPubkeyUpdated.js.map +0 -1
  511. package/dist/esm/core/solana/generated/types/executionStarted.js.map +0 -1
  512. package/dist/esm/core/solana/generated/types/guardCreated.js.map +0 -1
  513. package/dist/esm/core/solana/generated/types/index.js.map +0 -1
  514. package/dist/esm/core/solana/generated/types/orderCancelled.js.map +0 -1
  515. package/dist/esm/core/solana/generated/types/orderCreated.js.map +0 -1
  516. package/dist/esm/core/solana/generated/types/orderFulfilled.js.map +0 -1
  517. package/dist/esm/core/solana/generated/types/tokenInSwapped.js.map +0 -1
  518. package/dist/esm/types/user-order.js +0 -16
  519. package/dist/esm/types/user-order.js.map +0 -1
  520. package/dist/types/core/evm/viem-provider.d.ts +0 -19304
  521. package/dist/types/core/evm/viem-provider.d.ts.map +0 -1
  522. package/dist/types/core/order.d.ts.map +0 -1
  523. package/dist/types/core/solana/generated/accounts/adminSingleton.d.ts.map +0 -1
  524. package/dist/types/core/solana/generated/accounts/guard.d.ts.map +0 -1
  525. package/dist/types/core/solana/generated/accounts/index.d.ts.map +0 -1
  526. package/dist/types/core/solana/generated/accounts/order.d.ts.map +0 -1
  527. package/dist/types/core/solana/generated/errors/index.d.ts.map +0 -1
  528. package/dist/types/core/solana/generated/errors/sourceChainGuard.d.ts.map +0 -1
  529. package/dist/types/core/solana/generated/index.d.ts.map +0 -1
  530. package/dist/types/core/solana/generated/instructions/cancelOrder.d.ts.map +0 -1
  531. package/dist/types/core/solana/generated/instructions/claimTokens.d.ts.map +0 -1
  532. package/dist/types/core/solana/generated/instructions/collectProtocolFees.d.ts.map +0 -1
  533. package/dist/types/core/solana/generated/instructions/createGuard.d.ts.map +0 -1
  534. package/dist/types/core/solana/generated/instructions/createOrder.d.ts.map +0 -1
  535. package/dist/types/core/solana/generated/instructions/index.d.ts.map +0 -1
  536. package/dist/types/core/solana/generated/instructions/initialize.d.ts.map +0 -1
  537. package/dist/types/core/solana/generated/instructions/preStartOrderExecution.d.ts.map +0 -1
  538. package/dist/types/core/solana/generated/instructions/setAdmin.d.ts.map +0 -1
  539. package/dist/types/core/solana/generated/instructions/setAuctioneerPubKey.d.ts.map +0 -1
  540. package/dist/types/core/solana/generated/instructions/startOrderExecution.d.ts.map +0 -1
  541. package/dist/types/core/solana/generated/instructions/startOrderExecutionAfterSwap.d.ts.map +0 -1
  542. package/dist/types/core/solana/generated/programs/index.d.ts.map +0 -1
  543. package/dist/types/core/solana/generated/programs/sourceChainGuard.d.ts.map +0 -1
  544. package/dist/types/core/solana/generated/shared/index.d.ts.map +0 -1
  545. package/dist/types/core/solana/generated/types/adminUpdated.d.ts.map +0 -1
  546. package/dist/types/core/solana/generated/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
  547. package/dist/types/core/solana/generated/types/executionStarted.d.ts.map +0 -1
  548. package/dist/types/core/solana/generated/types/guardCreated.d.ts.map +0 -1
  549. package/dist/types/core/solana/generated/types/index.d.ts.map +0 -1
  550. package/dist/types/core/solana/generated/types/orderCancelled.d.ts.map +0 -1
  551. package/dist/types/core/solana/generated/types/orderCreated.d.ts.map +0 -1
  552. package/dist/types/core/solana/generated/types/orderFulfilled.d.ts.map +0 -1
  553. package/dist/types/core/solana/generated/types/tokenInSwapped.d.ts.map +0 -1
  554. package/dist/types/types/user-order.d.ts +0 -37
  555. package/dist/types/types/user-order.d.ts.map +0 -1
  556. package/src/core/order.ts +0 -186
  557. package/src/types/user-order.ts +0 -74
  558. package/dist/esm/core/solana/generated/{accounts → cross-chain/accounts}/index.js +0 -0
  559. package/dist/esm/core/solana/generated/{accounts → cross-chain/accounts}/order.js +0 -0
  560. package/dist/esm/core/solana/generated/{errors → cross-chain/errors}/index.js +0 -0
  561. package/dist/esm/core/solana/generated/{errors → cross-chain/errors}/sourceChainGuard.js +0 -0
  562. package/dist/esm/core/solana/generated/{index.js → cross-chain/index.js} +0 -0
  563. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/cancelOrder.js +0 -0
  564. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/claimTokens.js +0 -0
  565. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/collectProtocolFees.js +0 -0
  566. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/createGuard.js +0 -0
  567. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/createOrder.js +0 -0
  568. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/preStartOrderExecution.js +0 -0
  569. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/setAdmin.js +0 -0
  570. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/setAuctioneerPubKey.js +0 -0
  571. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/startOrderExecution.js +0 -0
  572. package/dist/esm/core/solana/generated/{instructions → cross-chain/instructions}/startOrderExecutionAfterSwap.js +0 -0
  573. package/dist/esm/core/solana/generated/{programs → cross-chain/programs}/index.js +0 -0
  574. package/dist/esm/core/solana/generated/{shared → cross-chain/shared}/index.js +0 -0
  575. package/dist/esm/core/solana/generated/{types → cross-chain/types}/adminUpdated.js +0 -0
  576. package/dist/esm/core/solana/generated/{types → cross-chain/types}/auctioneerPubkeyUpdated.js +0 -0
  577. package/dist/esm/core/solana/generated/{types → cross-chain/types}/executionStarted.js +0 -0
  578. package/dist/esm/core/solana/generated/{types → cross-chain/types}/guardCreated.js +0 -0
  579. package/dist/esm/core/solana/generated/{types → cross-chain/types}/orderCancelled.js +0 -0
  580. package/dist/esm/core/solana/generated/{types → cross-chain/types}/orderCreated.js +0 -0
  581. package/dist/esm/core/solana/generated/{types → cross-chain/types}/orderFulfilled.js +0 -0
  582. package/dist/esm/core/solana/generated/{types → cross-chain/types}/tokenInSwapped.js +0 -0
  583. package/dist/types/core/solana/generated/{accounts → cross-chain/accounts}/index.d.ts +0 -0
  584. package/dist/types/core/solana/generated/{errors → cross-chain/errors}/index.d.ts +0 -0
  585. package/dist/types/core/solana/generated/{errors → cross-chain/errors}/sourceChainGuard.d.ts +0 -0
  586. package/dist/types/core/solana/generated/{index.d.ts → cross-chain/index.d.ts} +0 -0
  587. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/cancelOrder.d.ts +0 -0
  588. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/createGuard.d.ts +0 -0
  589. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/createOrder.d.ts +0 -0
  590. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/preStartOrderExecution.d.ts +0 -0
  591. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/startOrderExecution.d.ts +0 -0
  592. package/dist/types/core/solana/generated/{instructions → cross-chain/instructions}/startOrderExecutionAfterSwap.d.ts +0 -0
  593. package/dist/types/core/solana/generated/{programs → cross-chain/programs}/index.d.ts +0 -0
  594. package/dist/types/core/solana/generated/{shared → cross-chain/shared}/index.d.ts +0 -0
  595. package/dist/types/core/solana/generated/{types → cross-chain/types}/adminUpdated.d.ts +0 -0
  596. package/dist/types/core/solana/generated/{types → cross-chain/types}/auctioneerPubkeyUpdated.d.ts +0 -0
  597. package/dist/types/core/solana/generated/{types → cross-chain/types}/executionStarted.d.ts +0 -0
  598. package/dist/types/core/solana/generated/{types → cross-chain/types}/guardCreated.d.ts +0 -0
  599. package/dist/types/core/solana/generated/{types → cross-chain/types}/orderCancelled.d.ts +0 -0
  600. package/dist/types/core/solana/generated/{types → cross-chain/types}/orderCreated.d.ts +0 -0
  601. package/dist/types/core/solana/generated/{types → cross-chain/types}/orderFulfilled.d.ts +0 -0
  602. package/dist/types/core/solana/generated/{types → cross-chain/types}/tokenInSwapped.d.ts +0 -0
  603. package/src/core/solana/generated/{accounts → cross-chain/accounts}/index.ts +0 -0
  604. package/src/core/solana/generated/{errors → cross-chain/errors}/index.ts +0 -0
  605. package/src/core/solana/generated/{errors → cross-chain/errors}/sourceChainGuard.ts +0 -0
  606. package/src/core/solana/generated/{index.ts → cross-chain/index.ts} +0 -0
  607. package/src/core/solana/generated/{instructions → cross-chain/instructions}/cancelOrder.ts +4 -4
  608. package/src/core/solana/generated/{instructions → cross-chain/instructions}/preStartOrderExecution.ts +4 -4
  609. package/src/core/solana/generated/{instructions → cross-chain/instructions}/startOrderExecution.ts +4 -4
  610. package/src/core/solana/generated/{instructions → cross-chain/instructions}/startOrderExecutionAfterSwap.ts +4 -4
  611. package/src/core/solana/generated/{programs → cross-chain/programs}/index.ts +0 -0
  612. package/src/core/solana/generated/{types → cross-chain/types}/adminUpdated.ts +4 -4
  613. package/src/core/solana/generated/{types → cross-chain/types}/auctioneerPubkeyUpdated.ts +4 -4
  614. package/src/core/solana/generated/{types → cross-chain/types}/executionStarted.ts +4 -4
  615. package/src/core/solana/generated/{types → cross-chain/types}/guardCreated.ts +4 -4
  616. package/src/core/solana/generated/{types → cross-chain/types}/orderCancelled.ts +4 -4
  617. package/src/core/solana/generated/{types → cross-chain/types}/orderCreated.ts +4 -4
  618. package/src/core/solana/generated/{types → cross-chain/types}/orderFulfilled.ts +4 -4
  619. package/src/core/solana/generated/{types → cross-chain/types}/tokenInSwapped.ts +4 -4
@@ -1,13 +1,14 @@
1
1
  import type { SuiClient } from '@mysten/sui/client';
2
2
  import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
3
-
4
3
  import type { SuiConfig } from '../../config.js';
5
- import { OrderCreationError } from '../../errors/index.js';
6
- import type { PreparedOrder } from '../../types/intent.js';
7
- import { Order } from '../order.js';
8
4
  import { BaseSDK } from '../sdk.js';
9
5
  import { createSuiClient } from './client.js';
10
6
  import { getSuiOrderTransaction } from './order-transaction.js';
7
+ import { getSuiCancelCrossChainOrder } from './cancel.js';
8
+ import type { CrossChainOrderPrepared, SingleChainOrderPrepared } from '../../types/intent.js';
9
+ import type { CrossChainOrder } from '../orders/cross-chain.js';
10
+ import { fetchJWTToken, fetchSiweMessage } from '../../auth/siwe.js';
11
+ import { ChainID } from '../../chains.js';
11
12
 
12
13
  /**
13
14
  * Sui-specific SDK implementation
@@ -17,10 +18,6 @@ import { getSuiOrderTransaction } from './order-transaction.js';
17
18
  * Supports cross-chain swaps from Sui to other supported chains.
18
19
  */
19
20
  export class SuiSDK extends BaseSDK {
20
- protected override cancelOrderInternal(): Promise<string> {
21
- throw new Error('Method not implemented.');
22
- }
23
-
24
21
  /** Configuration for Sui connection and authentication */
25
22
  private readonly config: SuiConfig;
26
23
  /** Client for Sui RPC interactions and transaction handling */
@@ -60,6 +57,39 @@ export class SuiSDK extends BaseSDK {
60
57
  return Ed25519Keypair.fromSecretKey(this.config.privateKey);
61
58
  }
62
59
 
60
+ protected override prepareSingleChainOrder(): Promise<SingleChainOrderPrepared> {
61
+ throw new Error('Single-chain orders are not supported on Sui');
62
+ }
63
+
64
+ public async authenticate(token?: string): Promise<string> {
65
+ const wallet = await this.getUserAddress();
66
+
67
+ const response = await fetchSiweMessage({
68
+ chainId: ChainID.Sui,
69
+ wallet,
70
+ });
71
+
72
+ const message = response.data!;
73
+
74
+ const keypair = this.getKeyPair();
75
+
76
+ const messageBytes = new TextEncoder().encode(message);
77
+
78
+ const { signature } = await keypair.signPersonalMessage(messageBytes);
79
+
80
+ const jwt = await fetchJWTToken(
81
+ {
82
+ message,
83
+ signature,
84
+ },
85
+ token,
86
+ );
87
+
88
+ const newToken = jwt.data!;
89
+
90
+ return newToken;
91
+ }
92
+
63
93
  /**
64
94
  * Prepares a Sui order for submission
65
95
  *
@@ -73,27 +103,42 @@ export class SuiSDK extends BaseSDK {
73
103
  * @returns Promise resolving to a prepared order with Sui-specific data
74
104
  * @protected
75
105
  */
76
- protected async prepareOrder(order: Order): Promise<PreparedOrder> {
77
- try {
78
- const signer = this.getKeyPair();
79
-
80
- const transaction = await getSuiOrderTransaction(order);
81
-
82
- const tx = await this.client.signAndExecuteTransaction({
83
- signer,
84
- transaction,
85
- });
86
-
87
- await this.client.waitForTransaction({ digest: tx.digest });
88
-
89
- return {
90
- order,
91
- preparedData: {
92
- transactionHash: tx.digest,
93
- },
94
- };
95
- } catch (error) {
96
- throw new OrderCreationError('Failed to prepare Sui order', error);
97
- }
106
+ protected async prepareCrossChainOrder(order: CrossChainOrder): Promise<CrossChainOrderPrepared> {
107
+ const signer = this.getKeyPair();
108
+
109
+ const transaction = await getSuiOrderTransaction(order);
110
+
111
+ const tx = await this.client.signAndExecuteTransaction({
112
+ signer,
113
+ transaction,
114
+ });
115
+
116
+ await this.client.waitForTransaction({ digest: tx.digest });
117
+
118
+ return {
119
+ order,
120
+ preparedData: {
121
+ transactionHash: tx.digest,
122
+ },
123
+ };
124
+ }
125
+
126
+ public async cancelCrossChainOrder(orderId: string): Promise<string> {
127
+ const signer = this.getKeyPair();
128
+
129
+ const transaction = await getSuiCancelCrossChainOrder(orderId);
130
+
131
+ const sender = await this.getUserAddress();
132
+
133
+ transaction.setSender(sender);
134
+
135
+ const tx = await this.client.signAndExecuteTransaction({
136
+ signer,
137
+ transaction,
138
+ });
139
+
140
+ await this.client.waitForTransaction({ digest: tx.digest });
141
+
142
+ return tx.digest;
98
143
  }
99
144
  }
@@ -25,8 +25,12 @@ export class SuiValidator extends BaseValidator {
25
25
  return 'Sui';
26
26
  }
27
27
 
28
- public async chainSpecificValidation(): Promise<void> {
28
+ public async validateCrossChainOrderFeasability(): Promise<void> {
29
29
  // No chain-specific validation implemented for now for Sui
30
30
  return;
31
31
  }
32
+
33
+ override validateSingleChainOrderFeasability(): Promise<void> {
34
+ return Promise.resolve();
35
+ }
32
36
  }
@@ -32,29 +32,6 @@ export class BaseError extends Error {
32
32
  }
33
33
  }
34
34
 
35
- // Chain-specific error classes
36
- export class EVMError extends BaseError {
37
- constructor(message: string, cause?: unknown) {
38
- super(message, cause);
39
- Object.setPrototypeOf(this, EVMError.prototype);
40
- }
41
- }
42
-
43
- export class SolanaError extends BaseError {
44
- constructor(message: string, cause?: unknown) {
45
- super(message, cause);
46
- Object.setPrototypeOf(this, SolanaError.prototype);
47
- }
48
- }
49
-
50
- export class SuiError extends BaseError {
51
- constructor(message: string, cause?: unknown) {
52
- super(message, cause);
53
- Object.setPrototypeOf(this, SuiError.prototype);
54
- }
55
- }
56
-
57
- // Specific error types
58
35
  export class ValidationError extends BaseError {
59
36
  constructor(message: string, cause?: unknown) {
60
37
  super(message, cause);
@@ -62,13 +39,6 @@ export class ValidationError extends BaseError {
62
39
  }
63
40
  }
64
41
 
65
- export class OrderCreationError extends BaseError {
66
- constructor(message: string, cause?: unknown) {
67
- super(message, cause);
68
- Object.setPrototypeOf(this, OrderCreationError.prototype);
69
- }
70
- }
71
-
72
42
  export class NetworkError extends BaseError {
73
43
  constructor(message: string, cause?: unknown) {
74
44
  super(message, cause);
@@ -83,19 +53,13 @@ export class InsufficientBalanceError extends BaseError {
83
53
  }
84
54
  }
85
55
 
86
- export class CalculateAmountError extends BaseError {
87
- constructor(message: string, cause?: unknown) {
88
- super(message, cause);
89
- Object.setPrototypeOf(this, CalculateAmountError.prototype);
90
- }
91
- }
92
-
93
56
  export class InsufficientAllowanceError extends BaseError {
94
57
  constructor(message: string, cause?: unknown) {
95
58
  super(message, cause);
96
59
  Object.setPrototypeOf(this, InsufficientAllowanceError.prototype);
97
60
  }
98
61
  }
62
+
99
63
  export function handleError(error: unknown): BaseError {
100
64
  if (error instanceof BaseError) {
101
65
  return error;
package/src/index.ts CHANGED
@@ -1,21 +1,43 @@
1
- export { ChainID, ChainType, SupportedChains } from './chains.js';
2
- export type { SupportedEvmChain } from './chains.js';
1
+ export { ChainID, ChainType, SupportedChains, isSupportedChain, chainIdToChainTypeMap, isEvmChain } from './chains.js';
2
+ export type { SupportedEvmChain, SupportedChain } from './chains.js';
3
3
 
4
4
  export type { EVMConfig, SolanaConfig, SuiConfig } from './config.js';
5
5
  export { EVMSDK } from './core/evm/sdk.js';
6
- export { Order } from './core/order.js';
7
6
  export { SolanaSDK } from './core/solana/sdk.js';
8
7
  export { SuiSDK } from './core/sui/sdk.js';
8
+ export { CrossChainOrder } from './core/orders/cross-chain.js';
9
+ export type { CreateCrossChainOrderParams } from './core/orders/cross-chain.js';
10
+ export { SingleChainOrder } from './core/orders/single-chain.js';
11
+ export type { CreateSingleChainOrderParams } from './core/orders/single-chain.js';
12
+
13
+ export { fetchUserOrders } from './core/orders/api/fetch.js';
14
+ export { AuctioneerAPI } from './core/orders/api/index.js';
15
+ export { type FetchJWTParams, type FetchSiweMessageParams, fetchJWTToken, fetchSiweMessage } from './auth/siwe.js';
9
16
  export { ValidationError } from './errors/index.js';
10
- export {
11
- calculateAmounts,
12
- chainIdToDefiLlamaChainMap,
13
- createDefiLlamaCoinKey,
14
- getCoinFromResponse,
15
- getTokensData,
16
- } from './utils/defillama.js';
17
+ export { type ApiCrossChainOrder, type ApiResponse, type ApiSingleChainOrder, type ApiUserOrders, type ChainOrderStatus, isErrorApiResponse, isSuccessApiResponse } from './types/api.js';
18
+ export { calculateAmounts, getCoinFromResponse, getTokensData } from './utils/defillama.js';
17
19
  export type { DefiLlamaCoinData, DefiLlamaTokensResponse } from './utils/defillama.js';
18
- export type { CreateOrderParams } from './types/intent.js';
19
- export { getEvmOrderTypedData, sendEvmRequest } from './core/evm/order-signature.js';
20
- export { getSolanaOrderInstructions, sendSolanaRequest } from './core/solana/order-instructions.js';
21
- export { getSuiOrderTransaction, sendSuiRequest } from './core/sui/order-transaction.js';
20
+ export {
21
+ getCancelCrossChainOrderRawData,
22
+ getCancelSingleChainOrderRawData,
23
+ type CancelSingleChainOrderParams,
24
+ type CancelCrossChainOrderParams,
25
+ getInvalidateNoncesRawData,
26
+ } from './core/evm/cancel-order.js';
27
+ export { getEVMCrossChainOrderTypedData, getEVMSingleChainOrderTypedData } from './core/evm/order-signature.js';
28
+
29
+ export {
30
+ getSolanaCrossChainOrderInstructions,
31
+ getSolanaSingleChainOrderInstructions,
32
+ } from './core/solana/order-instructions.js';
33
+ export {
34
+ cancelCrossChainOrderInstructionsAsBytes,
35
+ cancelSingleChainOrderInstructionsAsBytes,
36
+ } from './core/solana/cancel-order.js';
37
+ export { getSuiOrderTransaction } from './core/sui/order-transaction.js';
38
+ export { getSuiCancelCrossChainOrder } from './core/sui/cancel.js';
39
+
40
+ export { QuoteProvider } from './utils/quote/aggregator.js';
41
+ export type { QuoteResponse } from './utils/quote/aggregator.js';
42
+
43
+ export { CROSS_CHAIN_GUARD_ADDRESSES, SINGLE_CHAIN_GUARD_ADDRESSES, PERMIT2_ADDRESS } from './constants.js';
package/src/types/api.ts CHANGED
@@ -1,9 +1,78 @@
1
- export type ApiResponse = {
2
- success: boolean;
3
- code: number;
1
+ import type { ExtraTransfer } from '../core/orders/common.js';
4
2
 
5
- data?: unknown;
3
+ export type ChainOrderStatus = 'Auction' | 'NoBids' | 'Executing' | 'Fulfilled' | 'Cancelled' | 'Outdated';
4
+
5
+ export type ApiCrossChainOrder = {
6
+ orderId: string;
7
+ // Flattened fields from the API response
8
+ user: string;
9
+ srcChainId: number;
10
+ tokenIn: string;
11
+ minStablecoinsAmount: string;
12
+ destChainId: number;
13
+ tokenOut: string;
14
+ amountOutMin: string;
15
+ destinationAddress: string;
16
+ extraTransfers?: ExtraTransfer[];
17
+ deadline: number;
18
+ executionDetailsHash: string;
19
+ amountIn: string;
20
+ // Cross-chain specific fields
21
+ executionDetails: string;
22
+ orderCreationTime: number;
23
+ orderStatus: ChainOrderStatus;
24
+ tokensInWereSwappedToStablecoins: boolean;
25
+ lockedStablecoins: string;
26
+ nonce?: string;
27
+ orderFulfillmentTimestamp?: number;
28
+ transactionHash?: string;
29
+ amountOut?: string;
30
+ };
6
31
 
32
+ export type ApiSingleChainOrder = {
33
+ orderId: string;
34
+ // Flattened fields from the API response
35
+ user: string;
36
+ chainId: number;
37
+ tokenIn: string;
38
+ tokenOut: string;
39
+ amountOutMin: string;
40
+ destinationAddress: string;
41
+ extraTransfers?: ExtraTransfer[];
42
+ deadline: number;
43
+ amountIn: string;
44
+ // Single-chain specific fields
45
+ orderCreationTime: number;
46
+ orderStatus: ChainOrderStatus;
47
+ nonce?: string;
48
+ orderFulfillmentTimestamp?: number;
49
+ transactionHash?: string;
50
+ amountOut?: string;
51
+ };
52
+
53
+ export type ApiUserOrders = {
54
+ singleChainLimitOrders: ApiSingleChainOrder[];
55
+ crossChainLimitOrders: ApiCrossChainOrder[];
56
+ };
57
+
58
+ export type ValidResponseData = ApiUserOrders | string | null;
59
+
60
+ export type ApiResponse<T extends ValidResponseData = ValidResponseData> = {
61
+ success: boolean;
62
+ code: number;
63
+ data?: T;
7
64
  error?: unknown;
8
65
  extra_error_data?: unknown;
9
66
  };
67
+
68
+ export function isSuccessApiResponse<T extends ValidResponseData>(
69
+ response: ApiResponse<T>,
70
+ ): response is ApiResponse<T> & { success: true; data: T } {
71
+ return response.success;
72
+ }
73
+
74
+ export function isErrorApiResponse<T extends ValidResponseData>(
75
+ response: ApiResponse<T>,
76
+ ): response is ApiResponse<T> & { success: false; error: unknown } {
77
+ return !response.success;
78
+ }
@@ -1,35 +1,7 @@
1
1
  import type { SupportedChain } from '../chains.js';
2
- import type { ExtraTransfer, Order } from '../core/order.js';
3
-
4
- /**
5
- * Parameters for creating a cross-chain order
6
- * Used as input for the createOrder and createAndSendOrder methods
7
- */
8
- export type CreateOrderParams = {
9
- /** Chain ID where tokens will be sent from */
10
- sourceChainId: SupportedChain;
11
- /** Token address on the source chain to be swapped */
12
- sourceTokenAddress: string;
13
- /** Amount of source tokens to swap, in smallest units (e.g., Wei for ETH) */
14
- sourceTokenAmount: bigint;
15
-
16
- /** Chain ID where tokens will be received */
17
- destinationChainId: SupportedChain;
18
- /** Token address on the destination chain to receive */
19
- destinationTokenAddress: string;
20
- /** Minimum amount of destination tokens to receive, in smallest units */
21
- destinationTokenMinAmount?: bigint;
22
- /** Recipient wallet address on the destination chain */
23
- destinationAddress: string;
24
-
25
- /** Minimum amount of stablecoins in the intermediate swap, in smallest units */
26
- minStablecoinAmount?: bigint;
27
- /** Timestamp (in seconds) after which the order expires */
28
- deadline: number;
29
-
30
- /** Extra Transfers */
31
- extraTransfers?: ExtraTransfer[];
32
- };
2
+ import type { CrossChainOrder } from '../core/orders/cross-chain.js';
3
+ import type { ExtraTransfer } from '../core/orders/common.js';
4
+ import type { SingleChainOrder } from '../core/orders/single-chain.js';
33
5
 
34
6
  /**
35
7
  * Details required to execute the order on the destination chain
@@ -48,15 +20,10 @@ export type ExecutionDetails = {
48
20
  extraTransfers?: ExtraTransfer[];
49
21
  };
50
22
 
51
- /** Hex string with 0x prefix, used for various hashes */
52
23
  export type Hash = `0x${string}`;
53
24
  /** Hash of execution details, used to verify order integrity across chains */
54
25
  export type ExecutionDetailsHash = Hash;
55
26
 
56
- /**
57
- * EVM-specific data required for prepared orders
58
- * Contains the signature and nonce for Permit2 allowance
59
- */
60
27
  export type EvmPreparedData = {
61
28
  /** Random nonce for Permit2 signature, prevents replay attacks */
62
29
  nonce: string;
@@ -64,19 +31,11 @@ export type EvmPreparedData = {
64
31
  signature: string | Hash;
65
32
  };
66
33
 
67
- /**
68
- * Sui-specific data required for prepared orders
69
- * Contains the transaction hash of the order creation transaction
70
- */
71
34
  export type SuiPreparedData = {
72
35
  /** Transaction hash of the successful order creation transaction */
73
36
  transactionHash: string;
74
37
  };
75
38
 
76
- /**
77
- * Solana-specific data required for prepared orders
78
- * Contains the public key of the created order account
79
- */
80
39
  export type SolanaPreparedData = {
81
40
  /** Public key of the created order account on Solana */
82
41
  orderPubkey: string;
@@ -101,13 +60,12 @@ export type SourceChainData = {
101
60
  deadline: number;
102
61
  /** Hash of execution details for cross-chain verification */
103
62
  executionDetailsHash: ExecutionDetailsHash;
63
+ stopLossMaxOut?: bigint;
64
+ takeProfitMinOut?: bigint;
65
+ extraTransfers?: ExtraTransfer[];
104
66
  };
105
67
 
106
- /**
107
- * Complete user intent request sent to the auctioneer service
108
- * Contains all the information needed to execute the cross-chain swap
109
- */
110
- export type UserIntentRequest = {
68
+ export type CrossChainUserIntentRequest = {
111
69
  /** Generic data common to all chains */
112
70
  genericData: SourceChainData;
113
71
  /** JSON-stringified execution details for the destination chain */
@@ -123,21 +81,42 @@ export type UserIntentRequest = {
123
81
  };
124
82
  };
125
83
 
126
- /**
127
- * Union type of all chain-specific prepared data
128
- * The actual type depends on the source chain
129
- */
84
+ export type SingleChainUserIntentRequest = {
85
+ genericData: SingleChainOrder;
86
+ chainSpecificData: {
87
+ EVM?: EvmPreparedData;
88
+ Solana?: SolanaPreparedData;
89
+ Sui?: SolanaPreparedData;
90
+ };
91
+ };
92
+
130
93
  export type ChainPreparedData = EvmPreparedData | SuiPreparedData | SolanaPreparedData;
131
94
 
132
- /**
133
- * Fully prepared order ready for submission to the auctioneer
134
- * Contains both the order details and chain-specific prepared data
135
- */
136
- export type PreparedOrder = {
137
- /** The original order with all cross-chain details */
138
- order: Order;
139
- /** Chain-specific data needed for order execution */
95
+ export type CrossChainOrderPrepared = {
96
+ order: CrossChainOrder;
140
97
  preparedData: ChainPreparedData;
141
- /** Hash related to the start order execution */
142
- // txHash: string // TODO: Think if we need this
98
+ };
99
+
100
+ export type SingleChainEVMPreparedData = {
101
+ nonce: string;
102
+ signature: string | Hash;
103
+ };
104
+
105
+ export type SingleChainSolanaPreparedData = {
106
+ secretNumber: string;
107
+ orderPubkey: string;
108
+ };
109
+
110
+ export type SingleChainSuiPreparedData = {
111
+ transactionHash: string;
112
+ };
113
+
114
+ export type SingleChainPreparedData =
115
+ | SingleChainEVMPreparedData
116
+ | SingleChainSolanaPreparedData
117
+ | SingleChainSuiPreparedData;
118
+
119
+ export type SingleChainOrderPrepared = {
120
+ order: SingleChainOrder;
121
+ preparedData: SingleChainPreparedData;
143
122
  };
@@ -1,4 +1,5 @@
1
- import type { OrderInput } from '../core/order.js';
1
+ import type { CreateCrossChainOrderParams } from '../core/orders/cross-chain.js';
2
+ import type { CreateSingleChainOrderParams } from '../core/orders/single-chain.js';
2
3
  import { ValidationError } from '../errors/index.js';
3
4
  import type { IChainValidator } from './order-validator.js';
4
5
 
@@ -11,26 +12,43 @@ export abstract class BaseValidator implements IChainValidator {
11
12
  abstract isValidTokenAddress(tokenAddress: string): boolean;
12
13
  abstract isValidAmount(amount: bigint): boolean;
13
14
  protected abstract getChainName(): string;
14
- abstract chainSpecificValidation(order: OrderInput): Promise<void>;
15
+ abstract validateCrossChainOrderFeasability(order: CreateCrossChainOrderParams & { user: string }): Promise<void>;
16
+ abstract validateSingleChainOrderFeasability(order: CreateSingleChainOrderParams & { user: string }): Promise<void>;
15
17
 
16
18
  /**
17
19
  * Validate source chain specific parameters of the order
18
20
  */
19
- async validateSourceChain(order: OrderInput): Promise<void> {
20
- this.validateAddress(order.user);
21
+ async validateSourceChain(order: CreateCrossChainOrderParams & { user: string }): Promise<void> {
21
22
  this.validateTokenAddress(order.sourceTokenAddress);
22
23
  this.validateAmount(order.sourceTokenAmount);
23
- this.validateAmount(order.minStablecoinAmount);
24
- await this.chainSpecificValidation(order);
24
+ this.validateAmount(order.minStablecoinAmount ?? 1n);
25
+ await this.validateCrossChainOrderFeasability({ ...order, user: order.user });
26
+ }
27
+
28
+ async validateSingleChainOrder(order: CreateSingleChainOrderParams & { user: string }): Promise<void> {
29
+ this.validateTokenAddress(order.tokenIn);
30
+ this.validateTokenAddress(order.tokenOut);
31
+ this.validateAmount(order.amountIn);
32
+ this.validateAmount(order.amountOutMin ?? 1n);
33
+
34
+ if (order.stopLossMaxOut) {
35
+ this.validateAmount(order.stopLossMaxOut);
36
+ }
37
+
38
+ if (order.takeProfitMinOut) {
39
+ this.validateAmount(order.takeProfitMinOut);
40
+ }
41
+
42
+ await this.validateSingleChainOrderFeasability(order);
25
43
  }
26
44
 
27
45
  /**
28
46
  * Validate destination chain specific parameters of the order
29
47
  */
30
- validateDestinationChain(order: OrderInput): void {
48
+ validateDestinationChain(order: CreateCrossChainOrderParams): void {
31
49
  this.validateAddress(order.destinationAddress);
32
50
  this.validateTokenAddress(order.destinationTokenAddress);
33
- this.validateAmount(order.destinationTokenMinAmount);
51
+ this.validateAmount(order.destinationTokenMinAmount ?? 1n);
34
52
 
35
53
  if (order.extraTransfers) {
36
54
  for (const extraTransfer of order.extraTransfers) {
@@ -1,15 +1,10 @@
1
1
  import { ChainID, type SupportedChain } from '../chains.js';
2
- import {
3
- isNativeTokenEvmAddress,
4
- NATIVE_SOLANA_TOKEN_ADDRESS,
5
- REDUCTION_FACTOR,
6
- STABLECOIN_DECIMALS,
7
- WRAPPED_SOL_MINT_ADDRESS,
8
- } from '../constants.js';
9
- import { CalculateAmountError } from '../errors/index.js';
2
+ import { NATIVE_EVM_ETH_ADDRESSES, NATIVE_SOLANA_TOKEN_ADDRESS, WRAPPED_SOL_MINT_ADDRESS } from '../constants.js';
10
3
  import { Parsers } from './parsers.js';
4
+ import { QuoteProvider } from './quote/aggregator.js';
11
5
 
12
6
  const TOKEN_PRICE_BASE_URL: string = 'https://coins.llama.fi/prices/current/';
7
+ const STABLECOIN_DECIMALS = 6; // USDC/USDT typically use 6 decimals
13
8
 
14
9
  /**
15
10
  * Response structure from DefiLlama API for token prices
@@ -42,6 +37,7 @@ export const chainIdToDefiLlamaChainMap = {
42
37
  [ChainID.Arbitrum]: 'arbitrum',
43
38
  [ChainID.Base]: 'base',
44
39
  [ChainID.Optimism]: 'optimism',
40
+ [ChainID.Hyperliquid]: 'hyperliquid',
45
41
  [ChainID.Solana]: 'solana',
46
42
  [ChainID.Sui]: 'sui',
47
43
  } as const;
@@ -52,9 +48,6 @@ export const chainIdToDefiLlamaChainMap = {
52
48
  */
53
49
  export const createDefiLlamaCoinKey = (chainId: ChainID, tokenAddress: string): string => {
54
50
  const chainName = chainIdToDefiLlamaChainMap[chainId];
55
- if (!chainName) {
56
- throw new CalculateAmountError(`Unsupported chain ID for DefiLlama: ${chainId}`);
57
- }
58
51
 
59
52
  return `${chainName}:${toDefiLlamaToken(tokenAddress)}`;
60
53
  };
@@ -71,7 +64,7 @@ export const getCoinFromResponse = (
71
64
  const coin = response.coins[key];
72
65
 
73
66
  if (!coin) {
74
- throw new CalculateAmountError(`DefiLlama coin not found for ${key}`);
67
+ throw new Error(`DefiLlama coin not found for ${key}`);
75
68
  }
76
69
 
77
70
  return coin;
@@ -96,6 +89,12 @@ function toDefiLlamaToken(tokenAddress: string): string {
96
89
  return tokenAddress;
97
90
  }
98
91
 
92
+ function isNativeTokenEvmAddress(tokenAddress: string): boolean {
93
+ const normalizedAddress = tokenAddress.toLowerCase();
94
+
95
+ return NATIVE_EVM_ETH_ADDRESSES.some((addr) => addr.toLowerCase() === normalizedAddress);
96
+ }
97
+
99
98
  /**
100
99
  * Builds a comma-separated query string for DefiLlama API token requests
101
100
  *
@@ -104,8 +103,6 @@ function toDefiLlamaToken(tokenAddress: string): string {
104
103
  *
105
104
  * @param tokens - Array of [ChainID, token address] tuples to query
106
105
  * @returns Comma-separated string of DefiLlama coin keys
107
- *
108
- * @throws {CalculateAmountError} When any chain ID is not supported by DefiLlama
109
106
  */
110
107
  function buildTokensQueryString(tokens: Array<[ChainID, string]>): string {
111
108
  return tokens.map(([chainId, tokenAddress]) => createDefiLlamaCoinKey(chainId, tokenAddress)).join(',');
@@ -116,7 +113,6 @@ function buildTokensQueryString(tokens: Array<[ChainID, string]>): string {
116
113
  *
117
114
  * @param tokens Array of [ChainID, Token Address] tuples
118
115
  * @returns Promise resolving to DefiLlama tokens response
119
- * @throws {CalculateAmountError} If the request fails or response is invalid
120
116
  */
121
117
  export async function getTokensData(tokens: Array<[ChainID, string]>): Promise<DefiLlamaTokensResponse> {
122
118
  const tokensStr = buildTokensQueryString(tokens);
@@ -129,13 +125,9 @@ export async function getTokensData(tokens: Array<[ChainID, string]>): Promise<D
129
125
  },
130
126
  });
131
127
 
132
- if (!response.ok) {
133
- throw new CalculateAmountError(`Failed to fetch token prices: ${response.status} ${response.statusText}`);
134
- }
135
-
136
- const data: DefiLlamaTokensResponse = await response.json();
137
- return data;
128
+ return response.json();
138
129
  }
130
+
139
131
  export async function calculateAmounts({
140
132
  srcChainId,
141
133
  tokenIn,
@@ -155,21 +147,14 @@ export async function calculateAmounts({
155
147
  [destChainId, tokenOut],
156
148
  ]);
157
149
 
158
- // Get token data for input token
159
150
  const tokenInData = getCoinFromResponse(tokensResponse, srcChainId, tokenIn);
160
- if (!tokenInData) {
161
- throw new CalculateAmountError(`Token ${tokenIn} for chain ${srcChainId} not found in DefiLlama response`);
162
- }
163
151
 
164
- // Get token data for output token
165
152
  const tokenOutData = getCoinFromResponse(tokensResponse, destChainId, tokenOut);
166
- if (!tokenOutData) {
167
- throw new CalculateAmountError(`Token ${tokenOut} for chain ${destChainId} not found in DefiLlama response`);
168
- }
169
153
 
170
154
  // Calculate 80% of the amount_in value as amount_out_min and min_stablecoins_amount
171
155
  const tokenInUsdAmount = Parsers.bigintToFloat(amountIn, tokenInData.decimals) * tokenInData.price;
172
- const amountInUsdReduced = tokenInUsdAmount * REDUCTION_FACTOR;
156
+ const reductionFactor = QuoteProvider.calculateWeightedReductionFactorForUsd(tokenInUsdAmount);
157
+ const amountInUsdReduced = tokenInUsdAmount * reductionFactor;
173
158
  const amountOutReduced = amountInUsdReduced / tokenOutData.price;
174
159
 
175
160
  const amountOut = Parsers.floatToBigint(amountOutReduced, tokenOutData.decimals);