@shogun-sdk/intents-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +124 -0
  2. package/dist/_esm/chains.js +46 -0
  3. package/dist/_esm/chains.js.map +1 -0
  4. package/dist/_esm/config.js +2 -0
  5. package/dist/_esm/config.js.map +1 -0
  6. package/dist/_esm/constants.js +46 -0
  7. package/dist/_esm/constants.js.map +1 -0
  8. package/dist/_esm/core/evm/abi/erc20.js +313 -0
  9. package/dist/_esm/core/evm/abi/erc20.js.map +1 -0
  10. package/dist/_esm/core/evm/abi/source-chain-guard.js +1716 -0
  11. package/dist/_esm/core/evm/abi/source-chain-guard.js.map +1 -0
  12. package/dist/_esm/core/evm/intent-provider.js +59 -0
  13. package/dist/_esm/core/evm/intent-provider.js.map +1 -0
  14. package/dist/_esm/core/evm/order-signature.js +19 -0
  15. package/dist/_esm/core/evm/order-signature.js.map +1 -0
  16. package/dist/_esm/core/evm/permit2.js +31 -0
  17. package/dist/_esm/core/evm/permit2.js.map +1 -0
  18. package/dist/_esm/core/evm/sdk.js +79 -0
  19. package/dist/_esm/core/evm/sdk.js.map +1 -0
  20. package/dist/_esm/core/evm/validator.js +46 -0
  21. package/dist/_esm/core/evm/validator.js.map +1 -0
  22. package/dist/_esm/core/evm/viem-provider.js +76 -0
  23. package/dist/_esm/core/evm/viem-provider.js.map +1 -0
  24. package/dist/_esm/core/order.js +190 -0
  25. package/dist/_esm/core/order.js.map +1 -0
  26. package/dist/_esm/core/sdk.js +120 -0
  27. package/dist/_esm/core/sdk.js.map +1 -0
  28. package/dist/_esm/core/solana/client.js +19 -0
  29. package/dist/_esm/core/solana/client.js.map +1 -0
  30. package/dist/_esm/core/solana/generated/accounts/adminSingleton.js +56 -0
  31. package/dist/_esm/core/solana/generated/accounts/adminSingleton.js.map +1 -0
  32. package/dist/_esm/core/solana/generated/accounts/guard.js +62 -0
  33. package/dist/_esm/core/solana/generated/accounts/guard.js.map +1 -0
  34. package/dist/_esm/core/solana/generated/accounts/index.js +11 -0
  35. package/dist/_esm/core/solana/generated/accounts/index.js.map +1 -0
  36. package/dist/_esm/core/solana/generated/accounts/order.js +78 -0
  37. package/dist/_esm/core/solana/generated/accounts/order.js.map +1 -0
  38. package/dist/_esm/core/solana/generated/errors/index.js +9 -0
  39. package/dist/_esm/core/solana/generated/errors/index.js.map +1 -0
  40. package/dist/_esm/core/solana/generated/errors/sourceChainGuard.js +35 -0
  41. package/dist/_esm/core/solana/generated/errors/sourceChainGuard.js.map +1 -0
  42. package/dist/_esm/core/solana/generated/index.js +13 -0
  43. package/dist/_esm/core/solana/generated/index.js.map +1 -0
  44. package/dist/_esm/core/solana/generated/instructions/cancelOrder.js +125 -0
  45. package/dist/_esm/core/solana/generated/instructions/cancelOrder.js.map +1 -0
  46. package/dist/_esm/core/solana/generated/instructions/claimTokens.js +142 -0
  47. package/dist/_esm/core/solana/generated/instructions/claimTokens.js.map +1 -0
  48. package/dist/_esm/core/solana/generated/instructions/collectProtocolFees.js +146 -0
  49. package/dist/_esm/core/solana/generated/instructions/collectProtocolFees.js.map +1 -0
  50. package/dist/_esm/core/solana/generated/instructions/createGuard.js +236 -0
  51. package/dist/_esm/core/solana/generated/instructions/createGuard.js.map +1 -0
  52. package/dist/_esm/core/solana/generated/instructions/createOrder.js +182 -0
  53. package/dist/_esm/core/solana/generated/instructions/createOrder.js.map +1 -0
  54. package/dist/_esm/core/solana/generated/instructions/index.js +19 -0
  55. package/dist/_esm/core/solana/generated/instructions/index.js.map +1 -0
  56. package/dist/_esm/core/solana/generated/instructions/initialize.js +109 -0
  57. package/dist/_esm/core/solana/generated/instructions/initialize.js.map +1 -0
  58. package/dist/_esm/core/solana/generated/instructions/preStartOrderExecution.js +123 -0
  59. package/dist/_esm/core/solana/generated/instructions/preStartOrderExecution.js.map +1 -0
  60. package/dist/_esm/core/solana/generated/instructions/setAdmin.js +98 -0
  61. package/dist/_esm/core/solana/generated/instructions/setAdmin.js.map +1 -0
  62. package/dist/_esm/core/solana/generated/instructions/setAuctioneerPubKey.js +104 -0
  63. package/dist/_esm/core/solana/generated/instructions/setAuctioneerPubKey.js.map +1 -0
  64. package/dist/_esm/core/solana/generated/instructions/startOrderExecution.js +105 -0
  65. package/dist/_esm/core/solana/generated/instructions/startOrderExecution.js.map +1 -0
  66. package/dist/_esm/core/solana/generated/instructions/startOrderExecutionAfterSwap.js +113 -0
  67. package/dist/_esm/core/solana/generated/instructions/startOrderExecutionAfterSwap.js.map +1 -0
  68. package/dist/_esm/core/solana/generated/programs/index.js +9 -0
  69. package/dist/_esm/core/solana/generated/programs/index.js.map +1 -0
  70. package/dist/_esm/core/solana/generated/programs/sourceChainGuard.js +82 -0
  71. package/dist/_esm/core/solana/generated/programs/sourceChainGuard.js.map +1 -0
  72. package/dist/_esm/core/solana/generated/shared/index.js +82 -0
  73. package/dist/_esm/core/solana/generated/shared/index.js.map +1 -0
  74. package/dist/_esm/core/solana/generated/types/adminUpdated.js +18 -0
  75. package/dist/_esm/core/solana/generated/types/adminUpdated.js.map +1 -0
  76. package/dist/_esm/core/solana/generated/types/auctioneerPubkeyUpdated.js +24 -0
  77. package/dist/_esm/core/solana/generated/types/auctioneerPubkeyUpdated.js.map +1 -0
  78. package/dist/_esm/core/solana/generated/types/executionStarted.js +30 -0
  79. package/dist/_esm/core/solana/generated/types/executionStarted.js.map +1 -0
  80. package/dist/_esm/core/solana/generated/types/guardCreated.js +28 -0
  81. package/dist/_esm/core/solana/generated/types/guardCreated.js.map +1 -0
  82. package/dist/_esm/core/solana/generated/types/index.js +16 -0
  83. package/dist/_esm/core/solana/generated/types/index.js.map +1 -0
  84. package/dist/_esm/core/solana/generated/types/orderCancelled.js +18 -0
  85. package/dist/_esm/core/solana/generated/types/orderCancelled.js.map +1 -0
  86. package/dist/_esm/core/solana/generated/types/orderCreated.js +36 -0
  87. package/dist/_esm/core/solana/generated/types/orderCreated.js.map +1 -0
  88. package/dist/_esm/core/solana/generated/types/orderFulfilled.js +18 -0
  89. package/dist/_esm/core/solana/generated/types/orderFulfilled.js.map +1 -0
  90. package/dist/_esm/core/solana/generated/types/tokenInSwapped.js +26 -0
  91. package/dist/_esm/core/solana/generated/types/tokenInSwapped.js.map +1 -0
  92. package/dist/_esm/core/solana/order-instructions.js +92 -0
  93. package/dist/_esm/core/solana/order-instructions.js.map +1 -0
  94. package/dist/_esm/core/solana/sdk.js +111 -0
  95. package/dist/_esm/core/solana/sdk.js.map +1 -0
  96. package/dist/_esm/core/solana/validator.js +22 -0
  97. package/dist/_esm/core/solana/validator.js.map +1 -0
  98. package/dist/_esm/core/sui/client.js +3 -0
  99. package/dist/_esm/core/sui/client.js.map +1 -0
  100. package/dist/_esm/core/sui/order-transaction.js +56 -0
  101. package/dist/_esm/core/sui/order-transaction.js.map +1 -0
  102. package/dist/_esm/core/sui/sdk.js +94 -0
  103. package/dist/_esm/core/sui/sdk.js.map +1 -0
  104. package/dist/_esm/core/sui/validator.js +25 -0
  105. package/dist/_esm/core/sui/validator.js.map +1 -0
  106. package/dist/_esm/errors/index.js +94 -0
  107. package/dist/_esm/errors/index.js.map +1 -0
  108. package/dist/_esm/index.js +7 -0
  109. package/dist/_esm/index.js.map +1 -0
  110. package/dist/_esm/package.json +1 -0
  111. package/dist/_esm/types/intent.js +2 -0
  112. package/dist/_esm/types/intent.js.map +1 -0
  113. package/dist/_esm/utils/base-validator.js +51 -0
  114. package/dist/_esm/utils/base-validator.js.map +1 -0
  115. package/dist/_esm/utils/logger.js +109 -0
  116. package/dist/_esm/utils/logger.js.map +1 -0
  117. package/dist/_esm/utils/order-validator.js +75 -0
  118. package/dist/_esm/utils/order-validator.js.map +1 -0
  119. package/dist/_esm/utils/parsers.js +10 -0
  120. package/dist/_esm/utils/parsers.js.map +1 -0
  121. package/dist/_esm/utils/type-utils.js +2 -0
  122. package/dist/_esm/utils/type-utils.js.map +1 -0
  123. package/dist/_types/chains.d.ts +69 -0
  124. package/dist/_types/chains.d.ts.map +1 -0
  125. package/dist/_types/config.d.ts +21 -0
  126. package/dist/_types/config.d.ts.map +1 -0
  127. package/dist/_types/constants.d.ts +18 -0
  128. package/dist/_types/constants.d.ts.map +1 -0
  129. package/dist/_types/core/evm/abi/erc20.d.ts +240 -0
  130. package/dist/_types/core/evm/abi/erc20.d.ts.map +1 -0
  131. package/dist/_types/core/evm/abi/source-chain-guard.d.ts +1343 -0
  132. package/dist/_types/core/evm/abi/source-chain-guard.d.ts.map +1 -0
  133. package/dist/_types/core/evm/intent-provider.d.ts +12 -0
  134. package/dist/_types/core/evm/intent-provider.d.ts.map +1 -0
  135. package/dist/_types/core/evm/order-signature.d.ts +19 -0
  136. package/dist/_types/core/evm/order-signature.d.ts.map +1 -0
  137. package/dist/_types/core/evm/permit2.d.ts +75 -0
  138. package/dist/_types/core/evm/permit2.d.ts.map +1 -0
  139. package/dist/_types/core/evm/sdk.d.ts +50 -0
  140. package/dist/_types/core/evm/sdk.d.ts.map +1 -0
  141. package/dist/_types/core/evm/validator.d.ts +13 -0
  142. package/dist/_types/core/evm/validator.d.ts.map +1 -0
  143. package/dist/_types/core/evm/viem-provider.d.ts +9657 -0
  144. package/dist/_types/core/evm/viem-provider.d.ts.map +1 -0
  145. package/dist/_types/core/order.d.ts +122 -0
  146. package/dist/_types/core/order.d.ts.map +1 -0
  147. package/dist/_types/core/sdk.d.ts +86 -0
  148. package/dist/_types/core/sdk.d.ts.map +1 -0
  149. package/dist/_types/core/solana/client.d.ts +11 -0
  150. package/dist/_types/core/solana/client.d.ts.map +1 -0
  151. package/dist/_types/core/solana/generated/accounts/adminSingleton.d.ts +36 -0
  152. package/dist/_types/core/solana/generated/accounts/adminSingleton.d.ts.map +1 -0
  153. package/dist/_types/core/solana/generated/accounts/guard.d.ts +48 -0
  154. package/dist/_types/core/solana/generated/accounts/guard.d.ts.map +1 -0
  155. package/dist/_types/core/solana/generated/accounts/index.d.ts +11 -0
  156. package/dist/_types/core/solana/generated/accounts/index.d.ts.map +1 -0
  157. package/dist/_types/core/solana/generated/accounts/order.d.ts +92 -0
  158. package/dist/_types/core/solana/generated/accounts/order.d.ts.map +1 -0
  159. package/dist/_types/core/solana/generated/errors/index.d.ts +9 -0
  160. package/dist/_types/core/solana/generated/errors/index.d.ts.map +1 -0
  161. package/dist/_types/core/solana/generated/errors/sourceChainGuard.d.ts +27 -0
  162. package/dist/_types/core/solana/generated/errors/sourceChainGuard.d.ts.map +1 -0
  163. package/dist/_types/core/solana/generated/index.d.ts +13 -0
  164. package/dist/_types/core/solana/generated/index.d.ts.map +1 -0
  165. package/dist/_types/core/solana/generated/instructions/cancelOrder.d.ts +108 -0
  166. package/dist/_types/core/solana/generated/instructions/cancelOrder.d.ts.map +1 -0
  167. package/dist/_types/core/solana/generated/instructions/claimTokens.d.ts +131 -0
  168. package/dist/_types/core/solana/generated/instructions/claimTokens.d.ts.map +1 -0
  169. package/dist/_types/core/solana/generated/instructions/collectProtocolFees.d.ts +91 -0
  170. package/dist/_types/core/solana/generated/instructions/collectProtocolFees.d.ts.map +1 -0
  171. package/dist/_types/core/solana/generated/instructions/createGuard.d.ts +133 -0
  172. package/dist/_types/core/solana/generated/instructions/createGuard.d.ts.map +1 -0
  173. package/dist/_types/core/solana/generated/instructions/createOrder.d.ts +122 -0
  174. package/dist/_types/core/solana/generated/instructions/createOrder.d.ts.map +1 -0
  175. package/dist/_types/core/solana/generated/instructions/index.d.ts +19 -0
  176. package/dist/_types/core/solana/generated/instructions/index.d.ts.map +1 -0
  177. package/dist/_types/core/solana/generated/instructions/initialize.d.ts +63 -0
  178. package/dist/_types/core/solana/generated/instructions/initialize.d.ts.map +1 -0
  179. package/dist/_types/core/solana/generated/instructions/preStartOrderExecution.d.ts +105 -0
  180. package/dist/_types/core/solana/generated/instructions/preStartOrderExecution.d.ts.map +1 -0
  181. package/dist/_types/core/solana/generated/instructions/setAdmin.d.ts +61 -0
  182. package/dist/_types/core/solana/generated/instructions/setAdmin.d.ts.map +1 -0
  183. package/dist/_types/core/solana/generated/instructions/setAuctioneerPubKey.d.ts +68 -0
  184. package/dist/_types/core/solana/generated/instructions/setAuctioneerPubKey.d.ts.map +1 -0
  185. package/dist/_types/core/solana/generated/instructions/startOrderExecution.d.ts +85 -0
  186. package/dist/_types/core/solana/generated/instructions/startOrderExecution.d.ts.map +1 -0
  187. package/dist/_types/core/solana/generated/instructions/startOrderExecutionAfterSwap.d.ts +95 -0
  188. package/dist/_types/core/solana/generated/instructions/startOrderExecutionAfterSwap.d.ts.map +1 -0
  189. package/dist/_types/core/solana/generated/programs/index.d.ts +9 -0
  190. package/dist/_types/core/solana/generated/programs/index.d.ts.map +1 -0
  191. package/dist/_types/core/solana/generated/programs/sourceChainGuard.d.ts +59 -0
  192. package/dist/_types/core/solana/generated/programs/sourceChainGuard.d.ts.map +1 -0
  193. package/dist/_types/core/solana/generated/shared/index.d.ts +52 -0
  194. package/dist/_types/core/solana/generated/shared/index.d.ts.map +1 -0
  195. package/dist/_types/core/solana/generated/types/adminUpdated.d.ts +16 -0
  196. package/dist/_types/core/solana/generated/types/adminUpdated.d.ts.map +1 -0
  197. package/dist/_types/core/solana/generated/types/auctioneerPubkeyUpdated.d.ts +17 -0
  198. package/dist/_types/core/solana/generated/types/auctioneerPubkeyUpdated.d.ts.map +1 -0
  199. package/dist/_types/core/solana/generated/types/executionStarted.d.ts +26 -0
  200. package/dist/_types/core/solana/generated/types/executionStarted.d.ts.map +1 -0
  201. package/dist/_types/core/solana/generated/types/guardCreated.d.ts +19 -0
  202. package/dist/_types/core/solana/generated/types/guardCreated.d.ts.map +1 -0
  203. package/dist/_types/core/solana/generated/types/index.d.ts +16 -0
  204. package/dist/_types/core/solana/generated/types/index.d.ts.map +1 -0
  205. package/dist/_types/core/solana/generated/types/orderCancelled.d.ts +16 -0
  206. package/dist/_types/core/solana/generated/types/orderCancelled.d.ts.map +1 -0
  207. package/dist/_types/core/solana/generated/types/orderCreated.d.ts +32 -0
  208. package/dist/_types/core/solana/generated/types/orderCreated.d.ts.map +1 -0
  209. package/dist/_types/core/solana/generated/types/orderFulfilled.d.ts +16 -0
  210. package/dist/_types/core/solana/generated/types/orderFulfilled.d.ts.map +1 -0
  211. package/dist/_types/core/solana/generated/types/tokenInSwapped.d.ts +22 -0
  212. package/dist/_types/core/solana/generated/types/tokenInSwapped.d.ts.map +1 -0
  213. package/dist/_types/core/solana/order-instructions.d.ts +12 -0
  214. package/dist/_types/core/solana/order-instructions.d.ts.map +1 -0
  215. package/dist/_types/core/solana/sdk.d.ts +65 -0
  216. package/dist/_types/core/solana/sdk.d.ts.map +1 -0
  217. package/dist/_types/core/solana/validator.d.ts +9 -0
  218. package/dist/_types/core/solana/validator.d.ts.map +1 -0
  219. package/dist/_types/core/sui/client.d.ts +3 -0
  220. package/dist/_types/core/sui/client.d.ts.map +1 -0
  221. package/dist/_types/core/sui/order-transaction.d.ts +9 -0
  222. package/dist/_types/core/sui/order-transaction.d.ts.map +1 -0
  223. package/dist/_types/core/sui/sdk.d.ts +55 -0
  224. package/dist/_types/core/sui/sdk.d.ts.map +1 -0
  225. package/dist/_types/core/sui/validator.d.ts +9 -0
  226. package/dist/_types/core/sui/validator.d.ts.map +1 -0
  227. package/dist/_types/errors/index.d.ts +32 -0
  228. package/dist/_types/errors/index.d.ts.map +1 -0
  229. package/dist/_types/index.d.ts +10 -0
  230. package/dist/_types/index.d.ts.map +1 -0
  231. package/dist/_types/types/intent.d.ts +129 -0
  232. package/dist/_types/types/intent.d.ts.map +1 -0
  233. package/dist/_types/utils/base-validator.d.ts +28 -0
  234. package/dist/_types/utils/base-validator.d.ts.map +1 -0
  235. package/dist/_types/utils/logger.d.ts +35 -0
  236. package/dist/_types/utils/logger.d.ts.map +1 -0
  237. package/dist/_types/utils/order-validator.d.ts +40 -0
  238. package/dist/_types/utils/order-validator.d.ts.map +1 -0
  239. package/dist/_types/utils/parsers.d.ts +4 -0
  240. package/dist/_types/utils/parsers.d.ts.map +1 -0
  241. package/dist/_types/utils/type-utils.d.ts +2 -0
  242. package/dist/_types/utils/type-utils.d.ts.map +1 -0
  243. package/package.json +62 -0
  244. package/src/chains.ts +77 -0
  245. package/src/config.ts +24 -0
  246. package/src/constants.ts +61 -0
  247. package/src/core/evm/abi/erc20.ts +312 -0
  248. package/src/core/evm/abi/source-chain-guard.ts +1715 -0
  249. package/src/core/evm/intent-provider.ts +63 -0
  250. package/src/core/evm/order-signature.ts +33 -0
  251. package/src/core/evm/permit2.ts +60 -0
  252. package/src/core/evm/sdk.ts +74 -0
  253. package/src/core/evm/validator.ts +60 -0
  254. package/src/core/evm/viem-provider.ts +79 -0
  255. package/src/core/order.ts +186 -0
  256. package/src/core/sdk.ts +154 -0
  257. package/src/core/solana/client.ts +37 -0
  258. package/src/core/solana/generated/accounts/adminSingleton.ts +136 -0
  259. package/src/core/solana/generated/accounts/guard.ts +156 -0
  260. package/src/core/solana/generated/accounts/index.ts +11 -0
  261. package/src/core/solana/generated/accounts/order.ts +218 -0
  262. package/src/core/solana/generated/errors/index.ts +9 -0
  263. package/src/core/solana/generated/errors/sourceChainGuard.ts +52 -0
  264. package/src/core/solana/generated/index.ts +13 -0
  265. package/src/core/solana/generated/instructions/cancelOrder.ts +357 -0
  266. package/src/core/solana/generated/instructions/claimTokens.ts +419 -0
  267. package/src/core/solana/generated/instructions/collectProtocolFees.ts +383 -0
  268. package/src/core/solana/generated/instructions/createGuard.ts +569 -0
  269. package/src/core/solana/generated/instructions/createOrder.ts +480 -0
  270. package/src/core/solana/generated/instructions/index.ts +19 -0
  271. package/src/core/solana/generated/instructions/initialize.ts +231 -0
  272. package/src/core/solana/generated/instructions/preStartOrderExecution.ts +362 -0
  273. package/src/core/solana/generated/instructions/setAdmin.ts +211 -0
  274. package/src/core/solana/generated/instructions/setAuctioneerPubKey.ts +241 -0
  275. package/src/core/solana/generated/instructions/startOrderExecution.ts +293 -0
  276. package/src/core/solana/generated/instructions/startOrderExecutionAfterSwap.ts +323 -0
  277. package/src/core/solana/generated/programs/index.ts +9 -0
  278. package/src/core/solana/generated/programs/sourceChainGuard.ts +223 -0
  279. package/src/core/solana/generated/shared/index.ts +124 -0
  280. package/src/core/solana/generated/types/adminUpdated.ts +35 -0
  281. package/src/core/solana/generated/types/auctioneerPubkeyUpdated.ts +44 -0
  282. package/src/core/solana/generated/types/executionStarted.ts +63 -0
  283. package/src/core/solana/generated/types/guardCreated.ts +50 -0
  284. package/src/core/solana/generated/types/index.ts +16 -0
  285. package/src/core/solana/generated/types/orderCancelled.ts +35 -0
  286. package/src/core/solana/generated/types/orderCreated.ts +80 -0
  287. package/src/core/solana/generated/types/orderFulfilled.ts +35 -0
  288. package/src/core/solana/generated/types/tokenInSwapped.ts +53 -0
  289. package/src/core/solana/order-instructions.ts +131 -0
  290. package/src/core/solana/sdk.ts +135 -0
  291. package/src/core/solana/validator.ts +26 -0
  292. package/src/core/sui/client.ts +3 -0
  293. package/src/core/sui/order-transaction.ts +78 -0
  294. package/src/core/sui/sdk.ts +95 -0
  295. package/src/core/sui/validator.ts +32 -0
  296. package/src/errors/index.ts +106 -0
  297. package/src/index.ts +10 -0
  298. package/src/types/intent.ts +143 -0
  299. package/src/utils/base-validator.ts +64 -0
  300. package/src/utils/logger.ts +128 -0
  301. package/src/utils/order-validator.ts +103 -0
  302. package/src/utils/parsers.ts +8 -0
  303. package/src/utils/type-utils.ts +1 -0
