@lifi/sdk 3.5.0-beta.0 → 3.5.1-beta.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 (183) hide show
  1. package/package.json +8 -9
  2. package/src/_cjs/constants.js +2 -4
  3. package/src/_cjs/constants.js.map +1 -1
  4. package/src/_cjs/core/EVM/EVM.js +4 -0
  5. package/src/_cjs/core/EVM/EVM.js.map +1 -1
  6. package/src/_cjs/core/EVM/EVMStepExecutor.js +79 -145
  7. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  8. package/src/_cjs/core/EVM/abi.js +43 -36
  9. package/src/_cjs/core/EVM/abi.js.map +1 -1
  10. package/src/_cjs/core/EVM/checkAllowance.js +30 -36
  11. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
  12. package/src/_cjs/core/EVM/getAllowance.js.map +1 -1
  13. package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -1
  14. package/src/_cjs/core/EVM/multisig.js +29 -0
  15. package/src/_cjs/core/EVM/multisig.js.map +1 -0
  16. package/src/_cjs/core/EVM/parseEVMErrors.js +0 -3
  17. package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -1
  18. package/src/_cjs/core/EVM/setAllowance.js +6 -4
  19. package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
  20. package/src/_cjs/core/EVM/switchChain.js +3 -2
  21. package/src/_cjs/core/EVM/switchChain.js.map +1 -1
  22. package/src/_cjs/core/EVM/types.js.map +1 -1
  23. package/src/_cjs/core/EVM/utils.js +1 -2
  24. package/src/_cjs/core/EVM/utils.js.map +1 -1
  25. package/src/_cjs/core/Solana/SolanaStepExecutor.js +2 -48
  26. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
  27. package/src/_cjs/core/UTXO/UTXOStepExecutor.js +2 -48
  28. package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -1
  29. package/src/_cjs/core/checkBalance.js +3 -3
  30. package/src/_cjs/core/checkBalance.js.map +1 -1
  31. package/src/_cjs/core/waitForDestinationChainTransaction.js +53 -0
  32. package/src/_cjs/core/waitForDestinationChainTransaction.js.map +1 -0
  33. package/src/_cjs/core/{waitForReceivingTransaction.js → waitForTransactionStatus.js} +3 -3
  34. package/src/_cjs/core/waitForTransactionStatus.js.map +1 -0
  35. package/src/_cjs/index.js.map +1 -1
  36. package/src/_cjs/version.js +1 -1
  37. package/src/_esm/constants.js +1 -3
  38. package/src/_esm/constants.js.map +1 -1
  39. package/src/_esm/core/EVM/EVM.js +4 -0
  40. package/src/_esm/core/EVM/EVM.js.map +1 -1
  41. package/src/_esm/core/EVM/EVMStepExecutor.js +92 -179
  42. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  43. package/src/_esm/core/EVM/abi.js +42 -37
  44. package/src/_esm/core/EVM/abi.js.map +1 -1
  45. package/src/_esm/core/EVM/checkAllowance.js +32 -41
  46. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  47. package/src/_esm/core/EVM/getAllowance.js.map +1 -1
  48. package/src/_esm/core/EVM/getEVMBalance.js.map +1 -1
  49. package/src/_esm/core/EVM/multisig.js +25 -0
  50. package/src/_esm/core/EVM/multisig.js.map +1 -0
  51. package/src/_esm/core/EVM/parseEVMErrors.js +0 -8
  52. package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -1
  53. package/src/_esm/core/EVM/setAllowance.js +6 -4
  54. package/src/_esm/core/EVM/setAllowance.js.map +1 -1
  55. package/src/_esm/core/EVM/switchChain.js +3 -2
  56. package/src/_esm/core/EVM/switchChain.js.map +1 -1
  57. package/src/_esm/core/EVM/types.js.map +1 -1
  58. package/src/_esm/core/EVM/utils.js +1 -2
  59. package/src/_esm/core/EVM/utils.js.map +1 -1
  60. package/src/_esm/core/Solana/SolanaStepExecutor.js +3 -50
  61. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  62. package/src/_esm/core/UTXO/UTXOStepExecutor.js +4 -51
  63. package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
  64. package/src/_esm/core/checkBalance.js +3 -3
  65. package/src/_esm/core/checkBalance.js.map +1 -1
  66. package/src/_esm/core/waitForDestinationChainTransaction.js +52 -0
  67. package/src/_esm/core/waitForDestinationChainTransaction.js.map +1 -0
  68. package/src/_esm/core/{waitForReceivingTransaction.js → waitForTransactionStatus.js} +2 -2
  69. package/src/_esm/core/waitForTransactionStatus.js.map +1 -0
  70. package/src/_esm/index.js.map +1 -1
  71. package/src/_esm/version.js +1 -1
  72. package/src/_types/constants.d.ts +1 -3
  73. package/src/_types/constants.d.ts.map +1 -1
  74. package/src/_types/core/EVM/EVM.d.ts.map +1 -1
  75. package/src/_types/core/EVM/EVMStepExecutor.d.ts +4 -7
  76. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  77. package/src/_types/core/EVM/abi.d.ts +5 -202
  78. package/src/_types/core/EVM/abi.d.ts.map +1 -1
  79. package/src/_types/core/EVM/checkAllowance.d.ts +2 -12
  80. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  81. package/src/_types/core/EVM/getAllowance.d.ts +4 -5
  82. package/src/_types/core/EVM/getAllowance.d.ts.map +1 -1
  83. package/src/_types/core/EVM/getEVMBalance.d.ts +1 -2
  84. package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -1
  85. package/src/_types/core/EVM/multisig.d.ts +6 -0
  86. package/src/_types/core/EVM/multisig.d.ts.map +1 -0
  87. package/src/_types/core/EVM/setAllowance.d.ts +2 -2
  88. package/src/_types/core/EVM/setAllowance.d.ts.map +1 -1
  89. package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
  90. package/src/_types/core/EVM/types.d.ts +18 -1
  91. package/src/_types/core/EVM/types.d.ts.map +1 -1
  92. package/src/_types/core/EVM/utils.d.ts +2 -2
  93. package/src/_types/core/EVM/utils.d.ts.map +1 -1
  94. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
  95. package/src/_types/core/UTXO/UTXOStepExecutor.d.ts.map +1 -1
  96. package/src/_types/core/checkBalance.d.ts.map +1 -1
  97. package/src/_types/core/waitForDestinationChainTransaction.d.ts +5 -0
  98. package/src/_types/core/waitForDestinationChainTransaction.d.ts.map +1 -0
  99. package/src/_types/core/waitForTransactionStatus.d.ts +4 -0
  100. package/src/_types/core/waitForTransactionStatus.d.ts.map +1 -0
  101. package/src/_types/index.d.ts +1 -1
  102. package/src/_types/index.d.ts.map +1 -1
  103. package/src/_types/version.d.ts +1 -1
  104. package/src/constants.ts +1 -6
  105. package/src/core/EVM/EVM.ts +4 -0
  106. package/src/core/EVM/EVMStepExecutor.ts +156 -245
  107. package/src/core/EVM/abi.ts +43 -40
  108. package/src/core/EVM/checkAllowance.ts +92 -96
  109. package/src/core/EVM/getAllowance.ts +8 -8
  110. package/src/core/EVM/getEVMBalance.ts +2 -2
  111. package/src/core/EVM/multisig.ts +54 -0
  112. package/src/core/EVM/parseEVMErrors.ts +0 -8
  113. package/src/core/EVM/setAllowance.ts +21 -15
  114. package/src/core/EVM/switchChain.ts +12 -3
  115. package/src/core/EVM/types.ts +27 -1
  116. package/src/core/EVM/utils.ts +3 -4
  117. package/src/core/Solana/SolanaStepExecutor.ts +9 -63
  118. package/src/core/UTXO/UTXOStepExecutor.ts +10 -68
  119. package/src/core/checkBalance.ts +3 -6
  120. package/src/core/waitForDestinationChainTransaction.ts +79 -0
  121. package/src/core/{waitForReceivingTransaction.ts → waitForTransactionStatus.ts} +1 -1
  122. package/src/index.ts +3 -0
  123. package/src/version.ts +1 -1
  124. package/src/_cjs/core/EVM/getNativePermit.js +0 -90
  125. package/src/_cjs/core/EVM/getNativePermit.js.map +0 -1
  126. package/src/_cjs/core/EVM/permit2/allowanceTransfer.js +0 -100
  127. package/src/_cjs/core/EVM/permit2/allowanceTransfer.js.map +0 -1
  128. package/src/_cjs/core/EVM/permit2/constants.js +0 -12
  129. package/src/_cjs/core/EVM/permit2/constants.js.map +0 -1
  130. package/src/_cjs/core/EVM/permit2/domain.js +0 -12
  131. package/src/_cjs/core/EVM/permit2/domain.js.map +0 -1
  132. package/src/_cjs/core/EVM/permit2/signatureTransfer.js +0 -121
  133. package/src/_cjs/core/EVM/permit2/signatureTransfer.js.map +0 -1
  134. package/src/_cjs/core/EVM/signPermitMessage.js +0 -168
  135. package/src/_cjs/core/EVM/signPermitMessage.js.map +0 -1
  136. package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js +0 -29
  137. package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js.map +0 -1
  138. package/src/_cjs/core/waitForReceivingTransaction.js.map +0 -1
  139. package/src/_cjs/utils/invariant.js +0 -17
  140. package/src/_cjs/utils/invariant.js.map +0 -1
  141. package/src/_esm/core/EVM/getNativePermit.js +0 -95
  142. package/src/_esm/core/EVM/getNativePermit.js.map +0 -1
  143. package/src/_esm/core/EVM/permit2/allowanceTransfer.js +0 -93
  144. package/src/_esm/core/EVM/permit2/allowanceTransfer.js.map +0 -1
  145. package/src/_esm/core/EVM/permit2/constants.js +0 -9
  146. package/src/_esm/core/EVM/permit2/constants.js.map +0 -1
  147. package/src/_esm/core/EVM/permit2/domain.js +0 -9
  148. package/src/_esm/core/EVM/permit2/domain.js.map +0 -1
  149. package/src/_esm/core/EVM/permit2/signatureTransfer.js +0 -117
  150. package/src/_esm/core/EVM/permit2/signatureTransfer.js.map +0 -1
  151. package/src/_esm/core/EVM/signPermitMessage.js +0 -162
  152. package/src/_esm/core/EVM/signPermitMessage.js.map +0 -1
  153. package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js +0 -25
  154. package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js.map +0 -1
  155. package/src/_esm/core/waitForReceivingTransaction.js.map +0 -1
  156. package/src/_esm/utils/invariant.js +0 -43
  157. package/src/_esm/utils/invariant.js.map +0 -1
  158. package/src/_types/core/EVM/getNativePermit.d.ts +0 -18
  159. package/src/_types/core/EVM/getNativePermit.d.ts.map +0 -1
  160. package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts +0 -41
  161. package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts.map +0 -1
  162. package/src/_types/core/EVM/permit2/constants.d.ts +0 -8
  163. package/src/_types/core/EVM/permit2/constants.d.ts.map +0 -1
  164. package/src/_types/core/EVM/permit2/domain.d.ts +0 -8
  165. package/src/_types/core/EVM/permit2/domain.d.ts.map +0 -1
  166. package/src/_types/core/EVM/permit2/signatureTransfer.d.ts +0 -42
  167. package/src/_types/core/EVM/permit2/signatureTransfer.d.ts.map +0 -1
  168. package/src/_types/core/EVM/signPermitMessage.d.ts +0 -22
  169. package/src/_types/core/EVM/signPermitMessage.d.ts.map +0 -1
  170. package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts +0 -4
  171. package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts.map +0 -1
  172. package/src/_types/core/waitForReceivingTransaction.d.ts +0 -4
  173. package/src/_types/core/waitForReceivingTransaction.d.ts.map +0 -1
  174. package/src/_types/utils/invariant.d.ts +0 -22
  175. package/src/_types/utils/invariant.d.ts.map +0 -1
  176. package/src/core/EVM/getNativePermit.ts +0 -113
  177. package/src/core/EVM/permit2/allowanceTransfer.ts +0 -168
  178. package/src/core/EVM/permit2/constants.ts +0 -11
  179. package/src/core/EVM/permit2/domain.ts +0 -20
  180. package/src/core/EVM/permit2/signatureTransfer.ts +0 -214
  181. package/src/core/EVM/signPermitMessage.ts +0 -248
  182. package/src/core/EVM/waitForBatchTransactionReceipt.ts +0 -49
  183. package/src/utils/invariant.ts +0 -51
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitForDestinationChainTransaction = waitForDestinationChainTransaction;
4
+ const constants_js_1 = require("../errors/constants.js");
5
+ const getTransactionMessage_js_1 = require("../utils/getTransactionMessage.js");
6
+ const waitForTransactionStatus_js_1 = require("./waitForTransactionStatus.js");
7
+ async function waitForDestinationChainTransaction(step, process, statusManager, toChain, pollingInterval) {
8
+ if (!process.txHash) {
9
+ throw new Error('Transaction hash is undefined.');
10
+ }
11
+ try {
12
+ const statusResponse = (await (0, waitForTransactionStatus_js_1.waitForTransactionStatus)(process.txHash, statusManager, process.type, step, pollingInterval));
13
+ const statusReceiving = statusResponse.receiving;
14
+ statusManager.updateProcess(step, process.type, 'DONE', {
15
+ substatus: statusResponse.substatus,
16
+ substatusMessage: statusResponse.substatusMessage,
17
+ txHash: statusReceiving?.txHash,
18
+ txLink: `${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
19
+ });
20
+ statusManager.updateExecution(step, 'DONE', {
21
+ ...(statusResponse.sending.amount && {
22
+ fromAmount: statusResponse.sending.amount,
23
+ }),
24
+ ...(statusReceiving?.amount && { toAmount: statusReceiving.amount }),
25
+ ...(statusReceiving?.token && { toToken: statusReceiving.token }),
26
+ gasCosts: [
27
+ {
28
+ amount: statusResponse.sending.gasAmount,
29
+ amountUSD: statusResponse.sending.gasAmountUSD,
30
+ token: statusResponse.sending.gasToken,
31
+ estimate: statusResponse.sending.gasUsed,
32
+ limit: statusResponse.sending.gasUsed,
33
+ price: statusResponse.sending.gasPrice,
34
+ type: 'SEND',
35
+ },
36
+ ],
37
+ });
38
+ return step;
39
+ }
40
+ catch (e) {
41
+ const htmlMessage = await (0, getTransactionMessage_js_1.getTransactionFailedMessage)(step, process.txLink);
42
+ statusManager.updateProcess(step, process.type, 'FAILED', {
43
+ error: {
44
+ code: constants_js_1.LiFiErrorCode.TransactionFailed,
45
+ message: 'Failed while waiting for status of destination chain transaction.',
46
+ htmlMessage,
47
+ },
48
+ });
49
+ statusManager.updateExecution(step, 'FAILED');
50
+ throw e;
51
+ }
52
+ }
53
+ //# sourceMappingURL=waitForDestinationChainTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForDestinationChainTransaction.js","sourceRoot":"","sources":["../../core/waitForDestinationChainTransaction.ts"],"names":[],"mappings":";;AAYA,gFAkEC;AAxED,yDAAsD;AACtD,gFAA+E;AAG/E,+EAAwE;AAEjE,KAAK,UAAU,kCAAkC,CACtD,IAAsB,EACtB,OAAgB,EAChB,aAA4B,EAC5B,OAAsB,EACtB,eAAwB;IAExB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,CAAC,MAAM,IAAA,sDAAwB,EACpD,OAAO,CAAC,MAAM,EACd,aAAa,EACb,OAAO,CAAC,IAAI,EACZ,IAAI,EACJ,eAAe,CAChB,CAAmB,CAAA;QAEpB,MAAM,eAAe,GAAG,cAAc,CAAC,SAAoC,CAAA;QAG3E,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;YACtD,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,gBAAgB,EAAE,cAAc,CAAC,gBAAgB;YACjD,MAAM,EAAE,eAAe,EAAE,MAAM;YAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,eAAe,EAAE,MAAM,EAAE;SAChF,CAAC,CAAA;QAGF,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE;YAC1C,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAI;gBACnC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;aAC1C,CAAC;YACF,GAAG,CAAC,eAAe,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;YACpE,GAAG,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC;YACjE,QAAQ,EAAE;gBACR;oBACE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;oBACxC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,YAAY;oBAC9C,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ;oBACtC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;oBACxC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;oBACrC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ;oBACtC,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,MAAM,IAAA,sDAA2B,EAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAE3E,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE;YACxD,KAAK,EAAE;gBACL,IAAI,EAAE,4BAAa,CAAC,iBAAiB;gBACrC,OAAO,EACL,mEAAmE;gBACrE,WAAW;aACZ;SACF,CAAC,CAAA;QAEF,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.waitForReceivingTransaction = waitForReceivingTransaction;
3
+ exports.waitForTransactionStatus = waitForTransactionStatus;
4
4
  const errors_js_1 = require("../errors/errors.js");
5
5
  const api_js_1 = require("../services/api.js");
6
6
  const waitForResult_js_1 = require("../utils/waitForResult.js");
7
7
  const processMessages_js_1 = require("./processMessages.js");
8
8
  const TRANSACTION_HASH_OBSERVERS = {};
9
- async function waitForReceivingTransaction(txHash, statusManager, processType, step, interval = 5_000) {
9
+ async function waitForTransactionStatus(txHash, statusManager, processType, step, interval = 5_000) {
10
10
  const _getStatus = () => {
11
11
  return (0, api_js_1.getStatus)({
12
12
  fromChain: step.action.fromChainId,
@@ -48,4 +48,4 @@ async function waitForReceivingTransaction(txHash, statusManager, processType, s
48
48
  }
49
49
  return resolvedStatus;
50
50
  }
51
- //# sourceMappingURL=waitForReceivingTransaction.js.map
51
+ //# sourceMappingURL=waitForTransactionStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForTransactionStatus.js","sourceRoot":"","sources":["../../core/waitForTransactionStatus.ts"],"names":[],"mappings":";;AAcA,4DAwDC;AAhED,mDAAiD;AACjD,+CAA8C;AAC9C,gEAAyD;AAEzD,6DAA0D;AAE1D,MAAM,0BAA0B,GAA4C,EAAE,CAAA;AAEvE,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,aAA4B,EAC5B,WAAwB,EACxB,IAAc,EACd,QAAQ,GAAG,KAAK;IAEhB,MAAM,UAAU,GAAG,GAAwC,EAAE;QAC3D,OAAO,IAAA,kBAAS,EAAC;YACf,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC9B,MAAM;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SACrD,CAAC;aACC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YACvB,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC9B,KAAK,MAAM;oBACT,OAAO,cAAc,CAAA;gBACvB,KAAK,SAAS;oBACZ,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;wBACzD,SAAS,EAAE,cAAc,CAAC,SAAS;wBACnC,gBAAgB,EACd,cAAc,CAAC,gBAAgB;4BAC/B,IAAA,wCAAmB,EACjB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,SAAS,CACzB;wBACH,MAAM,EAAG,cAAiC,CAAC,kBAAkB;qBAC9D,CAAC,CAAA;oBACF,OAAO,SAAS,CAAA;gBAClB,KAAK,WAAW;oBACd,OAAO,SAAS,CAAA;gBAClB;oBACE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAA;YACxD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,IAAI,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAA,gCAAa,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC5C,0BAA0B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC7C,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,MAAM,CAAA;IAEnC,IAAI,CAAC,CAAC,WAAW,IAAI,cAAc,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,uBAAW,CAAC,+CAA+C,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA,8CAA2B;AAC3B,yCAAoC;AAA3B,mGAAA,MAAM,OAAA;AACf,4CAAuC;AAA9B,6FAAA,GAAG,OAAA;AACZ,8DAGmC;AAFjC,oHAAA,iBAAiB,OAAA;AACjB,6HAAA,0BAA0B,OAAA;AAE5B,8DAGmC;AAFjC,sHAAA,mBAAmB,OAAA;AACnB,oHAAA,iBAAiB,OAAA;AAEnB,gDAA2C;AAAlC,iGAAA,KAAK,OAAA;AAKd,4DAAuD;AAA9C,iHAAA,aAAa,OAAA;AACtB,oDAO4B;AAN1B,4GAAA,YAAY,OAAA;AACZ,8GAAA,cAAc,OAAA;AACd,+GAAA,eAAe,OAAA;AACf,2GAAA,WAAW,OAAA;AACX,kHAAA,kBAAkB,OAAA;AAClB,oHAAA,oBAAoB,OAAA;AAwBtB,iEAA4D;AAAnD,+GAAA,YAAY,OAAA;AACrB,iFAG8C;AAF5C,+HAAA,oBAAoB,OAAA;AACpB,4HAAA,iBAAiB,OAAA;AAEnB,qDAAgD;AAAvC,mGAAA,MAAM,OAAA;AACf,mDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AAKjB,+CAA0C;AAAjC,+FAAA,IAAI,OAAA;AACb,iDAA6C;AAApC,kGAAA,MAAM,OAAA;AAEf,qDAAgD;AAAvC,+GAAA,YAAY,OAAA;AACrB,2CAIqB;AAHnB,iHAAA,mBAAmB,OAAA;AACnB,iHAAA,mBAAmB,OAAA;AACnB,iHAAA,mBAAmB,OAAA;AAErB,4CAa0B;AAZxB,mGAAA,SAAS,OAAA;AACT,wGAAA,cAAc,OAAA;AACd,+GAAA,qBAAqB,OAAA;AACrB,8GAAA,oBAAoB,OAAA;AACpB,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,4GAAA,kBAAkB,OAAA;AAClB,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,kGAAA,QAAQ,OAAA;AACR,+GAAA,qBAAqB,OAAA;AAEvB,oDAI8B;AAH5B,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,qHAAA,uBAAuB,OAAA;AAEzB,gFAA2E;AAAlE,iIAAA,qBAAqB,OAAA;AAE9B,sDAAiD;AAAxC,yGAAA,SAAS,OAAA;AAClB,sDAI8B;AAH5B,4GAAA,YAAY,OAAA;AACZ,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AAGf,gDAQ2B;AAPzB,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AAEjB,sDAAiD;AAAxC,yGAAA,SAAS,OAAA;AAClB,oDAA+C;AAAtC,uGAAA,QAAQ,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA,8CAA2B;AAC3B,yCAAoC;AAA3B,mGAAA,MAAM,OAAA;AACf,4CAAuC;AAA9B,6FAAA,GAAG,OAAA;AACZ,8DAGmC;AAFjC,oHAAA,iBAAiB,OAAA;AACjB,6HAAA,0BAA0B,OAAA;AAE5B,8DAGmC;AAFjC,sHAAA,mBAAmB,OAAA;AACnB,oHAAA,iBAAiB,OAAA;AAEnB,gDAA2C;AAAlC,iGAAA,KAAK,OAAA;AAQd,4DAAuD;AAA9C,iHAAA,aAAa,OAAA;AACtB,oDAO4B;AAN1B,4GAAA,YAAY,OAAA;AACZ,8GAAA,cAAc,OAAA;AACd,+GAAA,eAAe,OAAA;AACf,2GAAA,WAAW,OAAA;AACX,kHAAA,kBAAkB,OAAA;AAClB,oHAAA,oBAAoB,OAAA;AAwBtB,iEAA4D;AAAnD,+GAAA,YAAY,OAAA;AACrB,iFAG8C;AAF5C,+HAAA,oBAAoB,OAAA;AACpB,4HAAA,iBAAiB,OAAA;AAEnB,qDAAgD;AAAvC,mGAAA,MAAM,OAAA;AACf,mDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AAKjB,+CAA0C;AAAjC,+FAAA,IAAI,OAAA;AACb,iDAA6C;AAApC,kGAAA,MAAM,OAAA;AAEf,qDAAgD;AAAvC,+GAAA,YAAY,OAAA;AACrB,2CAIqB;AAHnB,iHAAA,mBAAmB,OAAA;AACnB,iHAAA,mBAAmB,OAAA;AACnB,iHAAA,mBAAmB,OAAA;AAErB,4CAa0B;AAZxB,mGAAA,SAAS,OAAA;AACT,wGAAA,cAAc,OAAA;AACd,+GAAA,qBAAqB,OAAA;AACrB,8GAAA,oBAAoB,OAAA;AACpB,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,4GAAA,kBAAkB,OAAA;AAClB,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,kGAAA,QAAQ,OAAA;AACR,+GAAA,qBAAqB,OAAA;AAEvB,oDAI8B;AAH5B,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,qHAAA,uBAAuB,OAAA;AAEzB,gFAA2E;AAAlE,iIAAA,qBAAqB,OAAA;AAE9B,sDAAiD;AAAxC,yGAAA,SAAS,OAAA;AAClB,sDAI8B;AAH5B,4GAAA,YAAY,OAAA;AACZ,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AAGf,gDAQ2B;AAPzB,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AAEjB,sDAAiD;AAAxC,yGAAA,SAAS,OAAA;AAClB,oDAA+C;AAAtC,uGAAA,QAAQ,OAAA"}
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = '@lifi/sdk';
5
- exports.version = '3.5.0-beta.0';
5
+ exports.version = '3.5.1-beta.0';
6
6
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,5 @@
1
1
  export const AddressZero = '0x0000000000000000000000000000000000000000';
2
2
  export const AlternativeAddressZero = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
3
+ export const wrappedSolAddress = 'So11111111111111111111111111111111111111112';
3
4
  export const SolSystemProgram = '11111111111111111111111111111111';
4
- export const MaxUint48 = BigInt('0xffffffffffff');
5
- export const MaxUint160 = BigInt('0xffffffffffffffffffffffffffffffffffffffff');
6
- export const MaxUint256 = BigInt(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn);
7
5
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,4CAA4C,CAAA;AACvE,MAAM,CAAC,MAAM,sBAAsB,GACjC,4CAA4C,CAAA;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,kCAAkC,CAAA;AAElE,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,4CAA4C,CAAC,CAAA;AAC9E,MAAM,CAAC,MAAM,UAAU,GACrB,MAAM,CAAC,mEAAmE,CAAC,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,4CAA4C,CAAA;AACvE,MAAM,CAAC,MAAM,sBAAsB,GACjC,4CAA4C,CAAA;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,6CAA6C,CAAA;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,kCAAkC,CAAA"}
@@ -9,6 +9,9 @@ export function EVM(options) {
9
9
  get type() {
10
10
  return ChainType.EVM;
11
11
  },
12
+ get multisig() {
13
+ return _options.multisig;
14
+ },
12
15
  isAddress,
13
16
  resolveAddress: getENSAddress,
14
17
  getBalance: getEVMBalance,
@@ -19,6 +22,7 @@ export function EVM(options) {
19
22
  const walletClient = await _options.getWalletClient();
20
23
  const executor = new EVMStepExecutor({
21
24
  client: walletClient,
25
+ multisig: _options.multisig,
22
26
  routeId: options.routeId,
23
27
  executionOptions: {
24
28
  ...options.executionOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"EVM.js","sourceRoot":"","sources":["../../../core/EVM/EVM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,MAAM,UAAU,GAAG,CAAC,OAA4B;IAC9C,MAAM,QAAQ,GAAuB,OAAO,IAAI,EAAE,CAAA;IAClD,OAAO;QACL,IAAI,IAAI;YACN,OAAO,SAAS,CAAC,GAAG,CAAA;QACtB,CAAC;QACD,SAAS;QACT,cAAc,EAAE,aAAa;QAC7B,UAAU,EAAE,aAAa;QACzB,KAAK,CAAC,eAAe,CACnB,OAA4B;YAE5B,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAC5C,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAA;YAErD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;gBACnC,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,gBAAgB,EAAE;oBAChB,GAAG,OAAO,CAAC,gBAAgB;oBAC3B,eAAe,EACb,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,gBAAgB,EAAE,eAAe;iBACpE;aACF,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,UAAU,CAAC,OAA2B;YACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"EVM.js","sourceRoot":"","sources":["../../../core/EVM/EVM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,MAAM,UAAU,GAAG,CAAC,OAA4B;IAC9C,MAAM,QAAQ,GAAuB,OAAO,IAAI,EAAE,CAAA;IAClD,OAAO;QACL,IAAI,IAAI;YACN,OAAO,SAAS,CAAC,GAAG,CAAA;QACtB,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,QAAQ,CAAC,QAAQ,CAAA;QAC1B,CAAC;QACD,SAAS;QACT,cAAc,EAAE,aAAa;QAC7B,UAAU,EAAE,aAAa;QACzB,KAAK,CAAC,eAAe,CACnB,OAA4B;YAE5B,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAC5C,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAA;YAErD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;gBACnC,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,gBAAgB,EAAE;oBAChB,GAAG,OAAO,CAAC,gBAAgB;oBAC3B,eAAe,EACb,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,gBAAgB,EAAE,eAAe;iBACpE;aACF,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,UAAU,CAAC,OAA2B;YACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,23 +1,19 @@
1
- import { estimateGas, getAddresses, sendTransaction } from 'viem/actions';
2
- import { getCapabilities, sendCalls } from 'viem/experimental';
1
+ import { getAddresses, sendTransaction } from 'viem/actions';
2
+ import { getAction } from 'viem/utils';
3
3
  import { config } from '../../config.js';
4
4
  import { LiFiErrorCode } from '../../errors/constants.js';
5
- import { TransactionError } from '../../errors/errors.js';
5
+ import { TransactionError, ValidationError } from '../../errors/errors.js';
6
6
  import { getStepTransaction } from '../../services/api.js';
7
- import { getTransactionFailedMessage } from '../../utils/getTransactionMessage.js';
8
7
  import { isZeroAddress } from '../../utils/isZeroAddress.js';
9
8
  import { BaseStepExecutor } from '../BaseStepExecutor.js';
10
9
  import { checkBalance } from '../checkBalance.js';
11
- import { getSubstatusMessage } from '../processMessages.js';
12
10
  import { stepComparison } from '../stepComparison.js';
13
- import { waitForReceivingTransaction } from '../waitForReceivingTransaction.js';
11
+ import { waitForDestinationChainTransaction } from '../waitForDestinationChainTransaction.js';
14
12
  import { checkAllowance } from './checkAllowance.js';
15
- import { getNativePermit } from './getNativePermit.js';
13
+ import { updateMultisigRouteProcess } from './multisig.js';
16
14
  import { parseEVMErrors } from './parseEVMErrors.js';
17
- import { signPermitMessage } from './signPermitMessage.js';
18
15
  import { switchChain } from './switchChain.js';
19
16
  import { getMaxPriorityFeePerGas } from './utils.js';
20
- import { waitForBatchTransactionReceipt, } from './waitForBatchTransactionReceipt.js';
21
17
  import { waitForTransactionReceipt } from './waitForTransactionReceipt.js';
22
18
  export class EVMStepExecutor extends BaseStepExecutor {
23
19
  constructor(options) {
@@ -28,6 +24,12 @@ export class EVMStepExecutor extends BaseStepExecutor {
28
24
  writable: true,
29
25
  value: void 0
30
26
  });
27
+ Object.defineProperty(this, "multisig", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: void 0
32
+ });
31
33
  // Ensure that we are using the right chain and wallet when executing transactions.
32
34
  Object.defineProperty(this, "checkClient", {
33
35
  enumerable: true,
@@ -41,7 +43,7 @@ export class EVMStepExecutor extends BaseStepExecutor {
41
43
  // Prevent execution of the quote by wallet different from the one which requested the quote
42
44
  let accountAddress = this.client.account?.address;
43
45
  if (!accountAddress) {
44
- const accountAddresses = await getAddresses(this.client);
46
+ const accountAddresses = (await getAction(this.client, getAddresses, 'getAddresses')(undefined));
45
47
  accountAddress = accountAddresses?.[0];
46
48
  }
47
49
  if (accountAddress !== step.action.fromAddress) {
@@ -72,88 +74,58 @@ export class EVMStepExecutor extends BaseStepExecutor {
72
74
  writable: true,
73
75
  value: async (step) => {
74
76
  step.execution = this.statusManager.initExecutionObject(step);
75
- // Find if it's bridging and the step is waiting for a transaction on the receiving chain
76
- const recievingChainProcess = step.execution?.process.find((process) => process.type === 'RECEIVING_CHAIN');
77
+ // Find if it's bridging and the step is waiting for a transaction on the destination chain
78
+ const destinationChainProcess = step.execution?.process.find((process) => process.type === 'RECEIVING_CHAIN');
77
79
  // Make sure that the chain is still correct
78
- // If the step is waiting for a transaction on the receiving chain, we do not switch the chain
80
+ // If the step is waiting for a transaction on the destination chain, we do not switch the chain
79
81
  // All changes are already done from the source chain
80
82
  // Return the step
81
- if (recievingChainProcess?.substatus !== 'WAIT_DESTINATION_TRANSACTION') {
83
+ if (destinationChainProcess?.substatus !== 'WAIT_DESTINATION_TRANSACTION') {
82
84
  const updatedClient = await this.checkClient(step);
83
85
  if (!updatedClient) {
84
86
  return step;
85
87
  }
86
88
  }
89
+ const isMultisigClient = !!this.multisig?.isMultisigWalletClient;
90
+ const multisigBatchTransactions = [];
91
+ const shouldBatchTransactions = this.multisig?.shouldBatchTransactions &&
92
+ !!this.multisig.sendBatchTransaction;
87
93
  const fromChain = await config.getChainById(step.action.fromChainId);
88
94
  const toChain = await config.getChainById(step.action.toChainId);
89
- let atomicBatchSupported = false;
90
- try {
91
- const capabilities = await getCapabilities(this.client);
92
- atomicBatchSupported = capabilities[fromChain.id]?.atomicBatch?.supported;
93
- }
94
- catch {
95
- // If the wallet does not support getCapabilities, we assume that atomic batch is not supported
96
- }
97
- const calls = [];
98
95
  const isBridgeExecution = fromChain.id !== toChain.id;
99
96
  const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
100
- // STEP 1: Check allowance
101
- // Find existing swap/bridge process
97
+ // Check allowance
102
98
  const existingProcess = step.execution.process.find((p) => p.type === currentProcessType);
103
- // Check if token requires approval
104
- // Native tokens (like ETH) don't need approval since they're not ERC20 tokens
105
- // We should support different permit types:
106
- // 1. Native permits (EIP-2612)
107
- // 2. Permit2 - Universal permit implementation by Uniswap (limited to certain chains)
108
- // 3. Standard ERC20 approval
109
- const nativePermit = await getNativePermit(this.client, fromChain, step.action.fromToken.address);
110
- // Check if proxy contract is available and token supports native permits, not available for atomic batch
111
- const nativePermitSupported = !!fromChain.permit2Proxy &&
112
- nativePermit.supported &&
113
- !atomicBatchSupported;
114
- // Check if chain has Permit2 contract deployed. Permit2 should not be available for atomic batch.
115
- const permit2Supported = !!fromChain.permit2 && !!fromChain.permit2Proxy && !atomicBatchSupported;
116
- // Token supports either native permits or Permit2
117
- const permitSupported = permit2Supported || nativePermitSupported;
118
- const checkForAllowance =
119
- // No existing swap/bridgetransaction is pending
120
- !existingProcess?.txHash &&
121
- // Token is not native (address is not zero)
99
+ // Check token approval only if fromToken is not the native token => no approval needed in that case
100
+ const checkForAllowance = !existingProcess?.txHash &&
122
101
  !isZeroAddress(step.action.fromToken.address) &&
123
- // Token doesn't support native permits
124
- !nativePermitSupported;
102
+ (shouldBatchTransactions || !isMultisigClient);
125
103
  if (checkForAllowance) {
126
- // Check if token needs approval and get approval transaction or message data when available
127
- const data = await checkAllowance({
128
- client: this.client,
129
- chain: fromChain,
130
- step,
131
- statusManager: this.statusManager,
132
- executionOptions: this.executionOptions,
133
- allowUserInteraction: this.allowUserInteraction,
134
- atomicBatchSupported,
135
- permit2Supported,
136
- });
104
+ const data = await checkAllowance(this.client, fromChain, step, this.statusManager, this.executionOptions, this.allowUserInteraction, shouldBatchTransactions);
137
105
  if (data) {
138
- // Create approval transaction call
139
- // No value needed since we're only approving ERC20 tokens
140
- if (atomicBatchSupported) {
141
- calls.push({
142
- chainId: step.action.fromToken.chainId,
143
- to: step.action.fromToken.address,
144
- data,
145
- });
146
- }
106
+ // allowance doesn't need value
107
+ const baseTransaction = {
108
+ to: step.action.fromToken.address,
109
+ data,
110
+ };
111
+ multisigBatchTransactions.push(baseTransaction);
147
112
  }
148
113
  }
149
- // STEP 2: Get transaction
150
114
  let process = this.statusManager.findOrCreateProcess({
151
115
  step,
152
116
  type: currentProcessType,
153
117
  chainId: fromChain.id,
154
118
  });
155
119
  if (process.status !== 'DONE') {
120
+ const multisigProcess = step.execution.process.find((p) => !!p.multisigTxHash);
156
121
  try {
122
+ if (isMultisigClient && multisigProcess) {
123
+ const multisigTxHash = multisigProcess.multisigTxHash;
124
+ if (!multisigTxHash) {
125
+ throw new ValidationError('Multisig internal transaction hash is undefined.');
126
+ }
127
+ await updateMultisigRouteProcess(multisigTxHash, step, process.type, fromChain, this.statusManager, this.multisig);
128
+ }
157
129
  let txHash;
158
130
  if (process.txHash) {
159
131
  // Make sure that the chain is still correct
@@ -168,7 +140,7 @@ export class EVMStepExecutor extends BaseStepExecutor {
168
140
  process = this.statusManager.updateProcess(step, process.type, 'STARTED');
169
141
  // Check balance
170
142
  await checkBalance(this.client.account.address, step);
171
- // Create new transaction request
143
+ // Create new transaction
172
144
  if (!step.transactionRequest) {
173
145
  const { execution, ...stepBase } = step;
174
146
  const updatedStep = await getStepTransaction(stepBase);
@@ -181,6 +153,15 @@ export class EVMStepExecutor extends BaseStepExecutor {
181
153
  if (!step.transactionRequest) {
182
154
  throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
183
155
  }
156
+ // Make sure that the chain is still correct
157
+ const updatedClient = await this.checkClient(step, process);
158
+ if (!updatedClient) {
159
+ return step;
160
+ }
161
+ process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
162
+ if (!this.allowUserInteraction) {
163
+ return step;
164
+ }
184
165
  let transactionRequest = {
185
166
  to: step.transactionRequest.to,
186
167
  from: step.transactionRequest.from,
@@ -213,50 +194,22 @@ export class EVMStepExecutor extends BaseStepExecutor {
213
194
  ...customizedTransactionRequest,
214
195
  };
215
196
  }
216
- // STEP 3: Send the transaction
217
- // Make sure that the chain is still correct
218
- const updatedClient = await this.checkClient(step, process);
219
- if (!updatedClient) {
220
- return step;
221
- }
222
- process = this.statusManager.updateProcess(step, process.type, permitSupported ? 'PERMIT_REQUIRED' : 'ACTION_REQUIRED');
223
- if (!this.allowUserInteraction) {
224
- return step;
225
- }
226
- if (atomicBatchSupported) {
227
- const transferCall = {
228
- chainId: fromChain.id,
229
- data: transactionRequest.data,
230
- to: transactionRequest.to,
231
- value: transactionRequest.value,
232
- };
233
- calls.push(transferCall);
234
- txHash = (await sendCalls(this.client, {
235
- account: this.client.account,
236
- calls,
237
- }));
197
+ if (shouldBatchTransactions && this.multisig?.sendBatchTransaction) {
198
+ if (transactionRequest.to && transactionRequest.data) {
199
+ const populatedTransaction = {
200
+ value: transactionRequest.value,
201
+ to: transactionRequest.to,
202
+ data: transactionRequest.data,
203
+ };
204
+ multisigBatchTransactions.push(populatedTransaction);
205
+ txHash = await this.multisig?.sendBatchTransaction(multisigBatchTransactions);
206
+ }
207
+ else {
208
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
209
+ }
238
210
  }
239
211
  else {
240
- if (permitSupported) {
241
- const { data } = await signPermitMessage(this.client, transactionRequest, fromChain, step.action.fromToken.address, BigInt(step.action.fromAmount), nativePermit);
242
- transactionRequest.to = fromChain.permit2Proxy;
243
- transactionRequest.data = data;
244
- try {
245
- // Try to re-estimate the gas due to additional Permit data
246
- transactionRequest.gas = await estimateGas(this.client, {
247
- account: this.client.account,
248
- to: transactionRequest.to,
249
- data: transactionRequest.data,
250
- value: transactionRequest.value,
251
- });
252
- }
253
- catch {
254
- // Let the wallet estimate the gas in case of failure
255
- transactionRequest.gas = undefined;
256
- }
257
- process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
258
- }
259
- txHash = await sendTransaction(this.client, {
212
+ txHash = await getAction(this.client, sendTransaction, 'sendTransaction')({
260
213
  to: transactionRequest.to,
261
214
  account: this.client.account,
262
215
  data: transactionRequest.data,
@@ -265,40 +218,41 @@ export class EVMStepExecutor extends BaseStepExecutor {
265
218
  gasPrice: transactionRequest.gasPrice,
266
219
  maxFeePerGas: transactionRequest.maxFeePerGas,
267
220
  maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
221
+ chain: null,
268
222
  });
269
223
  }
270
- // STEP 4: Wait for the transaction
271
- process = this.statusManager.updateProcess(step, process.type, 'PENDING',
272
- // When atomic batch is supported, txHash represents the batch hash rather than an individual transaction hash at this point
273
- atomicBatchSupported
274
- ? {
275
- atomicBatchSupported,
276
- }
277
- : {
224
+ if (isMultisigClient) {
225
+ process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED', {
226
+ multisigTxHash: txHash,
227
+ });
228
+ }
229
+ else {
230
+ process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
278
231
  txHash: txHash,
279
232
  txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
280
233
  });
234
+ }
281
235
  }
282
- let transactionReceipt;
283
- if (atomicBatchSupported) {
284
- transactionReceipt = await waitForBatchTransactionReceipt(this.client, txHash);
285
- }
286
- else {
287
- transactionReceipt = await waitForTransactionReceipt({
288
- client: this.client,
289
- chainId: fromChain.id,
290
- txHash,
291
- onReplaced: (response) => {
292
- this.statusManager.updateProcess(step, process.type, 'PENDING', {
293
- txHash: response.transaction.hash,
294
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
295
- });
296
- },
297
- });
236
+ const transactionReceipt = await waitForTransactionReceipt({
237
+ client: this.client,
238
+ chainId: fromChain.id,
239
+ txHash,
240
+ onReplaced: (response) => {
241
+ this.statusManager.updateProcess(step, process.type, 'PENDING', {
242
+ txHash: response.transaction.hash,
243
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
244
+ });
245
+ },
246
+ });
247
+ // if it's multisig wallet client and the process is in ACTION_REQUIRED
248
+ // then signatures are still needed
249
+ if (isMultisigClient && process.status === 'ACTION_REQUIRED') {
250
+ await updateMultisigRouteProcess(transactionReceipt?.transactionHash || txHash, step, process.type, fromChain, this.statusManager, this.multisig);
298
251
  }
299
252
  // Update pending process if the transaction hash from the receipt is different.
300
253
  // This might happen if the transaction was replaced.
301
- if (transactionReceipt?.transactionHash &&
254
+ if (!isMultisigClient &&
255
+ transactionReceipt?.transactionHash &&
302
256
  transactionReceipt.transactionHash !== txHash) {
303
257
  process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
304
258
  txHash: transactionReceipt.transactionHash,
@@ -321,8 +275,7 @@ export class EVMStepExecutor extends BaseStepExecutor {
321
275
  throw error;
322
276
  }
323
277
  }
324
- // STEP 5: Wait for the receiving chain
325
- const processTxHash = process.txHash;
278
+ // Wait for the transaction status on the destination chain
326
279
  if (isBridgeExecution) {
327
280
  process = this.statusManager.findOrCreateProcess({
328
281
  step,
@@ -331,53 +284,13 @@ export class EVMStepExecutor extends BaseStepExecutor {
331
284
  chainId: toChain.id,
332
285
  });
333
286
  }
334
- try {
335
- if (!processTxHash) {
336
- throw new Error('Transaction hash is undefined.');
337
- }
338
- const statusResponse = (await waitForReceivingTransaction(processTxHash, this.statusManager, process.type, step));
339
- const statusReceiving = statusResponse.receiving;
340
- process = this.statusManager.updateProcess(step, process.type, 'DONE', {
341
- substatus: statusResponse.substatus,
342
- substatusMessage: statusResponse.substatusMessage ||
343
- getSubstatusMessage(statusResponse.status, statusResponse.substatus),
344
- txHash: statusReceiving?.txHash,
345
- txLink: `${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
346
- });
347
- this.statusManager.updateExecution(step, 'DONE', {
348
- fromAmount: statusResponse.sending.amount,
349
- toAmount: statusReceiving?.amount,
350
- toToken: statusReceiving?.token,
351
- gasCosts: [
352
- {
353
- amount: statusResponse.sending.gasAmount,
354
- amountUSD: statusResponse.sending.gasAmountUSD,
355
- token: statusResponse.sending.gasToken,
356
- estimate: statusResponse.sending.gasUsed,
357
- limit: statusResponse.sending.gasUsed,
358
- price: statusResponse.sending.gasPrice,
359
- type: 'SEND',
360
- },
361
- ],
362
- });
363
- }
364
- catch (e) {
365
- const htmlMessage = await getTransactionFailedMessage(step, process.txLink);
366
- process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
367
- error: {
368
- code: LiFiErrorCode.TransactionFailed,
369
- message: 'Failed while waiting for receiving chain.',
370
- htmlMessage,
371
- },
372
- });
373
- this.statusManager.updateExecution(step, 'FAILED');
374
- throw await parseEVMErrors(e, step, process);
375
- }
287
+ await waitForDestinationChainTransaction(step, process, this.statusManager, toChain);
376
288
  // DONE
377
289
  return step;
378
290
  }
379
291
  });
380
292
  this.client = options.client;
293
+ this.multisig = options.multisig;
381
294
  }
382
295
  }
383
296
  //# sourceMappingURL=EVMStepExecutor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EVMStepExecutor.js","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EVMStepExecutor.js","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"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"}