@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
package/src/core/sdk.ts CHANGED
@@ -1,11 +1,15 @@
1
- import { chainIdToChainTypeMap } from '../chains.js';
2
1
  import { AUCTIONEER_URL } from '../constants.js';
3
2
  import { NetworkError } from '../errors/index.js';
4
3
  import type { ApiResponse } from '../types/api.js';
5
- import type { CreateOrderParams, PreparedOrder, UserIntentRequest } from '../types/intent.js';
6
- import { calculateAmounts } from '../utils/defillama.js';
4
+ import type {
5
+ CrossChainOrderPrepared,
6
+ CrossChainUserIntentRequest,
7
+ SingleChainOrderPrepared,
8
+ SingleChainUserIntentRequest,
9
+ } from '../types/intent.js';
7
10
  import { Parsers } from '../utils/parsers.js';
8
- import { Order } from './order.js';
11
+ import { CrossChainOrder, type CreateCrossChainOrderParams } from './orders/cross-chain.js';
12
+ import { SingleChainOrder, type CreateSingleChainOrderParams } from './orders/single-chain.js';
9
13
 
10
14
  /**
11
15
  * Base SDK providing common functionality for all blockchain implementations
@@ -15,153 +19,116 @@ import { Order } from './order.js';
15
19
  * across different blockchains.
16
20
  */