@@ -0,0 +1,94 @@
1
+ export class BaseError extends Error {
2
+ constructor(message, cause) {
3
+ super(message);
4
+ Object.defineProperty(this, "cause", {
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true,
8
+ value: cause
9
+ });
10
+ this.name = this.constructor.name;
11
+ Object.setPrototypeOf(this, BaseError.prototype);
12
+ }
13
+ // Format the error for logging/debugging
14
+ toJSON() {
15
+ return {
16
+ name: this.name,
17
+ message: this.message,
18
+ cause: this.formatCause(),
19
+ };
20
+ }
21
+ formatCause() {
22
+ if (this.cause instanceof Error) {
23
+ if ('toJSON' in this.cause && typeof this.cause.toJSON === 'function') {
24
+ return this.cause.toJSON();
25
+ }
26
+ return {
27
+ name: this.cause.name,
28
+ message: this.cause.message,
29
+ ...(this.cause.stack && { stack: this.cause.stack }),
30
+ };
31
+ }
32
+ return this.cause;
33
+ }
34
+ }
35
+ // Chain-specific error classes
36
+ export class EVMError extends BaseError {
37
+ constructor(message, cause) {
38
+ super(message, cause);
39
+ Object.setPrototypeOf(this, EVMError.prototype);
40
+ }
41
+ }
42
+ export class SolanaError extends BaseError {
43
+ constructor(message, cause) {
44
+ super(message, cause);
45
+ Object.setPrototypeOf(this, SolanaError.prototype);
46
+ }
47
+ }
48
+ export class SuiError extends BaseError {
49
+ constructor(message, cause) {
50
+ super(message, cause);
51
+ Object.setPrototypeOf(this, SuiError.prototype);
52
+ }
53
+ }
54
+ // Specific error types
55
+ export class ValidationError extends BaseError {
56
+ constructor(message, cause) {
57
+ super(message, cause);
58
+ Object.setPrototypeOf(this, ValidationError.prototype);
59
+ }
60
+ }
61
+ export class OrderCreationError extends BaseError {
62
+ constructor(message, cause) {
63
+ super(message, cause);
64
+ Object.setPrototypeOf(this, OrderCreationError.prototype);
65
+ }
66
+ }
67
+ export class NetworkError extends BaseError {
68
+ constructor(message, cause) {
69
+ super(message, cause);
70
+ Object.setPrototypeOf(this, NetworkError.prototype);
71
+ }
72
+ }
73
+ export class InsufficientBalanceError extends BaseError {
74
+ constructor(message, cause) {
75
+ super(message, cause);
76
+ Object.setPrototypeOf(this, InsufficientBalanceError.prototype);
77
+ }
78
+ }
79
+ export class InsufficientAllowanceError extends BaseError {
80
+ constructor(message, cause) {
81
+ super(message, cause);
82
+ Object.setPrototypeOf(this, InsufficientAllowanceError.prototype);
83
+ }
84
+ }
85
+ export function handleError(error) {
86
+ if (error instanceof BaseError) {
87
+ return error;
88
+ }
89
+ if (error instanceof Error) {
90
+ return new BaseError(error.message, error);
91
+ }
92
+ return new BaseError(typeof error === 'string' ? error : 'Unknown error occurred', error);
93
+ }
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { SupportedChains } from './chains.js';
2
+ export { EVMSDK } from './core/evm/sdk.js';
3
+ export { Order } from './core/order.js';
4
+ export { SolanaSDK } from './core/solana/sdk.js';
5
+ export { SuiSDK } from './core/sui/sdk.js';
6
+ export { ValidationError } from './errors/index.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"type": "module","sideEffects":false}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/types/intent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { ValidationError } from '../errors/index.js';
2
+ /**
3
+ * BaseValidator - Abstract class implementing common validation logic
4
+ * This follows the Template Method pattern
5
+ */
6
+ export class BaseValidator {
7
+ /**
8
+ * Validate source chain specific parameters of the order
9
+ */
10
+ async validateSourceChain(order) {
11
+ this.validateAddress(order.user);
12
+ this.validateTokenAddress(order.sourceTokenAddress);
13
+ this.validateAmount(order.sourceTokenAmount);
14
+ this.validateAmount(order.minStablecoinAmount);
15
+ await this.chainSpecificValidation(order);
16
+ }
17
+ /**
18
+ * Validate destination chain specific parameters of the order
19
+ */
20
+ validateDestinationChain(order) {
21
+ this.validateAddress(order.destinationAddress);
22
+ this.validateTokenAddress(order.destinationTokenAddress);
23
+ this.validateAmount(order.destinationTokenMinAmount);
24
+ if (order.extraTransfers) {
25
+ for (const extraTransfer of order.extraTransfers) {
26
+ this.validateAddress(extraTransfer.receiver);
27
+ this.validateTokenAddress(extraTransfer.token);
28
+ this.validateAmount(extraTransfer.amount);
29
+ }
30
+ }
31
+ }
32
+ /**
33
+ * Helper methods that throw specific validation errors
34
+ */
35
+ validateAddress(address) {
36
+ if (!this.isValidAddress(address)) {
37
+ throw new ValidationError(`Invalid ${this.getChainName()} address: ${address}`);
38
+ }
39
+ }
40
+ validateTokenAddress(tokenAddress) {
41
+ if (!this.isValidTokenAddress(tokenAddress)) {
42
+ throw new ValidationError(`Invalid ${this.getChainName()} token address: ${tokenAddress}`);
43
+ }
44
+ }
45
+ validateAmount(amount) {
46
+ if (!this.isValidAmount(amount)) {
47
+ throw new ValidationError(`Amount must be greater than 0. Value: ${amount}`);
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=base-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-validator.js","sourceRoot":"","sources":["../../../src/utils/base-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;GAGG;AACH,MAAM,OAAgB,aAAa;IAOjC;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAiB;QACzC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,KAAiB;QACxC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAErD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,OAAe;QACvC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,eAAe,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,aAAa,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAES,oBAAoB,CAAC,YAAoB;QACjD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,eAAe,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,mBAAmB,YAAY,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAES,cAAc,CAAC,MAAc;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,109 @@
1
+ import { BaseError } from '../errors/index.js';
2
+ export var LogLevel;
3
+ (function (LogLevel) {
4
+ LogLevel["DEBUG"] = "DEBUG";
5
+ LogLevel["INFO"] = "INFO";
6
+ LogLevel["WARN"] = "WARN";
7
+ LogLevel["ERROR"] = "ERROR";
8
+ LogLevel["NONE"] = "NONE";
9
+ })(LogLevel || (LogLevel = {}));
10
+ class DefaultLogger {
11
+ debug(message, ...args) {
12
+ console.debug(`[${new Date().toISOString()} DEBUG] ${message}`, ...args);
13
+ }
14
+ info(message, ...args) {
15
+ console.info(`[${new Date().toISOString()} INFO] ${message}`, ...args);
16
+ }
17
+ warn(message, ...args) {
18
+ console.warn(`[${new Date().toISOString()} WARN] ${message}`, ...args);
19
+ }
20
+ error(message, ...args) {
21
+ console.error(`[${new Date().toISOString()} ERROR] ${message}`, ...args);
22
+ }
23
+ }
24
+ class Logger {
25
+ constructor() {
26
+ Object.defineProperty(this, "loggerImpl", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: new DefaultLogger()
31
+ });
32
+ Object.defineProperty(this, "logLevel", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: LogLevel.INFO
37
+ });
38
+ }
39
+ static getInstance() {
40
+ if (!Logger.instance) {
41
+ Logger.instance = new Logger();
42
+ }
43
+ return Logger.instance;
44
+ }
45
+ configure(config) {
46
+ this.logLevel = config.level;
47
+ if (config.customLogger) {
48
+ this.loggerImpl = config.customLogger;
49
+ }
50
+ }
51
+ debug(message, ...args) {
52
+ if (this.shouldLog(LogLevel.DEBUG)) {
53
+ this.loggerImpl.debug(message, ...args);
54
+ }
55
+ }
56
+ info(message, ...args) {
57
+ if (this.shouldLog(LogLevel.INFO)) {
58
+ this.loggerImpl.info(message, ...args);
59
+ }
60
+ }
61
+ warn(message, ...args) {
62
+ if (this.shouldLog(LogLevel.WARN)) {
63
+ this.loggerImpl.warn(message, ...args);
64
+ }
65
+ }
66
+ error(message, error) {
67
+ if (this.shouldLog(LogLevel.ERROR)) {
68
+ const formattedError = this.formatError(error);
69
+ this.loggerImpl.error(message, formattedError);
70
+ }
71
+ }
72
+ logError(error) {
73
+ if (this.shouldLog(LogLevel.ERROR)) {
74
+ const formattedError = this.formatError(error);
75
+ if (error instanceof BaseError) {
76
+ this.loggerImpl.error(`${error.name}: ${error.message}`, formattedError);
77
+ }
78
+ else if (error instanceof Error) {
79
+ this.loggerImpl.error(`${error.name}: ${error.message}`, formattedError);
80
+ }
81
+ else {
82
+ this.loggerImpl.error('Unknown error', formattedError);
83
+ }
84
+ }
85
+ }
86
+ shouldLog(level) {
87
+ const levels = [LogLevel.DEBUG, LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];
88
+ const currentLevelIndex = levels.indexOf(this.logLevel);
89
+ const targetLevelIndex = levels.indexOf(level);
90
+ return currentLevelIndex <= targetLevelIndex && this.logLevel !== LogLevel.NONE;
91
+ }
92
+ formatError(error) {
93
+ if (!error)
94
+ return 'No error details provided';
95
+ if (error instanceof BaseError) {
96
+ return error.toJSON();
97
+ }
98
+ if (error instanceof Error) {
99
+ return {
100
+ name: error.name,
101
+ message: error.message,
102
+ stack: error.stack,
103
+ };
104
+ }
105
+ return error;
106
+ }
107
+ }
108
+ export const logger = Logger.getInstance();
109
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { ChainType, chainIdToChainTypeMap } from '../chains.js';
2
+ import { EvmValidator } from '../core/evm/validator.js';
3
+ import { SolanaValidator } from '../core/solana/validator.js';
4
+ import { SuiValidator } from '../core/sui/validator.js';
5
+ import { ValidationError } from '../errors/index.js';
6
+ /**
7
+ * CommonValidator - Handles validations shared across chains
8
+ */
9
+ export class CommonValidator {
10
+ isValidDeadline(deadline) {
11
+ return deadline > Math.floor(Date.now() / 1000);
12
+ }
13
+ validateDeadline(deadline) {
14
+ if (!this.isValidDeadline(deadline)) {
15
+ throw new ValidationError('Deadline must be in the future');
16
+ }
17
+ }
18
+ isValidCrossChain(sourceChainId, destinationChainId) {
19
+ return sourceChainId !== destinationChainId;
20
+ }
21
+ validateCrossChain(sourceChainId, destinationChainId) {
22
+ if (!this.isValidCrossChain(sourceChainId, destinationChainId)) {
23
+ throw new ValidationError('Source and destination chains cannot be the same');
24
+ }
25
+ }
26
+ }
27
+ export class ValidatorFactory {
28
+ static getValidator(chainType) {
29
+ if (!this.validators.has(chainType)) {
30
+ switch (chainType) {
31
+ case ChainType.EVM:
32
+ this.validators.set(chainType, new EvmValidator());
33
+ break;
34
+ case ChainType.Solana:
35
+ this.validators.set(chainType, new SolanaValidator());
36
+ break;
37
+ case ChainType.Sui:
38
+ this.validators.set(chainType, new SuiValidator());
39
+ break;
40
+ default:
41
+ throw new ValidationError(`Chain type ${chainType} validation is not implemented.`);
42
+ }
43
+ }
44
+ return this.validators.get(chainType);
45
+ }
46
+ static getValidatorForChain(chainId) {
47
+ const chainType = chainIdToChainTypeMap[chainId];
48
+ return this.getValidator(chainType);
49
+ }
50
+ }
51
+ Object.defineProperty(ValidatorFactory, "validators", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: new Map()
56
+ });
57
+ export class OrderValidator {
58
+ constructor() {
59
+ Object.defineProperty(this, "commonValidator", {
60
+ enumerable: true,
61
+ configurable: true,
62
+ writable: true,
63
+ value: new CommonValidator()
64
+ });
65
+ }
66
+ async validateOrder(order) {
67
+ const sourceValidator = ValidatorFactory.getValidatorForChain(order.sourceChainId);
68
+ await sourceValidator.validateSourceChain(order);
69
+ this.commonValidator.validateCrossChain(order.sourceChainId, order.destinationChainId);
70
+ const destinationValidator = ValidatorFactory.getValidatorForChain(order.destinationChainId);
71
+ destinationValidator.validateDestinationChain(order);
72
+ this.commonValidator.validateDeadline(order.deadline);
73
+ }
74
+ }
75
+ //# sourceMappingURL=order-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-validator.js","sourceRoot":"","sources":["../../../src/utils/order-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /* eslint-disable @typescript-eslint/no-namespace */
2
+ export var Parsers;
3
+ (function (Parsers) {
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ function bigIntReplacer(_key, value) {
6
+ return typeof value === 'bigint' ? value.toString() : value;
7
+ }
8
+ Parsers.bigIntReplacer = bigIntReplacer;
9
+ })(Parsers || (Parsers = {}));
10
+ //# sourceMappingURL=parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/utils/parsers.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,MAAM,KAAW,OAAO,CAKvB;AALD,WAAiB,OAAO;IACtB,8DAA8D;IAC9D,SAAgB,cAAc,CAAC,IAAY,EAAE,KAAU;QACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAFe,sBAAc,iBAE7B,CAAA;AACH,CAAC,EALgB,OAAO,KAAP,OAAO,QAKvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=type-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../src/utils/type-utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ import type { TupleToUnion } from './utils/type-utils.js';
2
+ /**
3
+ * Represents the blockchain platform type
4
+ * Used to distinguish between different blockchain ecosystems
5
+ */
6
+ export declare enum ChainType {
7
+ EVM = "EVM",
8
+ Solana = "Solana",
9
+ Sui = "Sui"
10
+ }
11
+ /**
12
+ * Enum of chain IDs for supported blockchains
13
+ * EVM chains use their standard chain IDs
14
+ * Non-EVM chains use custom assigned IDs
15
+ */
16
+ export declare enum ChainID {
17
+ Arbitrum = 42161,
18
+ Optimism = 10,
19
+ Base = 8453,
20
+ Solana = 7565164,
21
+ Sui = 101
22
+ }
23
+ /**
24
+ * Array of chain IDs that are supported by the SDK
25
+ * Used as a source of truth for type generation
26
+ */
27
+ export declare const SupportedChains: readonly [ChainID.Arbitrum, ChainID.Base, ChainID.Optimism, ChainID.Solana, ChainID.Sui];
28
+ /**
29
+ * Type utility to identify chains not in the SupportedChains array
30
+ * @internal
31
+ */
32
+ type UnsupportedChain = Exclude<ChainID, TupleToUnion<typeof SupportedChains>>;
33
+ /**
34
+ * Type representing chains that are supported by the SDK
35
+ * Derived from the SupportedChains array
36
+ */
37
+ export type SupportedChain = Exclude<ChainID, UnsupportedChain>;
38
+ /**
39
+ * Type representing EVM chains that are supported by the SDK
40
+ * Includes Arbitrum, Base, and Optimism
41
+ */
42
+ export type SupportedEvmChain = Exclude<ChainID, TupleToUnion<[ChainID.Solana, ChainID.Sui]>>;
43
+ /**
44
+ * Type alias for Solana chain ID
45
+ */
46
+ export type SupportedSolanaChain = ChainID.Solana;
47
+ /**
48
+ * Type alias for Sui chain ID
49
+ */
50
+ export type SupportedSuiChain = ChainID.Sui;
51
+ /**
52
+ * Type guard that checks if a chain ID is among the supported chains
53
+ * @param chain - The chain ID to check
54
+ * @returns Boolean indicating if the chain is supported
55
+ */
56
+ export declare const isSupportedChain: (chain: unknown) => chain is SupportedChain;
57
+ /**
58
+ * Maps chain IDs to their corresponding chain types
59
+ * Used to determine which SDK implementation to use for a given chain
60
+ */
61
+ export declare const chainIdToChainTypeMap: {
62
+ readonly 42161: ChainType.EVM;
63
+ readonly 8453: ChainType.EVM;
64
+ readonly 10: ChainType.EVM;
65
+ readonly 7565164: ChainType.Solana;
66
+ readonly 101: ChainType.Sui;
67
+ };
68
+ export {};
69
+ //# sourceMappingURL=chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED;;;;GAIG;AACH,oBAAY,OAAO;IACjB,QAAQ,QAAQ;IAChB,QAAQ,KAAK;IACb,IAAI,OAAO;IACX,MAAM,UAAU;IAChB,GAAG,MAAM;CACV;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,0FAA2F,CAAC;AAExH;;;GAGG;AACH,KAAK,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,cAA2D,CAAC;AAEvH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;CAMxB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { SupportedEvmChain } from './chains.js';
2
+ export type EVMConfig = {
3
+ chainId: SupportedEvmChain;
4
+ rpcProviderUrl?: string;
5
+ privateKey: `0x${string}`;
6
+ };
7
+ export type SolanaConfig = {
8
+ rpcProviderUrl?: string;
9
+ privateKey: string;
10
+ /**
11
+ * Transaction confirmation level
12
+ * - 'confirmed': Transaction has been processed and confirmed by the cluster
13
+ * - 'finalized': Transaction has been finalized and cannot be rolled back
14
+ */
15
+ commitment: 'confirmed' | 'finalized';
16
+ };
17
+ export type SuiConfig = {
18
+ privateKey: string;
19
+ };
20
+ export type SDKConfigParams = EVMConfig | SolanaConfig | SuiConfig;
21
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type Address as SolanaAddress } from '@solana/kit';
2
+ import type { Address, Hex } from 'viem';
3
+ import type { SupportedChain, SupportedEvmChain } from './chains.js';
4
+ export declare const PERMIT2_ADDRESS: Record<SupportedEvmChain, Address>;
5
+ export declare const SRC_CHAIN_GUARD: Record<SupportedChain, SolanaAddress | Hex>;
6
+ export declare const NATIVE_SOLANA_TOKEN_ADDRESS: SolanaAddress<"So11111111111111111111111111111111111111111">;
7
+ export declare const WRAPPED_SOL_MINT_ADDRESS: SolanaAddress<"So11111111111111111111111111111111111111112">;
8
+ export declare const SUI_PACKAGE_ID = "0x6273e29f803ff5851f89ec17d40d5b1f367476e1677ad0a52ca408f64c4473fe";
9
+ export declare const SUI_GUARD_COLLATERAL_TYPE = "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
10
+ export declare const SUI_GUARD_STABLECOIN_TYPE = "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
11
+ /**
12
+ * URL of the auctioneer service endpoint
13
+ */
14
+ export declare const AUCTIONEER_URL = "http://127.0.0.1:8080";
15
+ export declare const MAX_UINT_64: bigint;
16
+ export declare const MAX_UINT_128: bigint;
17
+ export declare const MAX_UINT_256: bigint;
18
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,OAAO,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAI9D,CAAC;AAWF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,aAAa,GAAG,GAAG,CAMvE,CAAC;AAYF,eAAO,MAAM,2BAA2B,8DAAyD,CAAC;AAElG,eAAO,MAAM,wBAAwB,8DAAyD,CAAC;AAE/F,eAAO,MAAM,cAAc,uEAAuE,CAAC;AAInG,eAAO,MAAM,yBAAyB,mFAC4C,CAAC;AAEnF,eAAO,MAAM,yBAAyB,mFAC4C,CAAC;AAEnF;;GAEG;AAEH,eAAO,MAAM,cAAc,0BAA0B,CAAC;AAEtD,eAAO,MAAM,WAAW,QAAiB,CAAC;AAC1C,eAAO,MAAM,YAAY,QAAkB,CAAC;AAC5C,eAAO,MAAM,YAAY,QAAkB,CAAC"}