@shogun-sdk/intents-sdk 1.2.1 → 1.2.3

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 (445) hide show
  1. package/README.md +616 -55
  2. package/dist/esm/constants.js +21 -26
  3. package/dist/esm/constants.js.map +1 -1
  4. package/dist/esm/core/evm/abi/source-chain-guard.js +32 -628
  5. package/dist/esm/core/evm/abi/source-chain-guard.js.map +1 -1
  6. package/dist/esm/core/evm/cross-chain-limit-order.js +43 -0
  7. package/dist/esm/core/evm/cross-chain-limit-order.js.map +1 -0
  8. package/dist/esm/core/evm/intent-helpers.js +130 -0
  9. package/dist/esm/core/evm/intent-helpers.js.map +1 -0
  10. package/dist/esm/core/evm/single-chain-dca-order.js +49 -0
  11. package/dist/esm/core/evm/single-chain-dca-order.js.map +1 -0
  12. package/dist/esm/core/evm/single-chain-limit-order.js +45 -0
  13. package/dist/esm/core/evm/single-chain-limit-order.js.map +1 -0
  14. package/dist/esm/core/evm/types.js +8 -0
  15. package/dist/esm/core/evm/types.js.map +1 -0
  16. package/dist/esm/core/orders/common.js +3 -3
  17. package/dist/esm/core/orders/common.js.map +1 -1
  18. package/dist/esm/core/orders/cross-chain.js +2 -2
  19. package/dist/esm/core/orders/cross-chain.js.map +1 -1
  20. package/dist/esm/core/orders/dca-single-chain.js +4 -1
  21. package/dist/esm/core/orders/dca-single-chain.js.map +1 -1
  22. package/dist/esm/core/orders/single-chain.js +8 -1
  23. package/dist/esm/core/orders/single-chain.js.map +1 -1
  24. package/dist/esm/core/solana/cancel-order.js.map +1 -1
  25. package/dist/esm/core/solana/client.js +1 -1
  26. package/dist/esm/core/solana/client.js.map +1 -1
  27. package/dist/esm/core/solana/cross-chain-limit-order.js +18 -0
  28. package/dist/esm/core/solana/cross-chain-limit-order.js.map +1 -0
  29. package/dist/esm/core/solana/dca/cancel-order.js.map +1 -1
  30. package/dist/esm/core/solana/dca/create-order.js.map +1 -1
  31. package/dist/esm/core/solana/dca/single-chain-dca-order.js +23 -0
  32. package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +1 -0
  33. package/dist/esm/core/solana/dca/single-chain-limit-order.js +29 -0
  34. package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +1 -0
  35. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js +6 -4
  36. package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js.map +1 -1
  37. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js +90 -0
  38. package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js.map +1 -0
  39. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js +6 -4
  40. package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js.map +1 -1
  41. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js +1 -0
  42. package/dist/esm/core/solana/generated/cross-chain/accounts/index.js.map +1 -1
  43. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js +3 -3
  44. package/dist/esm/core/solana/generated/cross-chain/accounts/order.js.map +1 -1
  45. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js +111 -6
  46. package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js.map +1 -1
  47. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js +5 -8
  48. package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js.map +1 -1
  49. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js +118 -0
  50. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js.map +1 -0
  51. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js +5 -8
  52. package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js.map +1 -1
  53. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js +5 -8
  54. package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js.map +1 -1
  55. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js +8 -9
  56. package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js.map +1 -1
  57. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js +170 -0
  58. package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js.map +1 -0
  59. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js +10 -16
  60. package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js.map +1 -1
  61. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js +8 -6
  62. package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js.map +1 -1
  63. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js +2 -0
  64. package/dist/esm/core/solana/generated/cross-chain/instructions/index.js.map +1 -1
  65. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js +11 -12
  66. package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js.map +1 -1
  67. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js +8 -9
  68. package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js.map +1 -1
  69. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js +4 -4
  70. package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js.map +1 -1
  71. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js +17 -7
  72. package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js.map +1 -1
  73. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js +8 -9
  74. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js.map +1 -1
  75. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js +7 -5
  76. package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js.map +1 -1
  77. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js +28 -16
  78. package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js.map +1 -1
  79. package/dist/esm/core/solana/generated/cross-chain/shared/index.js +5 -5
  80. package/dist/esm/core/solana/generated/cross-chain/shared/index.js.map +1 -1
  81. package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js.map +1 -1
  82. package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js.map +1 -1
  83. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js +32 -0
  84. package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js.map +1 -0
  85. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js +42 -0
  86. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js.map +1 -0
  87. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js +26 -0
  88. package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js.map +1 -0
  89. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js +28 -0
  90. package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js.map +1 -0
  91. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js +26 -0
  92. package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js.map +1 -0
  93. package/dist/esm/core/solana/generated/cross-chain/types/index.js +5 -0
  94. package/dist/esm/core/solana/generated/cross-chain/types/index.js.map +1 -1
  95. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js +6 -4
  96. package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js.map +1 -1
  97. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js +3 -3
  98. package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js.map +1 -1
  99. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js +3 -3
  100. package/dist/esm/core/solana/generated/single-chain/accounts/guard.js.map +1 -1
  101. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js +3 -3
  102. package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js.map +1 -1
  103. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js +3 -3
  104. package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js.map +1 -1
  105. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js +5 -8
  106. package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js.map +1 -1
  107. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js +8 -9
  108. package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js.map +1 -1
  109. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js +8 -9
  110. package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js.map +1 -1
  111. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js +8 -9
  112. package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js.map +1 -1
  113. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js +8 -6
  114. package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js.map +1 -1
  115. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js +8 -6
  116. package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js.map +1 -1
  117. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js +8 -6
  118. package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js.map +1 -1
  119. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js +9 -6
  120. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js.map +1 -1
  121. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js +9 -6
  122. package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js.map +1 -1
  123. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js +9 -10
  124. package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js.map +1 -1
  125. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js +4 -4
  126. package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js.map +1 -1
  127. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js +17 -7
  128. package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js.map +1 -1
  129. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js +2 -2
  130. package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js.map +1 -1
  131. package/dist/esm/core/solana/generated/single-chain/shared/index.js +5 -5
  132. package/dist/esm/core/solana/generated/single-chain/shared/index.js.map +1 -1
  133. package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js.map +1 -1
  134. package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js.map +1 -1
  135. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js.map +1 -1
  136. package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js.map +1 -1
  137. package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js.map +1 -1
  138. package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js.map +1 -1
  139. package/dist/esm/core/solana/inspect.js +1 -1
  140. package/dist/esm/core/solana/intent-helpers.js +177 -0
  141. package/dist/esm/core/solana/intent-helpers.js.map +1 -0
  142. package/dist/esm/core/solana/order-instructions.js.map +1 -1
  143. package/dist/esm/core/solana/sdk.js +4 -1
  144. package/dist/esm/core/solana/sdk.js.map +1 -1
  145. package/dist/esm/core/sui/cancel.js +1 -1
  146. package/dist/esm/core/sui/cancel.js.map +1 -1
  147. package/dist/esm/core/sui/cross-chain-limit-order.js +26 -0
  148. package/dist/esm/core/sui/cross-chain-limit-order.js.map +1 -0
  149. package/dist/esm/core/sui/intent-helpers.js +136 -0
  150. package/dist/esm/core/sui/intent-helpers.js.map +1 -0
  151. package/dist/esm/core/sui/order-transaction.js +5 -4
  152. package/dist/esm/core/sui/order-transaction.js.map +1 -1
  153. package/dist/esm/core/sui/sdk.js +1 -1
  154. package/dist/esm/core/sui/sdk.js.map +1 -1
  155. package/dist/esm/core/sui/single-chain-dca-order.js +99 -0
  156. package/dist/esm/core/sui/single-chain-dca-order.js.map +1 -0
  157. package/dist/esm/core/sui/single-chain-limit-order.js +103 -0
  158. package/dist/esm/core/sui/single-chain-limit-order.js.map +1 -0
  159. package/dist/esm/core/sui/validator.js +1 -2
  160. package/dist/esm/core/sui/validator.js.map +1 -1
  161. package/dist/esm/index.js +15 -0
  162. package/dist/esm/index.js.map +1 -1
  163. package/dist/types/constants.d.ts +3 -4
  164. package/dist/types/constants.d.ts.map +1 -1
  165. package/dist/types/core/evm/abi/source-chain-guard.d.ts +18 -484
  166. package/dist/types/core/evm/abi/source-chain-guard.d.ts.map +1 -1
  167. package/dist/types/core/evm/cross-chain-limit-order.d.ts +22 -0
  168. package/dist/types/core/evm/cross-chain-limit-order.d.ts.map +1 -0
  169. package/dist/types/core/evm/intent-helpers.d.ts +105 -0
  170. package/dist/types/core/evm/intent-helpers.d.ts.map +1 -0
  171. package/dist/types/core/evm/single-chain-dca-order.d.ts +26 -0
  172. package/dist/types/core/evm/single-chain-dca-order.d.ts.map +1 -0
  173. package/dist/types/core/evm/single-chain-limit-order.d.ts +23 -0
  174. package/dist/types/core/evm/single-chain-limit-order.d.ts.map +1 -0
  175. package/dist/types/core/evm/types.d.ts +8 -0
  176. package/dist/types/core/evm/types.d.ts.map +1 -0
  177. package/dist/types/core/orders/common.d.ts +2 -2
  178. package/dist/types/core/orders/common.d.ts.map +1 -1
  179. package/dist/types/core/orders/cross-chain.d.ts +1 -1
  180. package/dist/types/core/orders/cross-chain.d.ts.map +1 -1
  181. package/dist/types/core/orders/dca-single-chain.d.ts.map +1 -1
  182. package/dist/types/core/orders/single-chain.d.ts +1 -0
  183. package/dist/types/core/orders/single-chain.d.ts.map +1 -1
  184. package/dist/types/core/solana/cancel-order.d.ts +3 -3
  185. package/dist/types/core/solana/cancel-order.d.ts.map +1 -1
  186. package/dist/types/core/solana/cross-chain-limit-order.d.ts +9 -0
  187. package/dist/types/core/solana/cross-chain-limit-order.d.ts.map +1 -0
  188. package/dist/types/core/solana/dca/cancel-order.d.ts +2 -2
  189. package/dist/types/core/solana/dca/cancel-order.d.ts.map +1 -1
  190. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +14 -0
  191. package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +1 -0
  192. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +19 -0
  193. package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +1 -0
  194. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts +6 -6
  195. package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts.map +1 -1
  196. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts +110 -0
  197. package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts.map +1 -0
  198. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts +10 -6
  199. package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts.map +1 -1
  200. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts +1 -0
  201. package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts.map +1 -1
  202. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts +6 -6
  203. package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts.map +1 -1
  204. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts +76 -6
  205. package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts.map +1 -1
  206. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts +12 -12
  207. package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts.map +1 -1
  208. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts +124 -0
  209. package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts.map +1 -0
  210. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts +12 -12
  211. package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts.map +1 -1
  212. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts +12 -12
  213. package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts.map +1 -1
  214. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts +15 -15
  215. package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts.map +1 -1
  216. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts +130 -0
  217. package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts.map +1 -0
  218. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts +16 -12
  219. package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts.map +1 -1
  220. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts +12 -12
  221. package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts.map +1 -1
  222. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts +2 -0
  223. package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts.map +1 -1
  224. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts +12 -12
  225. package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts.map +1 -1
  226. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts +12 -12
  227. package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts.map +1 -1
  228. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts +11 -11
  229. package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts.map +1 -1
  230. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts +11 -11
  231. package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts.map +1 -1
  232. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts +12 -12
  233. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts.map +1 -1
  234. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts +11 -11
  235. package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts.map +1 -1
  236. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts +25 -18
  237. package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts.map +1 -1
  238. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts +5 -5
  239. package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts.map +1 -1
  240. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts +4 -4
  241. package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts.map +1 -1
  242. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts +4 -4
  243. package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts.map +1 -1
  244. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts +4 -4
  245. package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts.map +1 -1
  246. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts +28 -0
  247. package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts.map +1 -0
  248. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts +38 -0
  249. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts.map +1 -0
  250. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts +18 -0
  251. package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts.map +1 -0
  252. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts +24 -0
  253. package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts.map +1 -0
  254. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts +4 -4
  255. package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts.map +1 -1
  256. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts +18 -0
  257. package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts.map +1 -0
  258. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts +4 -4
  259. package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts.map +1 -1
  260. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts +5 -0
  261. package/dist/types/core/solana/generated/cross-chain/types/index.d.ts.map +1 -1
  262. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts +4 -4
  263. package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts.map +1 -1
  264. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts +4 -4
  265. package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts.map +1 -1
  266. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts +4 -4
  267. package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts.map +1 -1
  268. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts +4 -4
  269. package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts.map +1 -1
  270. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts +6 -6
  271. package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts.map +1 -1
  272. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts +3 -3
  273. package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts.map +1 -1
  274. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts +6 -6
  275. package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts.map +1 -1
  276. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts +3 -3
  277. package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts.map +1 -1
  278. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts +2 -2
  279. package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts.map +1 -1
  280. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts +12 -12
  281. package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts.map +1 -1
  282. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts +12 -12
  283. package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts.map +1 -1
  284. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts +12 -12
  285. package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts.map +1 -1
  286. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts +12 -12
  287. package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts.map +1 -1
  288. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts +9 -9
  289. package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts.map +1 -1
  290. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts +11 -11
  291. package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts.map +1 -1
  292. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts +9 -9
  293. package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts.map +1 -1
  294. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts +11 -11
  295. package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts.map +1 -1
  296. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts +11 -11
  297. package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts.map +1 -1
  298. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts +12 -12
  299. package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts.map +1 -1
  300. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts +11 -11
  301. package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts.map +1 -1
  302. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts +11 -11
  303. package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts.map +1 -1
  304. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts +2 -2
  305. package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts.map +1 -1
  306. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts +5 -5
  307. package/dist/types/core/solana/generated/single-chain/shared/index.d.ts.map +1 -1
  308. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts +4 -4
  309. package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts.map +1 -1
  310. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts +4 -4
  311. package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts.map +1 -1
  312. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts +4 -4
  313. package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts.map +1 -1
  314. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts +4 -4
  315. package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts.map +1 -1
  316. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts +4 -4
  317. package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts.map +1 -1
  318. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts +4 -4
  319. package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts.map +1 -1
  320. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts +4 -4
  321. package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts.map +1 -1
  322. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts +4 -4
  323. package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts.map +1 -1
  324. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts +4 -4
  325. package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts.map +1 -1
  326. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts +4 -4
  327. package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts.map +1 -1
  328. package/dist/types/core/solana/intent-helpers.d.ts +120 -0
  329. package/dist/types/core/solana/intent-helpers.d.ts.map +1 -0
  330. package/dist/types/core/solana/sdk.d.ts.map +1 -1
  331. package/dist/types/core/sui/cross-chain-limit-order.d.ts +14 -0
  332. package/dist/types/core/sui/cross-chain-limit-order.d.ts.map +1 -0
  333. package/dist/types/core/sui/intent-helpers.d.ts +89 -0
  334. package/dist/types/core/sui/intent-helpers.d.ts.map +1 -0
  335. package/dist/types/core/sui/order-transaction.d.ts +3 -1
  336. package/dist/types/core/sui/order-transaction.d.ts.map +1 -1
  337. package/dist/types/core/sui/single-chain-dca-order.d.ts +22 -0
  338. package/dist/types/core/sui/single-chain-dca-order.d.ts.map +1 -0
  339. package/dist/types/core/sui/single-chain-limit-order.d.ts +26 -0
  340. package/dist/types/core/sui/single-chain-limit-order.d.ts.map +1 -0
  341. package/dist/types/core/sui/validator.d.ts.map +1 -1
  342. package/dist/types/index.d.ts +13 -0
  343. package/dist/types/index.d.ts.map +1 -1
  344. package/dist/types/types/intent.d.ts +13 -4
  345. package/dist/types/types/intent.d.ts.map +1 -1
  346. package/package.json +19 -9
  347. package/src/constants.ts +17 -23
  348. package/src/core/evm/abi/source-chain-guard.ts +32 -628
  349. package/src/core/evm/cross-chain-limit-order.ts +76 -0
  350. package/src/core/evm/intent-helpers.ts +204 -0
  351. package/src/core/evm/single-chain-dca-order.ts +85 -0
  352. package/src/core/evm/single-chain-limit-order.ts +78 -0
  353. package/src/core/evm/types.ts +15 -0
  354. package/src/core/orders/common.ts +4 -4
  355. package/src/core/orders/cross-chain.ts +2 -2
  356. package/src/core/orders/dca-single-chain.ts +4 -1
  357. package/src/core/orders/single-chain.ts +10 -1
  358. package/src/core/solana/cancel-order.ts +5 -5
  359. package/src/core/solana/client.ts +1 -1
  360. package/src/core/solana/cross-chain-limit-order.ts +24 -0
  361. package/src/core/solana/dca/cancel-order.ts +3 -3
  362. package/src/core/solana/dca/create-order.ts +2 -2
  363. package/src/core/solana/dca/single-chain-dca-order.ts +32 -0
  364. package/src/core/solana/dca/single-chain-limit-order.ts +45 -0
  365. package/src/core/solana/generated/cross-chain/accounts/adminSingleton.ts +20 -18
  366. package/src/core/solana/generated/cross-chain/accounts/dcaOrder.ts +248 -0
  367. package/src/core/solana/generated/cross-chain/accounts/guard.ts +24 -18
  368. package/src/core/solana/generated/cross-chain/accounts/index.ts +1 -0
  369. package/src/core/solana/generated/cross-chain/accounts/order.ts +17 -17
  370. package/src/core/solana/generated/cross-chain/errors/sourceChainGuard.ts +154 -9
  371. package/src/core/solana/generated/cross-chain/instructions/acceptAdmin.ts +44 -34
  372. package/src/core/solana/generated/cross-chain/instructions/cancelDcaOrder.ts +409 -0
  373. package/src/core/solana/generated/cross-chain/instructions/cancelOrder.ts +49 -41
  374. package/src/core/solana/generated/cross-chain/instructions/claimTokens.ts +54 -44
  375. package/src/core/solana/generated/cross-chain/instructions/collectProtocolFees.ts +52 -43
  376. package/src/core/solana/generated/cross-chain/instructions/createDcaOrder.ts +496 -0
  377. package/src/core/solana/generated/cross-chain/instructions/createGuard.ts +72 -54
  378. package/src/core/solana/generated/cross-chain/instructions/createOrder.ts +60 -42
  379. package/src/core/solana/generated/cross-chain/instructions/index.ts +2 -0
  380. package/src/core/solana/generated/cross-chain/instructions/initialize.ts +60 -42
  381. package/src/core/solana/generated/cross-chain/instructions/preStartOrderExecution.ts +55 -45
  382. package/src/core/solana/generated/cross-chain/instructions/setAdmin.ts +48 -30
  383. package/src/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.ts +88 -40
  384. package/src/core/solana/generated/cross-chain/instructions/startOrderExecution.ts +48 -39
  385. package/src/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.ts +45 -37
  386. package/src/core/solana/generated/cross-chain/programs/sourceChainGuard.ts +118 -37
  387. package/src/core/solana/generated/cross-chain/shared/index.ts +23 -14
  388. package/src/core/solana/generated/cross-chain/types/adminUpdateStarted.ts +9 -6
  389. package/src/core/solana/generated/cross-chain/types/adminUpdated.ts +6 -6
  390. package/src/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.ts +9 -6
  391. package/src/core/solana/generated/cross-chain/types/dcaExecutionStarted.ts +70 -0
  392. package/src/core/solana/generated/cross-chain/types/dcaOrderCreated.ts +92 -0
  393. package/src/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.ts +52 -0
  394. package/src/core/solana/generated/cross-chain/types/dcaTokenInSwapped.ts +62 -0
  395. package/src/core/solana/generated/cross-chain/types/executionStarted.ts +6 -6
  396. package/src/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.ts +55 -0
  397. package/src/core/solana/generated/cross-chain/types/guardCreated.ts +6 -6
  398. package/src/core/solana/generated/cross-chain/types/index.ts +5 -0
  399. package/src/core/solana/generated/cross-chain/types/orderCancelled.ts +6 -6
  400. package/src/core/solana/generated/cross-chain/types/orderCreated.ts +6 -6
  401. package/src/core/solana/generated/cross-chain/types/orderFulfilled.ts +6 -6
  402. package/src/core/solana/generated/cross-chain/types/tokenInSwapped.ts +6 -6
  403. package/src/core/solana/generated/single-chain/accounts/adminSingleton.ts +20 -18
  404. package/src/core/solana/generated/single-chain/accounts/dcaOrder.ts +11 -11
  405. package/src/core/solana/generated/single-chain/accounts/guard.ts +17 -17
  406. package/src/core/solana/generated/single-chain/accounts/limitOrder.ts +11 -11
  407. package/src/core/solana/generated/single-chain/errors/singleChainGuard.ts +10 -5
  408. package/src/core/solana/generated/single-chain/instructions/acceptAdmin.ts +44 -34
  409. package/src/core/solana/generated/single-chain/instructions/cancelDcaOrder.ts +54 -40
  410. package/src/core/solana/generated/single-chain/instructions/cancelLimitOrder.ts +51 -40
  411. package/src/core/solana/generated/single-chain/instructions/collectProtocolFees.ts +55 -42
  412. package/src/core/solana/generated/single-chain/instructions/createDcaOrder.ts +60 -38
  413. package/src/core/solana/generated/single-chain/instructions/createGuard.ts +69 -42
  414. package/src/core/solana/generated/single-chain/instructions/createLimitOrder.ts +57 -38
  415. package/src/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.ts +78 -55
  416. package/src/core/solana/generated/single-chain/instructions/fulfillLimitOrder.ts +81 -55
  417. package/src/core/solana/generated/single-chain/instructions/initialize.ts +58 -40
  418. package/src/core/solana/generated/single-chain/instructions/setAdmin.ts +48 -30
  419. package/src/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.ts +88 -40
  420. package/src/core/solana/generated/single-chain/programs/singleChainGuard.ts +76 -37
  421. package/src/core/solana/generated/single-chain/shared/index.ts +23 -14
  422. package/src/core/solana/generated/single-chain/types/adminUpdateStarted.ts +9 -6
  423. package/src/core/solana/generated/single-chain/types/adminUpdated.ts +6 -6
  424. package/src/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.ts +9 -6
  425. package/src/core/solana/generated/single-chain/types/dcaOrderCreated.ts +6 -6
  426. package/src/core/solana/generated/single-chain/types/dcaOrderFulfilled.ts +9 -6
  427. package/src/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.ts +9 -6
  428. package/src/core/solana/generated/single-chain/types/guardCreated.ts +6 -6
  429. package/src/core/solana/generated/single-chain/types/limitOrderCreated.ts +9 -6
  430. package/src/core/solana/generated/single-chain/types/limitOrderFulfilled.ts +9 -6
  431. package/src/core/solana/generated/single-chain/types/orderCancelled.ts +6 -6
  432. package/src/core/solana/inspect.ts +1 -1
  433. package/src/core/solana/intent-helpers.ts +273 -0
  434. package/src/core/solana/order-instructions.ts +3 -3
  435. package/src/core/solana/sdk.ts +13 -4
  436. package/src/core/sui/cancel.ts +1 -1
  437. package/src/core/sui/cross-chain-limit-order.ts +34 -0
  438. package/src/core/sui/intent-helpers.ts +235 -0
  439. package/src/core/sui/order-transaction.ts +8 -4
  440. package/src/core/sui/sdk.ts +1 -1
  441. package/src/core/sui/single-chain-dca-order.ts +139 -0
  442. package/src/core/sui/single-chain-limit-order.ts +143 -0
  443. package/src/core/sui/validator.ts +1 -2
  444. package/src/index.ts +55 -0
  445. package/src/types/intent.ts +15 -4