17
21
  export abstract class BaseSDK {
18
- /**
19
- * Gets the user's wallet address derived from their private key
20
- *
21
- * @returns Promise resolving to the user's address as a string
22
- * @abstract Must be implemented by each chain-specific SDK
23
- */
24
22
  public abstract getUserAddress(): Promise<string>;
23
+ protected abstract prepareCrossChainOrder(order: CrossChainOrder): Promise<CrossChainOrderPrepared>;
24
+ protected abstract prepareSingleChainOrder(order: SingleChainOrder): Promise<SingleChainOrderPrepared>;
25
25
 
26
- protected abstract cancelOrderInternal(orderId: string): Promise<string>;
27
-
28
- /**
29
- * Prepares an order for submission with chain-specific logic
30
- *
31
- * This method handles the chain-specific aspects of order creation, such as:
32
- * - Creating and signing transactions
33
- * - Interacting with blockchain-specific smart contracts
34
- * - Generating proof of intent
35
- *
36
- * @param order The validated order to prepare
37
- * @returns Promise resolving to a prepared order with chain-specific data
38
- * @abstract Must be implemented by each chain-specific SDK
39
- * @protected
40
- */
41
- protected abstract prepareOrder(order: Order): Promise<PreparedOrder>;
42
-
43
- /**
44
- * Creates a cross-chain swap order
45
- *
46
- * This method:
47
- * 1. Gets the user's address from their private key
48
- * 2. Creates and validates an Order instance
49
- * 3. Delegates to chain-specific preparation logic
50
- *
51
- * @param params Parameters for order creation including source/destination chain details
52
- * @returns Promise resolving to a prepared order ready for submission
53
- * @throws {ValidationError} If order parameters are invalid
54
- * @throws {OrderCreationError} If order creation fails
55
- */
56
- public async createOrder(params: CreateOrderParams): Promise<PreparedOrder> {
26
+ public async createSingleChainOrder(params: CreateSingleChainOrderParams): Promise<SingleChainOrderPrepared> {
57
27
  const userAddress = await this.getUserAddress();
58
28
 
59
- let minStablecoinAmount: bigint;
60
- let destinationTokenMinAmount: bigint;
61
-
62
- if (!params.minStablecoinAmount || !params.destinationTokenMinAmount) {
63
- // Calculate missing values using DefiLlama
64
- const { amountOut: calculatedAmountOut, minStablecoinsAmount: calculatedMinStablecoins } = await calculateAmounts(
65
- {
66
- srcChainId: params.sourceChainId,
67
- tokenIn: params.sourceTokenAddress,
68
- amountIn: params.sourceTokenAmount,
69
- destChainId: params.destinationChainId,
70
- tokenOut: params.destinationTokenAddress,
71
- },
72
- );
29
+ const order = await SingleChainOrder.create({
30
+ ...params,
31
+ user: userAddress,
32
+ });
73
33
 
74
- // Use provided values if available, otherwise use calculated ones
75
- minStablecoinAmount = params.minStablecoinAmount ?? calculatedMinStablecoins;
76
- destinationTokenMinAmount = params.destinationTokenMinAmount ?? calculatedAmountOut;
77
- } else {
78
- // Both values provided, use them directly
79
- minStablecoinAmount = params.minStablecoinAmount;
80
- destinationTokenMinAmount = params.destinationTokenMinAmount;
81
- }
34
+ return this.prepareSingleChainOrder(order);
35
+ }
36
+
37
+ public async createCrossChainOrder(params: CreateCrossChainOrderParams): Promise<CrossChainOrderPrepared> {
38
+ const userAddress = await this.getUserAddress();
82
39
 
83
- // Order is validated upon creation
84
- const order = await Order.create({
40
+ const order = await CrossChainOrder.create({
41
+ ...params,
85
42
  user: userAddress,
86
- sourceChainId: params.sourceChainId,
87
- sourceTokenAddress: params.sourceTokenAddress,
88
- sourceTokenAmount: params.sourceTokenAmount,
89
- minStablecoinAmount: minStablecoinAmount,
90
- deadline: params.deadline,
91
- destinationAddress: params.destinationAddress,
92
- destinationChainId: params.destinationChainId,
93
- destinationTokenAddress: params.destinationTokenAddress,
94
- destinationTokenMinAmount: destinationTokenMinAmount,
95
- extraTransfers: params.extraTransfers,
96
43
  });
97
44
 
98
- return this.prepareOrder(order);
45
+ return this.prepareCrossChainOrder(order);
99
46
  }
100
47
 
101
- public async cancelOrder(orderId: string): Promise<string> {
102
- return this.cancelOrderInternal(orderId);
48
+ public async createAndSendSingleChainOrder(params: CreateSingleChainOrderParams): Promise<ApiResponse> {
49
+ const preparedOrder = await this.createSingleChainOrder(params);
50
+ return BaseSDK.sendSingleChainOrder(preparedOrder);
51
+ }
52
+
53
+ public static async sendSingleChainOrder(preparedOrder: SingleChainOrderPrepared): Promise<ApiResponse> {
54
+ const intentRequest = preparedOrder.order.toIntentRequest(preparedOrder.preparedData);
55
+ const body = JSON.stringify(intentRequest, Parsers.bigIntReplacer);
56
+
57
+ const url = `${AUCTIONEER_URL}/user_intent/single_chain/limit_order`;
58
+ const response = await fetch(url, {
59
+ method: 'POST',
60
+ headers: {
61
+ 'Content-Type': 'application/json',
62
+ },
63
+ body,
64
+ });
65
+
66
+ if (!response.ok) {
67
+ const errorJson: ApiResponse = await response.json();
68
+
69
+ const extraErrorData = errorJson.extra_error_data;
70
+ throw new NetworkError(`Server error ${extraErrorData}`);
71
+ }
72
+
73
+ return response.json();
103
74
  }
104
75
 
105
- /**
106
- * Creates an order and sends it to the auctioneer in a single call
107
- *
108
- * Convenience method that combines order creation and submission
109
- *
110
- * @param params Parameters for order creation including source/destination chain details
111
- * @returns Promise resolving to the auctioneer's HTTP response
112
- * @throws {ValidationError} If order parameters are invalid
113
- * @throws {OrderCreationError} If order creation fails
114
- * @throws {NetworkError} If order submission fails
115
- */
116
- public async createAndSendOrder(params: CreateOrderParams): Promise<ApiResponse> {
117
- const preparedOrder = await this.createOrder(params);
118
- return BaseSDK.sendOrder(preparedOrder);
76
+ public static async validateCrossChainOrder(intentRequest: CrossChainUserIntentRequest): Promise<void> {
77
+ const body = JSON.stringify(intentRequest, Parsers.bigIntReplacer);
78
+
79
+ const url = `${AUCTIONEER_URL}/validate_intent/cross_chain/limit_order`;
80
+ const response = await fetch(url, {
81
+ method: 'POST',
82
+ headers: {
83
+ 'Content-Type': 'application/json',
84
+ },
85
+ body,
86
+ });
87
+
88
+ if (!response.ok) {
89
+ const errorJson: ApiResponse = await response.json();
90
+
91
+ const mainError = errorJson.error;
92
+ const extraErrorData = errorJson.extra_error_data;
93
+ throw new NetworkError(`Validation error: ${mainError}. Extra error data: ${extraErrorData}`);
94
+ }
95
+
96
+ return;
119
97
  }
120
98
 
121
- /**
122
- * Converts a prepared order into a user intent request format for the auctioneer
123
- *
124
- * The UserIntentRequest format includes:
125
- * - Generic data common to all chains
126
- * - Chain-specific data (signatures, nonces, etc.)
127
- * - Execution details for the destination chain
128
- *
129
- * @param preparedOrder The prepared order with chain-specific data
130
- * @returns User intent request object ready for submission to the auctioneer
131
- * @throws {BaseError} If conversion fails
132
- */
133
- public static getUserIntentRequest(preparedOrder: PreparedOrder): UserIntentRequest {
134
- const sourceChain = preparedOrder.order.sourceChainId;
135
- const sourceChainType = chainIdToChainTypeMap[sourceChain];
136
- const executionDetails = preparedOrder.order.getExecutionDetails();
137
-
138
- return {
139
- genericData: preparedOrder.order.toSourceChainData(),
140
- executionDetails: JSON.stringify(executionDetails, Parsers.bigIntReplacer),
141
- chainSpecificData: {
142
- [sourceChainType]: preparedOrder.preparedData,
99
+ public static async validateSingleChainOrder(intentRequest: SingleChainUserIntentRequest): Promise<void> {
100
+ const body = JSON.stringify(intentRequest, Parsers.bigIntReplacer);
101
+
102
+ const url = `${AUCTIONEER_URL}/validate_intent/single_chain/limit_order`;
103
+ const response = await fetch(url, {
104
+ method: 'POST',
105
+ headers: {
106
+ 'Content-Type': 'application/json',
143
107
  },
144
- };
108
+ body,
109
+ });
110
+
111
+ if (!response.ok) {
112
+ const errorJson: ApiResponse = await response.json();
113
+
114
+ const mainError = errorJson.error;
115
+ const extraErrorData = errorJson.extra_error_data;
116
+ throw new NetworkError(`Validation error: ${mainError}. Extra error data: ${extraErrorData}`);
117
+ }
118
+
119
+ return;
145
120
  }
146
121
 
147
- /**
148
- * Sends a prepared order to the auctioneer service
149
- *
150
- * This method:
151
- * 1. Converts the prepared order to the auctioneer's expected format
152
- * 2. Serializes the request with proper handling of bigint values
153
- * 3. Submits the order to the auctioneer endpoint
154
- * 4. Validates the response
155
- *
156
- * @param preparedOrder The prepared order with chain-specific data
157
- * @returns Promise resolving to the specific-chain tx hash
158
- * @throws {NetworkError} If the network request fails or returns an error
159
- */
160
- public static async sendOrder(preparedOrder: PreparedOrder): Promise<ApiResponse> {
161
- const intentRequest = BaseSDK.getUserIntentRequest(preparedOrder);
122
+ public async createAndSendCrossChainOrder(params: CreateCrossChainOrderParams): Promise<ApiResponse> {
123
+ const preparedOrder = await this.createCrossChainOrder(params);
124
+ return BaseSDK.sendCrossChainOrder(preparedOrder);
125
+ }
126
+
127
+ public static async sendCrossChainOrder(preparedOrder: CrossChainOrderPrepared): Promise<ApiResponse> {
128
+ const intentRequest = preparedOrder.order.toIntentRequest(preparedOrder.preparedData);
162
129
  const body = JSON.stringify(intentRequest, Parsers.bigIntReplacer);
163
130
 
164
- const url = `${AUCTIONEER_URL}/user_intent`;
131
+ const url = `${AUCTIONEER_URL}/user_intent/cross_chain/limit_order`;
165
132
  const response = await fetch(url, {
166
133
  method: 'POST',
167
134
  headers: {
@@ -173,12 +140,11 @@ export abstract class BaseSDK {
173
140
  if (!response.ok) {
174
141
  const errorJson: ApiResponse = await response.json();
175
142
 
143
+ const mainError = errorJson.error;
176
144
  const extraErrorData = errorJson.extra_error_data;
177
- throw new NetworkError(`Server error`, {
178
- status: response.status,
179
- statusText: response.statusText,
180
- body: extraErrorData,
181
- });
145
+ throw new NetworkError(
146
+ `Failed to send cross-chain order. Main error: ${mainError}. Extra error data: ${extraErrorData}`,
147
+ );
182
148
  }
183
149
 
184
150
  return response.json();
@@ -0,0 +1,264 @@
1
+ import {
2
+ address,
3
+ appendTransactionMessageInstructions,
4
+ compileTransactionMessage,
5
+ createNoopSigner,
6
+ createSolanaRpc,
7
+ createTransactionMessage,
8
+ fetchEncodedAccount,
9
+ getAddressEncoder,
10
+ getCompiledTransactionMessageEncoder,
11
+ getProgramDerivedAddress,
12
+ pipe,
13
+ setTransactionMessageFeePayerSigner,
14
+ setTransactionMessageLifetimeUsingBlockhash,
15
+ type Address,
16
+ type IInstruction,
17
+ type ReadonlyUint8Array,
18
+ type TransactionMessageBytes,
19
+ } from '@solana/kit';
20
+ import { getDefaultSolanaRPC } from './client.js';
21
+ import { fetchMaybeLimitOrder, getCancelLimitOrderInstruction } from './generated/single-chain/index.js';
22
+ import {
23
+ ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
24
+ fetchMint,
25
+ getCreateAssociatedTokenInstructionAsync,
26
+ } from '@solana-program/token';
27
+ import { CROSS_CHAIN_GUARD_ADDRESSES, SINGLE_CHAIN_GUARD_ADDRESSES, SOLANA_MINT_TOKEN } from '../../constants.js';
28
+ import { ChainID } from '../../chains.js';
29
+ import { fetchMaybeOrder, getCancelOrderInstruction } from './generated/cross-chain/index.js';
30
+
31
+ export async function cancelSingleChainOrderInstructions(
32
+ orderAddress: string,
33
+ options?: { rpcUrl?: string },
34
+ ): Promise<IInstruction[]> {
35
+ const rpc = options?.rpcUrl ? createSolanaRpc(options.rpcUrl) : getDefaultSolanaRPC();
36
+
37
+ const orderId = address(orderAddress);
38
+ const chainOrder = await fetchMaybeLimitOrder(rpc, orderId);
39
+
40
+ if (!chainOrder.exists) {
41
+ throw new Error(`Order with address ${orderAddress} not found`);
42
+ }
43
+
44
+ const instructions: IInstruction[] = [];
45
+ const orderUserAddress = chainOrder.data.user;
46
+
47
+ const tokenInMint = chainOrder.data.tokenInMint;
48
+
49
+ const tokenMintProgram = await fetchMint(rpc, tokenInMint);
50
+
51
+ const addressEncoder = getAddressEncoder();
52
+
53
+ const [tokenInProgramAccount] = await getProgramDerivedAddress({
54
+ programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
55
+ seeds: [
56
+ addressEncoder.encode(orderUserAddress),
57
+ addressEncoder.encode(tokenMintProgram.programAddress),
58
+ addressEncoder.encode(tokenInMint),
59
+ ],
60
+ });
61
+
62
+ const guardAddress = SINGLE_CHAIN_GUARD_ADDRESSES[ChainID.Solana] as Address;
63
+ const [guardProgramAccount] = await getProgramDerivedAddress({
64
+ programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
65
+ seeds: [
66
+ // Owner
67
+ addressEncoder.encode(guardAddress),
68
+ // Token program
69
+ addressEncoder.encode(tokenMintProgram.programAddress),
70
+ // mint address
71
+ addressEncoder.encode(tokenInMint),
72
+ ],
73
+ });
74
+
75
+ const userTokenInAccount = await fetchEncodedAccount(rpc, tokenInProgramAccount);
76
+
77
+ if (!userTokenInAccount.exists) {
78
+ const createTokenIx = await getCreateAssociatedTokenInstructionAsync({
79
+ mint: tokenInMint,
80
+ owner: orderUserAddress,
81
+ payer: createNoopSigner(orderUserAddress),
82
+ tokenProgram: tokenMintProgram.programAddress,
83
+ });
84
+
85
+ instructions.push(createTokenIx);
86
+ }
87
+
88
+ const cancelLimitOrderIx = getCancelLimitOrderInstruction({
89
+ user: createNoopSigner(orderUserAddress),
90
+ order: orderId,
91
+ guard: guardAddress,
92
+ tokenInMint: chainOrder.data.tokenInMint,
93
+ userTokenInAccount: userTokenInAccount.address,
94
+ guardTokenInAccount: guardProgramAccount,
95
+ tokenInProgram: tokenMintProgram.programAddress,
96
+ });
97
+
98
+ instructions.push(cancelLimitOrderIx);
99
+
100
+ return instructions;
101
+ }
102
+
103
+ export async function cancelCrossChainOrderInstructionsAsBytes(
104
+ orderAddress: string,
105
+ signerAddress: string,
106
+ options?: { rpcUrl?: string },
107
+ ): Promise<{ versionedMessageBytes: ReadonlyUint8Array }> {
108
+ const rpc = options?.rpcUrl ? createSolanaRpc(options.rpcUrl) : getDefaultSolanaRPC();
109
+ const instructions = await cancelCrossChainOrderInstructions(orderAddress, options);
110
+ const { value: latestBlockhash } = await rpc.getLatestBlockhash({ commitment: 'confirmed' }).send();
111
+
112
+ const txMessage = pipe(
113
+ createTransactionMessage({ version: 0 }),
114
+ (tx) => setTransactionMessageFeePayerSigner(createNoopSigner(address(signerAddress)), tx),
115
+ (tx) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx),
116
+ (tx) => appendTransactionMessageInstructions(instructions, tx),
117
+ );
118
+
119
+ const compiledTxMessage = compileTransactionMessage(txMessage);
120
+
121
+ const txBytes = getCompiledTransactionMessageEncoder().encode(compiledTxMessage);
122
+
123
+ return { versionedMessageBytes: txBytes };
124
+ }
125
+
126
+ export async function cancelSingleChainOrderInstructionsAsBytes(
127
+ orderAddress: string,
128
+ signerAddress: string,
129
+ options?: { rpcUrl?: string },
130
+ ): Promise<{ versionedMessageBytes: ReadonlyUint8Array }> {
131
+ const rpc = options?.rpcUrl ? createSolanaRpc(options.rpcUrl) : getDefaultSolanaRPC();
132
+ const instructions = await cancelSingleChainOrderInstructions(orderAddress, options);
133
+ const { value: latestBlockhash } = await rpc.getLatestBlockhash({ commitment: 'confirmed' }).send();
134
+
135
+ const txMessage = pipe(
136
+ createTransactionMessage({ version: 0 }),
137
+ (tx) => setTransactionMessageFeePayerSigner(createNoopSigner(address(signerAddress)), tx),
138
+ (tx) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx),
139
+ (tx) => appendTransactionMessageInstructions(instructions, tx),
140
+ );
141
+
142
+ const compiledTxMessage = compileTransactionMessage(txMessage);
143
+
144
+ const txBytes = getCompiledTransactionMessageEncoder().encode(compiledTxMessage) as TransactionMessageBytes;
145
+
146
+ return { versionedMessageBytes: txBytes };
147
+ }
148
+
149
+ export async function cancelCrossChainOrderInstructions(
150
+ orderAddress: string,
151
+ options?: { rpcUrl?: string },
152
+ ): Promise<IInstruction[]> {
153
+ const rpc = options?.rpcUrl ? createSolanaRpc(options.rpcUrl) : getDefaultSolanaRPC();
154
+ const orderId = address(orderAddress);
155
+
156
+ const chainOrder = await fetchMaybeOrder(rpc, orderId);
157
+ if (!chainOrder.exists) {
158
+ throw new Error(`Order with address ${orderAddress} not found`);
159
+ }
160
+
161
+ const instructions: IInstruction[] = [];
162
+ const orderUserAddress = chainOrder.data.user;
163
+ const guardAddress = CROSS_CHAIN_GUARD_ADDRESSES[ChainID.Solana] as Address;
164
+ const addressEncoder = getAddressEncoder();
165
+
166
+ const isRecoveringTokenIn = chainOrder.data.lockedStablecoins === 0n;
167
+ const recoverTokenMint = isRecoveringTokenIn ? chainOrder.data.tokenInMint : address(SOLANA_MINT_TOKEN.mint);
168
+
169
+ const recoverTokenMintProgram = await fetchMint(rpc, recoverTokenMint);
170
+
171
+ const [userRecoveredTokenAccount] = await getProgramDerivedAddress({
172
+ programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
173
+ seeds: [
174
+ addressEncoder.encode(orderUserAddress),
175
+ addressEncoder.encode(recoverTokenMintProgram.programAddress),
176
+ addressEncoder.encode(recoverTokenMint),
177
+ ],
178
+ });
179
+
180
+ const [guardRecoveredTokenAccount] = await getProgramDerivedAddress({
181
+ programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
182
+ seeds: [
183
+ addressEncoder.encode(guardAddress),
184
+ addressEncoder.encode(recoverTokenMintProgram.programAddress),
185
+ addressEncoder.encode(recoverTokenMint),
186
+ ],
187
+ });
188
+
189
+ // Check if user's recovered token account exists, create if needed
190
+ const userRecoveredTokenAccountInfo = await fetchEncodedAccount(rpc, userRecoveredTokenAccount);
191
+ if (!userRecoveredTokenAccountInfo.exists) {
192
+ const createRecoveredTokenAccountIx = await getCreateAssociatedTokenInstructionAsync({
193
+ payer: createNoopSigner(orderUserAddress),
194
+ ata: userRecoveredTokenAccount,
195
+ owner: orderUserAddress,
196
+ mint: recoverTokenMint,
197
+ tokenProgram: recoverTokenMintProgram.programAddress,
198
+ });
199
+ instructions.push(createRecoveredTokenAccountIx);
200
+ }
201
+
202
+ let userCollateralTokenAccount: Address | undefined;
203
+ const willClaimCollateral = chainOrder.data.lockedCollateral > 0n;
204
+
205
+ if (willClaimCollateral) {
206
+ const collateralTokenMint = address(SOLANA_MINT_TOKEN.mint);
207
+ const collateralTokenMintProgram = await fetchMint(rpc, collateralTokenMint);
208
+
209
+ const [userCollateralAccount] = await getProgramDerivedAddress({
210
+ programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
211
+ seeds: [
212
+ addressEncoder.encode(orderUserAddress),
213
+ addressEncoder.encode(collateralTokenMintProgram.programAddress),
214
+ addressEncoder.encode(collateralTokenMint),
215
+ ],
216
+ });
217
+
218
+ userCollateralTokenAccount = userCollateralAccount;
219
+
220
+ // Check if user's collateral token account exists, create if needed
221
+ const userCollateralTokenAccountInfo = await fetchEncodedAccount(rpc, userCollateralTokenAccount);
222
+ if (!userCollateralTokenAccountInfo.exists) {
223
+ const createCollateralTokenAccountIx = await getCreateAssociatedTokenInstructionAsync({
224
+ payer: createNoopSigner(orderUserAddress),
225
+ ata: userCollateralTokenAccount,
226
+ owner: orderUserAddress,
227
+ mint: collateralTokenMint,
228
+ tokenProgram: collateralTokenMintProgram.programAddress,
229
+ });
230
+ instructions.push(createCollateralTokenAccountIx);
231
+ }
232
+ }
233
+
234
+ const collateralTokenMint = address(SOLANA_MINT_TOKEN.mint);
235
+ const collateralTokenMintProgram = await fetchMint(rpc, collateralTokenMint);
236
+
237
+ const [guardCollateralTokenAccount] = await getProgramDerivedAddress({
238
+ programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
239
+ seeds: [
240
+ addressEncoder.encode(guardAddress),
241
+ addressEncoder.encode(collateralTokenMintProgram.programAddress),
242
+ addressEncoder.encode(collateralTokenMint),
243
+ ],
244
+ });
245
+
246
+ // Create the cancel order instruction
247
+ const cancelOrderIx = getCancelOrderInstruction({
248
+ user: createNoopSigner(orderUserAddress),
249
+ order: orderId,
250
+ guard: guardAddress,
251
+ recoveredTokenMint: recoverTokenMint,
252
+ userRecoveredTokenAccount: userRecoveredTokenAccount,
253
+ guardRecoveredTokenAccount: guardRecoveredTokenAccount,
254
+ recoveredTokenProgram: recoverTokenMintProgram.programAddress,
255
+ collateralTokenMint: collateralTokenMint,
256
+ userCollateralTokenAccount: userCollateralTokenAccount,
257
+ guardCollateralTokenAccount: guardCollateralTokenAccount,
258
+ collateralTokenProgram: collateralTokenMintProgram.programAddress,
259
+ });
260
+
261
+ instructions.push(cancelOrderIx);
262
+
263
+ return instructions;
264
+ }
@@ -7,24 +7,21 @@
7
7
  */
8
8
 
9
9
  import {
10
- type Account,
11
10
  assertAccountExists,
12
11
  assertAccountsExist,
13
12
  decodeAccount,
13
+ fetchEncodedAccount,
14
+ fetchEncodedAccounts,
15
+ type Account,
14
16
  type EncodedAccount,
15
17
  type FetchAccountConfig,
16
18
  type FetchAccountsConfig,
17
- fetchEncodedAccount,
18
- fetchEncodedAccounts,
19
19
  type MaybeAccount,
20
20
  type MaybeEncodedAccount,
21
21
  } from '@solana/kit';
22
- import { type Address, getAddressDecoder, getAddressEncoder } from '@solana/kit';
22
+ import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/kit';
23
23
  import {
24
- type Codec,
25
24
  combineCodec,
26
- type Decoder,
27
- type Encoder,
28
25
  fixDecoderSize,
29
26
  fixEncoderSize,
30
27
  getBytesDecoder,
@@ -33,8 +30,11 @@ import {
33
30
  getStructEncoder,
34
31
  getU8Decoder,
35
32
  getU8Encoder,
36
- type ReadonlyUint8Array,
37
33
  transformEncoder,
34
+ type Codec,
35
+ type Decoder,
36
+ type Encoder,
37
+ type ReadonlyUint8Array,
38
38
  } from '@solana/kit';
39
39
 
40
40
  export const ADMIN_SINGLETON_DISCRIMINATOR = new Uint8Array([179, 22, 254, 245, 204, 230, 222, 194]);
@@ -47,6 +47,8 @@ export type AdminSingleton = {
47
47
  discriminator: ReadonlyUint8Array;
48
48
  /** Guard admin */
49
49
  admin: Address;
50
+ /** Pending guard admin */
51
+ pendingAdmin: Address;
50
52
  /** PDA bump */
51
53
  bump: number;
52
54
  };
@@ -54,6 +56,8 @@ export type AdminSingleton = {
54
56
  export type AdminSingletonArgs = {
55
57
  /** Guard admin */
56
58
  admin: Address;
59
+ /** Pending guard admin */
60
+ pendingAdmin: Address;
57
61
  /** PDA bump */
58
62
  bump: number;
59
63
  };
@@ -63,6 +67,7 @@ export function getAdminSingletonEncoder(): Encoder<AdminSingletonArgs> {
63
67
  getStructEncoder([
64
68
  ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
65
69
  ['admin', getAddressEncoder()],
70
+ ['pendingAdmin', getAddressEncoder()],
66
71
  ['bump', getU8Encoder()],
67
72
  ]),
68
73
  (value) => ({ ...value, discriminator: ADMIN_SINGLETON_DISCRIMINATOR }),
@@ -73,6 +78,7 @@ export function getAdminSingletonDecoder(): Decoder<AdminSingleton> {
73
78
  return getStructDecoder([
74
79
  ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
75
80
  ['admin', getAddressDecoder()],
81
+ ['pendingAdmin', getAddressDecoder()],
76
82
  ['bump', getU8Decoder()],
77
83
  ]);
78
84
  }
@@ -132,5 +138,5 @@ export async function fetchAllMaybeAdminSingleton(
132
138
  }
133
139
 
134
140
  export function getAdminSingletonSize(): number {
135
- return 41;
141
+ return 73;
136
142
  }
@@ -7,36 +7,36 @@
7
7
  */
8
8
 
9
9
  import {
10
- type Account,
11
10
  assertAccountExists,
12
11
  assertAccountsExist,
13
12
  decodeAccount,
13
+ fetchEncodedAccount,
14
+ fetchEncodedAccounts,
15
+ type Account,
14
16
  type EncodedAccount,
15
17
  type FetchAccountConfig,
16
18
  type FetchAccountsConfig,
17
- fetchEncodedAccount,
18
- fetchEncodedAccounts,
19
19
  type MaybeAccount,
20
20
  type MaybeEncodedAccount,
21
21
  } from '@solana/kit';
22
- import { type Address, getAddressDecoder, getAddressEncoder } from '@solana/kit';
22
+ import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/kit';
23
23
  import {
24
- type Codec,
25
24
  combineCodec,
26
- type Decoder,
27
- type Encoder,
28
25
  fixDecoderSize,
29
26
  fixEncoderSize,
30
27
  getBytesDecoder,
31
28
  getBytesEncoder,
32
29
  getStructDecoder,
33
30
  getStructEncoder,
34
- getU8Decoder,
35
- getU8Encoder,
36
31
  getU64Decoder,
37
32
  getU64Encoder,
38
- type ReadonlyUint8Array,
33
+ getU8Decoder,
34
+ getU8Encoder,
39
35
  transformEncoder,
36
+ type Codec,
37
+ type Decoder,
38
+ type Encoder,
39
+ type ReadonlyUint8Array,
40
40
  } from '@solana/kit';
41
41
 
42
42
  export const GUARD_DISCRIMINATOR = new Uint8Array([54, 187, 84, 137, 192, 15, 74, 248]);