@lifi/sdk 3.10.1 → 3.11.0-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 (78) hide show
  1. package/package.json +1 -1
  2. package/src/_cjs/core/EVM/EVMStepExecutor.js +122 -131
  3. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  4. package/src/_cjs/core/EVM/abi.js +1 -0
  5. package/src/_cjs/core/EVM/abi.js.map +1 -1
  6. package/src/_cjs/core/EVM/checkAllowance.js +126 -44
  7. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
  8. package/src/_cjs/core/EVM/permits/getNativePermit.js +123 -16
  9. package/src/_cjs/core/EVM/permits/getNativePermit.js.map +1 -1
  10. package/src/_cjs/core/EVM/permits/isNativePermitValid.js +34 -0
  11. package/src/_cjs/core/EVM/permits/isNativePermitValid.js.map +1 -0
  12. package/src/_cjs/core/EVM/switchChain.js +8 -14
  13. package/src/_cjs/core/EVM/switchChain.js.map +1 -1
  14. package/src/_cjs/core/EVM/utils.js +10 -1
  15. package/src/_cjs/core/EVM/utils.js.map +1 -1
  16. package/src/_cjs/core/execution.js +1 -1
  17. package/src/_cjs/core/execution.js.map +1 -1
  18. package/src/_cjs/core/prepareRestart.js +5 -2
  19. package/src/_cjs/core/prepareRestart.js.map +1 -1
  20. package/src/_cjs/core/processMessages.js +4 -8
  21. package/src/_cjs/core/processMessages.js.map +1 -1
  22. package/src/_cjs/version.js +1 -1
  23. package/src/_cjs/version.js.map +1 -1
  24. package/src/_esm/core/EVM/EVMStepExecutor.js +136 -148
  25. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  26. package/src/_esm/core/EVM/abi.js +2 -0
  27. package/src/_esm/core/EVM/abi.js.map +1 -1
  28. package/src/_esm/core/EVM/checkAllowance.js +141 -45
  29. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  30. package/src/_esm/core/EVM/permits/getNativePermit.js +144 -21
  31. package/src/_esm/core/EVM/permits/getNativePermit.js.map +1 -1
  32. package/src/_esm/core/EVM/permits/isNativePermitValid.js +41 -0
  33. package/src/_esm/core/EVM/permits/isNativePermitValid.js.map +1 -0
  34. package/src/_esm/core/EVM/switchChain.js +8 -15
  35. package/src/_esm/core/EVM/switchChain.js.map +1 -1
  36. package/src/_esm/core/EVM/utils.js +12 -0
  37. package/src/_esm/core/EVM/utils.js.map +1 -1
  38. package/src/_esm/core/execution.js +1 -1
  39. package/src/_esm/core/execution.js.map +1 -1
  40. package/src/_esm/core/prepareRestart.js +6 -3
  41. package/src/_esm/core/prepareRestart.js.map +1 -1
  42. package/src/_esm/core/processMessages.js +4 -8
  43. package/src/_esm/core/processMessages.js.map +1 -1
  44. package/src/_esm/version.js +1 -1
  45. package/src/_esm/version.js.map +1 -1
  46. package/src/_types/core/EVM/EVMStepExecutor.d.ts +3 -2
  47. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  48. package/src/_types/core/EVM/abi.d.ts +20 -0
  49. package/src/_types/core/EVM/abi.d.ts.map +1 -1
  50. package/src/_types/core/EVM/checkAllowance.d.ts +10 -7
  51. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  52. package/src/_types/core/EVM/permits/getNativePermit.d.ts +2 -2
  53. package/src/_types/core/EVM/permits/getNativePermit.d.ts.map +1 -1
  54. package/src/_types/core/EVM/permits/isNativePermitValid.d.ts +6 -0
  55. package/src/_types/core/EVM/permits/isNativePermitValid.d.ts.map +1 -0
  56. package/src/_types/core/EVM/switchChain.d.ts +2 -2
  57. package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
  58. package/src/_types/core/EVM/utils.d.ts +6 -1
  59. package/src/_types/core/EVM/utils.d.ts.map +1 -1
  60. package/src/_types/core/prepareRestart.d.ts +1 -1
  61. package/src/_types/core/prepareRestart.d.ts.map +1 -1
  62. package/src/_types/core/processMessages.d.ts.map +1 -1
  63. package/src/_types/core/types.d.ts +2 -2
  64. package/src/_types/core/types.d.ts.map +1 -1
  65. package/src/_types/version.d.ts +1 -1
  66. package/src/_types/version.d.ts.map +1 -1
  67. package/src/core/EVM/EVMStepExecutor.ts +203 -197
  68. package/src/core/EVM/abi.ts +2 -0
  69. package/src/core/EVM/checkAllowance.ts +206 -63
  70. package/src/core/EVM/permits/getNativePermit.ts +189 -22
  71. package/src/core/EVM/permits/isNativePermitValid.ts +57 -0
  72. package/src/core/EVM/switchChain.ts +14 -22
  73. package/src/core/EVM/utils.ts +17 -1
  74. package/src/core/execution.ts +1 -1
  75. package/src/core/prepareRestart.ts +6 -3
  76. package/src/core/processMessages.ts +4 -8
  77. package/src/core/types.ts +1 -2
  78. package/src/version.ts +1 -1
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareRestart = void 0;
4
- const prepareRestart = async (route) => {
4
+ const prepareRestart = (route) => {
5
5
  for (let index = 0; index < route.steps.length; index++) {
6
6
  const step = route.steps[index];
7
7
  if (step.execution) {
8
- const lastValidIndex = step.execution.process.findLastIndex((process) => (!!process.txHash || !!process.taskId) && process.status !== 'FAILED');
8
+ const lastValidIndex = step.execution.process.findLastIndex((process) => (!!process.txHash ||
9
+ !!process.taskId ||
10
+ !!process.signedTypedData?.length) &&
11
+ process.status !== 'FAILED');
9
12
  if (lastValidIndex >= 0) {
10
13
  step.execution.process = step.execution.process.slice(0, lastValidIndex + 1);
11
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepareRestart.js","sourceRoot":"","sources":["../../core/prepareRestart.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAAG,KAAK,EAAE,KAAoB,EAAE,EAAE;IAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAEnB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CACzD,CAAC,OAAO,EAAE,EAAE,CACV,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CACxE,CAAA;YAGD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CACnD,CAAC,EACD,cAAc,GAAG,CAAC,CACnB,CAAA;YACH,CAAC;iBAAM,CAAC;gBAEN,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;IACrC,CAAC;AACH,CAAC,CAAA;AAvBY,QAAA,cAAc,kBAuB1B"}
1
+ {"version":3,"file":"prepareRestart.js","sourceRoot":"","sources":["../../core/prepareRestart.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;IACrD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAEnB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CACzD,CAAC,OAAO,EAAE,EAAE,CACV,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;gBACf,CAAC,CAAC,OAAO,CAAC,MAAM;gBAChB,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;gBACpC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAC9B,CAAA;YAGD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CACnD,CAAC,EACD,cAAc,GAAG,CAAC,CACnB,CAAA;YACH,CAAC;iBAAM,CAAC;gBAEN,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;IACrC,CAAC;AACH,CAAC,CAAA;AA1BY,QAAA,cAAc,kBA0B1B"}
@@ -8,20 +8,17 @@ const processMessages = {
8
8
  PENDING: 'Waiting for token allowance',
9
9
  DONE: 'Token allowance set',
10
10
  },
11
- SWITCH_CHAIN: {
12
- ACTION_REQUIRED: 'Chain switch required',
13
- PENDING: 'Waiting for chain switch',
14
- DONE: 'Chain switched',
15
- },
16
11
  SWAP: {
17
12
  STARTED: 'Preparing swap transaction',
18
- ACTION_REQUIRED: 'Please sign the transaction',
13
+ ACTION_REQUIRED: 'Sign swap transaction',
14
+ MESSAGE_REQUIRED: 'Sign swap message',
19
15
  PENDING: 'Waiting for swap transaction',
20
16
  DONE: 'Swap completed',
21
17
  },
22
18
  CROSS_CHAIN: {
23
19
  STARTED: 'Preparing bridge transaction',
24
- ACTION_REQUIRED: 'Please sign the transaction',
20
+ ACTION_REQUIRED: 'Sign bridge transaction',
21
+ MESSAGE_REQUIRED: 'Sign bridge message',
25
22
  PENDING: 'Waiting for bridge transaction',
26
23
  DONE: 'Bridge transaction confirmed',
27
24
  },
@@ -35,7 +32,6 @@ const processMessages = {
35
32
  PENDING: 'Waiting for permit message',
36
33
  DONE: 'Permit message signed',
37
34
  },
38
- TRANSACTION: {},
39
35
  };
40
36
  const substatusMessages = {
41
37
  PENDING: {
@@ -1 +1 @@
1
- {"version":3,"file":"processMessages.js","sourceRoot":"","sources":["../../core/processMessages.ts"],"names":[],"mappings":";;AAkEA,8CAMC;AAED,kDASC;AAhFD,MAAM,eAAe,GAGjB;IACF,eAAe,EAAE;QACf,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,6BAA6B;QACtC,IAAI,EAAE,qBAAqB;KAC5B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,uBAAuB;QACxC,OAAO,EAAE,0BAA0B;QACnC,IAAI,EAAE,gBAAgB;KACvB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,4BAA4B;QACrC,eAAe,EAAE,6BAA6B;QAC9C,OAAO,EAAE,8BAA8B;QACvC,IAAI,EAAE,gBAAgB;KACvB;IACD,WAAW,EAAE;QACX,OAAO,EAAE,8BAA8B;QACvC,eAAe,EAAE,6BAA6B;QAC9C,OAAO,EAAE,gCAAgC;QACzC,IAAI,EAAE,8BAA8B;KACrC;IACD,eAAe,EAAE;QACf,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,kBAAkB;KACzB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,uBAAuB;QAChC,eAAe,EAAE,qBAAqB;QACtC,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,uBAAuB;KAC9B;IACD,WAAW,EAAE,EAAE;CAChB,CAAA;AACD,MAAM,iBAAiB,GAGnB;IACF,OAAO,EAAE;QACP,oBAAoB,EAAE,kDAAkD;QACxE,mBAAmB,EAAE,+CAA+C;QACpE,aAAa,EACX,mFAAmF;QACrF,yBAAyB,EACvB,kHAAkH;QACpH,4BAA4B,EAC1B,4GAA4G;KAC/G;IACD,IAAI,EAAE;QACJ,OAAO,EACL,uEAAuE;QACzE,QAAQ,EAAE,iDAAiD;QAC3D,SAAS,EAAE,2BAA2B;KACvC;IACD,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;CACd,CAAA;AAED,SAAgB,iBAAiB,CAC/B,IAAiB,EACjB,MAAqB;IAErB,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IACpD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAAqB,EACrB,SAAqB;IAErB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAM;IACR,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAA;IACpD,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"processMessages.js","sourceRoot":"","sources":["../../core/processMessages.ts"],"names":[],"mappings":";;AA8DA,8CAMC;AAED,kDASC;AA5ED,MAAM,eAAe,GAGjB;IACF,eAAe,EAAE;QACf,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,6BAA6B;QACtC,IAAI,EAAE,qBAAqB;KAC5B;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,4BAA4B;QACrC,eAAe,EAAE,uBAAuB;QACxC,gBAAgB,EAAE,mBAAmB;QACrC,OAAO,EAAE,8BAA8B;QACvC,IAAI,EAAE,gBAAgB;KACvB;IACD,WAAW,EAAE;QACX,OAAO,EAAE,8BAA8B;QACvC,eAAe,EAAE,yBAAyB;QAC1C,gBAAgB,EAAE,qBAAqB;QACvC,OAAO,EAAE,gCAAgC;QACzC,IAAI,EAAE,8BAA8B;KACrC;IACD,eAAe,EAAE;QACf,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,kBAAkB;KACzB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,uBAAuB;QAChC,eAAe,EAAE,qBAAqB;QACtC,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,uBAAuB;KAC9B;CACF,CAAA;AACD,MAAM,iBAAiB,GAGnB;IACF,OAAO,EAAE;QACP,oBAAoB,EAAE,kDAAkD;QACxE,mBAAmB,EAAE,+CAA+C;QACpE,aAAa,EACX,mFAAmF;QACrF,yBAAyB,EACvB,kHAAkH;QACpH,4BAA4B,EAC1B,4GAA4G;KAC/G;IACD,IAAI,EAAE;QACJ,OAAO,EACL,uEAAuE;QACzE,QAAQ,EAAE,iDAAiD;QAC3D,SAAS,EAAE,2BAA2B;KACvC;IACD,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;CACd,CAAA;AAED,SAAgB,iBAAiB,CAC/B,IAAiB,EACjB,MAAqB;IAErB,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IACpD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAAqB,EACrB,SAAqB;IAErB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAM;IACR,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAA;IACpD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -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.10.1';
5
+ exports.version = '3.11.0-beta.0';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG,WAAW,CAAA;AAClB,QAAA,OAAO,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG,WAAW,CAAA;AAClB,QAAA,OAAO,GAAG,eAAe,CAAA"}
@@ -15,10 +15,11 @@ import { isBatchingSupported } from './isBatchingSupported.js';
15
15
  import { isAtomicReadyWalletRejectedUpgradeError, parseEVMErrors, } from './parseEVMErrors.js';
16
16
  import { encodeNativePermitData } from './permits/encodeNativePermitData.js';
17
17
  import { encodePermit2Data } from './permits/encodePermit2Data.js';
18
+ import { isNativePermitValid } from './permits/isNativePermitValid.js';
18
19
  import { signPermit2Message } from './permits/signPermit2Message.js';
19
20
  import { switchChain } from './switchChain.js';
20
21
  import { isGaslessStep, isRelayerStep } from './typeguards.js';
21
- import { convertExtendedChain, getMaxPriorityFeePerGas } from './utils.js';
22
+ import { convertExtendedChain, getMaxPriorityFeePerGas, isSaltMatchingChainId, } from './utils.js';
22
23
  import { waitForBatchTransactionReceipt } from './waitForBatchTransactionReceipt.js';
23
24
  import { waitForRelayedTransactionReceipt } from './waitForRelayedTransactionReceipt.js';
24
25
  import { waitForTransactionReceipt } from './waitForTransactionReceipt.js';
@@ -29,8 +30,8 @@ export class EVMStepExecutor extends BaseStepExecutor {
29
30
  this.client = options.client;
30
31
  }
31
32
  // Ensure that we are using the right chain and wallet when executing transactions.
32
- checkClient = async (step, process) => {
33
- const updatedClient = await switchChain(this.client, this.statusManager, step, this.allowUserInteraction, this.executionOptions?.switchChainHook);
33
+ checkClient = async (step, process, targetChainId) => {
34
+ const updatedClient = await switchChain(this.client, this.statusManager, step, process, targetChainId ?? step.action.fromChainId, this.allowUserInteraction, this.executionOptions);
34
35
  if (updatedClient) {
35
36
  this.client = updatedClient;
36
37
  }
@@ -41,16 +42,8 @@ export class EVMStepExecutor extends BaseStepExecutor {
41
42
  accountAddress = accountAddresses?.[0];
42
43
  }
43
44
  if (accountAddress?.toLowerCase() !== step.action.fromAddress?.toLowerCase()) {
44
- let processToUpdate = process;
45
- if (!processToUpdate) {
46
- // We need to create some process if we don't have one so we can show the error
47
- processToUpdate = this.statusManager.findOrCreateProcess({
48
- step,
49
- type: 'TRANSACTION',
50
- });
51
- }
52
45
  const errorMessage = 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.';
53
- this.statusManager.updateProcess(step, processToUpdate.type, 'FAILED', {
46
+ this.statusManager.updateProcess(step, process.type, 'FAILED', {
54
47
  error: {
55
48
  code: LiFiErrorCode.WalletChangedDuringExecution,
56
49
  message: errorMessage,
@@ -105,11 +98,12 @@ export class EVMStepExecutor extends BaseStepExecutor {
105
98
  }
106
99
  await waitForDestinationChainTransaction(step, process, fromChain, toChain, this.statusManager);
107
100
  };
108
- getUpdatedStep = async (step, signedNativePermitTypedData) => {
101
+ prepareUpdatedStep = async (step, signedTypedData) => {
109
102
  // biome-ignore lint/correctness/noUnusedVariables: destructuring
110
103
  const { execution, ...stepBase } = step;
111
104
  const relayerStep = isRelayerStep(step);
112
105
  const gaslessStep = isGaslessStep(step);
106
+ let updatedStep;
113
107
  if (relayerStep && gaslessStep) {
114
108
  const updatedRelayedStep = await getRelayerQuote({
115
109
  fromChain: stepBase.action.fromChainId,
@@ -122,15 +116,92 @@ export class EVMStepExecutor extends BaseStepExecutor {
122
116
  toAddress: stepBase.action.toAddress,
123
117
  allowBridges: [stepBase.tool],
124
118
  });
125
- return {
119
+ updatedStep = {
126
120
  ...updatedRelayedStep,
127
121
  id: stepBase.id,
128
122
  };
129
123
  }
130
- const params = relayerStep && !gaslessStep && signedNativePermitTypedData
131
- ? { ...stepBase, typedData: [signedNativePermitTypedData] }
132
- : stepBase;
133
- return getStepTransaction(params);
124
+ else {
125
+ const params = signedTypedData?.length
126
+ ? { ...stepBase, typedData: signedTypedData }
127
+ : stepBase;
128
+ updatedStep = await getStepTransaction(params);
129
+ }
130
+ const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
131
+ Object.assign(step, {
132
+ ...comparedStep,
133
+ execution: step.execution,
134
+ typedData: updatedStep.typedData ?? step.typedData,
135
+ });
136
+ if (!step.transactionRequest && !step.typedData?.length) {
137
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
138
+ }
139
+ let transactionRequest;
140
+ if (step.transactionRequest) {
141
+ transactionRequest = {
142
+ to: step.transactionRequest.to,
143
+ from: step.transactionRequest.from,
144
+ data: step.transactionRequest.data,
145
+ value: step.transactionRequest.value
146
+ ? BigInt(step.transactionRequest.value)
147
+ : undefined,
148
+ gas: step.transactionRequest.gasLimit
149
+ ? BigInt(step.transactionRequest.gasLimit)
150
+ : undefined,
151
+ // gasPrice: step.transactionRequest.gasPrice
152
+ // ? BigInt(step.transactionRequest.gasPrice as string)
153
+ // : undefined,
154
+ // maxFeePerGas: step.transactionRequest.maxFeePerGas
155
+ // ? BigInt(step.transactionRequest.maxFeePerGas as string)
156
+ // : undefined,
157
+ maxPriorityFeePerGas: this.client.account?.type === 'local'
158
+ ? await getMaxPriorityFeePerGas(this.client)
159
+ : step.transactionRequest.maxPriorityFeePerGas
160
+ ? BigInt(step.transactionRequest.maxPriorityFeePerGas)
161
+ : undefined,
162
+ };
163
+ }
164
+ if (this.executionOptions?.updateTransactionRequestHook &&
165
+ transactionRequest) {
166
+ const customizedTransactionRequest = await this.executionOptions.updateTransactionRequestHook({
167
+ requestType: 'transaction',
168
+ ...transactionRequest,
169
+ });
170
+ transactionRequest = {
171
+ ...transactionRequest,
172
+ ...customizedTransactionRequest,
173
+ };
174
+ }
175
+ return {
176
+ transactionRequest,
177
+ // We should always check against the updated step,
178
+ // because the step may be updated with typed data from the previously signed typed data
179
+ isRelayerTransaction: isRelayerStep(updatedStep),
180
+ };
181
+ };
182
+ estimateTransactionRequest = async (transactionRequest, fromChain) => {
183
+ // Target address should be the Permit2 proxy contract in case of native permit or Permit2
184
+ transactionRequest.to = fromChain.permit2Proxy;
185
+ try {
186
+ // Try to re-estimate the gas due to additional Permit data
187
+ const estimatedGas = await getActionWithFallback(this.client, estimateGas, 'estimateGas', {
188
+ account: this.client.account,
189
+ to: transactionRequest.to,
190
+ data: transactionRequest.data,
191
+ value: transactionRequest.value,
192
+ });
193
+ transactionRequest.gas =
194
+ transactionRequest.gas && transactionRequest.gas > estimatedGas
195
+ ? transactionRequest.gas
196
+ : estimatedGas;
197
+ }
198
+ catch (_) {
199
+ // If we fail to estimate the gas, we add 80_000 gas units Permit buffer to the gas limit
200
+ if (transactionRequest.gas) {
201
+ transactionRequest.gas = transactionRequest.gas + 80000n;
202
+ }
203
+ }
204
+ return transactionRequest;
134
205
  };
135
206
  executeStep = async (step,
136
207
  // Explicitly set to true if the wallet rejected the upgrade to 7702 account, based on the EIP-5792 capabilities
@@ -142,23 +213,24 @@ export class EVMStepExecutor extends BaseStepExecutor {
142
213
  // If the step is waiting for a transaction on the destination chain, we do not switch the chain
143
214
  // All changes are already done from the source chain
144
215
  // Return the step
145
- if (destinationChainProcess?.substatus !== 'WAIT_DESTINATION_TRANSACTION') {
146
- const updatedClient = await this.checkClient(step);
216
+ if (destinationChainProcess &&
217
+ destinationChainProcess.substatus !== 'WAIT_DESTINATION_TRANSACTION') {
218
+ const updatedClient = await this.checkClient(step, destinationChainProcess);
147
219
  if (!updatedClient) {
148
220
  return step;
149
221
  }
150
222
  }
151
223
  const fromChain = await config.getChainById(step.action.fromChainId);
152
224
  const toChain = await config.getChainById(step.action.toChainId);
153
- // Check if step requires permit signature and will be used with relayer service
154
- let isRelayerTransaction = isRelayerStep(step);
155
225
  // Check if the wallet supports atomic batch transactions (EIP-5792)
156
226
  const calls = [];
227
+ // Signed typed data for native permits and other messages
228
+ let signedTypedData = [];
157
229
  // Batching via EIP-5792 is disabled in the next cases:
158
230
  // 1. When atomicity is not ready or the wallet rejected the upgrade to 7702 account (atomicityNotReady is true)
159
231
  // 2. When the step is using thorswap tool (temporary disabled)
160
232
  // 3. When using relayer transactions
161
- const batchingSupported = atomicityNotReady || step.tool === 'thorswap' || isRelayerTransaction
233
+ const batchingSupported = atomicityNotReady || step.tool === 'thorswap' || isRelayerStep(step)
162
234
  ? false
163
235
  : await isBatchingSupported({
164
236
  client: this.client,
@@ -190,11 +262,10 @@ export class EVMStepExecutor extends BaseStepExecutor {
190
262
  !isFromNativeToken &&
191
263
  // Approval address is required for allowance checks, but may be null in special cases (e.g. direct transfers)
192
264
  !!step.estimate.approvalAddress;
193
- let signedNativePermitTypedData;
194
265
  if (checkForAllowance) {
195
266
  // Check if token needs approval and get approval transaction or message data when available
196
267
  const allowanceResult = await checkAllowance({
197
- client: this.client,
268
+ checkClient: this.checkClient,
198
269
  chain: fromChain,
199
270
  step,
200
271
  statusManager: this.statusManager,
@@ -204,19 +275,22 @@ export class EVMStepExecutor extends BaseStepExecutor {
204
275
  permit2Supported,
205
276
  disableMessageSigning,
206
277
  });
207
- if (allowanceResult.status === 'BATCH_APPROVAL') {
208
- // Create approval transaction call
209
- // No value needed since we're only approving ERC20 tokens
210
- if (batchingSupported) {
211
- calls.push(allowanceResult.data);
212
- }
213
- }
214
- if (allowanceResult.status === 'NATIVE_PERMIT') {
215
- signedNativePermitTypedData = allowanceResult.data;
216
- }
217
- if (allowanceResult.status === 'ACTION_REQUIRED' &&
218
- !this.allowUserInteraction) {
219
- return step;
278
+ switch (allowanceResult.status) {
279
+ case 'BATCH_APPROVAL':
280
+ calls.push(allowanceResult.data.call);
281
+ signedTypedData = allowanceResult.data.signedTypedData;
282
+ break;
283
+ case 'NATIVE_PERMIT':
284
+ signedTypedData = allowanceResult.data;
285
+ break;
286
+ case 'DONE':
287
+ signedTypedData = allowanceResult.data;
288
+ break;
289
+ default:
290
+ if (!this.allowUserInteraction) {
291
+ return step;
292
+ }
293
+ break;
220
294
  }
221
295
  }
222
296
  let process = this.statusManager.findProcess(step, currentProcessType);
@@ -240,66 +314,15 @@ export class EVMStepExecutor extends BaseStepExecutor {
240
314
  });
241
315
  return step;
242
316
  }
243
- const permitRequired = !batchingSupported && !signedNativePermitTypedData && permit2Supported;
244
317
  process = this.statusManager.findOrCreateProcess({
245
318
  step,
246
- type: permitRequired ? 'PERMIT' : currentProcessType,
319
+ type: currentProcessType,
247
320
  status: 'STARTED',
248
321
  chainId: fromChain.id,
249
322
  });
250
- // Check balance
251
323
  await checkBalance(this.client.account.address, step);
252
- // Create new transaction request
253
- if (!step.transactionRequest &&
254
- !step.typedData?.some((p) => p.primaryType !== 'Permit')) {
255
- const updatedStep = await this.getUpdatedStep(step, signedNativePermitTypedData);
256
- const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
257
- Object.assign(step, {
258
- ...comparedStep,
259
- execution: step.execution,
260
- });
261
- isRelayerTransaction = isRelayerStep(comparedStep);
262
- }
263
- if (!step.transactionRequest &&
264
- !step.typedData?.some((p) => p.primaryType !== 'Permit')) {
265
- throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
266
- }
267
- let transactionRequest;
268
- if (step.transactionRequest) {
269
- transactionRequest = {
270
- to: step.transactionRequest.to,
271
- from: step.transactionRequest.from,
272
- data: step.transactionRequest.data,
273
- value: step.transactionRequest.value
274
- ? BigInt(step.transactionRequest.value)
275
- : undefined,
276
- gas: step.transactionRequest.gasLimit
277
- ? BigInt(step.transactionRequest.gasLimit)
278
- : undefined,
279
- // gasPrice: step.transactionRequest.gasPrice
280
- // ? BigInt(step.transactionRequest.gasPrice as string)
281
- // : undefined,
282
- // maxFeePerGas: step.transactionRequest.maxFeePerGas
283
- // ? BigInt(step.transactionRequest.maxFeePerGas as string)
284
- // : undefined,
285
- maxPriorityFeePerGas: this.client.account?.type === 'local'
286
- ? await getMaxPriorityFeePerGas(this.client)
287
- : step.transactionRequest.maxPriorityFeePerGas
288
- ? BigInt(step.transactionRequest.maxPriorityFeePerGas)
289
- : undefined,
290
- };
291
- }
292
- if (this.executionOptions?.updateTransactionRequestHook &&
293
- transactionRequest) {
294
- const customizedTransactionRequest = await this.executionOptions.updateTransactionRequestHook({
295
- requestType: 'transaction',
296
- ...transactionRequest,
297
- });
298
- transactionRequest = {
299
- ...transactionRequest,
300
- ...customizedTransactionRequest,
301
- };
302
- }
324
+ // Try to prepare a new transaction request and update the step with typed data
325
+ let { transactionRequest, isRelayerTransaction } = await this.prepareUpdatedStep(step, signedTypedData);
303
326
  // Make sure that the chain is still correct
304
327
  const updatedClient = await this.checkClient(step, process);
305
328
  if (!updatedClient) {
@@ -329,34 +352,25 @@ export class EVMStepExecutor extends BaseStepExecutor {
329
352
  txType = 'batched';
330
353
  }
331
354
  else if (isRelayerTransaction) {
332
- const relayerTypedData = step.typedData?.find((p) => p.primaryType !== 'Permit');
333
- if (!relayerTypedData) {
355
+ const intentTypedData = step.typedData?.filter((typedData) => !signedTypedData.some((signedPermit) => isNativePermitValid(signedPermit, typedData)));
356
+ if (!intentTypedData?.length) {
334
357
  throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Typed data for transfer is not found.');
335
358
  }
336
- const signature = await getAction(this.client, signTypedData, 'signTypedData')({
337
- account: this.client.account,
338
- primaryType: relayerTypedData.primaryType,
339
- domain: relayerTypedData.domain,
340
- types: relayerTypedData.types,
341
- message: relayerTypedData.message,
342
- });
343
- this.statusManager.updateProcess(step, process.type, 'DONE');
344
- process = this.statusManager.findOrCreateProcess({
345
- step,
346
- type: currentProcessType,
347
- status: 'PENDING',
348
- chainId: fromChain.id,
349
- });
350
- const signedTypedData = [
351
- {
352
- ...relayerTypedData,
359
+ this.statusManager.updateProcess(step, process.type, 'MESSAGE_REQUIRED');
360
+ for (const typedData of intentTypedData) {
361
+ const signature = await getAction(this.client, signTypedData, 'signTypedData')({
362
+ account: this.client.account,
363
+ primaryType: typedData.primaryType,
364
+ domain: typedData.domain,
365
+ types: typedData.types,
366
+ message: typedData.message,
367
+ });
368
+ signedTypedData.push({
369
+ ...typedData,
353
370
  signature: signature,
354
- },
355
- ];
356
- // Add native permit if available as first element, order is important
357
- if (signedNativePermitTypedData) {
358
- signedTypedData.unshift(signedNativePermitTypedData);
371
+ });
359
372
  }
373
+ this.statusManager.updateProcess(step, process.type, 'PENDING');
360
374
  // biome-ignore lint/correctness/noUnusedVariables: destructuring
361
375
  const { execution, ...stepBase } = step;
362
376
  const relayedTransaction = await relayTransaction({
@@ -371,10 +385,14 @@ export class EVMStepExecutor extends BaseStepExecutor {
371
385
  if (!transactionRequest) {
372
386
  throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Transaction request is not found.');
373
387
  }
388
+ const signedNativePermitTypedData = signedTypedData.find((p) => p.primaryType === 'Permit' &&
389
+ (p.domain.chainId === fromChain.id ||
390
+ isSaltMatchingChainId(p.domain.salt, fromChain.id)));
374
391
  if (signedNativePermitTypedData) {
375
392
  transactionRequest.data = encodeNativePermitData(step.action.fromToken.address, BigInt(step.action.fromAmount), signedNativePermitTypedData.message.deadline, signedNativePermitTypedData.signature, transactionRequest.data);
376
393
  }
377
394
  else if (permit2Supported) {
395
+ this.statusManager.updateProcess(step, process.type, 'MESSAGE_REQUIRED');
378
396
  const permit2Signature = await signPermit2Message({
379
397
  client: this.client,
380
398
  chain: fromChain,
@@ -382,42 +400,12 @@ export class EVMStepExecutor extends BaseStepExecutor {
382
400
  amount: BigInt(step.action.fromAmount),
383
401
  data: transactionRequest.data,
384
402
  });
385
- this.statusManager.updateProcess(step, process.type, 'DONE');
386
- process = this.statusManager.findOrCreateProcess({
387
- step,
388
- type: currentProcessType,
389
- status: 'PENDING',
390
- chainId: fromChain.id,
391
- });
392
403
  transactionRequest.data = encodePermit2Data(step.action.fromToken.address, BigInt(step.action.fromAmount), permit2Signature.message.nonce, permit2Signature.message.deadline, transactionRequest.data, permit2Signature.signature);
404
+ this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
393
405
  }
394
406
  if (signedNativePermitTypedData || permit2Supported) {
395
- // Target address should be the Permit2 proxy contract in case of native permit or Permit2
396
- transactionRequest.to = fromChain.permit2Proxy;
397
- try {
398
- // Try to re-estimate the gas due to additional Permit data
399
- const estimatedGas = await getActionWithFallback(this.client, estimateGas, 'estimateGas', {
400
- account: this.client.account,
401
- to: transactionRequest.to,
402
- data: transactionRequest.data,
403
- value: transactionRequest.value,
404
- });
405
- transactionRequest.gas =
406
- transactionRequest.gas && transactionRequest.gas > estimatedGas
407
- ? transactionRequest.gas
408
- : estimatedGas;
409
- }
410
- catch (_) {
411
- // If we fail to estimate the gas, we add 80_000 gas units Permit buffer to the gas limit
412
- if (transactionRequest.gas) {
413
- transactionRequest.gas = transactionRequest.gas + 80000n;
414
- }
415
- }
416
- finally {
417
- this.statusManager.updateProcess(step, process.type, 'DONE');
418
- }
407
+ transactionRequest = await this.estimateTransactionRequest(transactionRequest, fromChain);
419
408
  }
420
- process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
421
409
  txHash = await getAction(this.client, sendTransaction, 'sendTransaction')({
422
410
  to: transactionRequest.to,
423
411
  account: this.client.account,
@@ -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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"}
@@ -12,6 +12,8 @@ export const eip2612Abi = parseAbi([
12
12
  'function name() external view returns (string)',
13
13
  'function version() external view returns (string)',
14
14
  'function PERMIT_TYPEHASH() external view returns (bytes32)',
15
+ // EIP-5267
16
+ 'function eip712Domain() external view returns (bytes1, string, string, uint256, address, bytes32, uint256[])',
15
17
  ]);
16
18
  export const approveAbi = parseAbi([
17
19
  'function approve(address, uint256) external returns (bool)',
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../core/EVM/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;IACtC,gGAAgG;IAChG,sHAAsH;IACtH,6DAA6D;IAC7D,wHAAwH;CACzH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,uFAAuF;IACvF,6DAA6D;IAC7D,0DAA0D;IAC1D,gDAAgD;IAChD,mDAAmD;IACnD,4DAA4D;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,4DAA4D;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,sEAAsE;CACvE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,iEAAiE;CAClE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,6DAA6D;CAC9D,CAAC,CAAA"}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../core/EVM/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;IACtC,gGAAgG;IAChG,sHAAsH;IACtH,6DAA6D;IAC7D,wHAAwH;CACzH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,uFAAuF;IACvF,6DAA6D;IAC7D,0DAA0D;IAC1D,gDAAgD;IAChD,mDAAmD;IACnD,4DAA4D;IAC5D,WAAW;IACX,8GAA8G;CAC/G,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,4DAA4D;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,sEAAsE;CACvE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,iEAAiE;CAClE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,6DAA6D;CAC9D,CAAC,CAAA"}