@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,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safeStructuredClone = void 0;
4
+ function safeStructuredClone(obj) {
5
+ if (typeof structuredClone === 'function') {
6
+ return structuredClone(obj);
7
+ }
8
+ return JSON.parse(JSON.stringify(obj));
9
+ }
10
+ exports.safeStructuredClone = safeStructuredClone;
11
+ //# sourceMappingURL=structuredClone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredClone.js","sourceRoot":"","sources":["../../../src/utils/structuredClone.ts"],"names":[],"mappings":";;;AAAA,SAAgB,mBAAmB,CAAI,GAAM;IAC3C,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;QAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AACxC,CAAC;AAND,kDAMC"}
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendTransactionSafely = void 0;
4
+ const logger_js_1 = require("./logger.js");
5
+ const axios_js_1 = require("../utils/axios.js");
6
+ const client_js_1 = require("../client.js");
7
+ const index_js_1 = require("../errors/index.js");
8
+ const repeatUntilOk_js_1 = require("../utils/repeatUntilOk.js");
9
+ const getTenderlyDetails_js_1 = require("../utils/getTenderlyDetails.js");
10
+ async function sendTransactionSafely(chainId, items, step, wallet, setTxHashes, setInternalTxHashes, onWebsocketFailed, request, headers, crossChainIntentChainId, isValidating, details, setReceipt, setCheckStatus, statusControl) {
11
+ const client = (0, client_js_1.getClient)();
12
+ try {
13
+ await (0, repeatUntilOk_js_1.repeatUntilOk)(async () => {
14
+ const walletChainId = await wallet.getChainId();
15
+ return walletChainId === chainId;
16
+ }, 10, undefined, 250);
17
+ }
18
+ catch (e) {
19
+ const walletChainId = await wallet.getChainId();
20
+ throw `Current chain id: ${walletChainId} does not match expected chain id: ${chainId} `;
21
+ }
22
+ let receipt;
23
+ let transactionCancelled = false;
24
+ let confirmationError = false;
25
+ const pollingInterval = client.pollingInterval ?? 5000;
26
+ const maximumAttempts = client.maxPollingAttemptsBeforeTimeout ??
27
+ (2.5 * 60 * 1000) / pollingInterval;
28
+ let waitingForConfirmation = true;
29
+ let attemptCount = 0;
30
+ let txHash;
31
+ const isBatchTransaction = Boolean(Array.isArray(items) &&
32
+ items.length > 1 &&
33
+ wallet.handleBatchTransactionStep);
34
+ if (isBatchTransaction) {
35
+ txHash = await wallet.handleBatchTransactionStep?.(chainId, items);
36
+ }
37
+ else {
38
+ txHash = await wallet.handleSendTransactionStep(chainId, Array.isArray(items) ? items[0] : items, step);
39
+ }
40
+ if (txHash === 'null') {
41
+ throw 'User rejected the request';
42
+ }
43
+ const check = Array.isArray(items)
44
+ ? items.find((item) => item.check)?.check
45
+ : items.check;
46
+ postTransactionToSolver({
47
+ txHash,
48
+ chainId,
49
+ step,
50
+ request,
51
+ headers,
52
+ source: client.source
53
+ });
54
+ if (txHash &&
55
+ !isBatchTransaction &&
56
+ !Array.isArray(items) &&
57
+ chainId === details?.currencyOut?.currency?.chainId) {
58
+ postSameChainTransactionToSolver({
59
+ calldata: JSON.stringify({ ...items.data, txHash }),
60
+ chainId,
61
+ step,
62
+ request,
63
+ headers,
64
+ source: client.source
65
+ });
66
+ }
67
+ if (!txHash) {
68
+ throw Error('Transaction hash not returned from handleSendTransactionStep method');
69
+ }
70
+ setTxHashes([
71
+ { txHash: txHash, chainId: chainId, isBatchTx: isBatchTransaction }
72
+ ]);
73
+ const validate = (res) => {
74
+ (0, client_js_1.getClient)()?.log(['Execute Steps: Polling for confirmation', res], logger_js_1.LogLevel.Verbose);
75
+ setCheckStatus?.(res.data?.status);
76
+ if (res.status === 200 && res.data && res.data.status === 'failure') {
77
+ throw Error('Transaction failed');
78
+ }
79
+ if (res.status === 200 && res.data && res.data.status === 'fallback') {
80
+ throw Error('Transaction failed: Refunded');
81
+ }
82
+ if (res.status === 200 && res.data && res.data.status === 'success') {
83
+ if (txHash) {
84
+ setInternalTxHashes([
85
+ { txHash: txHash, chainId: chainId, isBatchTx: isBatchTransaction }
86
+ ]);
87
+ }
88
+ else if (res?.data?.inTxHashes) {
89
+ const depositTxHashes = res.data?.inTxHashes?.map((hash) => {
90
+ return {
91
+ txHash: hash,
92
+ chainId: res?.data?.originChainId ?? chainId,
93
+ isBatchTx: isBatchTransaction
94
+ };
95
+ });
96
+ setInternalTxHashes(depositTxHashes);
97
+ }
98
+ const fillTxHashes = res.data?.txHashes?.map((hash) => {
99
+ return {
100
+ txHash: hash,
101
+ chainId: res?.data?.destinationChainId ?? crossChainIntentChainId
102
+ };
103
+ });
104
+ setTxHashes(fillTxHashes);
105
+ return true;
106
+ }
107
+ return false;
108
+ };
109
+ const pollForConfirmation = async (receiptController) => {
110
+ isValidating?.();
111
+ if (onWebsocketFailed) {
112
+ try {
113
+ await onWebsocketFailed();
114
+ client.log(['WebSocket failed, starting polling'], logger_js_1.LogLevel.Verbose);
115
+ }
116
+ catch (e) {
117
+ client.log(['WebSocket failed promise rejected, skipping polling'], logger_js_1.LogLevel.Verbose);
118
+ return;
119
+ }
120
+ }
121
+ while (waitingForConfirmation &&
122
+ attemptCount < maximumAttempts &&
123
+ !transactionCancelled &&
124
+ !confirmationError) {
125
+ client.log(['Polling for confirmation'], logger_js_1.LogLevel.Verbose);
126
+ let res;
127
+ if (check?.endpoint && !request?.data?.useExternalLiquidity) {
128
+ let endpoint = check?.endpoint;
129
+ if (client.source &&
130
+ !endpoint.includes('referrer') &&
131
+ check?.method === 'GET') {
132
+ endpoint = endpoint.includes('?')
133
+ ? `${endpoint}&referrer=${client.source}`
134
+ : `${endpoint}?referrer=${client.source}`;
135
+ }
136
+ try {
137
+ res = await axios_js_1.axios.request({
138
+ url: `${request.baseURL}${endpoint}`,
139
+ method: check?.method,
140
+ headers: headers
141
+ });
142
+ }
143
+ catch (e) {
144
+ (0, client_js_1.getClient)()?.log(['Execute Steps: Polling for confirmation api error', e], logger_js_1.LogLevel.Verbose);
145
+ res = {
146
+ data: {},
147
+ status: 200,
148
+ statusText: 'OK',
149
+ headers: {},
150
+ config: {
151
+ headers: {}
152
+ }
153
+ };
154
+ }
155
+ }
156
+ if (res?.data?.status === 'pending' && waitingForConfirmation) {
157
+ receiptController?.abort();
158
+ }
159
+ if (!res || validate(res)) {
160
+ waitingForConfirmation = false;
161
+ }
162
+ else if (res) {
163
+ if (res.data.status !== 'pending') {
164
+ isValidating?.(res);
165
+ attemptCount++;
166
+ }
167
+ await new Promise((resolve) => setTimeout(resolve, pollingInterval));
168
+ }
169
+ }
170
+ if (attemptCount >= maximumAttempts) {
171
+ if (receipt) {
172
+ throw new index_js_1.SolverStatusTimeoutError(txHash, attemptCount);
173
+ }
174
+ else {
175
+ throw new index_js_1.DepositTransactionTimeoutError(txHash, attemptCount);
176
+ }
177
+ }
178
+ if (transactionCancelled) {
179
+ throw Error('Transaction was cancelled');
180
+ }
181
+ return true;
182
+ };
183
+ const waitForTransaction = () => {
184
+ const controller = new AbortController();
185
+ const signal = controller.signal;
186
+ return {
187
+ promise: wallet
188
+ .handleConfirmTransactionStep(txHash, chainId, (replacementTxHash) => {
189
+ if (signal.aborted) {
190
+ return;
191
+ }
192
+ setTxHashes([{ txHash: replacementTxHash, chainId: chainId }]);
193
+ txHash = replacementTxHash;
194
+ attemptCount = 0;
195
+ (0, client_js_1.getClient)()?.log(['Transaction replaced', replacementTxHash], logger_js_1.LogLevel.Verbose);
196
+ postTransactionToSolver({
197
+ txHash: replacementTxHash,
198
+ chainId,
199
+ step,
200
+ request,
201
+ headers,
202
+ source: client.source
203
+ });
204
+ if (!isBatchTransaction &&
205
+ !Array.isArray(items) &&
206
+ chainId === details?.currencyOut?.currency?.chainId) {
207
+ postSameChainTransactionToSolver({
208
+ calldata: JSON.stringify({ ...items.data, replacementTxHash }),
209
+ chainId,
210
+ step,
211
+ request,
212
+ headers,
213
+ source: client.source
214
+ });
215
+ }
216
+ }, () => {
217
+ if (signal.aborted) {
218
+ return;
219
+ }
220
+ transactionCancelled = true;
221
+ (0, client_js_1.getClient)()?.log(['Transaction cancelled'], logger_js_1.LogLevel.Verbose);
222
+ })
223
+ .then((data) => {
224
+ if (signal.aborted) {
225
+ return;
226
+ }
227
+ receipt = data;
228
+ setReceipt?.(receipt);
229
+ if (receipt &&
230
+ typeof receipt === 'object' &&
231
+ 'status' in receipt &&
232
+ receipt.status === 'reverted') {
233
+ throw 'Transaction Reverted';
234
+ }
235
+ (0, client_js_1.getClient)()?.log(['Transaction Receipt obtained', receipt], logger_js_1.LogLevel.Verbose);
236
+ })
237
+ .catch(async (error) => {
238
+ if (signal.aborted) {
239
+ return;
240
+ }
241
+ let tenderlyError = null;
242
+ if (receipt && receipt.transactionHash) {
243
+ tenderlyError = await (0, getTenderlyDetails_js_1.getTenderlyDetails)(receipt.transactionHash);
244
+ }
245
+ (0, client_js_1.getClient)()?.log(['Error in handleConfirmTransactionStep', error], logger_js_1.LogLevel.Error);
246
+ if (error.message === 'Transaction cancelled') {
247
+ transactionCancelled = true;
248
+ }
249
+ else {
250
+ confirmationError = true;
251
+ throw new index_js_1.TransactionConfirmationError(error, receipt, tenderlyError);
252
+ }
253
+ }),
254
+ controller
255
+ };
256
+ };
257
+ if (chainId === 8253038) {
258
+ return true;
259
+ }
260
+ if (isBatchTransaction) {
261
+ await pollForConfirmation();
262
+ }
263
+ else if (step.id === 'approve' ||
264
+ details?.currencyOut?.currency?.chainId === 8253038 ||
265
+ request?.data?.useExternalLiquidity) {
266
+ await waitForTransaction().promise;
267
+ if (details?.currencyOut?.currency?.chainId !== 8253038 &&
268
+ !request?.data?.useExternalLiquidity) {
269
+ await pollForConfirmation();
270
+ }
271
+ }
272
+ else {
273
+ const { promise: receiptPromise, controller: receiptController } = waitForTransaction();
274
+ const confirmationPromise = pollForConfirmation(receiptController);
275
+ await Promise.race([receiptPromise, confirmationPromise]);
276
+ const isSameChain = details?.currencyOut?.currency?.chainId === chainId;
277
+ if (waitingForConfirmation) {
278
+ if (!isSameChain) {
279
+ await confirmationPromise;
280
+ }
281
+ else {
282
+ waitingForConfirmation = false;
283
+ if (statusControl) {
284
+ statusControl.lastKnownStatus = 'success';
285
+ }
286
+ }
287
+ }
288
+ if (!receipt) {
289
+ if (!check) {
290
+ await receiptPromise;
291
+ }
292
+ else {
293
+ receiptController.abort();
294
+ }
295
+ }
296
+ }
297
+ return true;
298
+ }
299
+ exports.sendTransactionSafely = sendTransactionSafely;
300
+ const postSameChainTransactionToSolver = async ({ calldata, chainId, request, headers, step, source }) => {
301
+ if (calldata && step.requestId && chainId) {
302
+ (0, client_js_1.getClient)()?.log(['Posting same chain transaction to notify the solver'], logger_js_1.LogLevel.Verbose);
303
+ try {
304
+ const triggerData = {
305
+ tx: calldata,
306
+ chainId: chainId.toString(),
307
+ requestId: step.requestId,
308
+ referrer: source
309
+ };
310
+ axios_js_1.axios
311
+ .request({
312
+ url: `${request.baseURL}/transactions/single`,
313
+ method: 'POST',
314
+ headers: headers,
315
+ data: triggerData
316
+ })
317
+ .then(() => {
318
+ (0, client_js_1.getClient)()?.log(['Same chain transaction notified to the solver'], logger_js_1.LogLevel.Verbose);
319
+ });
320
+ }
321
+ catch (e) {
322
+ (0, client_js_1.getClient)()?.log(['Failed to post same chain transaction to solver', e], logger_js_1.LogLevel.Warn);
323
+ }
324
+ }
325
+ };
326
+ const postTransactionToSolver = async ({ txHash, chainId, request, headers, step, source }) => {
327
+ if (step.id === 'deposit' && txHash) {
328
+ (0, client_js_1.getClient)()?.log(['Posting transaction to notify the solver'], logger_js_1.LogLevel.Verbose);
329
+ try {
330
+ const triggerData = {
331
+ txHash,
332
+ chainId: chainId.toString(),
333
+ referrer: source
334
+ };
335
+ axios_js_1.axios
336
+ .request({
337
+ url: `${request.baseURL}/transactions/index`,
338
+ method: 'POST',
339
+ headers: headers,
340
+ data: triggerData
341
+ })
342
+ .then(() => {
343
+ (0, client_js_1.getClient)()?.log(['Transaction notified to the solver'], logger_js_1.LogLevel.Verbose);
344
+ });
345
+ }
346
+ catch (e) {
347
+ (0, client_js_1.getClient)()?.log(['Failed to post transaction to solver', e], logger_js_1.LogLevel.Warn);
348
+ }
349
+ }
350
+ };
351
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/utils/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adaptViemWallet = exports.isViemWalletClient = void 0;
4
+ const logger_js_1 = require("./logger.js");
5
+ const client_js_1 = require("../client.js");
6
+ const viem_1 = require("viem");
7
+ function isViemWalletClient(wallet) {
8
+ return (wallet.extend !== undefined &&
9
+ wallet.getPermissions !== undefined);
10
+ }
11
+ exports.isViemWalletClient = isViemWalletClient;
12
+ const adaptViemWallet = (wallet) => {
13
+ return {
14
+ vmType: 'evm',
15
+ getChainId: async () => {
16
+ return wallet.getChainId();
17
+ },
18
+ transport: (0, viem_1.custom)(wallet.transport),
19
+ address: async () => {
20
+ let address = wallet.account?.address;
21
+ if (!address) {
22
+ ;
23
+ [address] = await wallet.getAddresses();
24
+ }
25
+ return address;
26
+ },
27
+ handleSignMessageStep: async (stepItem) => {
28
+ const client = (0, client_js_1.getClient)();
29
+ const signData = stepItem.data?.sign;
30
+ let signature;
31
+ if (signData) {
32
+ if (signData.signatureKind === 'eip191') {
33
+ client.log(['Execute Steps: Signing with eip191'], logger_js_1.LogLevel.Verbose);
34
+ if (signData.message.match(/0x[0-9a-fA-F]{64}/)) {
35
+ signature = await wallet.signMessage({
36
+ account: wallet.account,
37
+ message: {
38
+ raw: signData.message
39
+ }
40
+ });
41
+ }
42
+ else {
43
+ signature = await wallet.signMessage({
44
+ account: wallet.account,
45
+ message: signData.message
46
+ });
47
+ }
48
+ }
49
+ else if (signData.signatureKind === 'eip712') {
50
+ const signatureData = {
51
+ account: wallet.account,
52
+ domain: signData.domain,
53
+ types: signData.types,
54
+ primaryType: signData.primaryType,
55
+ message: signData.value
56
+ };
57
+ client.log(['Execute Steps: Signing with eip712', signatureData], logger_js_1.LogLevel.Verbose);
58
+ signature = await wallet.signTypedData(signatureData);
59
+ }
60
+ }
61
+ return signature;
62
+ },
63
+ handleSendTransactionStep: async (chainId, stepItem) => {
64
+ const stepData = stepItem.data;
65
+ const client = (0, client_js_1.getClient)();
66
+ const chain = (0, client_js_1.getClient)().chains.find((chain) => chain.id === chainId)?.viemChain;
67
+ if (!chain) {
68
+ throw 'Chain not found when sending transaction';
69
+ }
70
+ const viemClient = (0, viem_1.createWalletClient)({
71
+ account: wallet.account ?? stepData.from,
72
+ chain,
73
+ transport: (0, viem_1.custom)(wallet.transport, { retryCount: 10, retryDelay: 200 })
74
+ });
75
+ return await viemClient.sendTransaction({
76
+ chain,
77
+ data: stepData.data,
78
+ account: wallet.account ?? stepData.from,
79
+ to: stepData.to,
80
+ value: (0, viem_1.hexToBigInt)(stepData.value || 0),
81
+ ...(stepData.maxFeePerGas &&
82
+ client.useGasFeeEstimations && {
83
+ maxFeePerGas: (0, viem_1.hexToBigInt)(stepData.maxFeePerGas)
84
+ }),
85
+ ...(stepData.maxPriorityFeePerGas &&
86
+ client.useGasFeeEstimations && {
87
+ maxPriorityFeePerGas: (0, viem_1.hexToBigInt)(stepData.maxPriorityFeePerGas)
88
+ }),
89
+ ...(stepData.gas &&
90
+ client.useGasFeeEstimations && {
91
+ gas: (0, viem_1.hexToBigInt)(stepData.gas)
92
+ })
93
+ });
94
+ },
95
+ handleConfirmTransactionStep: async (txHash, chainId, onReplaced, onCancelled) => {
96
+ const client = (0, client_js_1.getClient)();
97
+ const chain = client.chains.find((chain) => chain.id === chainId);
98
+ const rpcUrl = chain?.httpRpcUrl;
99
+ const viemClient = (0, viem_1.createPublicClient)({
100
+ chain: chain?.viemChain,
101
+ transport: wallet.transport
102
+ ? (0, viem_1.fallback)(rpcUrl
103
+ ? [(0, viem_1.http)(rpcUrl), (0, viem_1.custom)(wallet.transport), (0, viem_1.http)()]
104
+ : [(0, viem_1.custom)(wallet.transport), (0, viem_1.http)()])
105
+ : (0, viem_1.fallback)([(0, viem_1.http)(rpcUrl), (0, viem_1.http)()]),
106
+ pollingInterval: client.confirmationPollingInterval
107
+ });
108
+ const receipt = await viemClient.waitForTransactionReceipt({
109
+ hash: txHash,
110
+ onReplaced: (replacement) => {
111
+ if (replacement.reason === 'cancelled') {
112
+ onCancelled();
113
+ throw Error('Transaction cancelled');
114
+ }
115
+ onReplaced(replacement.transaction.hash);
116
+ }
117
+ });
118
+ return receipt;
119
+ },
120
+ switchChain: async (chainId) => {
121
+ try {
122
+ await wallet.switchChain({
123
+ id: chainId
124
+ });
125
+ return;
126
+ }
127
+ catch (e) {
128
+ if (e && e?.message) {
129
+ if (e.message.includes('does not support the requested chain')) {
130
+ throw new Error('Wallet does not support chain');
131
+ }
132
+ else if (e.message.includes('rejected')) {
133
+ throw e;
134
+ }
135
+ else if (e.message.includes('already pending')) {
136
+ return;
137
+ }
138
+ }
139
+ const client = (0, client_js_1.getClient)();
140
+ const chain = client.chains.find((chain) => chain.id === chainId);
141
+ if (!chain) {
142
+ throw 'Chain missing from Relay Client';
143
+ }
144
+ try {
145
+ await wallet.addChain({
146
+ chain: chain?.viemChain
147
+ });
148
+ }
149
+ catch (e) {
150
+ if (e instanceof Error &&
151
+ e.name &&
152
+ e.name === 'InternalRpcError' &&
153
+ e.message.includes('is not a function')) {
154
+ (0, client_js_1.getClient)()?.log([
155
+ 'Execute Steps: Detected internal RPC Error when adding a chain to the wallet',
156
+ e
157
+ ], logger_js_1.LogLevel.Verbose);
158
+ return;
159
+ }
160
+ else {
161
+ throw e;
162
+ }
163
+ }
164
+ return;
165
+ }
166
+ },
167
+ supportsAtomicBatch: async (chainId) => {
168
+ if (!wallet.account)
169
+ return false;
170
+ try {
171
+ const capabilities = await wallet.getCapabilities({
172
+ account: wallet.account,
173
+ chainId
174
+ });
175
+ return capabilities?.atomicBatch?.supported;
176
+ }
177
+ catch {
178
+ return false;
179
+ }
180
+ },
181
+ handleBatchTransactionStep: async (chainId, items) => {
182
+ const calls = items.map((item) => ({
183
+ to: item.data.to,
184
+ data: item.data.data,
185
+ value: (0, viem_1.hexToBigInt)(item.data.value || 0),
186
+ ...(item.data.maxFeePerGas && {
187
+ maxFeePerGas: (0, viem_1.hexToBigInt)(item.data.maxFeePerGas)
188
+ }),
189
+ ...(item.data.maxPriorityFeePerGas && {
190
+ maxPriorityFeePerGas: (0, viem_1.hexToBigInt)(item.data.maxPriorityFeePerGas)
191
+ }),
192
+ ...(item.data.gas && {
193
+ gas: (0, viem_1.hexToBigInt)(item.data.gas)
194
+ })
195
+ }));
196
+ const client = (0, client_js_1.getClient)();
197
+ const chain = client.chains.find((chain) => chain.id === chainId)?.viemChain;
198
+ if (!chain) {
199
+ throw 'Chain not found when sending transaction';
200
+ }
201
+ const { id } = await wallet.sendCalls({
202
+ chain,
203
+ account: wallet.account,
204
+ calls
205
+ });
206
+ return id;
207
+ }
208
+ };
209
+ };
210
+ exports.adaptViemWallet = adaptViemWallet;
211
+ //# sourceMappingURL=viemWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viemWallet.js","sourceRoot":"","sources":["../../../src/utils/viemWallet.ts"],"names":[],"mappings":"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"}