@relayprotocol/relay-sdk 2.4.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 (308) hide show
  1. package/LICENSE +21 -0
  2. package/_cjs/package.json +1 -0
  3. package/_cjs/src/actions/claimAppFees.js +53 -0
  4. package/_cjs/src/actions/claimAppFees.js.map +1 -0
  5. package/_cjs/src/actions/execute.js +76 -0
  6. package/_cjs/src/actions/execute.js.map +1 -0
  7. package/_cjs/src/actions/getAppFees.js +24 -0
  8. package/_cjs/src/actions/getAppFees.js.map +1 -0
  9. package/_cjs/src/actions/getPrice.js +51 -0
  10. package/_cjs/src/actions/getPrice.js.map +1 -0
  11. package/_cjs/src/actions/getQuote.js +91 -0
  12. package/_cjs/src/actions/getQuote.js.map +1 -0
  13. package/_cjs/src/actions/getSolverCapacity.js +21 -0
  14. package/_cjs/src/actions/getSolverCapacity.js.map +1 -0
  15. package/_cjs/src/actions/index.js +10 -0
  16. package/_cjs/src/actions/index.js.map +1 -0
  17. package/_cjs/src/client.js +207 -0
  18. package/_cjs/src/client.js.map +1 -0
  19. package/_cjs/src/constants/address.js +48 -0
  20. package/_cjs/src/constants/address.js.map +1 -0
  21. package/_cjs/src/constants/bvm.js +5 -0
  22. package/_cjs/src/constants/bvm.js.map +1 -0
  23. package/_cjs/src/constants/index.js +6 -0
  24. package/_cjs/src/constants/index.js.map +1 -0
  25. package/_cjs/src/constants/servers.js +9 -0
  26. package/_cjs/src/constants/servers.js.map +1 -0
  27. package/_cjs/src/errors/DepositTransactionTimeoutError.js +18 -0
  28. package/_cjs/src/errors/DepositTransactionTimeoutError.js.map +1 -0
  29. package/_cjs/src/errors/SolverStatusTimeoutError.js +18 -0
  30. package/_cjs/src/errors/SolverStatusTimeoutError.js.map +1 -0
  31. package/_cjs/src/errors/TransactionConfirmationError.js +25 -0
  32. package/_cjs/src/errors/TransactionConfirmationError.js.map +1 -0
  33. package/_cjs/src/errors/index.js +10 -0
  34. package/_cjs/src/errors/index.js.map +1 -0
  35. package/_cjs/src/index.js +10 -0
  36. package/_cjs/src/index.js.map +1 -0
  37. package/_cjs/src/routes/index.js +46 -0
  38. package/_cjs/src/routes/index.js.map +1 -0
  39. package/_cjs/src/types/AdaptedWallet.js +3 -0
  40. package/_cjs/src/types/AdaptedWallet.js.map +1 -0
  41. package/_cjs/src/types/Execute.js +3 -0
  42. package/_cjs/src/types/Execute.js.map +1 -0
  43. package/_cjs/src/types/Progress.js +3 -0
  44. package/_cjs/src/types/Progress.js.map +1 -0
  45. package/_cjs/src/types/RelayChain.js +3 -0
  46. package/_cjs/src/types/RelayChain.js.map +1 -0
  47. package/_cjs/src/types/SignatureStepItem.js +3 -0
  48. package/_cjs/src/types/SignatureStepItem.js.map +1 -0
  49. package/_cjs/src/types/TransactionStepItem.js +3 -0
  50. package/_cjs/src/types/TransactionStepItem.js.map +1 -0
  51. package/_cjs/src/types/api.js +3 -0
  52. package/_cjs/src/types/api.js.map +1 -0
  53. package/_cjs/src/types/index.js +11 -0
  54. package/_cjs/src/types/index.js.map +1 -0
  55. package/_cjs/src/utils/axios.js +18 -0
  56. package/_cjs/src/utils/axios.js.map +1 -0
  57. package/_cjs/src/utils/chain.js +91 -0
  58. package/_cjs/src/utils/chain.js.map +1 -0
  59. package/_cjs/src/utils/executeSteps/index.js +298 -0
  60. package/_cjs/src/utils/executeSteps/index.js.map +1 -0
  61. package/_cjs/src/utils/executeSteps/signatureStep.js +186 -0
  62. package/_cjs/src/utils/executeSteps/signatureStep.js.map +1 -0
  63. package/_cjs/src/utils/executeSteps/transactionStep.js +74 -0
  64. package/_cjs/src/utils/executeSteps/transactionStep.js.map +1 -0
  65. package/_cjs/src/utils/executeSteps/websocketHandlers.js +112 -0
  66. package/_cjs/src/utils/executeSteps/websocketHandlers.js.map +1 -0
  67. package/_cjs/src/utils/fetchChainConfigs.js +20 -0
  68. package/_cjs/src/utils/fetchChainConfigs.js.map +1 -0
  69. package/_cjs/src/utils/getCurrentStepData.js +28 -0
  70. package/_cjs/src/utils/getCurrentStepData.js.map +1 -0
  71. package/_cjs/src/utils/getTenderlyDetails.js +24 -0
  72. package/_cjs/src/utils/getTenderlyDetails.js.map +1 -0
  73. package/_cjs/src/utils/hyperliquid.js +95 -0
  74. package/_cjs/src/utils/hyperliquid.js.map +1 -0
  75. package/_cjs/src/utils/index.js +39 -0
  76. package/_cjs/src/utils/index.js.map +1 -0
  77. package/_cjs/src/utils/logger.js +38 -0
  78. package/_cjs/src/utils/logger.js.map +1 -0
  79. package/_cjs/src/utils/params.js +21 -0
  80. package/_cjs/src/utils/params.js.map +1 -0
  81. package/_cjs/src/utils/pollApi.js +40 -0
  82. package/_cjs/src/utils/pollApi.js.map +1 -0
  83. package/_cjs/src/utils/prepareBatchTransaction.js +35 -0
  84. package/_cjs/src/utils/prepareBatchTransaction.js.map +1 -0
  85. package/_cjs/src/utils/prepareCallTransaction.js +14 -0
  86. package/_cjs/src/utils/prepareCallTransaction.js.map +1 -0
  87. package/_cjs/src/utils/repeatUntilOk.js +19 -0
  88. package/_cjs/src/utils/repeatUntilOk.js.map +1 -0
  89. package/_cjs/src/utils/request.js +48 -0
  90. package/_cjs/src/utils/request.js.map +1 -0
  91. package/_cjs/src/utils/simulateContract.js +8 -0
  92. package/_cjs/src/utils/simulateContract.js.map +1 -0
  93. package/_cjs/src/utils/structuredClone.js +11 -0
  94. package/_cjs/src/utils/structuredClone.js.map +1 -0
  95. package/_cjs/src/utils/transaction.js +351 -0
  96. package/_cjs/src/utils/transaction.js.map +1 -0
  97. package/_cjs/src/utils/viemWallet.js +211 -0
  98. package/_cjs/src/utils/viemWallet.js.map +1 -0
  99. package/_cjs/src/utils/websocket.js +76 -0
  100. package/_cjs/src/utils/websocket.js.map +1 -0
  101. package/_cjs/src/version.js +5 -0
  102. package/_cjs/src/version.js.map +1 -0
  103. package/_cjs/tsconfig.build.tsbuildinfo +1 -0
  104. package/_esm/package.json +1 -0
  105. package/_esm/src/actions/claimAppFees.js +54 -0
  106. package/_esm/src/actions/claimAppFees.js.map +1 -0
  107. package/_esm/src/actions/execute.js +83 -0
  108. package/_esm/src/actions/execute.js.map +1 -0
  109. package/_esm/src/actions/getAppFees.js +25 -0
  110. package/_esm/src/actions/getAppFees.js.map +1 -0
  111. package/_esm/src/actions/getPrice.js +53 -0
  112. package/_esm/src/actions/getPrice.js.map +1 -0
  113. package/_esm/src/actions/getQuote.js +92 -0
  114. package/_esm/src/actions/getQuote.js.map +1 -0
  115. package/_esm/src/actions/getSolverCapacity.js +18 -0
  116. package/_esm/src/actions/getSolverCapacity.js.map +1 -0
  117. package/_esm/src/actions/index.js +7 -0
  118. package/_esm/src/actions/index.js.map +1 -0
  119. package/_esm/src/client.js +217 -0
  120. package/_esm/src/client.js.map +1 -0
  121. package/_esm/src/constants/address.js +43 -0
  122. package/_esm/src/constants/address.js.map +1 -0
  123. package/_esm/src/constants/bvm.js +2 -0
  124. package/_esm/src/constants/bvm.js.map +1 -0
  125. package/_esm/src/constants/index.js +3 -0
  126. package/_esm/src/constants/index.js.map +1 -0
  127. package/_esm/src/constants/servers.js +7 -0
  128. package/_esm/src/constants/servers.js.map +1 -0
  129. package/_esm/src/errors/DepositTransactionTimeoutError.js +14 -0
  130. package/_esm/src/errors/DepositTransactionTimeoutError.js.map +1 -0
  131. package/_esm/src/errors/SolverStatusTimeoutError.js +14 -0
  132. package/_esm/src/errors/SolverStatusTimeoutError.js.map +1 -0
  133. package/_esm/src/errors/TransactionConfirmationError.js +21 -0
  134. package/_esm/src/errors/TransactionConfirmationError.js.map +1 -0
  135. package/_esm/src/errors/index.js +4 -0
  136. package/_esm/src/errors/index.js.map +1 -0
  137. package/_esm/src/index.js +7 -0
  138. package/_esm/src/index.js.map +1 -0
  139. package/_esm/src/routes/index.js +43 -0
  140. package/_esm/src/routes/index.js.map +1 -0
  141. package/_esm/src/types/AdaptedWallet.js +2 -0
  142. package/_esm/src/types/AdaptedWallet.js.map +1 -0
  143. package/_esm/src/types/Execute.js +2 -0
  144. package/_esm/src/types/Execute.js.map +1 -0
  145. package/_esm/src/types/Progress.js +2 -0
  146. package/_esm/src/types/Progress.js.map +1 -0
  147. package/_esm/src/types/RelayChain.js +2 -0
  148. package/_esm/src/types/RelayChain.js.map +1 -0
  149. package/_esm/src/types/SignatureStepItem.js +2 -0
  150. package/_esm/src/types/SignatureStepItem.js.map +1 -0
  151. package/_esm/src/types/TransactionStepItem.js +2 -0
  152. package/_esm/src/types/TransactionStepItem.js.map +1 -0
  153. package/_esm/src/types/api.js +6 -0
  154. package/_esm/src/types/api.js.map +1 -0
  155. package/_esm/src/types/index.js +8 -0
  156. package/_esm/src/types/index.js.map +1 -0
  157. package/_esm/src/utils/axios.js +15 -0
  158. package/_esm/src/utils/axios.js.map +1 -0
  159. package/_esm/src/utils/chain.js +86 -0
  160. package/_esm/src/utils/chain.js.map +1 -0
  161. package/_esm/src/utils/executeSteps/index.js +347 -0
  162. package/_esm/src/utils/executeSteps/index.js.map +1 -0
  163. package/_esm/src/utils/executeSteps/signatureStep.js +191 -0
  164. package/_esm/src/utils/executeSteps/signatureStep.js.map +1 -0
  165. package/_esm/src/utils/executeSteps/transactionStep.js +76 -0
  166. package/_esm/src/utils/executeSteps/transactionStep.js.map +1 -0
  167. package/_esm/src/utils/executeSteps/websocketHandlers.js +124 -0
  168. package/_esm/src/utils/executeSteps/websocketHandlers.js.map +1 -0
  169. package/_esm/src/utils/fetchChainConfigs.js +16 -0
  170. package/_esm/src/utils/fetchChainConfigs.js.map +1 -0
  171. package/_esm/src/utils/getCurrentStepData.js +24 -0
  172. package/_esm/src/utils/getCurrentStepData.js.map +1 -0
  173. package/_esm/src/utils/getTenderlyDetails.js +20 -0
  174. package/_esm/src/utils/getTenderlyDetails.js.map +1 -0
  175. package/_esm/src/utils/hyperliquid.js +90 -0
  176. package/_esm/src/utils/hyperliquid.js.map +1 -0
  177. package/_esm/src/utils/index.js +16 -0
  178. package/_esm/src/utils/index.js.map +1 -0
  179. package/_esm/src/utils/logger.js +34 -0
  180. package/_esm/src/utils/logger.js.map +1 -0
  181. package/_esm/src/utils/params.js +40 -0
  182. package/_esm/src/utils/params.js.map +1 -0
  183. package/_esm/src/utils/pollApi.js +57 -0
  184. package/_esm/src/utils/pollApi.js.map +1 -0
  185. package/_esm/src/utils/prepareBatchTransaction.js +31 -0
  186. package/_esm/src/utils/prepareBatchTransaction.js.map +1 -0
  187. package/_esm/src/utils/prepareCallTransaction.js +11 -0
  188. package/_esm/src/utils/prepareCallTransaction.js.map +1 -0
  189. package/_esm/src/utils/repeatUntilOk.js +23 -0
  190. package/_esm/src/utils/repeatUntilOk.js.map +1 -0
  191. package/_esm/src/utils/request.js +42 -0
  192. package/_esm/src/utils/request.js.map +1 -0
  193. package/_esm/src/utils/simulateContract.js +5 -0
  194. package/_esm/src/utils/simulateContract.js.map +1 -0
  195. package/_esm/src/utils/structuredClone.js +8 -0
  196. package/_esm/src/utils/structuredClone.js.map +1 -0
  197. package/_esm/src/utils/transaction.js +374 -0
  198. package/_esm/src/utils/transaction.js.map +1 -0
  199. package/_esm/src/utils/viemWallet.js +207 -0
  200. package/_esm/src/utils/viemWallet.js.map +1 -0
  201. package/_esm/src/utils/websocket.js +78 -0
  202. package/_esm/src/utils/websocket.js.map +1 -0
  203. package/_esm/src/version.js +2 -0
  204. package/_esm/src/version.js.map +1 -0
  205. package/_esm/tsconfig.build.tsbuildinfo +1 -0
  206. package/_types/src/actions/claimAppFees.d.ts +21 -0
  207. package/_types/src/actions/claimAppFees.d.ts.map +1 -0
  208. package/_types/src/actions/execute.d.ts +23 -0
  209. package/_types/src/actions/execute.d.ts.map +1 -0
  210. package/_types/src/actions/getAppFees.d.ts +12 -0
  211. package/_types/src/actions/getAppFees.d.ts.map +1 -0
  212. package/_types/src/actions/getPrice.d.ts +23 -0
  213. package/_types/src/actions/getPrice.d.ts.map +1 -0
  214. package/_types/src/actions/getQuote.d.ts +24 -0
  215. package/_types/src/actions/getQuote.d.ts.map +1 -0
  216. package/_types/src/actions/getSolverCapacity.d.ts +8 -0
  217. package/_types/src/actions/getSolverCapacity.d.ts.map +1 -0
  218. package/_types/src/actions/index.d.ts +7 -0
  219. package/_types/src/actions/index.d.ts.map +1 -0
  220. package/_types/src/client.d.ts +8039 -0
  221. package/_types/src/client.d.ts.map +1 -0
  222. package/_types/src/constants/address.d.ts +11 -0
  223. package/_types/src/constants/address.d.ts.map +1 -0
  224. package/_types/src/constants/bvm.d.ts +2 -0
  225. package/_types/src/constants/bvm.d.ts.map +1 -0
  226. package/_types/src/constants/index.d.ts +3 -0
  227. package/_types/src/constants/index.d.ts.map +1 -0
  228. package/_types/src/constants/servers.d.ts +6 -0
  229. package/_types/src/constants/servers.d.ts.map +1 -0
  230. package/_types/src/errors/DepositTransactionTimeoutError.d.ts +5 -0
  231. package/_types/src/errors/DepositTransactionTimeoutError.d.ts.map +1 -0
  232. package/_types/src/errors/SolverStatusTimeoutError.d.ts +5 -0
  233. package/_types/src/errors/SolverStatusTimeoutError.d.ts.map +1 -0
  234. package/_types/src/errors/TransactionConfirmationError.d.ts +9 -0
  235. package/_types/src/errors/TransactionConfirmationError.d.ts.map +1 -0
  236. package/_types/src/errors/index.d.ts +4 -0
  237. package/_types/src/errors/index.d.ts.map +1 -0
  238. package/_types/src/index.d.ts +7 -0
  239. package/_types/src/index.d.ts.map +1 -0
  240. package/_types/src/routes/index.d.ts +2 -0
  241. package/_types/src/routes/index.d.ts.map +1 -0
  242. package/_types/src/types/AdaptedWallet.d.ts +27 -0
  243. package/_types/src/types/AdaptedWallet.d.ts.map +1 -0
  244. package/_types/src/types/Execute.d.ts +64 -0
  245. package/_types/src/types/Execute.d.ts.map +1 -0
  246. package/_types/src/types/Progress.d.ts +17 -0
  247. package/_types/src/types/Progress.d.ts.map +1 -0
  248. package/_types/src/types/RelayChain.d.ts +47 -0
  249. package/_types/src/types/RelayChain.d.ts.map +1 -0
  250. package/_types/src/types/SignatureStepItem.d.ts +21 -0
  251. package/_types/src/types/SignatureStepItem.d.ts.map +1 -0
  252. package/_types/src/types/TransactionStepItem.d.ts +25 -0
  253. package/_types/src/types/TransactionStepItem.d.ts.map +1 -0
  254. package/_types/src/types/api.d.ts +4911 -0
  255. package/_types/src/types/api.d.ts.map +1 -0
  256. package/_types/src/types/index.d.ts +8 -0
  257. package/_types/src/types/index.d.ts.map +1 -0
  258. package/_types/src/utils/axios.d.ts +2 -0
  259. package/_types/src/utils/axios.d.ts.map +1 -0
  260. package/_types/src/utils/chain.d.ts +7 -0
  261. package/_types/src/utils/chain.d.ts.map +1 -0
  262. package/_types/src/utils/executeSteps/index.d.ts +34 -0
  263. package/_types/src/utils/executeSteps/index.d.ts.map +1 -0
  264. package/_types/src/utils/executeSteps/signatureStep.d.ts +21 -0
  265. package/_types/src/utils/executeSteps/signatureStep.d.ts.map +1 -0
  266. package/_types/src/utils/executeSteps/transactionStep.d.ts +25 -0
  267. package/_types/src/utils/executeSteps/transactionStep.d.ts.map +1 -0
  268. package/_types/src/utils/executeSteps/websocketHandlers.d.ts +21 -0
  269. package/_types/src/utils/executeSteps/websocketHandlers.d.ts.map +1 -0
  270. package/_types/src/utils/fetchChainConfigs.d.ts +3 -0
  271. package/_types/src/utils/fetchChainConfigs.d.ts.map +1 -0
  272. package/_types/src/utils/getCurrentStepData.d.ts +80 -0
  273. package/_types/src/utils/getCurrentStepData.d.ts.map +1 -0
  274. package/_types/src/utils/getTenderlyDetails.d.ts +6 -0
  275. package/_types/src/utils/getTenderlyDetails.d.ts.map +1 -0
  276. package/_types/src/utils/hyperliquid.d.ts +49 -0
  277. package/_types/src/utils/hyperliquid.d.ts.map +1 -0
  278. package/_types/src/utils/index.d.ts +16 -0
  279. package/_types/src/utils/index.d.ts.map +1 -0
  280. package/_types/src/utils/logger.d.ts +9 -0
  281. package/_types/src/utils/logger.d.ts.map +1 -0
  282. package/_types/src/utils/params.d.ts +27 -0
  283. package/_types/src/utils/params.d.ts.map +1 -0
  284. package/_types/src/utils/pollApi.d.ts +22 -0
  285. package/_types/src/utils/pollApi.d.ts.map +1 -0
  286. package/_types/src/utils/prepareBatchTransaction.d.ts +41 -0
  287. package/_types/src/utils/prepareBatchTransaction.d.ts.map +1 -0
  288. package/_types/src/utils/prepareCallTransaction.d.ts +6 -0
  289. package/_types/src/utils/prepareCallTransaction.d.ts.map +1 -0
  290. package/_types/src/utils/repeatUntilOk.d.ts +10 -0
  291. package/_types/src/utils/repeatUntilOk.d.ts.map +1 -0
  292. package/_types/src/utils/request.d.ts +11 -0
  293. package/_types/src/utils/request.d.ts.map +1 -0
  294. package/_types/src/utils/simulateContract.d.ts +4 -0
  295. package/_types/src/utils/simulateContract.d.ts.map +1 -0
  296. package/_types/src/utils/structuredClone.d.ts +2 -0
  297. package/_types/src/utils/structuredClone.d.ts.map +1 -0
  298. package/_types/src/utils/transaction.d.ts +12 -0
  299. package/_types/src/utils/transaction.d.ts.map +1 -0
  300. package/_types/src/utils/viemWallet.d.ts +5 -0
  301. package/_types/src/utils/viemWallet.d.ts.map +1 -0
  302. package/_types/src/utils/websocket.d.ts +30 -0
  303. package/_types/src/utils/websocket.d.ts.map +1 -0
  304. package/_types/src/version.d.ts +2 -0
  305. package/_types/src/version.d.ts.map +1 -0
  306. package/_types/tsconfig.build.tsbuildinfo +1 -0
  307. package/package.json +57 -0
  308. package/readme.md +37 -0