@@ -0,0 +1,496 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import { getAddressEncoder, getProgramDerivedAddress, type Address } from '@solana/addresses';
10
+ import {
11
+ combineCodec,
12
+ fixDecoderSize,
13
+ fixEncoderSize,
14
+ getBytesDecoder,
15
+ getBytesEncoder,
16
+ getStructDecoder,
17
+ getStructEncoder,
18
+ getU32Decoder,
19
+ getU32Encoder,
20
+ getU64Decoder,
21
+ getU64Encoder,
22
+ transformEncoder,
23
+ type FixedSizeCodec,
24
+ type FixedSizeDecoder,
25
+ type FixedSizeEncoder,
26
+ type ReadonlyUint8Array,
27
+ } from '@solana/codecs';
28
+ import {
29
+ type AccountMeta,
30
+ type Instruction,
31
+ type InstructionWithAccounts,
32
+ type InstructionWithData,
33
+ type ReadonlyAccount,
34
+ type WritableAccount,
35
+ type WritableSignerAccount,
36
+ } from '@solana/instructions';
37
+ import { type AccountSignerMeta, type TransactionSigner } from '@solana/signers';
38
+ import { SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS } from '../programs/index.js';
39
+ import { expectAddress, getAccountMetaFactory, type ResolvedAccount } from '../shared/index.js';
40
+
41
+ export const CREATE_DCA_ORDER_DISCRIMINATOR = new Uint8Array([95, 66, 166, 38, 170, 3, 150, 169]);
42
+
43
+ export function getCreateDcaOrderDiscriminatorBytes() {
44
+ return fixEncoderSize(getBytesEncoder(), 8).encode(CREATE_DCA_ORDER_DISCRIMINATOR);
45
+ }
46
+
47
+ export type CreateDcaOrderInstruction<
48
+ TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
49
+ TAccountUser extends string | AccountMeta<string> = string,
50
+ TAccountOrder extends string | AccountMeta<string> = string,
51
+ TAccountGuard extends string | AccountMeta<string> = string,
52
+ TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111',
53
+ TAccountAssociatedTokenProgram extends
54
+ | string
55
+ | AccountMeta<string> = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
56
+ TAccountTokenInMint extends string | AccountMeta<string> = string,
57
+ TAccountUserTokenInAccount extends string | AccountMeta<string> = string,
58
+ TAccountGuardTokenInAccount extends string | AccountMeta<string> = string,
59
+ TAccountTokenInProgram extends string | AccountMeta<string> = string,
60
+ TRemainingAccounts extends readonly AccountMeta<string>[] = [],
61
+ > = Instruction<TProgram> &
62
+ InstructionWithData<ReadonlyUint8Array> &
63
+ InstructionWithAccounts<
64
+ [
65
+ TAccountUser extends string
66
+ ? WritableSignerAccount<TAccountUser> & AccountSignerMeta<TAccountUser>
67
+ : TAccountUser,
68
+ TAccountOrder extends string
69
+ ? WritableSignerAccount<TAccountOrder> & AccountSignerMeta<TAccountOrder>
70
+ : TAccountOrder,
71
+ TAccountGuard extends string ? ReadonlyAccount<TAccountGuard> : TAccountGuard,
72
+ TAccountSystemProgram extends string
73
+ ? ReadonlyAccount<TAccountSystemProgram>
74
+ : TAccountSystemProgram,
75
+ TAccountAssociatedTokenProgram extends string
76
+ ? ReadonlyAccount<TAccountAssociatedTokenProgram>
77
+ : TAccountAssociatedTokenProgram,
78
+ TAccountTokenInMint extends string
79
+ ? ReadonlyAccount<TAccountTokenInMint>
80
+ : TAccountTokenInMint,
81
+ TAccountUserTokenInAccount extends string
82
+ ? WritableAccount<TAccountUserTokenInAccount>
83
+ : TAccountUserTokenInAccount,
84
+ TAccountGuardTokenInAccount extends string
85
+ ? WritableAccount<TAccountGuardTokenInAccount>
86
+ : TAccountGuardTokenInAccount,
87
+ TAccountTokenInProgram extends string
88
+ ? ReadonlyAccount<TAccountTokenInProgram>
89
+ : TAccountTokenInProgram,
90
+ ...TRemainingAccounts,
91
+ ]
92
+ >;
93
+
94
+ export type CreateDcaOrderInstructionData = {
95
+ discriminator: ReadonlyUint8Array;
96
+ amountInPerInterval: bigint;
97
+ minStablecoinsAmountPerInterval: bigint;
98
+ totalIntervals: number;
99
+ intervalDuration: number;
100
+ deadline: number;
101
+ executionDetailsHash: ReadonlyUint8Array;
102
+ };
103
+
104
+ export type CreateDcaOrderInstructionDataArgs = {
105
+ amountInPerInterval: number | bigint;
106
+ minStablecoinsAmountPerInterval: number | bigint;
107
+ totalIntervals: number;
108
+ intervalDuration: number;
109
+ deadline: number;
110
+ executionDetailsHash: ReadonlyUint8Array;
111
+ };
112
+
113
+ export function getCreateDcaOrderInstructionDataEncoder(): FixedSizeEncoder<CreateDcaOrderInstructionDataArgs> {
114
+ return transformEncoder(
115
+ getStructEncoder([
116
+ ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
117
+ ['amountInPerInterval', getU64Encoder()],
118
+ ['minStablecoinsAmountPerInterval', getU64Encoder()],
119
+ ['totalIntervals', getU32Encoder()],
120
+ ['intervalDuration', getU32Encoder()],
121
+ ['deadline', getU32Encoder()],
122
+ ['executionDetailsHash', fixEncoderSize(getBytesEncoder(), 32)],
123
+ ]),
124
+ (value) => ({ ...value, discriminator: CREATE_DCA_ORDER_DISCRIMINATOR })
125
+ );
126
+ }
127
+
128
+ export function getCreateDcaOrderInstructionDataDecoder(): FixedSizeDecoder<CreateDcaOrderInstructionData> {
129
+ return getStructDecoder([
130
+ ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
131
+ ['amountInPerInterval', getU64Decoder()],
132
+ ['minStablecoinsAmountPerInterval', getU64Decoder()],
133
+ ['totalIntervals', getU32Decoder()],
134
+ ['intervalDuration', getU32Decoder()],
135
+ ['deadline', getU32Decoder()],
136
+ ['executionDetailsHash', fixDecoderSize(getBytesDecoder(), 32)],
137
+ ]);
138
+ }
139
+
140
+ export function getCreateDcaOrderInstructionDataCodec(): FixedSizeCodec<
141
+ CreateDcaOrderInstructionDataArgs,
142
+ CreateDcaOrderInstructionData
143
+ > {
144
+ return combineCodec(
145
+ getCreateDcaOrderInstructionDataEncoder(),
146
+ getCreateDcaOrderInstructionDataDecoder()
147
+ );
148
+ }
149
+
150
+ export type CreateDcaOrderAsyncInput<
151
+ TAccountUser extends string = string,
152
+ TAccountOrder extends string = string,
153
+ TAccountGuard extends string = string,
154
+ TAccountSystemProgram extends string = string,
155
+ TAccountAssociatedTokenProgram extends string = string,
156
+ TAccountTokenInMint extends string = string,
157
+ TAccountUserTokenInAccount extends string = string,
158
+ TAccountGuardTokenInAccount extends string = string,
159
+ TAccountTokenInProgram extends string = string,
160
+ > = {
161
+ /** User creating the DCA order */
162
+ user: TransactionSigner<TAccountUser>;
163
+ /** Account that will store DCA order data */
164
+ order: TransactionSigner<TAccountOrder>;
165
+ /** Guard address, that will protect this order execution */
166
+ guard: Address<TAccountGuard>;
167
+ /** Solana System program */
168
+ systemProgram?: Address<TAccountSystemProgram>;
169
+ /** Solana token program */
170
+ associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;
171
+ /** Token IN that user wants to spend */
172
+ tokenInMint: Address<TAccountTokenInMint>;
173
+ /** Token IN account from which user is spending tokens IN */
174
+ userTokenInAccount: Address<TAccountUserTokenInAccount>;
175
+ /** Token IN account that will store Tokens IN after DCA order creation */
176
+ guardTokenInAccount?: Address<TAccountGuardTokenInAccount>;
177
+ /** Solana token program */
178
+ tokenInProgram: Address<TAccountTokenInProgram>;
179
+ amountInPerInterval: CreateDcaOrderInstructionDataArgs['amountInPerInterval'];
180
+ minStablecoinsAmountPerInterval: CreateDcaOrderInstructionDataArgs['minStablecoinsAmountPerInterval'];
181
+ totalIntervals: CreateDcaOrderInstructionDataArgs['totalIntervals'];
182
+ intervalDuration: CreateDcaOrderInstructionDataArgs['intervalDuration'];
183
+ deadline: CreateDcaOrderInstructionDataArgs['deadline'];
184
+ executionDetailsHash: CreateDcaOrderInstructionDataArgs['executionDetailsHash'];
185
+ };
186
+
187
+ export async function getCreateDcaOrderInstructionAsync<
188
+ TAccountUser extends string,
189
+ TAccountOrder extends string,
190
+ TAccountGuard extends string,
191
+ TAccountSystemProgram extends string,
192
+ TAccountAssociatedTokenProgram extends string,
193
+ TAccountTokenInMint extends string,
194
+ TAccountUserTokenInAccount extends string,
195
+ TAccountGuardTokenInAccount extends string,
196
+ TAccountTokenInProgram extends string,
197
+ TProgramAddress extends Address = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
198
+ >(
199
+ input: CreateDcaOrderAsyncInput<
200
+ TAccountUser,
201
+ TAccountOrder,
202
+ TAccountGuard,
203
+ TAccountSystemProgram,
204
+ TAccountAssociatedTokenProgram,
205
+ TAccountTokenInMint,
206
+ TAccountUserTokenInAccount,
207
+ TAccountGuardTokenInAccount,
208
+ TAccountTokenInProgram
209
+ >,
210
+ config?: { programAddress?: TProgramAddress }
211
+ ): Promise<
212
+ CreateDcaOrderInstruction<
213
+ TProgramAddress,
214
+ TAccountUser,
215
+ TAccountOrder,
216
+ TAccountGuard,
217
+ TAccountSystemProgram,
218
+ TAccountAssociatedTokenProgram,
219
+ TAccountTokenInMint,
220
+ TAccountUserTokenInAccount,
221
+ TAccountGuardTokenInAccount,
222
+ TAccountTokenInProgram
223
+ >
224
+ > {
225
+ // Program address.
226
+ const programAddress = config?.programAddress ?? SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS;
227
+
228
+ // Original accounts.
229
+ const originalAccounts = {
230
+ user: { value: input.user ?? null, isWritable: true },
231
+ order: { value: input.order ?? null, isWritable: true },
232
+ guard: { value: input.guard ?? null, isWritable: false },
233
+ systemProgram: { value: input.systemProgram ?? null, isWritable: false },
234
+ associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false },
235
+ tokenInMint: { value: input.tokenInMint ?? null, isWritable: false },
236
+ userTokenInAccount: { value: input.userTokenInAccount ?? null, isWritable: true },
237
+ guardTokenInAccount: { value: input.guardTokenInAccount ?? null, isWritable: true },
238
+ tokenInProgram: { value: input.tokenInProgram ?? null, isWritable: false },
239
+ };
240
+ const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedAccount>;
241
+
242
+ // Original args.
243
+ const args = { ...input };
244
+
245
+ // Resolve default values.
246
+ if (!accounts.systemProgram.value) {
247
+ accounts.systemProgram.value =
248
+ '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;
249
+ }
250
+ if (!accounts.associatedTokenProgram.value) {
251
+ accounts.associatedTokenProgram.value =
252
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;
253
+ }
254
+ if (!accounts.guardTokenInAccount.value) {
255
+ accounts.guardTokenInAccount.value = await getProgramDerivedAddress({
256
+ programAddress:
257
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>,
258
+ seeds: [
259
+ getAddressEncoder().encode(expectAddress(accounts.guard.value)),
260
+ getAddressEncoder().encode(expectAddress(accounts.tokenInProgram.value)),
261
+ getAddressEncoder().encode(expectAddress(accounts.tokenInMint.value)),
262
+ ],
263
+ });
264
+ }
265
+
266
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
267
+ const instruction = {
268
+ accounts: [
269
+ getAccountMeta(accounts.user),
270
+ getAccountMeta(accounts.order),
271
+ getAccountMeta(accounts.guard),
272
+ getAccountMeta(accounts.systemProgram),
273
+ getAccountMeta(accounts.associatedTokenProgram),
274
+ getAccountMeta(accounts.tokenInMint),
275
+ getAccountMeta(accounts.userTokenInAccount),
276
+ getAccountMeta(accounts.guardTokenInAccount),
277
+ getAccountMeta(accounts.tokenInProgram),
278
+ ],
279
+ programAddress,
280
+ data: getCreateDcaOrderInstructionDataEncoder().encode(
281
+ args as CreateDcaOrderInstructionDataArgs
282
+ ),
283
+ } as CreateDcaOrderInstruction<
284
+ TProgramAddress,
285
+ TAccountUser,
286
+ TAccountOrder,
287
+ TAccountGuard,
288
+ TAccountSystemProgram,
289
+ TAccountAssociatedTokenProgram,
290
+ TAccountTokenInMint,
291
+ TAccountUserTokenInAccount,
292
+ TAccountGuardTokenInAccount,
293
+ TAccountTokenInProgram
294
+ >;
295
+
296
+ return instruction;
297
+ }
298
+
299
+ export type CreateDcaOrderInput<
300
+ TAccountUser extends string = string,
301
+ TAccountOrder extends string = string,
302
+ TAccountGuard extends string = string,
303
+ TAccountSystemProgram extends string = string,
304
+ TAccountAssociatedTokenProgram extends string = string,
305
+ TAccountTokenInMint extends string = string,
306
+ TAccountUserTokenInAccount extends string = string,
307
+ TAccountGuardTokenInAccount extends string = string,
308
+ TAccountTokenInProgram extends string = string,
309
+ > = {
310
+ /** User creating the DCA order */
311
+ user: TransactionSigner<TAccountUser>;
312
+ /** Account that will store DCA order data */
313
+ order: TransactionSigner<TAccountOrder>;
314
+ /** Guard address, that will protect this order execution */
315
+ guard: Address<TAccountGuard>;
316
+ /** Solana System program */
317
+ systemProgram?: Address<TAccountSystemProgram>;
318
+ /** Solana token program */
319
+ associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;
320
+ /** Token IN that user wants to spend */
321
+ tokenInMint: Address<TAccountTokenInMint>;
322
+ /** Token IN account from which user is spending tokens IN */
323
+ userTokenInAccount: Address<TAccountUserTokenInAccount>;
324
+ /** Token IN account that will store Tokens IN after DCA order creation */
325
+ guardTokenInAccount: Address<TAccountGuardTokenInAccount>;
326
+ /** Solana token program */
327
+ tokenInProgram: Address<TAccountTokenInProgram>;
328
+ amountInPerInterval: CreateDcaOrderInstructionDataArgs['amountInPerInterval'];
329
+ minStablecoinsAmountPerInterval: CreateDcaOrderInstructionDataArgs['minStablecoinsAmountPerInterval'];
330
+ totalIntervals: CreateDcaOrderInstructionDataArgs['totalIntervals'];
331
+ intervalDuration: CreateDcaOrderInstructionDataArgs['intervalDuration'];
332
+ deadline: CreateDcaOrderInstructionDataArgs['deadline'];
333
+ executionDetailsHash: CreateDcaOrderInstructionDataArgs['executionDetailsHash'];
334
+ };
335
+
336
+ export function getCreateDcaOrderInstruction<
337
+ TAccountUser extends string,
338
+ TAccountOrder extends string,
339
+ TAccountGuard extends string,
340
+ TAccountSystemProgram extends string,
341
+ TAccountAssociatedTokenProgram extends string,
342
+ TAccountTokenInMint extends string,
343
+ TAccountUserTokenInAccount extends string,
344
+ TAccountGuardTokenInAccount extends string,
345
+ TAccountTokenInProgram extends string,
346
+ TProgramAddress extends Address = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
347
+ >(
348
+ input: CreateDcaOrderInput<
349
+ TAccountUser,
350
+ TAccountOrder,
351
+ TAccountGuard,
352
+ TAccountSystemProgram,
353
+ TAccountAssociatedTokenProgram,
354
+ TAccountTokenInMint,
355
+ TAccountUserTokenInAccount,
356
+ TAccountGuardTokenInAccount,
357
+ TAccountTokenInProgram
358
+ >,
359
+ config?: { programAddress?: TProgramAddress }
360
+ ): CreateDcaOrderInstruction<
361
+ TProgramAddress,
362
+ TAccountUser,
363
+ TAccountOrder,
364
+ TAccountGuard,
365
+ TAccountSystemProgram,
366
+ TAccountAssociatedTokenProgram,
367
+ TAccountTokenInMint,
368
+ TAccountUserTokenInAccount,
369
+ TAccountGuardTokenInAccount,
370
+ TAccountTokenInProgram
371
+ > {
372
+ // Program address.
373
+ const programAddress = config?.programAddress ?? SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS;
374
+
375
+ // Original accounts.
376
+ const originalAccounts = {
377
+ user: { value: input.user ?? null, isWritable: true },
378
+ order: { value: input.order ?? null, isWritable: true },
379
+ guard: { value: input.guard ?? null, isWritable: false },
380
+ systemProgram: { value: input.systemProgram ?? null, isWritable: false },
381
+ associatedTokenProgram: { value: input.associatedTokenProgram ?? null, isWritable: false },
382
+ tokenInMint: { value: input.tokenInMint ?? null, isWritable: false },
383
+ userTokenInAccount: { value: input.userTokenInAccount ?? null, isWritable: true },
384
+ guardTokenInAccount: { value: input.guardTokenInAccount ?? null, isWritable: true },
385
+ tokenInProgram: { value: input.tokenInProgram ?? null, isWritable: false },
386
+ };
387
+ const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedAccount>;
388
+
389
+ // Original args.
390
+ const args = { ...input };
391
+
392
+ // Resolve default values.
393
+ if (!accounts.systemProgram.value) {
394
+ accounts.systemProgram.value =
395
+ '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;
396
+ }
397
+ if (!accounts.associatedTokenProgram.value) {
398
+ accounts.associatedTokenProgram.value =
399
+ 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;
400
+ }
401
+
402
+ const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
403
+ const instruction = {
404
+ accounts: [
405
+ getAccountMeta(accounts.user),
406
+ getAccountMeta(accounts.order),
407
+ getAccountMeta(accounts.guard),
408
+ getAccountMeta(accounts.systemProgram),
409
+ getAccountMeta(accounts.associatedTokenProgram),
410
+ getAccountMeta(accounts.tokenInMint),
411
+ getAccountMeta(accounts.userTokenInAccount),
412
+ getAccountMeta(accounts.guardTokenInAccount),
413
+ getAccountMeta(accounts.tokenInProgram),
414
+ ],
415
+ programAddress,
416
+ data: getCreateDcaOrderInstructionDataEncoder().encode(
417
+ args as CreateDcaOrderInstructionDataArgs
418
+ ),
419
+ } as CreateDcaOrderInstruction<
420
+ TProgramAddress,
421
+ TAccountUser,
422
+ TAccountOrder,
423
+ TAccountGuard,
424
+ TAccountSystemProgram,
425
+ TAccountAssociatedTokenProgram,
426
+ TAccountTokenInMint,
427
+ TAccountUserTokenInAccount,
428
+ TAccountGuardTokenInAccount,
429
+ TAccountTokenInProgram
430
+ >;
431
+
432
+ return instruction;
433
+ }
434
+
435
+ export type ParsedCreateDcaOrderInstruction<
436
+ TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
437
+ TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],
438
+ > = {
439
+ programAddress: Address<TProgram>;
440
+ accounts: {
441
+ /** User creating the DCA order */
442
+ user: TAccountMetas[0];
443
+ /** Account that will store DCA order data */
444
+ order: TAccountMetas[1];
445
+ /** Guard address, that will protect this order execution */
446
+ guard: TAccountMetas[2];
447
+ /** Solana System program */
448
+ systemProgram: TAccountMetas[3];
449
+ /** Solana token program */
450
+ associatedTokenProgram: TAccountMetas[4];
451
+ /** Token IN that user wants to spend */
452
+ tokenInMint: TAccountMetas[5];
453
+ /** Token IN account from which user is spending tokens IN */
454
+ userTokenInAccount: TAccountMetas[6];
455
+ /** Token IN account that will store Tokens IN after DCA order creation */
456
+ guardTokenInAccount: TAccountMetas[7];
457
+ /** Solana token program */
458
+ tokenInProgram: TAccountMetas[8];
459
+ };
460
+ data: CreateDcaOrderInstructionData;
461
+ };
462
+
463
+ export function parseCreateDcaOrderInstruction<
464
+ TProgram extends string,
465
+ TAccountMetas extends readonly AccountMeta[],
466
+ >(
467
+ instruction: Instruction<TProgram> &
468
+ InstructionWithAccounts<TAccountMetas> &
469
+ InstructionWithData<ReadonlyUint8Array>
470
+ ): ParsedCreateDcaOrderInstruction<TProgram, TAccountMetas> {
471
+ if (instruction.accounts.length < 9) {
472
+ // TODO: Coded error.
473
+ throw new Error('Not enough accounts');
474
+ }
475
+ let accountIndex = 0;
476
+ const getNextAccount = () => {
477
+ const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;
478
+ accountIndex += 1;
479
+ return accountMeta;
480
+ };
481
+ return {
482
+ programAddress: instruction.programAddress,
483
+ accounts: {
484
+ user: getNextAccount(),
485
+ order: getNextAccount(),
486
+ guard: getNextAccount(),
487
+ systemProgram: getNextAccount(),
488
+ associatedTokenProgram: getNextAccount(),
489
+ tokenInMint: getNextAccount(),
490
+ userTokenInAccount: getNextAccount(),
491
+ guardTokenInAccount: getNextAccount(),
492
+ tokenInProgram: getNextAccount(),
493
+ },
494
+ data: getCreateDcaOrderInstructionDataDecoder().decode(instruction.data),
495
+ };
496
+ }