@lifi/sdk 3.6.0-beta.5 → 3.6.0-beta.7

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 (261) hide show
  1. package/package.json +3 -3
  2. package/src/_cjs/config.js +3 -0
  3. package/src/_cjs/config.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 +138 -111
  7. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  8. package/src/_cjs/core/EVM/checkAllowance.js +34 -5
  9. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
  10. package/src/_cjs/core/EVM/checkPermitSupport.js +33 -0
  11. package/src/_cjs/core/EVM/checkPermitSupport.js.map +1 -0
  12. package/src/_cjs/core/EVM/parseEVMErrors.js +3 -0
  13. package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -1
  14. package/src/_cjs/core/EVM/{permit2 → permits}/allowanceTransfer.js.map +1 -1
  15. package/src/_cjs/core/EVM/{permit2 → permits}/constants.js.map +1 -1
  16. package/src/_cjs/core/EVM/{permit2 → permits}/domain.js.map +1 -1
  17. package/src/_cjs/core/EVM/permits/encodeNativePermitData.js +16 -0
  18. package/src/_cjs/core/EVM/permits/encodeNativePermitData.js.map +1 -0
  19. package/src/_cjs/core/EVM/permits/encodePermit2Data.js +32 -0
  20. package/src/_cjs/core/EVM/permits/encodePermit2Data.js.map +1 -0
  21. package/src/_cjs/core/EVM/{getNativePermit.js → permits/getNativePermit.js} +30 -21
  22. package/src/_cjs/core/EVM/permits/getNativePermit.js.map +1 -0
  23. package/src/_cjs/core/EVM/permits/getPermitTransferFromValues.js +24 -0
  24. package/src/_cjs/core/EVM/permits/getPermitTransferFromValues.js.map +1 -0
  25. package/src/_cjs/core/EVM/permits/signNativePermitMessage.js +20 -0
  26. package/src/_cjs/core/EVM/permits/signNativePermitMessage.js.map +1 -0
  27. package/src/_cjs/core/EVM/permits/signPermit2Message.js +43 -0
  28. package/src/_cjs/core/EVM/permits/signPermit2Message.js.map +1 -0
  29. package/src/_cjs/core/EVM/permits/signatureTransfer.js.map +1 -0
  30. package/src/_cjs/core/EVM/permits/types.js +3 -0
  31. package/src/_cjs/core/EVM/permits/types.js.map +1 -0
  32. package/src/_cjs/core/EVM/permits/utils.js +31 -0
  33. package/src/_cjs/core/EVM/permits/utils.js.map +1 -0
  34. package/src/_cjs/core/EVM/publicClient.js +32 -33
  35. package/src/_cjs/core/EVM/publicClient.js.map +1 -1
  36. package/src/_cjs/core/EVM/typeguards.js +1 -1
  37. package/src/_cjs/core/EVM/typeguards.js.map +1 -1
  38. package/src/_cjs/core/EVM/types.js.map +1 -1
  39. package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js +3 -2
  40. package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js.map +1 -1
  41. package/src/_cjs/core/EVM/waitForRelayedTransactionReceipt.js +4 -4
  42. package/src/_cjs/core/EVM/waitForRelayedTransactionReceipt.js.map +1 -1
  43. package/src/_cjs/core/Solana/SolanaStepExecutor.js +1 -0
  44. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
  45. package/src/_cjs/core/UTXO/getUTXOBalance.js +1 -3
  46. package/src/_cjs/core/UTXO/getUTXOBalance.js.map +1 -1
  47. package/src/_cjs/core/UTXO/getUTXOPublicClient.js +19 -2
  48. package/src/_cjs/core/UTXO/getUTXOPublicClient.js.map +1 -1
  49. package/src/_cjs/core/checkBalance.js +2 -1
  50. package/src/_cjs/core/checkBalance.js.map +1 -1
  51. package/src/_cjs/core/prepareRestart.js +1 -1
  52. package/src/_cjs/core/prepareRestart.js.map +1 -1
  53. package/src/_cjs/core/utils.js +2 -1
  54. package/src/_cjs/core/utils.js.map +1 -1
  55. package/src/_cjs/errors/constants.js +1 -0
  56. package/src/_cjs/errors/constants.js.map +1 -1
  57. package/src/_cjs/services/api.js +18 -6
  58. package/src/_cjs/services/api.js.map +1 -1
  59. package/src/_cjs/version.js +1 -1
  60. package/src/_esm/config.js +3 -0
  61. package/src/_esm/config.js.map +1 -1
  62. package/src/_esm/core/EVM/EVM.js +4 -0
  63. package/src/_esm/core/EVM/EVM.js.map +1 -1
  64. package/src/_esm/core/EVM/EVMStepExecutor.js +142 -123
  65. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  66. package/src/_esm/core/EVM/checkAllowance.js +35 -5
  67. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  68. package/src/_esm/core/EVM/checkPermitSupport.js +43 -0
  69. package/src/_esm/core/EVM/checkPermitSupport.js.map +1 -0
  70. package/src/_esm/core/EVM/parseEVMErrors.js +9 -0
  71. package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -1
  72. package/src/_esm/core/EVM/{permit2 → permits}/allowanceTransfer.js.map +1 -1
  73. package/src/_esm/core/EVM/{permit2 → permits}/constants.js.map +1 -1
  74. package/src/_esm/core/EVM/{permit2 → permits}/domain.js.map +1 -1
  75. package/src/_esm/core/EVM/permits/encodeNativePermitData.js +12 -0
  76. package/src/_esm/core/EVM/permits/encodeNativePermitData.js.map +1 -0
  77. package/src/_esm/core/EVM/permits/encodePermit2Data.js +28 -0
  78. package/src/_esm/core/EVM/permits/encodePermit2Data.js.map +1 -0
  79. package/src/_esm/core/EVM/{getNativePermit.js → permits/getNativePermit.js} +30 -21
  80. package/src/_esm/core/EVM/permits/getNativePermit.js.map +1 -0
  81. package/src/_esm/core/EVM/permits/getPermitTransferFromValues.js +20 -0
  82. package/src/_esm/core/EVM/permits/getPermitTransferFromValues.js.map +1 -0
  83. package/src/_esm/core/EVM/permits/signNativePermitMessage.js +16 -0
  84. package/src/_esm/core/EVM/permits/signNativePermitMessage.js.map +1 -0
  85. package/src/_esm/core/EVM/permits/signPermit2Message.js +41 -0
  86. package/src/_esm/core/EVM/permits/signPermit2Message.js.map +1 -0
  87. package/src/_esm/core/EVM/{permit2 → permits}/signatureTransfer.js +0 -2
  88. package/src/_esm/core/EVM/{permit2 → permits}/signatureTransfer.js.map +1 -1
  89. package/src/_esm/core/EVM/permits/types.js +2 -0
  90. package/src/_esm/core/EVM/permits/types.js.map +1 -0
  91. package/src/_esm/core/EVM/permits/utils.js +26 -0
  92. package/src/_esm/core/EVM/permits/utils.js.map +1 -0
  93. package/src/_esm/core/EVM/publicClient.js +34 -35
  94. package/src/_esm/core/EVM/publicClient.js.map +1 -1
  95. package/src/_esm/core/EVM/typeguards.js +1 -1
  96. package/src/_esm/core/EVM/typeguards.js.map +1 -1
  97. package/src/_esm/core/EVM/types.js.map +1 -1
  98. package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js +5 -2
  99. package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js.map +1 -1
  100. package/src/_esm/core/EVM/waitForRelayedTransactionReceipt.js +4 -4
  101. package/src/_esm/core/EVM/waitForRelayedTransactionReceipt.js.map +1 -1
  102. package/src/_esm/core/Solana/SolanaStepExecutor.js +1 -0
  103. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  104. package/src/_esm/core/UTXO/getUTXOBalance.js +1 -3
  105. package/src/_esm/core/UTXO/getUTXOBalance.js.map +1 -1
  106. package/src/_esm/core/UTXO/getUTXOPublicClient.js +20 -3
  107. package/src/_esm/core/UTXO/getUTXOPublicClient.js.map +1 -1
  108. package/src/_esm/core/checkBalance.js +2 -1
  109. package/src/_esm/core/checkBalance.js.map +1 -1
  110. package/src/_esm/core/prepareRestart.js +1 -1
  111. package/src/_esm/core/prepareRestart.js.map +1 -1
  112. package/src/_esm/core/utils.js +2 -1
  113. package/src/_esm/core/utils.js.map +1 -1
  114. package/src/_esm/errors/constants.js +1 -0
  115. package/src/_esm/errors/constants.js.map +1 -1
  116. package/src/_esm/services/api.js +18 -6
  117. package/src/_esm/services/api.js.map +1 -1
  118. package/src/_esm/version.js +1 -1
  119. package/src/_types/config.d.ts +2 -1
  120. package/src/_types/config.d.ts.map +1 -1
  121. package/src/_types/core/BaseStepExecutor.d.ts.map +1 -1
  122. package/src/_types/core/EVM/EVM.d.ts.map +1 -1
  123. package/src/_types/core/EVM/EVMStepExecutor.d.ts +4 -10
  124. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  125. package/src/_types/core/EVM/checkAllowance.d.ts +13 -2
  126. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  127. package/src/_types/core/EVM/checkPermitSupport.d.ts +27 -0
  128. package/src/_types/core/EVM/checkPermitSupport.d.ts.map +1 -0
  129. package/src/_types/core/EVM/getAllowance.d.ts.map +1 -1
  130. package/src/_types/core/EVM/getENSAddress.d.ts.map +1 -1
  131. package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -1
  132. package/src/_types/core/EVM/parseEVMErrors.d.ts.map +1 -1
  133. package/src/_types/core/EVM/{permit2 → permits}/allowanceTransfer.d.ts.map +1 -1
  134. package/src/_types/core/EVM/{permit2 → permits}/constants.d.ts.map +1 -1
  135. package/src/_types/core/EVM/permits/domain.d.ts +3 -0
  136. package/src/_types/core/EVM/permits/domain.d.ts.map +1 -0
  137. package/src/_types/core/EVM/permits/encodeNativePermitData.d.ts +3 -0
  138. package/src/_types/core/EVM/permits/encodeNativePermitData.d.ts.map +1 -0
  139. package/src/_types/core/EVM/permits/encodePermit2Data.d.ts +4 -0
  140. package/src/_types/core/EVM/permits/encodePermit2Data.d.ts.map +1 -0
  141. package/src/_types/core/EVM/{getNativePermit.d.ts → permits/getNativePermit.d.ts} +2 -9
  142. package/src/_types/core/EVM/permits/getNativePermit.d.ts.map +1 -0
  143. package/src/_types/core/EVM/permits/getPermitTransferFromValues.d.ts +5 -0
  144. package/src/_types/core/EVM/permits/getPermitTransferFromValues.d.ts.map +1 -0
  145. package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts +4 -0
  146. package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts.map +1 -0
  147. package/src/_types/core/EVM/permits/signPermit2Message.d.ts +21 -0
  148. package/src/_types/core/EVM/permits/signPermit2Message.d.ts.map +1 -0
  149. package/src/_types/core/EVM/{permit2 → permits}/signatureTransfer.d.ts +15 -16
  150. package/src/_types/core/EVM/permits/signatureTransfer.d.ts.map +1 -0
  151. package/src/_types/core/EVM/permits/types.d.ts +24 -0
  152. package/src/_types/core/EVM/permits/types.d.ts.map +1 -0
  153. package/src/_types/core/EVM/permits/utils.d.ts +6 -0
  154. package/src/_types/core/EVM/permits/utils.d.ts.map +1 -0
  155. package/src/_types/core/EVM/publicClient.d.ts.map +1 -1
  156. package/src/_types/core/EVM/setAllowance.d.ts.map +1 -1
  157. package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
  158. package/src/_types/core/EVM/typeguards.d.ts +2 -1
  159. package/src/_types/core/EVM/typeguards.d.ts.map +1 -1
  160. package/src/_types/core/EVM/types.d.ts +13 -7
  161. package/src/_types/core/EVM/types.d.ts.map +1 -1
  162. package/src/_types/core/EVM/utils.d.ts.map +1 -1
  163. package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts.map +1 -1
  164. package/src/_types/core/EVM/waitForRelayedTransactionReceipt.d.ts.map +1 -1
  165. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
  166. package/src/_types/core/Solana/getSNSAddress.d.ts.map +1 -1
  167. package/src/_types/core/Solana/getSolanaBalance.d.ts.map +1 -1
  168. package/src/_types/core/Solana/parseSolanaErrors.d.ts.map +1 -1
  169. package/src/_types/core/StatusManager.d.ts.map +1 -1
  170. package/src/_types/core/UTXO/UTXOStepExecutor.d.ts.map +1 -1
  171. package/src/_types/core/UTXO/getUTXOBalance.d.ts.map +1 -1
  172. package/src/_types/core/UTXO/getUTXOPublicClient.d.ts +2 -3
  173. package/src/_types/core/UTXO/getUTXOPublicClient.d.ts.map +1 -1
  174. package/src/_types/core/UTXO/parseUTXOErrors.d.ts.map +1 -1
  175. package/src/_types/core/checkBalance.d.ts.map +1 -1
  176. package/src/_types/core/execution.d.ts.map +1 -1
  177. package/src/_types/core/prepareRestart.d.ts.map +1 -1
  178. package/src/_types/core/provider.d.ts.map +1 -1
  179. package/src/_types/core/rpc.d.ts.map +1 -1
  180. package/src/_types/core/stepComparison.d.ts.map +1 -1
  181. package/src/_types/core/utils.d.ts.map +1 -1
  182. package/src/_types/errors/constants.d.ts +2 -1
  183. package/src/_types/errors/constants.d.ts.map +1 -1
  184. package/src/_types/errors/utils/baseErrorRootCause.d.ts.map +1 -1
  185. package/src/_types/errors/utils/rootCause.d.ts.map +1 -1
  186. package/src/_types/request.d.ts.map +1 -1
  187. package/src/_types/services/api.d.ts +4 -47
  188. package/src/_types/services/api.d.ts.map +1 -1
  189. package/src/_types/services/balance.d.ts.map +1 -1
  190. package/src/_types/services/getNameServiceAddress.d.ts.map +1 -1
  191. package/src/_types/typeguards.d.ts.map +1 -1
  192. package/src/_types/utils/checkPackageUpdates.d.ts.map +1 -1
  193. package/src/_types/utils/convertQuoteToRoute.d.ts.map +1 -1
  194. package/src/_types/utils/fetchTxErrorDetails.d.ts.map +1 -1
  195. package/src/_types/utils/getTransactionMessage.d.ts.map +1 -1
  196. package/src/_types/utils/isZeroAddress.d.ts.map +1 -1
  197. package/src/_types/utils/median.d.ts.map +1 -1
  198. package/src/_types/utils/waitForResult.d.ts.map +1 -1
  199. package/src/_types/version.d.ts +1 -1
  200. package/src/config.ts +4 -1
  201. package/src/core/EVM/EVM.ts +4 -0
  202. package/src/core/EVM/EVMStepExecutor.ts +188 -148
  203. package/src/core/EVM/checkAllowance.ts +69 -6
  204. package/src/core/EVM/checkPermitSupport.ts +74 -0
  205. package/src/core/EVM/parseEVMErrors.ts +9 -0
  206. package/src/core/EVM/{permit2 → permits}/domain.ts +1 -7
  207. package/src/core/EVM/permits/encodeNativePermitData.ts +19 -0
  208. package/src/core/EVM/permits/encodePermit2Data.ts +41 -0
  209. package/src/core/EVM/{getNativePermit.ts → permits/getNativePermit.ts} +37 -31
  210. package/src/core/EVM/permits/getPermitTransferFromValues.ts +29 -0
  211. package/src/core/EVM/permits/signNativePermitMessage.ts +27 -0
  212. package/src/core/EVM/permits/signPermit2Message.ts +95 -0
  213. package/src/core/EVM/{permit2 → permits}/signatureTransfer.ts +19 -7
  214. package/src/core/EVM/permits/types.ts +33 -0
  215. package/src/core/EVM/permits/utils.ts +40 -0
  216. package/src/core/EVM/publicClient.ts +41 -38
  217. package/src/core/EVM/typeguards.ts +5 -2
  218. package/src/core/EVM/types.ts +15 -10
  219. package/src/core/EVM/waitForBatchTransactionReceipt.ts +7 -2
  220. package/src/core/EVM/waitForRelayedTransactionReceipt.ts +4 -4
  221. package/src/core/Solana/SolanaStepExecutor.ts +1 -0
  222. package/src/core/UTXO/getUTXOBalance.ts +1 -3
  223. package/src/core/UTXO/getUTXOPublicClient.ts +24 -7
  224. package/src/core/checkBalance.ts +2 -1
  225. package/src/core/prepareRestart.ts +1 -1
  226. package/src/core/utils.ts +3 -1
  227. package/src/errors/constants.ts +1 -0
  228. package/src/services/api.ts +62 -66
  229. package/src/version.ts +1 -1
  230. package/src/_cjs/core/EVM/getNativePermit.js.map +0 -1
  231. package/src/_cjs/core/EVM/permit2/signatureTransfer.js.map +0 -1
  232. package/src/_cjs/core/EVM/signPermitMessage.js +0 -163
  233. package/src/_cjs/core/EVM/signPermitMessage.js.map +0 -1
  234. package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js +0 -48
  235. package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js.map +0 -1
  236. package/src/_esm/core/EVM/getNativePermit.js.map +0 -1
  237. package/src/_esm/core/EVM/signPermitMessage.js +0 -157
  238. package/src/_esm/core/EVM/signPermitMessage.js.map +0 -1
  239. package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js +0 -50
  240. package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js.map +0 -1
  241. package/src/_types/core/EVM/getNativePermit.d.ts.map +0 -1
  242. package/src/_types/core/EVM/permit2/domain.d.ts +0 -8
  243. package/src/_types/core/EVM/permit2/domain.d.ts.map +0 -1
  244. package/src/_types/core/EVM/permit2/signatureTransfer.d.ts.map +0 -1
  245. package/src/_types/core/EVM/signPermitMessage.d.ts +0 -25
  246. package/src/_types/core/EVM/signPermitMessage.d.ts.map +0 -1
  247. package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts +0 -10
  248. package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts.map +0 -1
  249. package/src/core/EVM/signPermitMessage.ts +0 -273
  250. package/src/core/UTXO/getUTXOAPIPublicClient.ts +0 -71
  251. /package/src/_cjs/core/EVM/{permit2 → permits}/allowanceTransfer.js +0 -0
  252. /package/src/_cjs/core/EVM/{permit2 → permits}/constants.js +0 -0
  253. /package/src/_cjs/core/EVM/{permit2 → permits}/domain.js +0 -0
  254. /package/src/_cjs/core/EVM/{permit2 → permits}/signatureTransfer.js +0 -0
  255. /package/src/_esm/core/EVM/{permit2 → permits}/allowanceTransfer.js +0 -0
  256. /package/src/_esm/core/EVM/{permit2 → permits}/constants.js +0 -0
  257. /package/src/_esm/core/EVM/{permit2 → permits}/domain.js +0 -0
  258. /package/src/_types/core/EVM/{permit2 → permits}/allowanceTransfer.d.ts +0 -0
  259. /package/src/_types/core/EVM/{permit2 → permits}/constants.d.ts +0 -0
  260. /package/src/core/EVM/{permit2 → permits}/allowanceTransfer.ts +0 -0
  261. /package/src/core/EVM/{permit2 → permits}/constants.ts +0 -0
