@sodax/sdk 0.0.1-rc.3 → 0.0.1-rc.30

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 (304) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +164 -11
  3. package/dist/index.cjs +16884 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +9780 -0
  6. package/dist/index.d.ts +9779 -9
  7. package/dist/index.mjs +16633 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/package.json +31 -32
  10. package/dist/abis/asset-manager.abi.d.ts +0 -418
  11. package/dist/abis/asset-manager.abi.d.ts.map +0 -1
  12. package/dist/abis/asset-manager.abi.js +0 -542
  13. package/dist/abis/asset-manager.abi.js.map +0 -1
  14. package/dist/abis/connection.abi.d.ts +0 -72
  15. package/dist/abis/connection.abi.d.ts.map +0 -1
  16. package/dist/abis/connection.abi.js +0 -92
  17. package/dist/abis/connection.abi.js.map +0 -1
  18. package/dist/abis/erc20.abi.d.ts +0 -236
  19. package/dist/abis/erc20.abi.d.ts.map +0 -1
  20. package/dist/abis/erc20.abi.js +0 -311
  21. package/dist/abis/erc20.abi.js.map +0 -1
  22. package/dist/abis/index.d.ts +0 -10
  23. package/dist/abis/index.d.ts.map +0 -1
  24. package/dist/abis/index.js +0 -10
  25. package/dist/abis/index.js.map +0 -1
  26. package/dist/abis/intents.abi.d.ts +0 -901
  27. package/dist/abis/intents.abi.d.ts.map +0 -1
  28. package/dist/abis/intents.abi.js +0 -1158
  29. package/dist/abis/intents.abi.js.map +0 -1
  30. package/dist/abis/pool.abi.d.ts +0 -626
  31. package/dist/abis/pool.abi.d.ts.map +0 -1
  32. package/dist/abis/pool.abi.js +0 -812
  33. package/dist/abis/pool.abi.js.map +0 -1
  34. package/dist/abis/spokeAssetManager.abi.d.ts +0 -169
  35. package/dist/abis/spokeAssetManager.abi.d.ts.map +0 -1
  36. package/dist/abis/spokeAssetManager.abi.js +0 -217
  37. package/dist/abis/spokeAssetManager.abi.js.map +0 -1
  38. package/dist/abis/uiPoolData.abi.d.ts +0 -369
  39. package/dist/abis/uiPoolData.abi.d.ts.map +0 -1
  40. package/dist/abis/uiPoolData.abi.js +0 -476
  41. package/dist/abis/uiPoolData.abi.js.map +0 -1
  42. package/dist/abis/vaultToken.abi.d.ts +0 -816
  43. package/dist/abis/vaultToken.abi.d.ts.map +0 -1
  44. package/dist/abis/vaultToken.abi.js +0 -1062
  45. package/dist/abis/vaultToken.abi.js.map +0 -1
  46. package/dist/abis/walletFactory.abi.d.ts +0 -20
  47. package/dist/abis/walletFactory.abi.d.ts.map +0 -1
  48. package/dist/abis/walletFactory.abi.js +0 -27
  49. package/dist/abis/walletFactory.abi.js.map +0 -1
  50. package/dist/constants.d.ts +0 -550
  51. package/dist/constants.d.ts.map +0 -1
  52. package/dist/constants.js +0 -1154
  53. package/dist/constants.js.map +0 -1
  54. package/dist/constants.test.d.ts +0 -2
  55. package/dist/constants.test.d.ts.map +0 -1
  56. package/dist/constants.test.js +0 -129
  57. package/dist/constants.test.js.map +0 -1
  58. package/dist/entities/Providers.d.ts +0 -54
  59. package/dist/entities/Providers.d.ts.map +0 -1
  60. package/dist/entities/Providers.js +0 -51
  61. package/dist/entities/Providers.js.map +0 -1
  62. package/dist/entities/Sodax.d.ts +0 -23
  63. package/dist/entities/Sodax.d.ts.map +0 -1
  64. package/dist/entities/Sodax.js +0 -29
  65. package/dist/entities/Sodax.js.map +0 -1
  66. package/dist/entities/Sodax.test.d.ts +0 -2
  67. package/dist/entities/Sodax.test.d.ts.map +0 -1
  68. package/dist/entities/Sodax.test.js +0 -392
  69. package/dist/entities/Sodax.test.js.map +0 -1
  70. package/dist/entities/cosmos/CW20Token.d.ts +0 -39
  71. package/dist/entities/cosmos/CW20Token.d.ts.map +0 -1
  72. package/dist/entities/cosmos/CW20Token.js +0 -65
  73. package/dist/entities/cosmos/CW20Token.js.map +0 -1
  74. package/dist/entities/cosmos/CWSpokeProvider.d.ts +0 -92
  75. package/dist/entities/cosmos/CWSpokeProvider.d.ts.map +0 -1
  76. package/dist/entities/cosmos/CWSpokeProvider.js +0 -143
  77. package/dist/entities/cosmos/CWSpokeProvider.js.map +0 -1
  78. package/dist/entities/cosmos/CosmosWalletProvider.d.ts +0 -28
  79. package/dist/entities/cosmos/CosmosWalletProvider.d.ts.map +0 -1
  80. package/dist/entities/cosmos/CosmosWalletProvider.js +0 -102
  81. package/dist/entities/cosmos/CosmosWalletProvider.js.map +0 -1
  82. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts +0 -25
  83. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts.map +0 -1
  84. package/dist/entities/cosmos/InjectiveWalletProvider.js +0 -76
  85. package/dist/entities/cosmos/InjectiveWalletProvider.js.map +0 -1
  86. package/dist/entities/icon/HanaWalletConnector.d.ts +0 -36
  87. package/dist/entities/icon/HanaWalletConnector.d.ts.map +0 -1
  88. package/dist/entities/icon/HanaWalletConnector.js +0 -92
  89. package/dist/entities/icon/HanaWalletConnector.js.map +0 -1
  90. package/dist/entities/icon/IconSpokeProvider.d.ts +0 -10
  91. package/dist/entities/icon/IconSpokeProvider.d.ts.map +0 -1
  92. package/dist/entities/icon/IconSpokeProvider.js +0 -12
  93. package/dist/entities/icon/IconSpokeProvider.js.map +0 -1
  94. package/dist/entities/icon/index.d.ts +0 -4
  95. package/dist/entities/icon/index.d.ts.map +0 -1
  96. package/dist/entities/icon/index.js +0 -4
  97. package/dist/entities/icon/index.js.map +0 -1
  98. package/dist/entities/icon/utils.d.ts +0 -3
  99. package/dist/entities/icon/utils.d.ts.map +0 -1
  100. package/dist/entities/icon/utils.js +0 -4
  101. package/dist/entities/icon/utils.js.map +0 -1
  102. package/dist/entities/index.d.ts +0 -7
  103. package/dist/entities/index.d.ts.map +0 -1
  104. package/dist/entities/index.js +0 -7
  105. package/dist/entities/index.js.map +0 -1
  106. package/dist/entities/solana/Configs.d.ts +0 -10
  107. package/dist/entities/solana/Configs.d.ts.map +0 -1
  108. package/dist/entities/solana/Configs.js +0 -50
  109. package/dist/entities/solana/Configs.js.map +0 -1
  110. package/dist/entities/solana/SolanaSpokeProvider.d.ts +0 -9
  111. package/dist/entities/solana/SolanaSpokeProvider.d.ts.map +0 -1
  112. package/dist/entities/solana/SolanaSpokeProvider.js +0 -9
  113. package/dist/entities/solana/SolanaSpokeProvider.js.map +0 -1
  114. package/dist/entities/solana/SolanaWalletProvider.d.ts +0 -20
  115. package/dist/entities/solana/SolanaWalletProvider.d.ts.map +0 -1
  116. package/dist/entities/solana/SolanaWalletProvider.js +0 -53
  117. package/dist/entities/solana/SolanaWalletProvider.js.map +0 -1
  118. package/dist/entities/solana/index.d.ts +0 -4
  119. package/dist/entities/solana/index.d.ts.map +0 -1
  120. package/dist/entities/solana/index.js +0 -4
  121. package/dist/entities/solana/index.js.map +0 -1
  122. package/dist/entities/solana/pda/pda.d.ts +0 -45
  123. package/dist/entities/solana/pda/pda.d.ts.map +0 -1
  124. package/dist/entities/solana/pda/pda.js +0 -44
  125. package/dist/entities/solana/pda/pda.js.map +0 -1
  126. package/dist/entities/solana/types/asset_manager.d.ts +0 -919
  127. package/dist/entities/solana/types/asset_manager.d.ts.map +0 -1
  128. package/dist/entities/solana/types/asset_manager.js +0 -2
  129. package/dist/entities/solana/types/asset_manager.js.map +0 -1
  130. package/dist/entities/solana/types/connection.d.ts +0 -446
  131. package/dist/entities/solana/types/connection.d.ts.map +0 -1
  132. package/dist/entities/solana/types/connection.js +0 -2
  133. package/dist/entities/solana/types/connection.js.map +0 -1
  134. package/dist/entities/solana/types/rate_limit_contract.d.ts +0 -348
  135. package/dist/entities/solana/types/rate_limit_contract.d.ts.map +0 -1
  136. package/dist/entities/solana/types/rate_limit_contract.js +0 -2
  137. package/dist/entities/solana/types/rate_limit_contract.js.map +0 -1
  138. package/dist/entities/solana/utils/utils.d.ts +0 -6
  139. package/dist/entities/solana/utils/utils.d.ts.map +0 -1
  140. package/dist/entities/solana/utils/utils.js +0 -18
  141. package/dist/entities/solana/utils/utils.js.map +0 -1
  142. package/dist/entities/stellar/StellarSpokeProvider.d.ts +0 -17
  143. package/dist/entities/stellar/StellarSpokeProvider.d.ts.map +0 -1
  144. package/dist/entities/stellar/StellarSpokeProvider.js +0 -125
  145. package/dist/entities/stellar/StellarSpokeProvider.js.map +0 -1
  146. package/dist/entities/sui/SuiSpokeProvider.d.ts +0 -35
  147. package/dist/entities/sui/SuiSpokeProvider.d.ts.map +0 -1
  148. package/dist/entities/sui/SuiSpokeProvider.js +0 -145
  149. package/dist/entities/sui/SuiSpokeProvider.js.map +0 -1
  150. package/dist/errors.d.ts +0 -2
  151. package/dist/errors.d.ts.map +0 -1
  152. package/dist/errors.js +0 -2
  153. package/dist/errors.js.map +0 -1
  154. package/dist/guards.d.ts +0 -25
  155. package/dist/guards.d.ts.map +0 -1
  156. package/dist/guards.js +0 -110
  157. package/dist/guards.js.map +0 -1
  158. package/dist/index.d.ts.map +0 -1
  159. package/dist/index.js +0 -10
  160. package/dist/index.js.map +0 -1
  161. package/dist/services/hub/EvmAssetManagerService.d.ts +0 -61
  162. package/dist/services/hub/EvmAssetManagerService.d.ts.map +0 -1
  163. package/dist/services/hub/EvmAssetManagerService.js +0 -103
  164. package/dist/services/hub/EvmAssetManagerService.js.map +0 -1
  165. package/dist/services/hub/EvmVaultTokenService.d.ts +0 -81
  166. package/dist/services/hub/EvmVaultTokenService.d.ts.map +0 -1
  167. package/dist/services/hub/EvmVaultTokenService.js +0 -161
  168. package/dist/services/hub/EvmVaultTokenService.js.map +0 -1
  169. package/dist/services/hub/EvmWalletAbstraction.d.ts +0 -9
  170. package/dist/services/hub/EvmWalletAbstraction.d.ts.map +0 -1
  171. package/dist/services/hub/EvmWalletAbstraction.js +0 -14
  172. package/dist/services/hub/EvmWalletAbstraction.js.map +0 -1
  173. package/dist/services/hub/index.d.ts +0 -4
  174. package/dist/services/hub/index.d.ts.map +0 -1
  175. package/dist/services/hub/index.js +0 -4
  176. package/dist/services/hub/index.js.map +0 -1
  177. package/dist/services/index.d.ts +0 -7
  178. package/dist/services/index.d.ts.map +0 -1
  179. package/dist/services/index.js +0 -7
  180. package/dist/services/index.js.map +0 -1
  181. package/dist/services/intentRelay/IntentRelayApiService.d.ts +0 -112
  182. package/dist/services/intentRelay/IntentRelayApiService.d.ts.map +0 -1
  183. package/dist/services/intentRelay/IntentRelayApiService.js +0 -160
  184. package/dist/services/intentRelay/IntentRelayApiService.js.map +0 -1
  185. package/dist/services/intentRelay/IntentRelayApiService.test.d.ts +0 -2
  186. package/dist/services/intentRelay/IntentRelayApiService.test.d.ts.map +0 -1
  187. package/dist/services/intentRelay/IntentRelayApiService.test.js +0 -134
  188. package/dist/services/intentRelay/IntentRelayApiService.test.js.map +0 -1
  189. package/dist/services/intentRelay/index.d.ts +0 -2
  190. package/dist/services/intentRelay/index.d.ts.map +0 -1
  191. package/dist/services/intentRelay/index.js +0 -2
  192. package/dist/services/intentRelay/index.js.map +0 -1
  193. package/dist/services/moneyMarket/MoneyMarketService.d.ts +0 -323
  194. package/dist/services/moneyMarket/MoneyMarketService.d.ts.map +0 -1
  195. package/dist/services/moneyMarket/MoneyMarketService.js +0 -612
  196. package/dist/services/moneyMarket/MoneyMarketService.js.map +0 -1
  197. package/dist/services/moneyMarket/MoneyMarketService.test.d.ts +0 -2
  198. package/dist/services/moneyMarket/MoneyMarketService.test.d.ts.map +0 -1
  199. package/dist/services/moneyMarket/MoneyMarketService.test.js +0 -262
  200. package/dist/services/moneyMarket/MoneyMarketService.test.js.map +0 -1
  201. package/dist/services/moneyMarket/index.d.ts +0 -2
  202. package/dist/services/moneyMarket/index.d.ts.map +0 -1
  203. package/dist/services/moneyMarket/index.js +0 -2
  204. package/dist/services/moneyMarket/index.js.map +0 -1
  205. package/dist/services/shared/Erc20Service.d.ts +0 -42
  206. package/dist/services/shared/Erc20Service.d.ts.map +0 -1
  207. package/dist/services/shared/Erc20Service.js +0 -108
  208. package/dist/services/shared/Erc20Service.js.map +0 -1
  209. package/dist/services/shared/index.d.ts +0 -2
  210. package/dist/services/shared/index.d.ts.map +0 -1
  211. package/dist/services/shared/index.js +0 -2
  212. package/dist/services/shared/index.js.map +0 -1
  213. package/dist/services/solver/EvmSolverService.d.ts +0 -125
  214. package/dist/services/solver/EvmSolverService.d.ts.map +0 -1
  215. package/dist/services/solver/EvmSolverService.js +0 -166
  216. package/dist/services/solver/EvmSolverService.js.map +0 -1
  217. package/dist/services/solver/SolverApiService.d.ts +0 -40
  218. package/dist/services/solver/SolverApiService.d.ts.map +0 -1
  219. package/dist/services/solver/SolverApiService.js +0 -157
  220. package/dist/services/solver/SolverApiService.js.map +0 -1
  221. package/dist/services/solver/SolverApiService.test.d.ts +0 -2
  222. package/dist/services/solver/SolverApiService.test.d.ts.map +0 -1
  223. package/dist/services/solver/SolverApiService.test.js +0 -181
  224. package/dist/services/solver/SolverApiService.test.js.map +0 -1
  225. package/dist/services/solver/SolverService.d.ts +0 -196
  226. package/dist/services/solver/SolverService.d.ts.map +0 -1
  227. package/dist/services/solver/SolverService.js +0 -329
  228. package/dist/services/solver/SolverService.js.map +0 -1
  229. package/dist/services/solver/SolverService.test.d.ts +0 -2
  230. package/dist/services/solver/SolverService.test.d.ts.map +0 -1
  231. package/dist/services/solver/SolverService.test.js +0 -439
  232. package/dist/services/solver/SolverService.test.js.map +0 -1
  233. package/dist/services/solver/index.d.ts +0 -3
  234. package/dist/services/solver/index.d.ts.map +0 -1
  235. package/dist/services/solver/index.js +0 -3
  236. package/dist/services/solver/index.js.map +0 -1
  237. package/dist/services/spoke/CWSpokeService.d.ts +0 -67
  238. package/dist/services/spoke/CWSpokeService.d.ts.map +0 -1
  239. package/dist/services/spoke/CWSpokeService.js +0 -75
  240. package/dist/services/spoke/CWSpokeService.js.map +0 -1
  241. package/dist/services/spoke/EvmSpokeService.d.ts +0 -62
  242. package/dist/services/spoke/EvmSpokeService.d.ts.map +0 -1
  243. package/dist/services/spoke/EvmSpokeService.js +0 -120
  244. package/dist/services/spoke/EvmSpokeService.js.map +0 -1
  245. package/dist/services/spoke/IconSpokeService.d.ts +0 -56
  246. package/dist/services/spoke/IconSpokeService.d.ts.map +0 -1
  247. package/dist/services/spoke/IconSpokeService.js +0 -124
  248. package/dist/services/spoke/IconSpokeService.js.map +0 -1
  249. package/dist/services/spoke/SolanaSpokeService.d.ts +0 -46
  250. package/dist/services/spoke/SolanaSpokeService.d.ts.map +0 -1
  251. package/dist/services/spoke/SolanaSpokeService.js +0 -170
  252. package/dist/services/spoke/SolanaSpokeService.js.map +0 -1
  253. package/dist/services/spoke/SpokeService.d.ts +0 -34
  254. package/dist/services/spoke/SpokeService.d.ts.map +0 -1
  255. package/dist/services/spoke/SpokeService.js +0 -102
  256. package/dist/services/spoke/SpokeService.js.map +0 -1
  257. package/dist/services/spoke/StellarSpokeService.d.ts +0 -35
  258. package/dist/services/spoke/StellarSpokeService.d.ts.map +0 -1
  259. package/dist/services/spoke/StellarSpokeService.js +0 -39
  260. package/dist/services/spoke/StellarSpokeService.js.map +0 -1
  261. package/dist/services/spoke/SuiSpokeService.d.ts +0 -69
  262. package/dist/services/spoke/SuiSpokeService.d.ts.map +0 -1
  263. package/dist/services/spoke/SuiSpokeService.js +0 -74
  264. package/dist/services/spoke/SuiSpokeService.js.map +0 -1
  265. package/dist/services/spoke/index.d.ts +0 -3
  266. package/dist/services/spoke/index.d.ts.map +0 -1
  267. package/dist/services/spoke/index.js +0 -3
  268. package/dist/services/spoke/index.js.map +0 -1
  269. package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts +0 -2
  270. package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts.map +0 -1
  271. package/dist/tests/services/hub/EvmAssetManagerService.test.js +0 -138
  272. package/dist/tests/services/hub/EvmAssetManagerService.test.js.map +0 -1
  273. package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts +0 -2
  274. package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts.map +0 -1
  275. package/dist/tests/services/hub/EvmMoneyMarketService.test.js +0 -121
  276. package/dist/tests/services/hub/EvmMoneyMarketService.test.js.map +0 -1
  277. package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts +0 -2
  278. package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts.map +0 -1
  279. package/dist/tests/services/hub/EvmVaultTokenService.test.js +0 -98
  280. package/dist/tests/services/hub/EvmVaultTokenService.test.js.map +0 -1
  281. package/dist/tests/services/spoke/EvmSpokeService.test.d.ts +0 -2
  282. package/dist/tests/services/spoke/EvmSpokeService.test.d.ts.map +0 -1
  283. package/dist/tests/services/spoke/EvmSpokeService.test.js +0 -198
  284. package/dist/tests/services/spoke/EvmSpokeService.test.js.map +0 -1
  285. package/dist/types.d.ts +0 -352
  286. package/dist/types.d.ts.map +0 -1
  287. package/dist/types.js +0 -30
  288. package/dist/types.js.map +0 -1
  289. package/dist/utils/evm-utils.d.ts +0 -10
  290. package/dist/utils/evm-utils.d.ts.map +0 -1
  291. package/dist/utils/evm-utils.js +0 -15
  292. package/dist/utils/evm-utils.js.map +0 -1
  293. package/dist/utils/index.d.ts +0 -3
  294. package/dist/utils/index.d.ts.map +0 -1
  295. package/dist/utils/index.js +0 -3
  296. package/dist/utils/index.js.map +0 -1
  297. package/dist/utils/shared-utils.d.ts +0 -20
  298. package/dist/utils/shared-utils.d.ts.map +0 -1
  299. package/dist/utils/shared-utils.js +0 -69
  300. package/dist/utils/shared-utils.js.map +0 -1
  301. package/dist/utils/shared-utils.test.d.ts +0 -2
  302. package/dist/utils/shared-utils.test.d.ts.map +0 -1
  303. package/dist/utils/shared-utils.test.js +0 -63
  304. package/dist/utils/shared-utils.test.js.map +0 -1