@@ -0,0 +1,124 @@
1
+ import { LogLevel } from '../logger.js';
2
+ export function handleWebSocketUpdate({ data, stepItems, chainId, setState, json, client, statusControl, onTerminalError }) {
3
+ statusControl.lastKnownStatus = data.status;
4
+ // Clear any existing failure timeout if we receive a non-failure status
5
+ // This handles the case where failure -> pending -> refund flow occurs
6
+ if (data.status !== 'failure') {
7
+ clearFailureTimeout(statusControl, client, `status changed to ${data.status}`);
8
+ }
9
+ // Handle terminal states (success, refund)
10
+ if (isTerminalStatus(data.status)) {
11
+ client.log(['WebSocket received terminal status: ', data.status], LogLevel.Verbose);
12
+ statusControl.closeWebSocket?.();
13
+ switch (data.status) {
14
+ case 'success':
15
+ handleSuccessStatus(data, stepItems, chainId, setState, json, client);
16
+ break;
17
+ case 'refund':
18
+ handleRefundStatus(client, stepItems, onTerminalError);
19
+ break;
20
+ }
21
+ }
22
+ // Handle failure status with delay (refund flow: pending -> failure -> pending -> refund)
23
+ else if (data.status === 'failure') {
24
+ handleFailureStatusWithDelay(stepItems, client, statusControl, onTerminalError);
25
+ }
26
+ // Handle pending status - just log it
27
+ else if (data.status === 'pending') {
28
+ client.log(['WebSocket received pending status'], LogLevel.Verbose);
29
+ }
30
+ }
31
+ function isTerminalStatus(status) {
32
+ // Note: 'failure' is not immediately terminal due to the refund flow:
33
+ // pending -> failure -> pending -> refund
34
+ return ['success', 'refund'].includes(status);
35
+ }
36
+ function handleSuccessStatus(data, stepItems, chainId, setState, json, client) {
37
+ // Update txHashes if provided
38
+ if (data.txHashes && data.txHashes.length > 0) {
39
+ const txHashes = data.txHashes.map((hash) => ({
40
+ txHash: hash,
41
+ chainId: data.destinationChainId ?? chainId
42
+ }));
43
+ updateIncompleteItems(stepItems, (item) => {
44
+ item.txHashes = txHashes;
45
+ });
46
+ }
47
+ // Update internalTxHashes if provided
48
+ if (data.inTxHashes && data.inTxHashes.length > 0) {
49
+ const internalTxHashes = data.inTxHashes.map((hash) => ({
50
+ txHash: hash,
51
+ chainId: data.originChainId ?? chainId
52
+ }));
53
+ updateIncompleteItems(stepItems, (item) => {
54
+ item.internalTxHashes = internalTxHashes;
55
+ });
56
+ }
57
+ // Mark step items as complete
58
+ updateIncompleteItems(stepItems, (item) => {
59
+ item.status = 'complete';
60
+ item.progressState = 'complete';
61
+ item.checkStatus = 'success';
62
+ });
63
+ // Update state with completed steps
64
+ setState({
65
+ steps: [...json.steps],
66
+ fees: { ...json?.fees },
67
+ breakdown: json?.breakdown,
68
+ details: json?.details
69
+ });
70
+ client.log(['WebSocket: Step completed successfully', data], LogLevel.Verbose);
71
+ }
72
+ function handleFailureStatus(client, stepItems, onTerminalError) {
73
+ client.log(['WebSocket: transaction failed'], LogLevel.Error);
74
+ updateIncompleteItems(stepItems, (item) => {
75
+ item.checkStatus = 'failure';
76
+ });
77
+ const error = new Error('Transaction failed');
78
+ onTerminalError?.(error);
79
+ }
80
+ function handleRefundStatus(client, stepItems, onTerminalError) {
81
+ client.log(['WebSocket: transaction refunded'], LogLevel.Verbose);
82
+ updateIncompleteItems(stepItems, (item) => {
83
+ item.checkStatus = 'refund';
84
+ });
85
+ const error = new Error('Transaction failed: Refunded');
86
+ onTerminalError?.(error);
87
+ }
88
+ function handleFailureStatusWithDelay(stepItems, client, statusControl, onTerminalError) {
89
+ // Clear any existing failure timeout to handle multiple failure statuses
90
+ clearFailureTimeout(statusControl, client, 'new failure status received');
91
+ client.log([
92
+ 'WebSocket received failure status, waiting 2 seconds for potential status change'
93
+ ], LogLevel.Verbose);
94
+ // Set a 2-second timeout to handle the case where failure is truly terminal
95
+ statusControl.websocketFailureTimeoutId = setTimeout(() => {
96
+ // Only proceed with failure handling if timeout still exists and status is still failure
97
+ if (statusControl.websocketFailureTimeoutId &&
98
+ statusControl.lastKnownStatus === 'failure') {
99
+ client.log(['WebSocket: 2-second timeout expired, treating failure as terminal'], LogLevel.Error);
100
+ // Clear the timeout state
101
+ statusControl.websocketFailureTimeoutId = null;
102
+ // Handle as terminal failure
103
+ handleFailureStatus(client, stepItems, onTerminalError);
104
+ }
105
+ else {
106
+ client.log(['WebSocket: Failure timeout cancelled due to status change'], LogLevel.Verbose);
107
+ }
108
+ }, 2000); // 2 seconds
109
+ }
110
+ function updateIncompleteItems(stepItems, updateFn) {
111
+ stepItems.forEach((item) => {
112
+ if (item.status === 'incomplete') {
113
+ updateFn(item);
114
+ }
115
+ });
116
+ }
117
+ function clearFailureTimeout(statusControl, client, reason) {
118
+ if (statusControl.websocketFailureTimeoutId) {
119
+ clearTimeout(statusControl.websocketFailureTimeoutId);
120
+ statusControl.websocketFailureTimeoutId = null;
121
+ client.log([`Cleared failure timeout: ${reason}`], LogLevel.Verbose);
122
+ }
123
+ }
124
+ //# sourceMappingURL=websocketHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocketHandlers.js","sourceRoot":"","sources":["../../../../src/utils/executeSteps/websocketHandlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { configureViemChain } from './chain.js';
2
+ import { axios } from './axios.js';
3
+ export const fetchChainConfigs = async (baseApiUrl, referrer) => {
4
+ let queryString = '';
5
+ if (referrer) {
6
+ const queryParams = new URLSearchParams();
7
+ queryParams.set('referrer', referrer);
8
+ queryString = `?${queryParams.toString()}`;
9
+ }
10
+ const response = await axios.get(`${baseApiUrl}/chains${queryString}`);
11
+ if (response.data && response.data.chains) {
12
+ return response.data.chains.map((chain) => configureViemChain(chain));
13
+ }
14
+ throw 'No Chain Data';
15
+ };
16
+ //# sourceMappingURL=fetchChainConfigs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchChainConfigs.js","sourceRoot":"","sources":["../../../src/utils/fetchChainConfigs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,UAAkB,EAClB,QAAiB,EACM,EAAE;IACzB,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAA;QACzC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACrC,WAAW,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAA;IAC5C,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,UAAU,WAAW,EAAE,CAAC,CAAA;IACtE,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,MAAM,eAAe,CAAA;AACvB,CAAC,CAAA"}
@@ -0,0 +1,24 @@
1
+ export const getCurrentStepData = (steps) => {
2
+ let currentStep = null;
3
+ let currentStepItem;
4
+ let txHashes = [];
5
+ for (const step of steps) {
6
+ for (const item of step.items || []) {
7
+ if (item.txHashes && item.txHashes.length > 0) {
8
+ txHashes = item.txHashes.concat([...txHashes]);
9
+ }
10
+ if (item.internalTxHashes && item.internalTxHashes.length > 0) {
11
+ txHashes = item.internalTxHashes.concat([...txHashes]);
12
+ }
13
+ if (item.status === 'incomplete') {
14
+ currentStep = step;
15
+ currentStepItem = item;
16
+ break; // Exit the inner loop once the first incomplete item is found
17
+ }
18
+ }
19
+ if (currentStep && currentStepItem)
20
+ break; // Exit the outer loop if the current step and item have been found
21
+ }
22
+ return { currentStep, currentStepItem, txHashes };
23
+ };
24
+ //# sourceMappingURL=getCurrentStepData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCurrentStepData.js","sourceRoot":"","sources":["../../../src/utils/getCurrentStepData.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAuB,EAAE,EAAE;IAC5D,IAAI,WAAW,GAA8C,IAAI,CAAA;IACjE,IAAI,eAAyE,CAAA;IAC7E,IAAI,QAAQ,GAA0C,EAAE,CAAA;IAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;YAChD,CAAC;YACD,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACjC,WAAW,GAAG,IAAI,CAAA;gBAClB,eAAe,GAAG,IAAI,CAAA;gBACtB,MAAK,CAAC,8DAA8D;YACtE,CAAC;QACH,CAAC;QACD,IAAI,WAAW,IAAI,eAAe;YAAE,MAAK,CAAC,mEAAmE;IAC/G,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA;AACnD,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { axios } from './axios.js';
2
+ export const getTenderlyDetails = (txHash) => {
3
+ return new Promise((resolve) => {
4
+ axios
5
+ .get(`https://api.tenderly.co/api/v1/explorer/${txHash}`, {
6
+ timeout: 5000
7
+ })
8
+ .then((response) => {
9
+ if (response && response.data && response.data.error_info) {
10
+ resolve(response.data.error_info);
11
+ }
12
+ resolve(null);
13
+ })
14
+ .catch((e) => {
15
+ console.warn(`Tenderly api failed: ${e}`);
16
+ resolve(null);
17
+ });
18
+ });
19
+ };
20
+ //# sourceMappingURL=getTenderlyDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTenderlyDetails.js","sourceRoot":"","sources":["../../../src/utils/getTenderlyDetails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAOlC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAc,EACqB,EAAE;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,KAAK;aACF,GAAG,CAAC,2CAA2C,MAAM,EAAE,EAAE;YACxD,OAAO,EAAE,IAAI;SACd,CAAC;aACD,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACnC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,90 @@
1
+ import { parseSignature } from 'viem';
2
+ import axios from 'axios';
3
+ import { LogLevel } from './logger.js';
4
+ export function prepareHyperliquidSignatureStep(steps, chainId) {
5
+ const items = steps[0]?.items;
6
+ const amount = items[0]?.data?.action?.parameters?.amount;
7
+ const destination = items[0]?.data?.action?.parameters?.destination;
8
+ const signatureStep = {
9
+ id: 'sign',
10
+ action: 'Confirm transaction in your wallet',
11
+ description: `Sign a message to confirm the transaction`,
12
+ kind: 'signature',
13
+ items: [
14
+ {
15
+ status: 'incomplete',
16
+ data: {
17
+ sign: {
18
+ signatureKind: 'eip712',
19
+ domain: {
20
+ name: 'HyperliquidSignTransaction',
21
+ version: '1',
22
+ chainId: chainId,
23
+ verifyingContract: '0x0000000000000000000000000000000000000000'
24
+ },
25
+ types: {
26
+ 'HyperliquidTransaction:UsdSend': [
27
+ { name: 'hyperliquidChain', type: 'string' },
28
+ { name: 'destination', type: 'string' },
29
+ { name: 'amount', type: 'string' },
30
+ { name: 'time', type: 'uint64' }
31
+ ],
32
+ EIP712Domain: [
33
+ { name: 'name', type: 'string' },
34
+ { name: 'version', type: 'string' },
35
+ { name: 'chainId', type: 'uint256' },
36
+ { name: 'verifyingContract', type: 'address' }
37
+ ]
38
+ },
39
+ primaryType: 'HyperliquidTransaction:UsdSend',
40
+ value: {
41
+ type: 'usdSend',
42
+ signatureChainId: `0x${chainId.toString(16)}`,
43
+ hyperliquidChain: 'Mainnet',
44
+ destination: destination?.toLowerCase(),
45
+ amount,
46
+ time: new Date().getTime()
47
+ }
48
+ }
49
+ },
50
+ check: {
51
+ endpoint: `/intents/status?requestId=${steps[0]?.requestId}`,
52
+ method: 'GET'
53
+ }
54
+ }
55
+ ],
56
+ requestId: steps[0]?.requestId,
57
+ depositAddress: steps[0]?.depositAddress
58
+ };
59
+ return signatureStep;
60
+ }
61
+ export async function sendUsd(client, signature, stepItem) {
62
+ client.log(['Execute Steps: Sending signature to Hyperliquid', signature], LogLevel.Verbose);
63
+ const { r, s, v } = parseSignature(signature);
64
+ const currentTime = stepItem?.data?.sign?.value?.time ?? new Date().getTime();
65
+ const res = await axios.post('https://api.hyperliquid.xyz/exchange', {
66
+ signature: {
67
+ r,
68
+ s,
69
+ v: Number(v ?? 0n)
70
+ },
71
+ nonce: currentTime,
72
+ action: {
73
+ type: stepItem?.data?.sign?.value?.type,
74
+ signatureChainId: `0x${stepItem?.data?.sign?.domain?.chainId?.toString(16)}`,
75
+ hyperliquidChain: 'Mainnet',
76
+ destination: stepItem?.data?.sign?.value?.destination?.toLowerCase(),
77
+ amount: stepItem?.data?.sign?.value?.amount,
78
+ time: currentTime
79
+ }
80
+ });
81
+ if (!res ||
82
+ !res.data ||
83
+ (res && res.status !== 200) ||
84
+ res.data.status != 'ok') {
85
+ throw 'Failed to send signature to HyperLiquid';
86
+ }
87
+ client.log(['Execute Steps: Signature sent to Hyperliquid', res.data], LogLevel.Verbose);
88
+ return res.data;
89
+ }
90
+ //# sourceMappingURL=hyperliquid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperliquid.js","sourceRoot":"","sources":["../../../src/utils/hyperliquid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export { executeSteps } from './executeSteps/index.js';
2
+ export { setParams } from './params.js';
3
+ export { pollUntilOk, pollUntilHasData } from './pollApi.js';
4
+ export { request, APIError, isAPIError } from './request.js';
5
+ export { log, LogLevel } from './logger.js';
6
+ export { axios } from './axios.js';
7
+ export { default as prepareCallTransaction } from './prepareCallTransaction.js';
8
+ export { adaptViemWallet } from './viemWallet.js';
9
+ export { configureViemChain, convertViemChainToRelayChain } from './chain.js';
10
+ export { fetchChainConfigs } from './fetchChainConfigs.js';
11
+ export { getCurrentStepData } from './getCurrentStepData.js';
12
+ export { isSimulateContractRequest } from './simulateContract.js';
13
+ export { safeStructuredClone } from './structuredClone.js';
14
+ export { repeatUntilOk } from './repeatUntilOk.js';
15
+ export { prepareHyperliquidSignatureStep } from './hyperliquid.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAEL,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,34 @@
1
+ export var LogLevel;
2
+ (function (LogLevel) {
3
+ LogLevel[LogLevel["Verbose"] = 4] = "Verbose";
4
+ LogLevel[LogLevel["Info"] = 3] = "Info";
5
+ LogLevel[LogLevel["Warn"] = 2] = "Warn";
6
+ LogLevel[LogLevel["Error"] = 1] = "Error";
7
+ LogLevel[LogLevel["None"] = 0] = "None";
8
+ })(LogLevel || (LogLevel = {}));
9
+ export const log = (params, level, currentLevel) => {
10
+ if (currentLevel >= level) {
11
+ const data = params.reduce((params, param, i) => {
12
+ if ((i + 1) % 2) {
13
+ params.push('\n');
14
+ }
15
+ params.push(param);
16
+ return params;
17
+ }, []);
18
+ switch (level) {
19
+ case LogLevel.Info:
20
+ console.info(...data);
21
+ break;
22
+ case LogLevel.Error:
23
+ console.error(...data);
24
+ break;
25
+ case LogLevel.Warn:
26
+ console.warn(...data);
27
+ break;
28
+ default:
29
+ console.log(...data);
30
+ break;
31
+ }
32
+ }
33
+ };
34
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,uCAAQ,CAAA;AACV,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAa,EAAE,KAAe,EAAE,YAAsB,EAAE,EAAE;IAC5E,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAClB,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;gBACrB,MAAK;YACP,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;gBACtB,MAAK;YACP,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;gBACrB,MAAK;YACP;gBACE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;gBACpB,MAAK;QACT,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Set URL query params using a typed objects
3
+ *
4
+ * This will convert an object
5
+ *
6
+ * ```js
7
+ * {
8
+ * foo: 'bar',
9
+ * age: 50,
10
+ * }
11
+ * ```
12
+ *
13
+ * into a query string
14
+ *
15
+ * `?foo=bar&age=50`
16
+ *
17
+ * and append it to URL provided
18
+ *
19
+ * `https://api.example.com/tokens?foo=bar&age=50`
20
+ *
21
+ * @param url An URL instance
22
+ * @param query An object containing all needed query params.
23
+ */
24
+ export function setParams(url, query) {
25
+ Object.keys(query).map((key) => {
26
+ let value = query[key];
27
+ if (value !== undefined) {
28
+ if (Array.isArray(value)) {
29
+ value.forEach((item) => {
30
+ url.searchParams.append(key, item);
31
+ });
32
+ }
33
+ else {
34
+ url.searchParams.append(key, query[key]?.toString());
35
+ }
36
+ }
37
+ return url;
38
+ });
39
+ }
40
+ //# sourceMappingURL=params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/utils/params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,UAAU,SAAS,CAAC,GAAQ,EAAE,KAA2B;IAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBACpC,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { axios } from './axios.js';
2
+ /**
3
+ * Poll the URL with a 5 second interval until the step has data
4
+ * available
5
+ * @param url an URL object
6
+ * @param index The index of the step to be polled for
7
+ * @param maximumAttempts The maximum amount of tries for this poll
8
+ * @param attemptCount The amount of attempts already done by the poll, should be left blank
9
+ * @returns The updated JSON response
10
+ */
11
+ export async function pollUntilHasData(request, dataParser, maximumAttempts = 15, attemptCount = 0) {
12
+ if (attemptCount >= maximumAttempts) {
13
+ throw `Failed to get data after ${attemptCount} attempt(s), aborting`;
14
+ }
15
+ async function getData() {
16
+ let res = await axios.request(request);
17
+ return res.data;
18
+ }
19
+ const json = await getData();
20
+ // Check if the data exists
21
+ const dataExists = dataParser(json);
22
+ if (dataExists)
23
+ return json;
24
+ // The response is still unchanged. Check again in five seconds
25
+ await new Promise((resolve) => setTimeout(resolve, 5000));
26
+ attemptCount++;
27
+ await pollUntilHasData(request, dataParser, maximumAttempts, attemptCount);
28
+ }
29
+ /**
30
+ * Poll the URL with a 5 second interval until it responds with success
31
+ * @param url An URL object
32
+ * @param validate A function that checks if the request is "ok" or valid
33
+ * @param maximumAttempts The maximum amount of tries for this poll
34
+ * @param attemptCount The amount of attempts already done by the poll, should be left blank
35
+ * @param pollingInterval The frequency the api will be polled
36
+ * @returns When it has finished polling
37
+ */
38
+ export async function pollUntilOk(request, validate, maximumAttempts = 15, attemptCount = 0, pollingInterval = 5000) {
39
+ if (attemptCount >= maximumAttempts) {
40
+ throw `Failed to get an ok response after ${attemptCount} attempt(s), aborting`;
41
+ }
42
+ const res = await axios.request(request);
43
+ if (!validate) {
44
+ validate = (res) => res.status === 200;
45
+ }
46
+ // Check that the response from an endpoint updated
47
+ if (validate(res)) {
48
+ return true;
49
+ }
50
+ else {
51
+ // The response is still unchanged
52
+ await new Promise((resolve) => setTimeout(resolve, pollingInterval));
53
+ attemptCount++;
54
+ await pollUntilOk(request, validate, maximumAttempts, attemptCount, pollingInterval);
55
+ }
56
+ }
57
+ //# sourceMappingURL=pollApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pollApi.js","sourceRoot":"","sources":["../../../src/utils/pollApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA2B,EAC3B,UAAkC,EAClC,kBAA0B,EAAE,EAC5B,eAAuB,CAAC;IAExB,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,4BAA4B,YAAY,uBAAuB,CAAA;IACvE,CAAC;IACD,KAAK,UAAU,OAAO;QACpB,IAAI,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEtC,OAAO,GAAG,CAAC,IAAI,CAAA;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;IAE5B,2BAA2B;IAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,UAAU;QAAE,OAAO,IAAI,CAAA;IAE3B,+DAA+D;IAC/D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACzD,YAAY,EAAE,CAAA;IACd,MAAM,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,CAAC,CAAA;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B,EAC3B,QAA0C,EAC1C,kBAA0B,EAAE,EAC5B,eAAuB,CAAC,EACxB,kBAA0B,IAAI;IAE9B,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,sCAAsC,YAAY,uBAAuB,CAAA;IACjF,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAA;IACxC,CAAC;IAED,mDAAmD;IACnD,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,CAAC;QACN,kCAAkC;QAClC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;QACpE,YAAY,EAAE,CAAA;QACd,MAAM,WAAW,CACf,OAAO,EACP,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,eAAe,CAChB,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,31 @@
1
+ export function canBatchTransactions(steps) {
2
+ const firstStep = steps[0];
3
+ const secondStep = steps[1];
4
+ const hasIncompleteApproval = firstStep?.items?.some((item) => item.status === 'incomplete');
5
+ const hasIncompleteDeposit = secondStep?.items?.some((item) => item.status === 'incomplete');
6
+ return (firstStep?.id === 'approve' &&
7
+ (secondStep?.id === 'deposit' || secondStep?.id === 'swap') &&
8
+ hasIncompleteApproval &&
9
+ hasIncompleteDeposit);
10
+ }
11
+ export function prepareBatchTransaction(steps) {
12
+ const secondStepId = steps[1]?.id; // deposit or swap
13
+ const batchedStep = {
14
+ id: `approve-and-${secondStepId}`,
15
+ action: 'Confirm transaction in your wallet',
16
+ description: `Batching approval and ${secondStepId} transactions`,
17
+ kind: 'transaction',
18
+ items: [
19
+ ...(steps[0].items || []),
20
+ ...(steps[1].items || []).map((item) => {
21
+ // mark the second step as complete
22
+ item.status = 'complete';
23
+ item.progressState = 'complete';
24
+ return item;
25
+ })
26
+ ],
27
+ requestId: steps[1].requestId ?? steps[0].requestId
28
+ };
29
+ return batchedStep;
30
+ }
31
+ //# sourceMappingURL=prepareBatchTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareBatchTransaction.js","sourceRoot":"","sources":["../../../src/utils/prepareBatchTransaction.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAE3B,MAAM,qBAAqB,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,CAClD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,CACvC,CAAA;IACD,MAAM,oBAAoB,GAAG,UAAU,EAAE,KAAK,EAAE,IAAI,CAClD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,CACvC,CAAA;IAED,OAAO,CACL,SAAS,EAAE,EAAE,KAAK,SAAS;QAC3B,CAAC,UAAU,EAAE,EAAE,KAAK,SAAS,IAAI,UAAU,EAAE,EAAE,KAAK,MAAM,CAAC;QAC3D,qBAAqB;QACrB,oBAAoB,CACrB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAuB;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA,CAAC,kBAAkB;IAEpD,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,eAAe,YAAY,EAAS;QACxC,MAAM,EAAE,oCAAoC;QAC5C,WAAW,EAAE,yBAAyB,YAAY,eAAe;QACjE,IAAI,EAAE,aAAsB;QAC5B,KAAK,EAAE;YACL,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrC,mCAAmC;gBACnC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;gBACxB,IAAI,CAAC,aAAa,GAAG,UAAU,CAAA;gBAC/B,OAAO,IAAI,CAAA;YACb,CAAC,CAAC;SACH;QACD,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KACpD,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { encodeFunctionData } from 'viem';
2
+ export default function prepareCallTransaction(request) {
3
+ const { abi, functionName, args } = request;
4
+ const data = encodeFunctionData({ abi, functionName, args });
5
+ return {
6
+ to: request.address,
7
+ value: request?.value?.toString() ?? '0',
8
+ data: data
9
+ };
10
+ }
11
+ //# sourceMappingURL=prepareCallTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareCallTransaction.js","sourceRoot":"","sources":["../../../src/utils/prepareCallTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAOzC,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,OAGC;IAED,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAE3C,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,OAAO;QACnB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;QACxC,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Repeat a function until the function returns true for a maximum set of attempts with a fixed interval
3
+ * @param callback A function that returns true to exit the loop
4
+ * @param maximumAttempts The maximum amount of tries for this poll
5
+ * @param attemptCount The amount of attempts already done by the poll, should be left blank
6
+ * @param pollingInterval The frequency of the loop
7
+ * @returns When it has finished polling
8
+ */
9
+ export async function repeatUntilOk(callback, maximumAttempts = 15, attemptCount = 0, pollingInterval = 5000) {
10
+ if (attemptCount >= maximumAttempts) {
11
+ throw `Failed to get an ok response after ${attemptCount} attempt(s), aborting`;
12
+ }
13
+ const response = await callback();
14
+ if (response) {
15
+ return true;
16
+ }
17
+ else {
18
+ await new Promise((resolve) => setTimeout(resolve, pollingInterval));
19
+ attemptCount++;
20
+ await repeatUntilOk(callback, maximumAttempts, attemptCount, pollingInterval);
21
+ }
22
+ }
23
+ //# sourceMappingURL=repeatUntilOk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeatUntilOk.js","sourceRoot":"","sources":["../../../src/utils/repeatUntilOk.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgC,EAChC,kBAA0B,EAAE,EAC5B,eAAuB,CAAC,EACxB,kBAA0B,IAAI;IAE9B,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,sCAAsC,YAAY,uBAAuB,CAAA;IACjF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,EAAE,CAAA;IAEjC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;QACpE,YAAY,EAAE,CAAA;QACd,MAAM,aAAa,CACjB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,eAAe,CAChB,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { axios } from './axios.js';
2
+ export function request(config = {}) {
3
+ return axios.request(config);
4
+ }
5
+ export function isAPIError(error) {
6
+ return error && error.cause === 'APIError';
7
+ }
8
+ export class APIError extends Error {
9
+ constructor(message = 'Unknown Reason', statusCode, rawError, type = 'APIError', options = {}) {
10
+ super(message, { ...options, cause: 'APIError' });
11
+ Object.defineProperty(this, "type", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: void 0
16
+ });
17
+ Object.defineProperty(this, "statusCode", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: void 0
22
+ });
23
+ Object.defineProperty(this, "rawError", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: void 0
28
+ });
29
+ Object.defineProperty(this, "endpoint", {
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true,
33
+ value: void 0
34
+ });
35
+ this.name = 'APIError';
36
+ this.type = type;
37
+ this.statusCode = statusCode;
38
+ this.endpoint = rawError?.endpoint;
39
+ this.rawError = rawError;
40
+ }
41
+ }
42
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,MAAM,UAAU,OAAO,CAAC,SAA6B,EAAE;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,CAAA;AAC5C,CAAC;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IAMjC,YACE,UAAkB,gBAAgB,EAClC,UAAkB,EAClB,QAAc,EACd,OAAe,UAAU,EACzB,UAAe,EAAE;QAEjB,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;QAZnD;;;;;WAAY;QACZ;;;;;WAAkB;QAClB;;;;;WAAa;QACb;;;;;WAAiB;QAUf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import {} from 'viem';
2
+ export function isSimulateContractRequest(tx) {
3
+ return tx.abi !== undefined;
4
+ }
5
+ //# sourceMappingURL=simulateContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulateContract.js","sourceRoot":"","sources":["../../../src/utils/simulateContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,MAAM,CAAA;AAInD,MAAM,UAAU,yBAAyB,CACvC,EAAO;IAEP,OAAQ,EAA8B,CAAC,GAAG,KAAK,SAAS,CAAA;AAC1D,CAAC"}
@@ -0,0 +1,8 @@
1
+ export function safeStructuredClone(obj) {
2
+ if (typeof structuredClone === 'function') {
3
+ return structuredClone(obj);
4
+ }
5
+ // Fallback implementation, for Chrome < 98 (before 2022)
6
+ return JSON.parse(JSON.stringify(obj));
7
+ }
8
+ //# sourceMappingURL=structuredClone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredClone.js","sourceRoot":"","sources":["../../../src/utils/structuredClone.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAI,GAAM;IAC3C,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;QAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IACD,yDAAyD;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AACxC,CAAC"}