@@ -10,9 +10,11 @@ import { checkBalance } from '../checkBalance.js';
10
10
  import { stepComparison } from '../stepComparison.js';
11
11
  import { waitForDestinationChainTransaction } from '../waitForDestinationChainTransaction.js';
12
12
  import { checkAllowance } from './checkAllowance.js';
13
- import { getNativePermit } from './getNativePermit.js';
14
13
  import { parseEVMErrors } from './parseEVMErrors.js';
15
- import { signPermitMessage } from './signPermitMessage.js';
14
+ import { encodeNativePermitData } from './permits/encodeNativePermitData.js';
15
+ import { encodePermit2Data } from './permits/encodePermit2Data.js';
16
+ import { signPermit2Message } from './permits/signPermit2Message.js';
17
+ import { prettifyPermit2Data } from './permits/utils.js';
16
18
  import { switchChain } from './switchChain.js';
17
19
  import { isRelayerStep } from './typeguards.js';
18
20
  import { convertExtendedChain, getMaxPriorityFeePerGas } from './utils.js';
@@ -70,26 +72,27 @@ export class EVMStepExecutor extends BaseStepExecutor {
70
72
  enumerable: true,
71
73
  configurable: true,
72
74
  writable: true,
73
- value: async ({ step, process, fromChain, toChain, atomicBatchSupported, isRelayerTransaction, txHash, isBridgeExecution, }) => {
75
+ value: async ({ step, process, fromChain, toChain, txType, txHash, isBridgeExecution, }) => {
74
76
  let transactionReceipt;
75
- if (atomicBatchSupported) {
76
- transactionReceipt = await waitForBatchTransactionReceipt(this.client, txHash);
77
- }
78
- else if (isRelayerTransaction) {
79
- transactionReceipt = await waitForRelayedTransactionReceipt(txHash);
80
- }
81
- else {
82
- transactionReceipt = await waitForTransactionReceipt({
83
- client: this.client,
84
- chainId: fromChain.id,
85
- txHash,
86
- onReplaced: (response) => {
87
- this.statusManager.updateProcess(step, process.type, 'PENDING', {
88
- txHash: response.transaction.hash,
89
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
90
- });
91
- },
92
- });
77
+ switch (txType) {
78
+ case 'batched':
79
+ transactionReceipt = await waitForBatchTransactionReceipt(this.client, txHash);
80
+ break;
81
+ case 'relayed':
82
+ transactionReceipt = await waitForRelayedTransactionReceipt(txHash);
83
+ break;
84
+ default:
85
+ transactionReceipt = await waitForTransactionReceipt({
86
+ client: this.client,
87
+ chainId: fromChain.id,
88
+ txHash,
89
+ onReplaced: (response) => {
90
+ this.statusManager.updateProcess(step, process.type, 'PENDING', {
91
+ txHash: response.transaction.hash,
92
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
93
+ });
94
+ },
95
+ });
93
96
  }
94
97
  // Update pending process if the transaction hash from the receipt is different.
95
98
  // This might happen if the transaction was replaced.
@@ -144,36 +147,20 @@ export class EVMStepExecutor extends BaseStepExecutor {
144
147
  const isFromNativeToken = fromChain.nativeToken.address === step.action.fromToken.address;
145
148
  // Check if step requires permit signature and will be used with relayer service
146
149
  const isRelayerTransaction = isRelayerStep(step);
147
- // Check if token requires approval
148
- // Native tokens (like ETH) don't need approval since they're not ERC20 tokens
149
- // We should support different permit types:
150
- // 1. Native permits (EIP-2612)
151
- // 2. Permit2 - Universal permit implementation by Uniswap (limited to certain chains)
152
- // 3. Standard ERC20 approval
153
- const nativePermit = await getNativePermit(this.client, fromChain, step.action.fromToken.address);
154
- // Check if proxy contract is available and token supports native permits, not available for atomic batch
155
- const nativePermitSupported = nativePermit.supported &&
156
- !!fromChain.permit2Proxy &&
157
- !atomicBatchSupported &&
158
- !isRelayerTransaction && // TODO: remove once we support ERC-2771
159
- !isFromNativeToken;
160
150
  // Check if chain has Permit2 contract deployed. Permit2 should not be available for atomic batch.
161
151
  const permit2Supported = !!fromChain.permit2 &&
162
152
  !!fromChain.permit2Proxy &&
163
153
  !atomicBatchSupported &&
164
154
  !isFromNativeToken;
165
- // Token supports either native permits or Permit2
166
- const permitSupported = permit2Supported || nativePermitSupported;
167
155
  const checkForAllowance =
168
- // No existing swap/bridgetransaction is pending
156
+ // No existing swap/bridge transaction is pending
169
157
  !existingProcess?.txHash &&
170
158
  // Token is not native (address is not zero)
171
- !isFromNativeToken &&
172
- // Token doesn't support native permits
173
- !nativePermitSupported;
159
+ !isFromNativeToken;
160
+ let nativePermitSignature;
174
161
  if (checkForAllowance) {
175
162
  // Check if token needs approval and get approval transaction or message data when available
176
- const data = await checkAllowance({
163
+ const allowanceResult = await checkAllowance({
177
164
  client: this.client,
178
165
  chain: fromChain,
179
166
  step,
@@ -183,17 +170,20 @@ export class EVMStepExecutor extends BaseStepExecutor {
183
170
  atomicBatchSupported,
184
171
  permit2Supported,
185
172
  });
186
- if (data) {
173
+ if (allowanceResult.status === 'BATCH_APPROVAL') {
187
174
  // Create approval transaction call
188
175
  // No value needed since we're only approving ERC20 tokens
189
176
  if (atomicBatchSupported) {
190
- calls.push({
191
- chainId: step.action.fromToken.chainId,
192
- to: step.action.fromToken.address,
193
- data,
194
- });
177
+ calls.push(allowanceResult.data);
195
178
  }
196
179
  }
180
+ if (allowanceResult.status === 'NATIVE_PERMIT') {
181
+ nativePermitSignature = allowanceResult.data;
182
+ }
183
+ if (allowanceResult.status === 'ACTION_REQUIRED' &&
184
+ !this.allowUserInteraction) {
185
+ return step;
186
+ }
197
187
  }
198
188
  let process = this.statusManager.findProcess(step, currentProcessType);
199
189
  if (process?.status === 'DONE') {
@@ -209,22 +199,24 @@ export class EVMStepExecutor extends BaseStepExecutor {
209
199
  }
210
200
  // Wait for exiting transaction
211
201
  const txHash = process.txHash;
202
+ const txType = process.txType;
212
203
  await this.waitForTransaction({
213
204
  step,
214
205
  process,
215
206
  fromChain,
216
207
  toChain,
217
- atomicBatchSupported,
218
- isRelayerTransaction,
208
+ txType,
219
209
  txHash,
220
210
  isBridgeExecution,
221
211
  });
222
212
  return step;
223
213
  }
214
+ const permitRequired = !atomicBatchSupported && !nativePermitSignature && permit2Supported;
224
215
  process = this.statusManager.findOrCreateProcess({
225
216
  step,
226
- type: permitSupported ? 'PERMIT' : currentProcessType,
217
+ type: permitRequired ? 'PERMIT' : currentProcessType,
227
218
  status: 'STARTED',
219
+ chainId: fromChain.id,
228
220
  });
229
221
  // Check balance
230
222
  await checkBalance(this.client.account.address, step);
@@ -245,8 +237,8 @@ export class EVMStepExecutor extends BaseStepExecutor {
245
237
  allowBridges: [stepBase.tool],
246
238
  });
247
239
  updatedStep = {
248
- ...updatedRelayedStep.data.quote.step,
249
- ...updatedRelayedStep.data.quote,
240
+ ...updatedRelayedStep.quote,
241
+ permits: updatedRelayedStep.permits,
250
242
  id: stepBase.id,
251
243
  };
252
244
  }
@@ -304,7 +296,7 @@ export class EVMStepExecutor extends BaseStepExecutor {
304
296
  return step;
305
297
  }
306
298
  let txHash;
307
- let isTransactionRelayed = false;
299
+ let txType = 'standard';
308
300
  if (atomicBatchSupported) {
309
301
  const transferCall = {
310
302
  chainId: fromChain.id,
@@ -317,100 +309,127 @@ export class EVMStepExecutor extends BaseStepExecutor {
317
309
  account: this.client.account,
318
310
  calls,
319
311
  }));
312
+ txType = 'batched';
313
+ }
314
+ else if (isRelayerTransaction) {
315
+ const permitWitnessTransferFromData = step.permits.find((p) => p.permitType === 'PermitWitnessTransferFrom');
316
+ if (!permitWitnessTransferFromData) {
317
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Permit data for transfer is not found.');
318
+ }
319
+ const permit2Signature = await signPermit2Message({
320
+ client: this.client,
321
+ chain: fromChain,
322
+ tokenAddress: step.action.fromToken.address,
323
+ amount: BigInt(step.action.fromAmount),
324
+ data: transactionRequest.data,
325
+ permitData: prettifyPermit2Data(permitWitnessTransferFromData.permitData),
326
+ witness: true,
327
+ });
328
+ this.statusManager.updateProcess(step, process.type, 'DONE');
329
+ process = this.statusManager.findOrCreateProcess({
330
+ step,
331
+ type: currentProcessType,
332
+ status: 'PENDING',
333
+ chainId: fromChain.id,
334
+ });
335
+ const signedPermits = [
336
+ {
337
+ permitType: 'PermitWitnessTransferFrom',
338
+ permit: permit2Signature.values,
339
+ signature: permit2Signature.signature,
340
+ },
341
+ ];
342
+ // Add native permit if available as first element, order is important
343
+ if (nativePermitSignature) {
344
+ signedPermits.unshift({
345
+ permitType: 'Permit',
346
+ permit: nativePermitSignature.values,
347
+ signature: nativePermitSignature.signature,
348
+ });
349
+ }
350
+ const relayedTransaction = await relayTransaction({
351
+ tokenOwner: this.client.account.address,
352
+ chainId: fromChain.id,
353
+ permits: signedPermits,
354
+ callData: transactionRequest.data,
355
+ });
356
+ txHash = relayedTransaction.taskId;
357
+ txType = 'relayed';
320
358
  }
321
359
  else {
322
- let permitSignature;
323
- if (permitSupported) {
324
- permitSignature = await signPermitMessage(this.client, {
325
- transactionRequest,
360
+ if (nativePermitSignature) {
361
+ transactionRequest.data = encodeNativePermitData(step.action.fromToken.address, BigInt(step.action.fromAmount), nativePermitSignature.values.deadline, nativePermitSignature.signature, transactionRequest.data);
362
+ }
363
+ else if (permit2Supported) {
364
+ const permit2Signature = await signPermit2Message({
365
+ client: this.client,
326
366
  chain: fromChain,
327
367
  tokenAddress: step.action.fromToken.address,
328
368
  amount: BigInt(step.action.fromAmount),
329
- nativePermit,
330
- permitData: isRelayerTransaction ? step.permitData : undefined,
331
- useWitness: isRelayerTransaction,
369
+ data: transactionRequest.data,
332
370
  });
333
- transactionRequest.to = fromChain.permit2Proxy;
334
371
  this.statusManager.updateProcess(step, process.type, 'DONE');
335
- }
336
- if (isRelayerTransaction && permitSignature) {
337
372
  process = this.statusManager.findOrCreateProcess({
338
373
  step,
339
374
  type: currentProcessType,
340
375
  status: 'PENDING',
341
- });
342
- const relayedTransaction = await relayTransaction({
343
- tokenOwner: this.client.account.address,
344
376
  chainId: fromChain.id,
345
- permit: step.permit,
346
- witness: step.witness,
347
- signedPermitData: permitSignature.signature,
348
- callData: transactionRequest.data,
349
377
  });
350
- txHash = relayedTransaction.data.taskId;
351
- isTransactionRelayed = true;
378
+ transactionRequest.data = encodePermit2Data(step.action.fromToken.address, BigInt(step.action.fromAmount), permit2Signature.values.nonce, permit2Signature.values.deadline, transactionRequest.data, permit2Signature.signature);
352
379
  }
353
- else {
354
- process = this.statusManager.findOrCreateProcess({
355
- step,
356
- type: currentProcessType,
357
- status: 'STARTED',
358
- });
359
- if (permitSignature) {
360
- // If we have a permit signature, we need to use updated data
361
- transactionRequest.data = permitSignature.data;
362
- try {
363
- // Try to re-estimate the gas due to additional Permit data
364
- const estimatedGas = await estimateGas(this.client, {
365
- account: this.client.account,
366
- to: transactionRequest.to,
367
- data: transactionRequest.data,
368
- value: transactionRequest.value,
369
- });
370
- transactionRequest.gas =
371
- transactionRequest.gas && transactionRequest.gas > estimatedGas
372
- ? transactionRequest.gas
373
- : estimatedGas;
374
- }
375
- catch {
376
- // Let the wallet estimate the gas in case of failure
377
- transactionRequest.gas = undefined;
378
- }
380
+ if (nativePermitSignature || permit2Supported) {
381
+ try {
382
+ // Target address should be the Permit2 proxy contract in case of native permit or Permit2
383
+ transactionRequest.to = fromChain.permit2Proxy;
384
+ // Try to re-estimate the gas due to additional Permit data
385
+ const estimatedGas = await estimateGas(this.client, {
386
+ account: this.client.account,
387
+ to: transactionRequest.to,
388
+ data: transactionRequest.data,
389
+ value: transactionRequest.value,
390
+ });
391
+ transactionRequest.gas =
392
+ transactionRequest.gas && transactionRequest.gas > estimatedGas
393
+ ? transactionRequest.gas
394
+ : estimatedGas;
395
+ }
396
+ catch {
397
+ // Let the wallet estimate the gas in case of failure
398
+ transactionRequest.gas = undefined;
399
+ }
400
+ finally {
401
+ this.statusManager.updateProcess(step, process.type, 'DONE');
379
402
  }
380
- process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
381
- txHash = await getAction(this.client, sendTransaction, 'sendTransaction')({
382
- to: transactionRequest.to,
383
- account: this.client.account,
384
- data: transactionRequest.data,
385
- value: transactionRequest.value,
386
- gas: transactionRequest.gas,
387
- gasPrice: transactionRequest.gasPrice,
388
- maxFeePerGas: transactionRequest.maxFeePerGas,
389
- maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
390
- chain: convertExtendedChain(fromChain),
391
- });
392
403
  }
404
+ process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
405
+ txHash = await getAction(this.client, sendTransaction, 'sendTransaction')({
406
+ to: transactionRequest.to,
407
+ account: this.client.account,
408
+ data: transactionRequest.data,
409
+ value: transactionRequest.value,
410
+ gas: transactionRequest.gas,
411
+ gasPrice: transactionRequest.gasPrice,
412
+ maxFeePerGas: transactionRequest.maxFeePerGas,
413
+ maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
414
+ chain: convertExtendedChain(fromChain),
415
+ });
393
416
  }
394
417
  process = this.statusManager.updateProcess(step, process.type, 'PENDING',
395
- // When atomic batch is supported, txHash represents the batch hash rather than an individual transaction hash at this point
396
- atomicBatchSupported
397
- ? {
398
- atomicBatchSupported,
399
- }
400
- : isTransactionRelayed
401
- ? undefined
402
- : {
403
- txHash: txHash,
404
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
405
- });
418
+ // When atomic batch or relayer are supported, txHash represents the batch hash or taskId rather than an individual transaction hash
419
+ {
420
+ txHash,
421
+ txType,
422
+ txLink: txType === 'standard'
423
+ ? `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`
424
+ : undefined,
425
+ });
406
426
  await this.waitForTransaction({
407
427
  step,
408
428
  process,
409
429
  fromChain,
410
430
  toChain,
411
- atomicBatchSupported,
412
- isRelayerTransaction,
413
431
  txHash,
432
+ txType,
414
433
  isBridgeExecution,
415
434
  });
416
435
  // DONE
@@ -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":"AAUA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAOrD,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAEL,8BAA8B,GAC/B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAA;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAM1E,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IAGnD,YAAY,OAA+B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAA;QAHR;;;;;WAAc;QAOtB,mFAAmF;QACnF;;;;mBAAc,KAAK,EAAE,IAAsB,EAAE,OAAiB,EAAE,EAAE;gBAChE,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,gBAAgB,EAAE,eAAe,CACvC,CAAA;gBACD,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAA;gBAC7B,CAAC;gBAED,4FAA4F;gBAC5F,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAA;gBACjD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,gBAAgB,GAAG,CAAC,MAAM,SAAS,CACvC,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,cAAc,CACf,CAAC,SAAS,CAAC,CAA2B,CAAA;oBACvC,cAAc,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAA;gBACxC,CAAC;gBACD,IACE,cAAc,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,EACxE,CAAC;oBACD,IAAI,eAAe,GAAG,OAAO,CAAA;oBAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;wBACrB,+EAA+E;wBAC/E,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;4BACvD,IAAI;4BACJ,IAAI,EAAE,aAAa;yBACpB,CAAC,CAAA;oBACJ,CAAC;oBACD,MAAM,YAAY,GAChB,mHAAmH,CAAA;oBACrH,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE;wBACrE,KAAK,EAAE;4BACL,IAAI,EAAE,aAAa,CAAC,4BAA4B;4BAChD,OAAO,EAAE,YAAY;yBACtB;qBACF,CAAC,CAAA;oBACF,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;oBAClD,MAAM,MAAM,cAAc,CACxB,IAAI,gBAAgB,CAClB,aAAa,CAAC,4BAA4B,EAC1C,YAAY,CACb,EACD,IAAI,EACJ,OAAO,CACR,CAAA;gBACH,CAAC;gBACD,OAAO,aAAa,CAAA;YACtB,CAAC;WAAA;QAED;;;;mBAAqB,KAAK,EAAE,EAC1B,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,iBAAiB,GASlB,EAAE,EAAE;gBACH,IAAI,kBAAsE,CAAA;gBAE1E,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,SAAS;wBACZ,kBAAkB,GAAG,MAAM,8BAA8B,CACvD,IAAI,CAAC,MAAM,EACX,MAAM,CACP,CAAA;wBACD,MAAK;oBACP,KAAK,SAAS;wBACZ,kBAAkB,GAAG,MAAM,gCAAgC,CAAC,MAAM,CAAC,CAAA;wBACnE,MAAK;oBACP;wBACE,kBAAkB,GAAG,MAAM,yBAAyB,CAAC;4BACnD,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,OAAO,EAAE,SAAS,CAAC,EAAE;4BACrB,MAAM;4BACN,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gCACvB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE;oCAC9D,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI;oCACjC,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;iCACpF,CAAC,CAAA;4BACJ,CAAC;yBACF,CAAC,CAAA;gBACN,CAAC;gBAED,gFAAgF;gBAChF,qDAAqD;gBACrD,IACE,kBAAkB,EAAE,eAAe;oBACnC,kBAAkB,CAAC,eAAe,KAAK,MAAM,EAC7C,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,SAAS,EACT;wBACE,MAAM,EAAE,kBAAkB,CAAC,eAAe;wBAC1C,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,eAAe,EAAE;qBAC7F,CACF,CAAA;gBACH,CAAC;gBAED,IAAI,iBAAiB,EAAE,CAAC;oBACtB,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBACxE,CAAC;gBAED,MAAM,kCAAkC,CACtC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,EACP,IAAI,CAAC,aAAa,CACnB,CAAA;YACH,CAAC;WAAA;QAED;;;;mBAAc,KAAK,EAAE,IAAsB,EAA6B,EAAE;gBACxE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAE7D,2FAA2F;gBAC3F,MAAM,uBAAuB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAC1D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,iBAAiB,CAChD,CAAA;gBAED,4CAA4C;gBAC5C,gGAAgG;gBAChG,qDAAqD;gBACrD,kBAAkB;gBAClB,IAAI,uBAAuB,EAAE,SAAS,KAAK,8BAA8B,EAAE,CAAC;oBAC1E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;oBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,OAAO,IAAI,CAAA;oBACb,CAAC;gBACH,CAAC;gBAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;gBACpE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAEhE,oEAAoE;gBACpE,MAAM,KAAK,GAAW,EAAE,CAAA;gBACxB,IAAI,oBAAoB,GAAG,KAAK,CAAA;gBAChC,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,CAAC,MAAM,SAAS,CACnC,IAAI,CAAC,MAAM,EACX,eAAe,EACf,iBAAiB,CAClB,CAAC,SAAS,CAAC,CAA8B,CAAA;oBAC1C,oBAAoB,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,CAAA;gBAC3E,CAAC;gBAAC,MAAM,CAAC;oBACP,oEAAoE;oBACpE,+CAA+C;gBACjD,CAAC;gBAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAA;gBACrD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;gBAErE,oCAAoC;gBACpC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CACrC,CAAA;gBAED,MAAM,iBAAiB,GACrB,SAAS,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAA;gBAEjE,gFAAgF;gBAChF,MAAM,oBAAoB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;gBAEhD,kGAAkG;gBAClG,MAAM,gBAAgB,GACpB,CAAC,CAAC,SAAS,CAAC,OAAO;oBACnB,CAAC,CAAC,SAAS,CAAC,YAAY;oBACxB,CAAC,oBAAoB;oBACrB,CAAC,iBAAiB,CAAA;gBAEpB,MAAM,iBAAiB;gBACrB,iDAAiD;gBACjD,CAAC,eAAe,EAAE,MAAM;oBACxB,4CAA4C;oBAC5C,CAAC,iBAAiB,CAAA;gBAEpB,IAAI,qBAAwD,CAAA;gBAC5D,IAAI,iBAAiB,EAAE,CAAC;oBACtB,4FAA4F;oBAC5F,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC;wBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,KAAK,EAAE,SAAS;wBAChB,IAAI;wBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;wBAC/C,oBAAoB;wBACpB,gBAAgB;qBACjB,CAAC,CAAA;oBAEF,IAAI,eAAe,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;wBAChD,mCAAmC;wBACnC,0DAA0D;wBAC1D,IAAI,oBAAoB,EAAE,CAAC;4BACzB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;wBAClC,CAAC;oBACH,CAAC;oBACD,IAAI,eAAe,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;wBAC/C,qBAAqB,GAAG,eAAe,CAAC,IAAI,CAAA;oBAC9C,CAAC;oBACD,IACE,eAAe,CAAC,MAAM,KAAK,iBAAiB;wBAC5C,CAAC,IAAI,CAAC,oBAAoB,EAC1B,CAAC;wBACD,OAAO,IAAI,CAAA;oBACb,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;gBAEtE,IAAI,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC/B,MAAM,kCAAkC,CACtC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,EACP,IAAI,CAAC,aAAa,CACnB,CAAA;oBAED,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,IAAI,CAAC;oBACH,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;wBACpB,4CAA4C;wBAC5C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;wBAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,OAAO,IAAI,CAAA;wBACb,CAAC;wBAED,+BAA+B;wBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAc,CAAA;wBACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAA+B,CAAA;wBAEtD,MAAM,IAAI,CAAC,kBAAkB,CAAC;4BAC5B,IAAI;4BACJ,OAAO;4BACP,SAAS;4BACT,OAAO;4BACP,MAAM;4BACN,MAAM;4BACN,iBAAiB;yBAClB,CAAC,CAAA;wBAEF,OAAO,IAAI,CAAA;oBACb,CAAC;oBAED,MAAM,cAAc,GAClB,CAAC,oBAAoB,IAAI,CAAC,qBAAqB,IAAI,gBAAgB,CAAA;oBACrE,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;wBAC/C,IAAI;wBACJ,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB;wBACpD,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,SAAS,CAAC,EAAE;qBACtB,CAAC,CAAA;oBAEF,gBAAgB;oBAChB,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;oBAEtD,iCAAiC;oBACjC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAA;wBACvC,IAAI,WAAqC,CAAA;wBACzC,IAAI,oBAAoB,EAAE,CAAC;4BACzB,MAAM,kBAAkB,GAAG,MAAM,eAAe,CAAC;gCAC/C,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;gCACtC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;gCAC5C,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAY;gCACzC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;gCACtC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gCAClC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;gCACxC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;gCAClC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;gCACpC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;6BAC9B,CAAC,CAAA;4BACF,WAAW,GAAG;gCACZ,GAAG,kBAAkB,CAAC,KAAK;gCAC3B,OAAO,EAAE,kBAAkB,CAAC,OAAO;gCACnC,EAAE,EAAE,QAAQ,CAAC,EAAE;6BAChB,CAAA;wBACH,CAAC;6BAAM,CAAC;4BACN,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;wBAClD,CAAC;wBACD,MAAM,YAAY,GAAG,MAAM,cAAc,CACvC,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,gBAAgB,CACtB,CAAA;wBACD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;4BAClB,GAAG,YAAY;4BACf,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B,CAAC,CAAA;oBACJ,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC7B,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,qBAAqB,EACnC,gCAAgC,CACjC,CAAA;oBACH,CAAC;oBAED,IAAI,kBAAkB,GAA0B;wBAC9C,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;wBAC9B,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;wBAClC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;wBAClC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;4BAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;4BACvC,CAAC,CAAC,SAAS;wBACb,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ;4BACnC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;4BAC1C,CAAC,CAAC,SAAS;wBACb,6CAA6C;wBAC7C,yDAAyD;wBACzD,iBAAiB;wBACjB,qDAAqD;wBACrD,6DAA6D;wBAC7D,iBAAiB;wBACjB,oBAAoB,EAClB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,OAAO;4BACnC,CAAC,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;4BAC5C,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;gCAC5C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC;gCACtD,CAAC,CAAC,SAAS;qBAClB,CAAA;oBAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;wBACxD,MAAM,4BAA4B,GAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;4BACvD,WAAW,EAAE,aAAa;4BAC1B,GAAG,kBAAkB;yBACtB,CAAC,CAAA;wBAEJ,kBAAkB,GAAG;4BACnB,GAAG,kBAAkB;4BACrB,GAAG,4BAA4B;yBAChC,CAAA;oBACH,CAAC;oBAED,4CAA4C;oBAC5C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,OAAO,IAAI,CAAA;oBACb,CAAC;oBAED,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,iBAAiB,CAClB,CAAA;oBAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC/B,OAAO,IAAI,CAAA;oBACb,CAAC;oBAED,IAAI,MAAY,CAAA;oBAChB,IAAI,MAAM,GAA0B,UAAU,CAAA;oBAE9C,IAAI,oBAAoB,EAAE,CAAC;wBACzB,MAAM,YAAY,GAAS;4BACzB,OAAO,EAAE,SAAS,CAAC,EAAE;4BACrB,IAAI,EAAE,kBAAkB,CAAC,IAAW;4BACpC,EAAE,EAAE,kBAAkB,CAAC,EAAa;4BACpC,KAAK,EAAE,kBAAkB,CAAC,KAAK;yBAChC,CAAA;wBAED,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;wBAExB,MAAM,GAAG,CAAC,MAAM,SAAS,CACvB,IAAI,CAAC,MAAM,EACX,SAAS,EACT,WAAW,CACZ,CAAC;4BACA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;4BAC7B,KAAK;yBACN,CAAC,CAAY,CAAA;wBACd,MAAM,GAAG,SAAS,CAAA;oBACpB,CAAC;yBAAM,IAAI,oBAAoB,EAAE,CAAC;wBAChC,MAAM,6BAA6B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,2BAA2B,CACpD,CAAA;wBAED,IAAI,CAAC,6BAA6B,EAAE,CAAC;4BACnC,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,qBAAqB,EACnC,uEAAuE,CACxE,CAAA;wBACH,CAAC;wBAED,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC;4BAChD,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,SAAS;4BAChB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAkB;4BACtD,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;4BACtC,IAAI,EAAE,kBAAkB,CAAC,IAAW;4BACpC,UAAU,EAAE,mBAAmB,CAC7B,6BAA6B,CAAC,UAAU,CACzC;4BACD,OAAO,EAAE,IAAI;yBACd,CAAC,CAAA;wBAEF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;wBAE5D,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;4BAC/C,IAAI;4BACJ,IAAI,EAAE,kBAAkB;4BACxB,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,SAAS,CAAC,EAAE;yBACtB,CAAC,CAAA;wBAEF,MAAM,aAAa,GAAmB;4BACpC;gCACE,UAAU,EAAE,2BAA2B;gCACvC,MAAM,EAAE,gBAAgB,CAAC,MAAM;gCAC/B,SAAS,EAAE,gBAAgB,CAAC,SAAS;6BACtC;yBACF,CAAA;wBACD,sEAAsE;wBACtE,IAAI,qBAAqB,EAAE,CAAC;4BAC1B,aAAa,CAAC,OAAO,CAAC;gCACpB,UAAU,EAAE,QAAQ;gCACpB,MAAM,EAAE,qBAAqB,CAAC,MAAM;gCACpC,SAAS,EAAE,qBAAqB,CAAC,SAAS;6BAC3C,CAAC,CAAA;wBACJ,CAAC;wBAED,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC;4BAChD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAC,OAAO;4BACxC,OAAO,EAAE,SAAS,CAAC,EAAE;4BACrB,OAAO,EAAE,aAAa;4BACtB,QAAQ,EAAE,kBAAkB,CAAC,IAAY;yBAC1C,CAAC,CAAA;wBACF,MAAM,GAAG,kBAAkB,CAAC,MAAc,CAAA;wBAC1C,MAAM,GAAG,SAAS,CAAA;oBACpB,CAAC;yBAAM,CAAC;wBACN,IAAI,qBAAqB,EAAE,CAAC;4BAC1B,kBAAkB,CAAC,IAAI,GAAG,sBAAsB,CAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAkB,EACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAC9B,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EACrC,qBAAqB,CAAC,SAAS,EAC/B,kBAAkB,CAAC,IAAW,CAC/B,CAAA;wBACH,CAAC;6BAAM,IAAI,gBAAgB,EAAE,CAAC;4BAC5B,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC;gCAChD,MAAM,EAAE,IAAI,CAAC,MAAM;gCACnB,KAAK,EAAE,SAAS;gCAChB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAkB;gCACtD,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gCACtC,IAAI,EAAE,kBAAkB,CAAC,IAAW;6BACrC,CAAC,CAAA;4BACF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;4BAE5D,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;gCAC/C,IAAI;gCACJ,IAAI,EAAE,kBAAkB;gCACxB,MAAM,EAAE,SAAS;gCACjB,OAAO,EAAE,SAAS,CAAC,EAAE;6BACtB,CAAC,CAAA;4BACF,kBAAkB,CAAC,IAAI,GAAG,iBAAiB,CACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAkB,EACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAC9B,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAC7B,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAChC,kBAAkB,CAAC,IAAW,EAC9B,gBAAgB,CAAC,SAAS,CAC3B,CAAA;wBACH,CAAC;wBAED,IAAI,qBAAqB,IAAI,gBAAgB,EAAE,CAAC;4BAC9C,IAAI,CAAC;gCACH,0FAA0F;gCAC1F,kBAAkB,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,CAAA;gCAC9C,2DAA2D;gCAC3D,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE;oCAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;oCAC7B,EAAE,EAAE,kBAAkB,CAAC,EAAa;oCACpC,IAAI,EAAE,kBAAkB,CAAC,IAAW;oCACpC,KAAK,EAAE,kBAAkB,CAAC,KAAK;iCAChC,CAAC,CAAA;gCACF,kBAAkB,CAAC,GAAG;oCACpB,kBAAkB,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,GAAG,YAAY;wCAC7D,CAAC,CAAC,kBAAkB,CAAC,GAAG;wCACxB,CAAC,CAAC,YAAY,CAAA;4BACpB,CAAC;4BAAC,MAAM,CAAC;gCACP,qDAAqD;gCACrD,kBAAkB,CAAC,GAAG,GAAG,SAAS,CAAA;4BACpC,CAAC;oCAAS,CAAC;gCACT,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;4BAC9D,CAAC;wBACH,CAAC;wBACD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,iBAAiB,CAClB,CAAA;wBACD,MAAM,GAAG,MAAM,SAAS,CACtB,IAAI,CAAC,MAAM,EACX,eAAe,EACf,iBAAiB,CAClB,CAAC;4BACA,EAAE,EAAE,kBAAkB,CAAC,EAAa;4BACpC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;4BAC7B,IAAI,EAAE,kBAAkB,CAAC,IAAW;4BACpC,KAAK,EAAE,kBAAkB,CAAC,KAAK;4BAC/B,GAAG,EAAE,kBAAkB,CAAC,GAAG;4BAC3B,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;4BACrC,YAAY,EAAE,kBAAkB,CAAC,YAAY;4BAC7C,oBAAoB,EAAE,kBAAkB,CAAC,oBAAoB;4BAC7D,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC;yBACV,CAAC,CAAA;oBACjC,CAAC;oBAED,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,SAAS;oBACT,oIAAoI;oBACpI;wBACE,MAAM;wBACN,MAAM;wBACN,MAAM,EACJ,MAAM,KAAK,UAAU;4BACnB,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE;4BAC1D,CAAC,CAAC,SAAS;qBAChB,CACF,CAAA;oBAED,MAAM,IAAI,CAAC,kBAAkB,CAAC;wBAC5B,IAAI;wBACJ,OAAO;wBACP,SAAS;wBACT,OAAO;wBACP,MAAM;wBACN,MAAM;wBACN,iBAAiB;qBAClB,CAAC,CAAA;oBAEF,OAAO;oBACP,OAAO,IAAI,CAAA;gBACb,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;oBACpD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CACxC,IAAI,EACJ,OAAO,EAAE,IAAI,IAAI,kBAAkB,EACnC,QAAQ,EACR;wBACE,KAAK,EAAE;4BACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;4BAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;yBACjB;qBACF,CACF,CAAA;oBACD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;oBAElD,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;WAAA;QAjkBC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9B,CAAC;CAikBF"}
@@ -1,7 +1,11 @@
1
1
  import { MaxUint256 } from '../../constants.js';
2
2
  import { getAllowance } from './getAllowance.js';
3
3
  import { parseEVMErrors } from './parseEVMErrors.js';
4
+ import { getNativePermit } from './permits/getNativePermit.js';
5
+ import { signNativePermitMessage } from './permits/signNativePermitMessage.js';
6
+ import { prettifyNativePermitData } from './permits/utils.js';
4
7
  import { setAllowance } from './setAllowance.js';
8
+ import { isRelayerStep } from './typeguards.js';
5
9
  import { waitForTransactionReceipt } from './waitForTransactionReceipt.js';
6
10
  export const checkAllowance = async ({ client, chain, step, statusManager, executionOptions, allowUserInteraction = false, atomicBatchSupported = false, permit2Supported = false, }) => {
7
11
  // Find existing or create new allowance process
@@ -14,7 +18,7 @@ export const checkAllowance = async ({ client, chain, step, statusManager, execu
14
18
  // Handle existing pending transaction
15
19
  if (allowanceProcess.txHash && allowanceProcess.status !== 'DONE') {
16
20
  await waitForApprovalTransaction(client, allowanceProcess.txHash, allowanceProcess.type, step, chain, statusManager);
17
- return;
21
+ return { status: 'DONE' };
18
22
  }
19
23
  // Start new allowance check
20
24
  statusManager.updateProcess(step, allowanceProcess.type, 'STARTED');
@@ -26,20 +30,46 @@ export const checkAllowance = async ({ client, chain, step, statusManager, execu
26
30
  // Return early if already approved
27
31
  if (fromAmount <= approved) {
28
32
  statusManager.updateProcess(step, allowanceProcess.type, 'DONE');
29
- return;
33
+ return { status: 'DONE' };
30
34
  }
31
- if (!allowUserInteraction) {
32
- return;
35
+ const isRelayerTransaction = isRelayerStep(step);
36
+ let nativePermitData;
37
+ if (isRelayerTransaction) {
38
+ const permitData = step.permits.find((p) => p.permitType === 'Permit')?.permitData;
39
+ if (permitData) {
40
+ nativePermitData = prettifyNativePermitData(permitData);
41
+ }
42
+ }
43
+ else {
44
+ nativePermitData = await getNativePermit(client, chain, step.action.fromToken.address, fromAmount);
33
45
  }
34
46
  statusManager.updateProcess(step, allowanceProcess.type, 'ACTION_REQUIRED');
47
+ if (!allowUserInteraction) {
48
+ return { status: 'ACTION_REQUIRED' };
49
+ }
50
+ // Check if proxy contract is available and token supports native permits, not available for atomic batch
51
+ const nativePermitSupported = !!nativePermitData && !!chain.permit2Proxy && !atomicBatchSupported;
52
+ if (nativePermitSupported && nativePermitData) {
53
+ const nativePermitSignature = await signNativePermitMessage(client, nativePermitData);
54
+ statusManager.updateProcess(step, allowanceProcess.type, 'DONE');
55
+ return { status: 'NATIVE_PERMIT', data: nativePermitSignature };
56
+ }
35
57
  // Set new allowance
36
58
  const approveAmount = permit2Supported ? MaxUint256 : fromAmount;
37
59
  const approveTxHash = await setAllowance(client, step.action.fromToken.address, spenderAddress, approveAmount, executionOptions, atomicBatchSupported);
38
60
  if (atomicBatchSupported) {
39
61
  statusManager.updateProcess(step, allowanceProcess.type, 'DONE');
40
- return approveTxHash;
62
+ return {
63
+ status: 'BATCH_APPROVAL',
64
+ data: {
65
+ to: step.action.fromToken.address,
66
+ data: approveTxHash,
67
+ chainId: step.action.fromToken.chainId,
68
+ },
69
+ };
41
70
  }
42
71
  await waitForApprovalTransaction(client, approveTxHash, allowanceProcess.type, step, chain, statusManager);
72
+ return { status: 'DONE' };
43
73
  }
44
74
  catch (e) {
45
75
  const error = await parseEVMErrors(e, step, allowanceProcess);
@@ -1 +1 @@
1
- {"version":3,"file":"checkAllowance.js","sourceRoot":"","sources":["../../../core/EVM/checkAllowance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkAllowance.js","sourceRoot":"","sources":["../../../core/EVM/checkAllowance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { ChainType } from '@lifi/types';
2
+ import { config } from '../../config.js';
3
+ import { getAllowance } from './getAllowance.js';
4
+ import { getNativePermit } from './permits/getNativePermit.js';
5
+ import { getPublicClient } from './publicClient.js';
6
+ /**
7
+ * Checks what permit types are supported for a token on a specific chain.
8
+ * Checks in order:
9
+ * 1. Native permit (EIP-2612) support
10
+ * 2. Permit2 availability and allowance
11
+ *
12
+ * @param chain - The chain to check permit support on
13
+ * @param tokenAddress - The token address to check
14
+ * @param ownerAddress - The address that would sign the permit
15
+ * @param amount - The amount to check allowance against for Permit2
16
+ * @returns Object indicating which permit types are supported
17
+ */
18
+ export const checkPermitSupport = async ({ chain, tokenAddress, ownerAddress, amount, }) => {
19
+ const provider = config.getProvider(ChainType.EVM);
20
+ let client = await provider?.getWalletClient?.();
21
+ if (!client) {
22
+ client = await getPublicClient(chain.id);
23
+ }
24
+ let nativePermit;
25
+ // Try with wallet client first, fallback to public client
26
+ try {
27
+ nativePermit = await getNativePermit(client, chain, tokenAddress, amount);
28
+ }
29
+ catch {
30
+ client = await getPublicClient(chain.id);
31
+ nativePermit = await getNativePermit(client, chain, tokenAddress, amount);
32
+ }
33
+ let permit2Allowance;
34
+ // Check Permit2 allowance if available on chain
35
+ if (chain.permit2) {
36
+ permit2Allowance = await getAllowance(chain.id, tokenAddress, ownerAddress, chain.permit2);
37
+ }
38
+ return {
39
+ nativePermitSupported: !!nativePermit,
40
+ permit2AllowanceSufficient: !!permit2Allowance && permit2Allowance >= amount,
41
+ };
42
+ };
43
+ //# sourceMappingURL=checkPermitSupport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkPermitSupport.js","sourceRoot":"","sources":["../../../core/EVM/checkPermitSupport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAUnD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,MAAM,GAMP,EAA0B,EAAE;IAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAA4B,CAAA;IAE7E,IAAI,MAAM,GAAG,MAAM,QAAQ,EAAE,eAAe,EAAE,EAAE,CAAA;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,YAA0C,CAAA;IAC9C,0DAA0D;IAC1D,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACxC,YAAY,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,gBAAoC,CAAA;IACxC,gDAAgD;IAChD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,gBAAgB,GAAG,MAAM,YAAY,CACnC,KAAK,CAAC,EAAE,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,CAAC,OAAkB,CACzB,CAAA;IACH,CAAC;IAED,OAAO;QACL,qBAAqB,EAAE,CAAC,CAAC,YAAY;QACrC,0BAA0B,EACxB,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,MAAM;KACnD,CAAA;AACH,CAAC,CAAA"}
@@ -25,6 +25,15 @@ const handleSpecificErrors = async (e, step, process) => {
25
25
  if (e.cause?.code === -32000) {
26
26
  return new TransactionError(LiFiErrorCode.SignatureRejected, e.message, e);
27
27
  }
28
+ // Some wallets reject transactions sometimes with this code because of internal and JSON-RPC errors, e.g.:
29
+ // {
30
+ // "code": -32603,
31
+ // "message": "Pop up window failed to open",
32
+ // "docUrl": "https://docs.cloud.coinbase.com/wallet-sdk/docs/errors"
33
+ // }
34
+ if (e.cause?.code === -32603) {
35
+ return new TransactionError(LiFiErrorCode.TransactionRejected, e.message, e);
36
+ }
28
37
  if (step &&
29
38
  process?.txHash &&
30
39
  e.code === LiFiErrorCode.TransactionFailed &&
@@ -1 +1 @@
1
- {"version":3,"file":"parseEVMErrors.js","sourceRoot":"","sources":["../../../core/EVM/parseEVMErrors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAGxE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,CAAQ,EACR,IAAe,EACf,OAAiB,EACE,EAAE;IACrB,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAA;QACvB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAA;QAChC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAE9D,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,KAAK,EAChC,CAAM,EACN,IAAe,EACf,OAAiB,EACjB,EAAE;IACF,IACE,CAAC,CAAC,IAAI,KAAK,0BAA0B;QACrC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,0BAA0B,EAC5C,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,oFAAoF;IACpF,IAAI;IACJ,kBAAkB;IAClB,0CAA0C;IAC1C,IAAI;IACJ,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,IACE,IAAI;QACJ,OAAO,EAAE,MAAM;QACf,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,iBAAiB;QAC1C,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,mBAAmB,EAC9C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CACxC,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,MAAM,CAAC,WAAW,CACxB,CAAA;QAED,MAAM,YAAY,GAAG,QAAQ,EAAE,aAAa,CAAA;QAE5C,IAAI,YAAY,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,aAAa,EAC3B,YAAY,CAAC,WAAW,EACxB,CAAC,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;AACpE,CAAC,CAAA"}
1
+ {"version":3,"file":"parseEVMErrors.js","sourceRoot":"","sources":["../../../core/EVM/parseEVMErrors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAGxE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,CAAQ,EACR,IAAe,EACf,OAAiB,EACE,EAAE;IACrB,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAA;QACvB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAA;QAChC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAE9D,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,KAAK,EAChC,CAAM,EACN,IAAe,EACf,OAAiB,EACjB,EAAE;IACF,IACE,CAAC,CAAC,IAAI,KAAK,0BAA0B;QACrC,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,0BAA0B,EAC5C,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,oFAAoF;IACpF,IAAI;IACJ,kBAAkB;IAClB,0CAA0C;IAC1C,IAAI;IACJ,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,2GAA2G;IAC3G,IAAI;IACJ,sBAAsB;IACtB,iDAAiD;IACjD,yEAAyE;IACzE,IAAI;IACJ,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,IACE,IAAI;QACJ,OAAO,EAAE,MAAM;QACf,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,iBAAiB;QAC1C,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,mBAAmB,EAC9C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CACxC,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,MAAM,CAAC,WAAW,CACxB,CAAA;QAED,MAAM,YAAY,GAAG,QAAQ,EAAE,aAAa,CAAA;QAE5C,IAAI,YAAY,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,aAAa,EAC3B,YAAY,CAAC,WAAW,EACxB,CAAC,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;AACpE,CAAC,CAAA"}