@@ -1,196 +0,0 @@
1
- import { type EvmHubProvider, type IntentRelayRequest, type PacketData, type RelayErrorCode, type SpokeProvider, type WaitUntilIntentExecutedPayload } from '../../index.js';
2
- import type { FeeAmount, HttpUrl, IntentErrorResponse, IntentExecutionRequest, IntentExecutionResponse, IntentQuoteRequest, IntentQuoteResponse, IntentRelayChainId, IntentStatusRequest, IntentStatusResponse, PartnerFee, Result, SolverConfigParams, TxReturnType } from '../../types.js';
3
- import type { Address, Hex, EvmRawTransactionReceipt, Hash } from '@sodax/types';
4
- import { type SpokeChainId } from '@sodax/types';
5
- export type CreateIntentParams = {
6
- inputToken: string;
7
- outputToken: string;
8
- inputAmount: bigint;
9
- minOutputAmount: bigint;
10
- deadline: bigint;
11
- allowPartialFill: boolean;
12
- srcChain: SpokeChainId;
13
- dstChain: SpokeChainId;
14
- srcAddress: Hex;
15
- dstAddress: Hex;
16
- solver: Address;
17
- data: Hex;
18
- };
19
- export type Intent = {
20
- intentId: bigint;
21
- creator: Address;
22
- inputToken: Address;
23
- outputToken: Address;
24
- inputAmount: bigint;
25
- minOutputAmount: bigint;
26
- deadline: bigint;
27
- allowPartialFill: boolean;
28
- srcChain: IntentRelayChainId;
29
- dstChain: IntentRelayChainId;
30
- srcAddress: Hex;
31
- dstAddress: Hex;
32
- solver: Address;
33
- data: Hex;
34
- };
35
- export declare enum IntentDataType {
36
- FEE = 1
37
- }
38
- export type FeeData = {
39
- fee: bigint;
40
- receiver: Address;
41
- };
42
- export type IntentData = {
43
- type: IntentDataType;
44
- data: Hex;
45
- };
46
- export type IntentState = {
47
- exists: boolean;
48
- remainingInput: bigint;
49
- receivedOutput: bigint;
50
- pendingPayment: boolean;
51
- };
52
- export type IntentCreationFailedErrorData = {
53
- payload: CreateIntentParams;
54
- error: unknown;
55
- };
56
- export type IntentSubmitTxFailedErrorData = {
57
- payload: IntentRelayRequest<'submit'>;
58
- apiUrl: HttpUrl;
59
- };
60
- export type IntentWaitUntilIntentExecutedFailedErrorData = {
61
- payload: WaitUntilIntentExecutedPayload;
62
- error: unknown;
63
- };
64
- export type IntentSubmitErrorCode = RelayErrorCode | 'UNKNOWN' | 'CREATION_FAILED';
65
- export type IntentSubmitErrorData<T extends IntentSubmitErrorCode> = T extends 'TIMEOUT' ? IntentWaitUntilIntentExecutedFailedErrorData : T extends 'CREATION_FAILED' ? IntentCreationFailedErrorData : T extends 'SUBMIT_TX_FAILED' ? IntentSubmitTxFailedErrorData : T extends 'POST_EXECUTION_FAILED' ? IntentErrorResponse : never;
66
- export type IntentSubmitError<T extends IntentSubmitErrorCode> = {
67
- code: T;
68
- data: IntentSubmitErrorData<T>;
69
- };
70
- export declare class SolverService {
71
- private readonly config;
72
- private readonly hubProvider;
73
- constructor(config: SolverConfigParams | undefined, hubProvider: EvmHubProvider, relayerApiEndpoint?: HttpUrl);
74
- /**
75
- * Request a quote from the solver API
76
- * @param {IntentQuoteRequest} payload - The intent quote request
77
- * @returns {Promise<Result<IntentQuoteResponse, IntentErrorResponse>>} The intent quote response
78
- *
79
- * @example
80
- * // payload
81
- * {
82
- * "token_src":"0x13b70564b1ec12876b20fab5d1bb630311312f4f", // Asset BSC
83
- * "token_dst":"0xdcd9578b51ef55239b6e68629d822a8d97c95b86", // Asset ETH Arbitrum
84
- * "token_src_blockchain_id":"56",
85
- * "token_dst_blockchain_id":"42161",
86
- * "amount":1000000000000000n,
87
- * "quote_type": "exact_input"
88
- * } satisfies IntentQuoteRequest
89
- * // response
90
- * {
91
- * "quoted_amount": "1000000000000000"
92
- * } satisfies IntentQuoteResponse
93
- */
94
- getQuote(payload: IntentQuoteRequest): Promise<Result<IntentQuoteResponse, IntentErrorResponse>>;
95
- /**
96
- * Get the fee for a given input amount
97
- * @param {bigint} inputAmount - The amount of input tokens
98
- * @returns {Promise<bigint>} The fee amount (denominated in input tokens)
99
- */
100
- getFee(inputAmount: bigint): Promise<bigint>;
101
- /**
102
- * Get the status of an intent from Solver API
103
- * @param {IntentStatusRequest} intentStatusRequest - The intent status request
104
- * @returns {Promise<Result<IntentStatusResponse, IntentErrorResponse>>} The intent status response
105
- *
106
- * @example
107
- * // request
108
- * {
109
- * "intentHash": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
110
- * }
111
- * // response
112
- * {
113
- * "status": 3,
114
- * "intent_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af"
115
- * }
116
- */
117
- getStatus(intentStatusRequest: IntentStatusRequest): Promise<Result<IntentStatusResponse, IntentErrorResponse>>;
118
- /**
119
- * Post execution of intent order to Solver API
120
- * @param {IntentExecutionRequest} intentExecutionRequest - The intent execution request
121
- * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The intent execution response
122
- *
123
- * @example
124
- * // request
125
- * {
126
- * "intent_tx_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af",
127
- * "quote_uuid": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
128
- * }
129
- *
130
- * // response
131
- * {
132
- * "ok": true,
133
- * "value": {
134
- * "output": {
135
- * "answer":"OK",
136
- * "task_id":"a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
137
- * }
138
- * }
139
- * }
140
- */
141
- postExecution(intentExecutionRequest: IntentExecutionRequest): Promise<Result<IntentExecutionResponse, IntentErrorResponse>>;
142
- /**
143
- * Creates an intent and submits it to the Solver API and Relayer API
144
- * @param {CreateIntentParams} payload - The intent to create
145
- * @param {ISpokeProvider} spokeProvider - The spoke provider
146
- * @param {number} timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
147
- * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The encoded contract call
148
- */
149
- createAndSubmitIntent<S extends SpokeProvider>(payload: CreateIntentParams, spokeProvider: S, fee?: PartnerFee, timeout?: number): Promise<Result<[IntentExecutionResponse, Intent, PacketData], IntentSubmitError<IntentSubmitErrorCode>>>;
150
- /**
151
- * Check whether assetManager contract is allowed to move the given payload amount
152
- * @param {CreateIntentParams} params - The intent to create
153
- * @param {SpokeProvider} spokeProvider - The spoke provider
154
- * @return {Promise<Result<boolean>>} - valid = true, invalid = false
155
- */
156
- isAllowanceValid<S extends SpokeProvider>(params: CreateIntentParams, spokeProvider: S): Promise<Result<boolean>>;
157
- /**
158
- * Approve ERC20 amount spending
159
- * @param token - ERC20 token address
160
- * @param amount - Amount to approve
161
- * @param address - Address to approve spending for
162
- * @param spokeProvider - Spoke provider
163
- */
164
- approve<S extends SpokeProvider>(token: Address, amount: bigint, address: Address, spokeProvider: S): Promise<Result<EvmRawTransactionReceipt>>;
165
- /**
166
- * Creates an intent by handling token approval and intent creation
167
- * NOTE: This method does not submit the intent to the Solver API
168
- * @param {CreateIntentParams} params - The intent to create
169
- * @param {SpokeProvider} spokeProvider - The spoke provider
170
- * @param {boolean} raw - Whether to return the raw transaction
171
- * @param {PartnerFee} fee - The fee to apply to the intent
172
- * @returns {Promise<[TxReturnType<T, R>, Intent]>} The encoded contract call
173
- */
174
- createIntent<S extends SpokeProvider, R extends boolean = false>(params: CreateIntentParams, spokeProvider: S, fee?: PartnerFee, raw?: R): Promise<Result<[TxReturnType<S, R>, Intent & FeeAmount], IntentSubmitError<'CREATION_FAILED'>>>;
175
- /**
176
- * Cancels an intent
177
- * @param {Intent} intent - The intent to cancel
178
- * @param {ISpokeProvider} spokeProvider - The spoke provider
179
- * @param {boolean} raw - Whether to return the raw transaction
180
- * @returns {Promise<TxReturnType<T, R>>} The encoded contract call
181
- */
182
- cancelIntent<T extends SpokeProvider, R extends boolean = false>(intent: Intent, spokeProvider: T, raw?: R): Promise<TxReturnType<T, R>>;
183
- /**
184
- * Gets an intent from a transaction hash (on Hub chain)
185
- * @param {Hash} txHash - The transaction hash on Hub chain
186
- * @returns {Promise<Intent>} The intent
187
- */
188
- getIntent(txHash: Hash): Promise<Intent>;
189
- /**
190
- * Gets the keccak256 hash of an intent. Hash serves as the intent id on Hub chain.
191
- * @param {Intent} intent - The intent
192
- * @returns {Hex} The keccak256 hash of the intent
193
- */
194
- getIntentHash(intent: Intent): Hex;
195
- }
196
- //# sourceMappingURL=SolverService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolverService.d.ts","sourceRoot":"","sources":["../../../src/services/solver/SolverService.ts"],"names":[],"mappings":"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"}
@@ -1,329 +0,0 @@
1
- import invariant from 'tiny-invariant';
2
- import { DEFAULT_RELAYER_API_ENDPOINT, DEFAULT_RELAY_TX_TIMEOUT, Erc20Service, EvmSpokeProvider, SpokeService, calculateFeeAmount, encodeContractCalls, getIntentRelayChainId, getSolverConfig, isConfiguredSolverConfig, isValidIntentRelayChainId, isValidOriginalAssetAddress, isValidSpokeChainId, submitTransaction, waitUntilIntentExecuted, } from '../../index.js';
3
- import { EvmWalletAbstraction } from '../hub/EvmWalletAbstraction.js';
4
- import { EvmSolverService } from './EvmSolverService.js';
5
- import { SolverApiService } from './SolverApiService.js';
6
- import { SONIC_MAINNET_CHAIN_ID } from '@sodax/types';
7
- // Data types for arbitrary data
8
- export var IntentDataType;
9
- (function (IntentDataType) {
10
- IntentDataType[IntentDataType["FEE"] = 1] = "FEE";
11
- })(IntentDataType || (IntentDataType = {}));
12
- export class SolverService {
13
- config;
14
- hubProvider;
15
- constructor(config, hubProvider, relayerApiEndpoint) {
16
- if (!config) {
17
- // default to mainnet config
18
- this.config = {
19
- ...getSolverConfig(SONIC_MAINNET_CHAIN_ID), // default to mainnet config
20
- partnerFee: undefined,
21
- relayerApiEndpoint: relayerApiEndpoint ?? DEFAULT_RELAYER_API_ENDPOINT,
22
- };
23
- }
24
- else if (isConfiguredSolverConfig(config)) {
25
- this.config = {
26
- ...config,
27
- partnerFee: config.partnerFee,
28
- relayerApiEndpoint: relayerApiEndpoint ?? DEFAULT_RELAYER_API_ENDPOINT,
29
- };
30
- }
31
- else {
32
- this.config = {
33
- ...getSolverConfig(hubProvider.chainConfig.chain.id), // default to mainnet config
34
- partnerFee: config.partnerFee,
35
- relayerApiEndpoint: relayerApiEndpoint ?? DEFAULT_RELAYER_API_ENDPOINT,
36
- };
37
- }
38
- this.hubProvider = hubProvider;
39
- }
40
- /**
41
- * Request a quote from the solver API
42
- * @param {IntentQuoteRequest} payload - The intent quote request
43
- * @returns {Promise<Result<IntentQuoteResponse, IntentErrorResponse>>} The intent quote response
44
- *
45
- * @example
46
- * // payload
47
- * {
48
- * "token_src":"0x13b70564b1ec12876b20fab5d1bb630311312f4f", // Asset BSC
49
- * "token_dst":"0xdcd9578b51ef55239b6e68629d822a8d97c95b86", // Asset ETH Arbitrum
50
- * "token_src_blockchain_id":"56",
51
- * "token_dst_blockchain_id":"42161",
52
- * "amount":1000000000000000n,
53
- * "quote_type": "exact_input"
54
- * } satisfies IntentQuoteRequest
55
- * // response
56
- * {
57
- * "quoted_amount": "1000000000000000"
58
- * } satisfies IntentQuoteResponse
59
- */
60
- async getQuote(payload) {
61
- return SolverApiService.getQuote(payload, this.config);
62
- }
63
- /**
64
- * Get the fee for a given input amount
65
- * @param {bigint} inputAmount - The amount of input tokens
66
- * @returns {Promise<bigint>} The fee amount (denominated in input tokens)
67
- */
68
- async getFee(inputAmount) {
69
- if (!this.config.partnerFee) {
70
- return 0n;
71
- }
72
- return calculateFeeAmount(inputAmount, this.config.partnerFee);
73
- }
74
- /**
75
- * Get the status of an intent from Solver API
76
- * @param {IntentStatusRequest} intentStatusRequest - The intent status request
77
- * @returns {Promise<Result<IntentStatusResponse, IntentErrorResponse>>} The intent status response
78
- *
79
- * @example
80
- * // request
81
- * {
82
- * "intentHash": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
83
- * }
84
- * // response
85
- * {
86
- * "status": 3,
87
- * "intent_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af"
88
- * }
89
- */
90
- async getStatus(intentStatusRequest) {
91
- return SolverApiService.getStatus(intentStatusRequest, this.config);
92
- }
93
- /**
94
- * Post execution of intent order to Solver API
95
- * @param {IntentExecutionRequest} intentExecutionRequest - The intent execution request
96
- * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The intent execution response
97
- *
98
- * @example
99
- * // request
100
- * {
101
- * "intent_tx_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af",
102
- * "quote_uuid": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
103
- * }
104
- *
105
- * // response
106
- * {
107
- * "ok": true,
108
- * "value": {
109
- * "output": {
110
- * "answer":"OK",
111
- * "task_id":"a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
112
- * }
113
- * }
114
- * }
115
- */
116
- async postExecution(intentExecutionRequest) {
117
- return SolverApiService.postExecution(intentExecutionRequest, this.config);
118
- }
119
- /**
120
- * Creates an intent and submits it to the Solver API and Relayer API
121
- * @param {CreateIntentParams} payload - The intent to create
122
- * @param {ISpokeProvider} spokeProvider - The spoke provider
123
- * @param {number} timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
124
- * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The encoded contract call
125
- */
126
- async createAndSubmitIntent(payload, spokeProvider, fee, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
127
- try {
128
- const createIntentResult = await this.createIntent(payload, spokeProvider, fee, false);
129
- if (!createIntentResult.ok) {
130
- return {
131
- ok: false,
132
- error: createIntentResult.error,
133
- };
134
- }
135
- const [spokeTxHash, intent] = createIntentResult.value;
136
- const intentRelayChainId = getIntentRelayChainId(payload.srcChain).toString();
137
- const submitPayload = {
138
- action: 'submit',
139
- params: {
140
- chain_id: intentRelayChainId,
141
- tx_hash: spokeTxHash,
142
- },
143
- };
144
- const submitResult = await submitTransaction(submitPayload, this.config.relayerApiEndpoint);
145
- if (!submitResult.success) {
146
- return {
147
- ok: false,
148
- error: {
149
- code: 'SUBMIT_TX_FAILED',
150
- data: {
151
- payload: submitPayload,
152
- apiUrl: this.config.relayerApiEndpoint,
153
- },
154
- },
155
- };
156
- }
157
- const packet = await waitUntilIntentExecuted({
158
- intentRelayChainId,
159
- spokeTxHash,
160
- timeout,
161
- apiUrl: this.config.relayerApiEndpoint,
162
- });
163
- if (!packet.ok) {
164
- return {
165
- ok: false,
166
- error: packet.error,
167
- };
168
- }
169
- const result = await this.postExecution({
170
- intent_tx_hash: packet.value.dst_tx_hash,
171
- });
172
- if (!result.ok) {
173
- return {
174
- ok: false,
175
- error: {
176
- code: 'POST_EXECUTION_FAILED',
177
- data: result.error,
178
- },
179
- };
180
- }
181
- return {
182
- ok: true,
183
- value: [result.value, intent, packet.value],
184
- };
185
- }
186
- catch (error) {
187
- return {
188
- ok: false,
189
- error: {
190
- code: 'UNKNOWN',
191
- data: {
192
- payload: payload,
193
- error: error,
194
- },
195
- },
196
- };
197
- }
198
- }
199
- /**
200
- * Check whether assetManager contract is allowed to move the given payload amount
201
- * @param {CreateIntentParams} params - The intent to create
202
- * @param {SpokeProvider} spokeProvider - The spoke provider
203
- * @return {Promise<Result<boolean>>} - valid = true, invalid = false
204
- */
205
- async isAllowanceValid(params, spokeProvider) {
206
- try {
207
- if (spokeProvider instanceof EvmSpokeProvider) {
208
- const walletAddress = (await spokeProvider.walletProvider.getWalletAddress());
209
- return Erc20Service.isAllowanceValid(params.inputToken, params.inputAmount, walletAddress, spokeProvider.chainConfig.addresses.assetManager, spokeProvider);
210
- }
211
- return {
212
- ok: true,
213
- value: true,
214
- };
215
- }
216
- catch (error) {
217
- return {
218
- ok: false,
219
- error: error,
220
- };
221
- }
222
- }
223
- /**
224
- * Approve ERC20 amount spending
225
- * @param token - ERC20 token address
226
- * @param amount - Amount to approve
227
- * @param address - Address to approve spending for
228
- * @param spokeProvider - Spoke provider
229
- */
230
- async approve(token, amount, address, spokeProvider) {
231
- try {
232
- if (spokeProvider instanceof EvmSpokeProvider) {
233
- return Erc20Service.approve(token, amount, address, spokeProvider);
234
- }
235
- return {
236
- ok: false,
237
- error: new Error('Approve only supported for EVM spoke chains'),
238
- };
239
- }
240
- catch (error) {
241
- return {
242
- ok: false,
243
- error: error,
244
- };
245
- }
246
- }
247
- /**
248
- * Creates an intent by handling token approval and intent creation
249
- * NOTE: This method does not submit the intent to the Solver API
250
- * @param {CreateIntentParams} params - The intent to create
251
- * @param {SpokeProvider} spokeProvider - The spoke provider
252
- * @param {boolean} raw - Whether to return the raw transaction
253
- * @param {PartnerFee} fee - The fee to apply to the intent
254
- * @returns {Promise<[TxReturnType<T, R>, Intent]>} The encoded contract call
255
- */
256
- async createIntent(params, spokeProvider, fee, raw) {
257
- invariant(isValidOriginalAssetAddress(params.srcChain, params.inputToken), `Unsupported spoke chain token (params.srcChain): ${params.srcChain}, params.inputToken): ${params.inputToken}`);
258
- invariant(isValidOriginalAssetAddress(params.dstChain, params.outputToken), `Unsupported spoke chain token (params.dstChain): ${params.dstChain}, params.outputToken): ${params.outputToken}`);
259
- invariant(isValidSpokeChainId(params.srcChain), `Invalid spoke chain (params.srcChain): ${params.srcChain}`);
260
- invariant(isValidSpokeChainId(params.dstChain), `Invalid spoke chain (params.dstChain): ${params.dstChain}`);
261
- try {
262
- const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
263
- // derive users hub wallet address
264
- const creatorHubWalletAddress = await EvmWalletAbstraction.getUserHubWalletAddress(params.srcChain, walletAddressBytes, this.hubProvider);
265
- // construct the intent data
266
- const [data, intent, feeAmount] = EvmSolverService.constructCreateIntentData(params, creatorHubWalletAddress, this.config, fee);
267
- const walletAddress = (await spokeProvider.walletProvider.getWalletAddress());
268
- const txResult = await SpokeService.deposit({
269
- from: walletAddress,
270
- to: creatorHubWalletAddress,
271
- token: params.inputToken,
272
- amount: params.inputAmount + feeAmount,
273
- data: data,
274
- }, spokeProvider, this.hubProvider, raw);
275
- return {
276
- ok: true,
277
- value: [txResult, { ...intent, feeAmount }],
278
- };
279
- }
280
- catch (error) {
281
- return {
282
- ok: false,
283
- error: {
284
- code: 'CREATION_FAILED',
285
- data: {
286
- payload: params,
287
- error: error,
288
- },
289
- },
290
- };
291
- }
292
- }
293
- /**
294
- * Cancels an intent
295
- * @param {Intent} intent - The intent to cancel
296
- * @param {ISpokeProvider} spokeProvider - The spoke provider
297
- * @param {boolean} raw - Whether to return the raw transaction
298
- * @returns {Promise<TxReturnType<T, R>>} The encoded contract call
299
- */
300
- async cancelIntent(intent, spokeProvider, raw) {
301
- invariant(isValidIntentRelayChainId(intent.srcChain), `Invalid intent.srcChain: ${intent.srcChain}`);
302
- invariant(isValidIntentRelayChainId(intent.dstChain), `Invalid intent.dstChain: ${intent.dstChain}`);
303
- const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
304
- // derive users hub wallet address
305
- const creatorHubWalletAddress = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, walletAddressBytes, this.hubProvider);
306
- const calls = [];
307
- const intentsContract = this.config.intentsContract;
308
- calls.push(EvmSolverService.encodeCancelIntent(intent, intentsContract));
309
- const data = encodeContractCalls(calls);
310
- return SpokeService.callWallet(creatorHubWalletAddress, data, spokeProvider, this.hubProvider, raw);
311
- }
312
- /**
313
- * Gets an intent from a transaction hash (on Hub chain)
314
- * @param {Hash} txHash - The transaction hash on Hub chain
315
- * @returns {Promise<Intent>} The intent
316
- */
317
- getIntent(txHash) {
318
- return EvmSolverService.getIntent(txHash, this.config, this.hubProvider);
319
- }
320
- /**
321
- * Gets the keccak256 hash of an intent. Hash serves as the intent id on Hub chain.
322
- * @param {Intent} intent - The intent
323
- * @returns {Hex} The keccak256 hash of the intent
324
- */
325
- getIntentHash(intent) {
326
- return EvmSolverService.getIntentHash(intent);
327
- }
328
- }
329
- //# sourceMappingURL=SolverService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolverService.js","sourceRoot":"","sources":["../../../src/services/solver/SolverService.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SolverService.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolverService.test.d.ts","sourceRoot":"","sources":["../../../src/services/solver/SolverService.test.ts"],"names":[],"mappings":""}