@lifi/sdk 3.4.2 → 3.5.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 (150) hide show
  1. package/package.json +2 -2
  2. package/src/_cjs/constants.js +4 -2
  3. package/src/_cjs/constants.js.map +1 -1
  4. package/src/_cjs/core/EVM/EVM.js +0 -4
  5. package/src/_cjs/core/EVM/EVM.js.map +1 -1
  6. package/src/_cjs/core/EVM/EVMStepExecutor.js +96 -74
  7. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  8. package/src/_cjs/core/EVM/abi.js +36 -43
  9. package/src/_cjs/core/EVM/abi.js.map +1 -1
  10. package/src/_cjs/core/EVM/checkAllowance.js +36 -30
  11. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
  12. package/src/_cjs/core/EVM/getAllowance.js.map +1 -1
  13. package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -1
  14. package/src/_cjs/core/EVM/getNativePermit.js +90 -0
  15. package/src/_cjs/core/EVM/getNativePermit.js.map +1 -0
  16. package/src/_cjs/core/EVM/parseEVMErrors.js +3 -0
  17. package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -1
  18. package/src/_cjs/core/EVM/permit2/allowanceTransfer.js +100 -0
  19. package/src/_cjs/core/EVM/permit2/allowanceTransfer.js.map +1 -0
  20. package/src/_cjs/core/EVM/permit2/constants.js +12 -0
  21. package/src/_cjs/core/EVM/permit2/constants.js.map +1 -0
  22. package/src/_cjs/core/EVM/permit2/domain.js +12 -0
  23. package/src/_cjs/core/EVM/permit2/domain.js.map +1 -0
  24. package/src/_cjs/core/EVM/permit2/signatureTransfer.js +121 -0
  25. package/src/_cjs/core/EVM/permit2/signatureTransfer.js.map +1 -0
  26. package/src/_cjs/core/EVM/setAllowance.js +3 -4
  27. package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
  28. package/src/_cjs/core/EVM/signPermitMessage.js +168 -0
  29. package/src/_cjs/core/EVM/signPermitMessage.js.map +1 -0
  30. package/src/_cjs/core/EVM/types.js.map +1 -1
  31. package/src/_cjs/core/EVM/utils.js +2 -1
  32. package/src/_cjs/core/EVM/utils.js.map +1 -1
  33. package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js +29 -0
  34. package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js.map +1 -0
  35. package/src/_cjs/core/checkBalance.js +3 -3
  36. package/src/_cjs/core/checkBalance.js.map +1 -1
  37. package/src/_cjs/index.js.map +1 -1
  38. package/src/_cjs/utils/invariant.js +17 -0
  39. package/src/_cjs/utils/invariant.js.map +1 -0
  40. package/src/_cjs/version.js +1 -1
  41. package/src/_cjs/version.js.map +1 -1
  42. package/src/_esm/constants.js +3 -1
  43. package/src/_esm/constants.js.map +1 -1
  44. package/src/_esm/core/EVM/EVM.js +0 -4
  45. package/src/_esm/core/EVM/EVM.js.map +1 -1
  46. package/src/_esm/core/EVM/EVMStepExecutor.js +124 -84
  47. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  48. package/src/_esm/core/EVM/abi.js +37 -42
  49. package/src/_esm/core/EVM/abi.js.map +1 -1
  50. package/src/_esm/core/EVM/checkAllowance.js +41 -32
  51. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  52. package/src/_esm/core/EVM/getAllowance.js.map +1 -1
  53. package/src/_esm/core/EVM/getEVMBalance.js.map +1 -1
  54. package/src/_esm/core/EVM/getNativePermit.js +95 -0
  55. package/src/_esm/core/EVM/getNativePermit.js.map +1 -0
  56. package/src/_esm/core/EVM/parseEVMErrors.js +8 -0
  57. package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -1
  58. package/src/_esm/core/EVM/permit2/allowanceTransfer.js +93 -0
  59. package/src/_esm/core/EVM/permit2/allowanceTransfer.js.map +1 -0
  60. package/src/_esm/core/EVM/permit2/constants.js +9 -0
  61. package/src/_esm/core/EVM/permit2/constants.js.map +1 -0
  62. package/src/_esm/core/EVM/permit2/domain.js +9 -0
  63. package/src/_esm/core/EVM/permit2/domain.js.map +1 -0
  64. package/src/_esm/core/EVM/permit2/signatureTransfer.js +117 -0
  65. package/src/_esm/core/EVM/permit2/signatureTransfer.js.map +1 -0
  66. package/src/_esm/core/EVM/setAllowance.js +3 -4
  67. package/src/_esm/core/EVM/setAllowance.js.map +1 -1
  68. package/src/_esm/core/EVM/signPermitMessage.js +162 -0
  69. package/src/_esm/core/EVM/signPermitMessage.js.map +1 -0
  70. package/src/_esm/core/EVM/types.js.map +1 -1
  71. package/src/_esm/core/EVM/utils.js +2 -1
  72. package/src/_esm/core/EVM/utils.js.map +1 -1
  73. package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js +25 -0
  74. package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js.map +1 -0
  75. package/src/_esm/core/checkBalance.js +3 -3
  76. package/src/_esm/core/checkBalance.js.map +1 -1
  77. package/src/_esm/index.js.map +1 -1
  78. package/src/_esm/utils/invariant.js +43 -0
  79. package/src/_esm/utils/invariant.js.map +1 -0
  80. package/src/_esm/version.js +1 -1
  81. package/src/_esm/version.js.map +1 -1
  82. package/src/_types/constants.d.ts +3 -1
  83. package/src/_types/constants.d.ts.map +1 -1
  84. package/src/_types/core/EVM/EVM.d.ts.map +1 -1
  85. package/src/_types/core/EVM/EVMStepExecutor.d.ts +7 -4
  86. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  87. package/src/_types/core/EVM/abi.d.ts +202 -5
  88. package/src/_types/core/EVM/abi.d.ts.map +1 -1
  89. package/src/_types/core/EVM/checkAllowance.d.ts +12 -2
  90. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  91. package/src/_types/core/EVM/getAllowance.d.ts +5 -4
  92. package/src/_types/core/EVM/getAllowance.d.ts.map +1 -1
  93. package/src/_types/core/EVM/getEVMBalance.d.ts +2 -1
  94. package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -1
  95. package/src/_types/core/EVM/getNativePermit.d.ts +18 -0
  96. package/src/_types/core/EVM/getNativePermit.d.ts.map +1 -0
  97. package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts +41 -0
  98. package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts.map +1 -0
  99. package/src/_types/core/EVM/permit2/constants.d.ts +8 -0
  100. package/src/_types/core/EVM/permit2/constants.d.ts.map +1 -0
  101. package/src/_types/core/EVM/permit2/domain.d.ts +8 -0
  102. package/src/_types/core/EVM/permit2/domain.d.ts.map +1 -0
  103. package/src/_types/core/EVM/permit2/signatureTransfer.d.ts +42 -0
  104. package/src/_types/core/EVM/permit2/signatureTransfer.d.ts.map +1 -0
  105. package/src/_types/core/EVM/setAllowance.d.ts +2 -2
  106. package/src/_types/core/EVM/setAllowance.d.ts.map +1 -1
  107. package/src/_types/core/EVM/signPermitMessage.d.ts +22 -0
  108. package/src/_types/core/EVM/signPermitMessage.d.ts.map +1 -0
  109. package/src/_types/core/EVM/types.d.ts +1 -18
  110. package/src/_types/core/EVM/types.d.ts.map +1 -1
  111. package/src/_types/core/EVM/utils.d.ts +2 -2
  112. package/src/_types/core/EVM/utils.d.ts.map +1 -1
  113. package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts +4 -0
  114. package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts.map +1 -0
  115. package/src/_types/core/checkBalance.d.ts.map +1 -1
  116. package/src/_types/index.d.ts +1 -1
  117. package/src/_types/index.d.ts.map +1 -1
  118. package/src/_types/utils/invariant.d.ts +22 -0
  119. package/src/_types/utils/invariant.d.ts.map +1 -0
  120. package/src/_types/version.d.ts +1 -1
  121. package/src/_types/version.d.ts.map +1 -1
  122. package/src/constants.ts +6 -1
  123. package/src/core/EVM/EVM.ts +0 -4
  124. package/src/core/EVM/EVMStepExecutor.ts +177 -134
  125. package/src/core/EVM/abi.ts +40 -43
  126. package/src/core/EVM/checkAllowance.ts +96 -92
  127. package/src/core/EVM/getAllowance.ts +8 -8
  128. package/src/core/EVM/getEVMBalance.ts +2 -2
  129. package/src/core/EVM/getNativePermit.ts +113 -0
  130. package/src/core/EVM/parseEVMErrors.ts +8 -0
  131. package/src/core/EVM/permit2/allowanceTransfer.ts +168 -0
  132. package/src/core/EVM/permit2/constants.ts +11 -0
  133. package/src/core/EVM/permit2/domain.ts +20 -0
  134. package/src/core/EVM/permit2/signatureTransfer.ts +214 -0
  135. package/src/core/EVM/setAllowance.ts +14 -15
  136. package/src/core/EVM/signPermitMessage.ts +248 -0
  137. package/src/core/EVM/types.ts +1 -27
  138. package/src/core/EVM/utils.ts +4 -3
  139. package/src/core/EVM/waitForBatchTransactionReceipt.ts +49 -0
  140. package/src/core/checkBalance.ts +6 -3
  141. package/src/index.ts +0 -3
  142. package/src/utils/invariant.ts +51 -0
  143. package/src/version.ts +1 -1
  144. package/src/_cjs/core/EVM/multisig.js +0 -29
  145. package/src/_cjs/core/EVM/multisig.js.map +0 -1
  146. package/src/_esm/core/EVM/multisig.js +0 -25
  147. package/src/_esm/core/EVM/multisig.js.map +0 -1
  148. package/src/_types/core/EVM/multisig.d.ts +0 -6
  149. package/src/_types/core/EVM/multisig.d.ts.map +0 -1
  150. package/src/core/EVM/multisig.ts +0 -54
@@ -0,0 +1,117 @@
1
+ import { hashTypedData } from 'viem';
2
+ import { invariant } from '../../../utils/invariant.js';
3
+ import { MaxSigDeadline, MaxSignatureTransferAmount, MaxUnorderedNonce, } from './constants.js';
4
+ import { permit2Domain } from './domain.js';
5
+ const TOKEN_PERMISSIONS = [
6
+ { name: 'token', type: 'address' },
7
+ { name: 'amount', type: 'uint256' },
8
+ ];
9
+ const PERMIT_TRANSFER_FROM_TYPES = {
10
+ TokenPermissions: TOKEN_PERMISSIONS,
11
+ PermitTransferFrom: [
12
+ { name: 'permitted', type: 'TokenPermissions' },
13
+ { name: 'spender', type: 'address' },
14
+ { name: 'nonce', type: 'uint256' },
15
+ { name: 'deadline', type: 'uint256' },
16
+ ],
17
+ };
18
+ const PERMIT_BATCH_TRANSFER_FROM_TYPES = {
19
+ TokenPermissions: TOKEN_PERMISSIONS,
20
+ PermitBatchTransferFrom: [
21
+ { name: 'permitted', type: 'TokenPermissions[]' },
22
+ { name: 'spender', type: 'address' },
23
+ { name: 'nonce', type: 'uint256' },
24
+ { name: 'deadline', type: 'uint256' },
25
+ ],
26
+ };
27
+ function isPermitTransferFrom(permit) {
28
+ return !Array.isArray(permit.permitted);
29
+ }
30
+ export function getPermitTransferData(permit, permit2Address, chainId, witness) {
31
+ invariant(MaxSigDeadline >= permit.deadline, 'SIG_DEADLINE_OUT_OF_RANGE');
32
+ invariant(MaxUnorderedNonce >= permit.nonce, 'NONCE_OUT_OF_RANGE');
33
+ const domain = permit2Domain(permit2Address, chainId);
34
+ validateTokenPermissions(permit.permitted);
35
+ const types = witness
36
+ ? {
37
+ TokenPermissions: TOKEN_PERMISSIONS,
38
+ ...witness.witnessType,
39
+ PermitWitnessTransferFrom: [
40
+ { name: 'permitted', type: 'TokenPermissions' },
41
+ { name: 'spender', type: 'address' },
42
+ { name: 'nonce', type: 'uint256' },
43
+ { name: 'deadline', type: 'uint256' },
44
+ { name: 'witness', type: witness.witnessTypeName },
45
+ ],
46
+ }
47
+ : PERMIT_TRANSFER_FROM_TYPES;
48
+ const values = witness
49
+ ? Object.assign(permit, { witness: witness.witness })
50
+ : permit;
51
+ return {
52
+ domain,
53
+ types,
54
+ values,
55
+ };
56
+ }
57
+ export function getPermitBatchTransferData(permit, permit2Address, chainId, witness) {
58
+ invariant(MaxSigDeadline >= permit.deadline, 'SIG_DEADLINE_OUT_OF_RANGE');
59
+ invariant(MaxUnorderedNonce >= permit.nonce, 'NONCE_OUT_OF_RANGE');
60
+ const domain = permit2Domain(permit2Address, chainId);
61
+ permit.permitted.forEach(validateTokenPermissions);
62
+ const types = witness
63
+ ? {
64
+ ...witness.witnessType,
65
+ TokenPermissions: TOKEN_PERMISSIONS,
66
+ PermitBatchWitnessTransferFrom: [
67
+ { name: 'permitted', type: 'TokenPermissions[]' },
68
+ { name: 'spender', type: 'address' },
69
+ { name: 'nonce', type: 'uint256' },
70
+ { name: 'deadline', type: 'uint256' },
71
+ { name: 'witness', type: witness.witnessTypeName },
72
+ ],
73
+ }
74
+ : PERMIT_BATCH_TRANSFER_FROM_TYPES;
75
+ const values = witness
76
+ ? Object.assign(permit, { witness: witness.witness })
77
+ : permit;
78
+ return {
79
+ domain,
80
+ types,
81
+ values,
82
+ };
83
+ }
84
+ // return the data to be sent in a eth_signTypedData RPC call
85
+ // for signing the given permit data
86
+ export function getPermitData(permit, permit2Address, chainId, witness) {
87
+ if (isPermitTransferFrom(permit)) {
88
+ return getPermitTransferData(permit, permit2Address, chainId, witness);
89
+ }
90
+ return getPermitBatchTransferData(permit, permit2Address, chainId, witness);
91
+ }
92
+ export function hash(permit, permit2Address, chainId, witness) {
93
+ if (isPermitTransferFrom(permit)) {
94
+ const { domain, types, values } = getPermitTransferData(permit, permit2Address, chainId, witness);
95
+ return hashTypedData({
96
+ domain,
97
+ types,
98
+ primaryType: witness ? 'PermitWitnessTransferFrom' : 'PermitTransferFrom',
99
+ message: {
100
+ ...values,
101
+ },
102
+ });
103
+ }
104
+ const { domain, types, values } = getPermitBatchTransferData(permit, permit2Address, chainId, witness);
105
+ return hashTypedData({
106
+ domain,
107
+ types,
108
+ primaryType: witness
109
+ ? 'PermitBatchWitnessTransferFrom'
110
+ : 'PermitBatchTransferFrom',
111
+ message: { ...values },
112
+ });
113
+ }
114
+ function validateTokenPermissions(permissions) {
115
+ invariant(MaxSignatureTransferAmount >= permissions.amount, 'AMOUNT_OUT_OF_RANGE');
116
+ }
117
+ //# sourceMappingURL=signatureTransfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatureTransfer.js","sourceRoot":"","sources":["../../../../core/EVM/permit2/signatureTransfer.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { isNativeTokenAddress } from '../../utils/isZeroAddress.js';
4
4
  import { approveAbi } from './abi.js';
5
5
  import { getAllowance } from './getAllowance.js';
6
6
  import { getMaxPriorityFeePerGas } from './utils.js';
7
- export const setAllowance = async (client, tokenAddress, contractAddress, amount, settings, returnPopulatedTransaction) => {
7
+ export const setAllowance = async (client, tokenAddress, contractAddress, amount, executionOptions, returnPopulatedTransaction) => {
8
8
  const data = encodeFunctionData({
9
9
  abi: approveAbi,
10
10
  functionName: 'approve',
@@ -20,8 +20,8 @@ export const setAllowance = async (client, tokenAddress, contractAddress, amount
20
20
  ? await getMaxPriorityFeePerGas(client)
21
21
  : undefined,
22
22
  };
23
- if (settings?.updateTransactionRequestHook) {
24
- const customizedTransactionRequest = await settings.updateTransactionRequestHook({
23
+ if (executionOptions?.updateTransactionRequestHook) {
24
+ const customizedTransactionRequest = await executionOptions.updateTransactionRequestHook({
25
25
  requestType: 'approve',
26
26
  ...transactionRequest,
27
27
  });
@@ -38,7 +38,6 @@ export const setAllowance = async (client, tokenAddress, contractAddress, amount
38
38
  gasPrice: transactionRequest.gasPrice,
39
39
  maxFeePerGas: transactionRequest.maxFeePerGas,
40
40
  maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
41
- chain: null,
42
41
  });
43
42
  };
44
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"setAllowance.js","sourceRoot":"","sources":["../../../core/EVM/setAllowance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,EACd,YAAoB,EACpB,eAAuB,EACvB,MAAc,EACd,QAA2B,EAC3B,0BAAoC,EACrB,EAAE;IACjB,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;KAChC,CAAC,CAAA;IAEF,IAAI,0BAA0B,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,kBAAkB,GAA0B;QAC9C,EAAE,EAAE,YAAY;QAChB,IAAI;QACJ,oBAAoB,EAClB,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,OAAO;YAC9B,CAAC,CAAC,MAAM,uBAAuB,CAAC,MAAM,CAAC;YACvC,CAAC,CAAC,SAAS;KAChB,CAAA;IAED,IAAI,QAAQ,EAAE,4BAA4B,EAAE,CAAC;QAC3C,MAAM,4BAA4B,GAChC,MAAM,QAAQ,CAAC,4BAA4B,CAAC;YAC1C,WAAW,EAAE,SAAS;YACtB,GAAG,kBAAkB;SACtB,CAAC,CAAA;QAEJ,kBAAkB,GAAG;YACnB,GAAG,kBAAkB;YACrB,GAAG,4BAA4B;SAChC,CAAA;IACH,CAAC;IAED,OAAO,eAAe,CAAC,MAAM,EAAE;QAC7B,EAAE,EAAE,kBAAkB,CAAC,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC,OAAQ;QACxB,IAAI,EAAE,kBAAkB,CAAC,IAAI;QAC7B,GAAG,EAAE,kBAAkB,CAAC,GAAG;QAC3B,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;QACrC,YAAY,EAAE,kBAAkB,CAAC,YAAY;QAC7C,oBAAoB,EAAE,kBAAkB,CAAC,oBAAoB;QAC7D,KAAK,EAAE,IAAI;KACiB,CAAC,CAAA;AACjC,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,YAAY,EACZ,KAAK,EACL,cAAc,EACd,MAAM,GACc,EAAwB,EAAE;IAC9C,mCAAmC;IACnC,IAAI,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAM;IACR,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,YAAY,CACvC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,YAAY,CAAC,OAAQ,CAAC,OAAO,EAC7B,cAAc,CACf,CAAA;IAED,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,YAAY,CAClC,YAAY,EACZ,KAAK,CAAC,OAAO,EACb,cAAc,EACd,MAAM,CACP,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACxC,YAAY,EACZ,KAAK,EACL,cAAc,GACQ,EAAwB,EAAE;IAChD,mCAAmC;IACnC,IAAI,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAM;IACR,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,YAAY,CACvC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,YAAY,CAAC,OAAQ,CAAC,OAAO,EAC7B,cAAc,CACf,CAAA;IACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,YAAY,CAClC,YAAY,EACZ,KAAK,CAAC,OAAO,EACb,cAAc,EACd,EAAE,CACH,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"setAllowance.js","sourceRoot":"","sources":["../../../core/EVM/setAllowance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import { encodeFunctionData } from 'viem';
2
+ import { parseSignature } from 'viem';
3
+ import { keccak256 } from 'viem';
4
+ import { readContract, signTypedData } from 'viem/actions';
5
+ import { eip2612Types, permit2ProxyAbi } from './abi.js';
6
+ import { getNativePermit } from './getNativePermit.js';
7
+ import { getPermitData, } from './permit2/signatureTransfer.js';
8
+ export const signNativePermitMessage = async (client, transactionRequest, chain, tokenAddress, amount, nativePermit) => {
9
+ const deadline = BigInt(Math.floor(Date.now() / 1000) + 30 * 60); // 30 minutes
10
+ const domain = {
11
+ name: nativePermit.name,
12
+ version: nativePermit.version,
13
+ chainId: chain.id,
14
+ verifyingContract: tokenAddress,
15
+ };
16
+ const message = {
17
+ owner: client.account.address,
18
+ spender: chain.permit2Proxy,
19
+ value: amount,
20
+ nonce: nativePermit.nonce,
21
+ deadline,
22
+ };
23
+ const signature = await signTypedData(client, {
24
+ account: client.account,
25
+ domain,
26
+ types: eip2612Types,
27
+ primaryType: 'Permit',
28
+ message,
29
+ });
30
+ const { v, r, s } = parseSignature(signature);
31
+ const data = encodeFunctionData({
32
+ abi: permit2ProxyAbi,
33
+ functionName: 'callDiamondWithEIP2612Signature',
34
+ args: [
35
+ tokenAddress,
36
+ amount,
37
+ deadline,
38
+ Number(v),
39
+ r,
40
+ s,
41
+ transactionRequest.data,
42
+ ],
43
+ });
44
+ return {
45
+ signature,
46
+ data,
47
+ };
48
+ };
49
+ export const signPermit2Message = async (client, transactionRequest, chain, tokenAddress, amount) => {
50
+ const nonce = await readContract(client, {
51
+ address: chain.permit2Proxy,
52
+ abi: permit2ProxyAbi,
53
+ functionName: 'nextNonce',
54
+ args: [client.account.address],
55
+ });
56
+ const permitTransferFrom = {
57
+ permitted: {
58
+ token: tokenAddress,
59
+ amount: amount,
60
+ },
61
+ spender: chain.permit2Proxy,
62
+ nonce: nonce,
63
+ deadline: BigInt(Math.floor(Date.now() / 1000) + 30 * 60), // 30 minutes
64
+ };
65
+ const { domain, types, values } = getPermitData(permitTransferFrom, chain.permit2, chain.id);
66
+ const signature = await signTypedData(client, {
67
+ account: client.account,
68
+ primaryType: 'PermitTransferFrom',
69
+ domain,
70
+ types,
71
+ message: { ...values },
72
+ });
73
+ const data = encodeFunctionData({
74
+ abi: permit2ProxyAbi,
75
+ functionName: 'callDiamondWithPermit2',
76
+ args: [
77
+ transactionRequest.data,
78
+ [
79
+ [tokenAddress, amount],
80
+ permitTransferFrom.nonce,
81
+ permitTransferFrom.deadline,
82
+ ],
83
+ signature,
84
+ ],
85
+ });
86
+ return {
87
+ signature,
88
+ data,
89
+ };
90
+ };
91
+ export const signPermit2WitnessMessage = async (client, transactionRequest, chain, tokenAddress, amount) => {
92
+ const nonce = await readContract(client, {
93
+ address: chain.permit2Proxy,
94
+ abi: permit2ProxyAbi,
95
+ functionName: 'nextNonce',
96
+ args: [client.account.address],
97
+ });
98
+ const permitTransferFrom = {
99
+ permitted: {
100
+ token: tokenAddress,
101
+ amount: amount,
102
+ },
103
+ spender: chain.permit2Proxy,
104
+ nonce: nonce,
105
+ deadline: BigInt(Math.floor(Date.now() / 1000) + 30 * 60), // 30 minutes
106
+ };
107
+ // Create witness data for the LI.FI call
108
+ const witness = {
109
+ witness: {
110
+ tokenReceiver: chain.permit2Proxy,
111
+ diamondAddress: chain.diamondAddress,
112
+ diamondCalldataHash: keccak256(transactionRequest.data),
113
+ },
114
+ witnessTypeName: 'LiFiCall',
115
+ witnessType: {
116
+ LiFiCall: [
117
+ { name: 'diamondAddress', type: 'address' },
118
+ { name: 'diamondCalldataHash', type: 'bytes32' },
119
+ ],
120
+ },
121
+ };
122
+ const { domain, types, values } = getPermitData(permitTransferFrom, chain.permit2, chain.id, witness);
123
+ const signature = await signTypedData(client, {
124
+ account: client.account,
125
+ primaryType: 'PermitWitnessTransferFrom',
126
+ domain,
127
+ types,
128
+ message: { ...values },
129
+ });
130
+ const data = encodeFunctionData({
131
+ abi: permit2ProxyAbi,
132
+ functionName: 'callDiamondWithPermit2Witness',
133
+ args: [
134
+ transactionRequest.data,
135
+ client.account.address,
136
+ [
137
+ [tokenAddress, amount],
138
+ permitTransferFrom.nonce,
139
+ permitTransferFrom.deadline,
140
+ ],
141
+ signature,
142
+ ],
143
+ });
144
+ return {
145
+ signature,
146
+ data,
147
+ };
148
+ };
149
+ export const signPermitMessage = async (client, transactionRequest, chain, tokenAddress, amount, nativePermit, useWitness = false) => {
150
+ let _nativePermit = nativePermit;
151
+ if (!_nativePermit) {
152
+ _nativePermit = await getNativePermit(client, chain, tokenAddress);
153
+ }
154
+ if (_nativePermit.supported) {
155
+ return signNativePermitMessage(client, transactionRequest, chain, tokenAddress, amount, _nativePermit);
156
+ }
157
+ if (useWitness) {
158
+ return signPermit2WitnessMessage(client, transactionRequest, chain, tokenAddress, amount);
159
+ }
160
+ return signPermit2Message(client, transactionRequest, chain, tokenAddress, amount);
161
+ };
162
+ //# sourceMappingURL=signPermitMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signPermitMessage.js","sourceRoot":"","sources":["../../../core/EVM/signPermitMessage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../core/EVM/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,aAAa,CAAA;AAgBvD,MAAM,UAAU,KAAK,CAAC,QAAqB;IACzC,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../core/EVM/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,aAAa,CAAA;AAcvD,MAAM,UAAU,KAAK,CAAC,QAAqB;IACzC,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAA;AACxC,CAAC"}
@@ -24,7 +24,8 @@ export const getMaxPriorityFeePerGas = async (client) => {
24
24
  // Multicall
25
25
  export const getMulticallAddress = async (chainId) => {
26
26
  const chains = await config.getChains();
27
- return chains.find((chain) => chain.id === chainId)?.multicallAddress;
27
+ return chains.find((chain) => chain.id === chainId)
28
+ ?.multicallAddress;
28
29
  };
29
30
  // Modified viem retryDelay exponential backoff function.
30
31
  export const retryDelay = ({ count }) => Math.min(~~(1 << count) * 200, 3000);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../core/EVM/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,MAAc,EACe,EAAE;IAC/B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;QACnC,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAI,KAAK,CAAC,YAA8B;SACnE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC;SACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAa,CAAA;IAEnD,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACrC,OAAM;IACR,CAAC;IAED,IAAI,uBAAuB,GAAG,EAAE,CAAA;IAChC,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE,CAAC;QAC7C,uBAAuB,IAAI,KAAK,CAAA;IAClC,CAAC;IAED,MAAM,0BAA0B,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAA;IAEzE,MAAM,uBAAuB,GAC3B,uBAAuB,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAEnE,OAAO,0BAA0B,GAAG,uBAAuB;QACzD,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,0BAA0B,CAAA;AAChC,CAAC,CAAA;AAED,YAAY;AACZ,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAgB,EACa,EAAE;IAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,gBAAgB,CAAA;AACvE,CAAC,CAAA;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAmC,EAAE,EAAE,CACvE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../core/EVM/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,MAAc,EACe,EAAE;IAC/B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;QACnC,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAI,KAAK,CAAC,YAA8B;SACnE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC;SACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAa,CAAA;IAEnD,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACrC,OAAM;IACR,CAAC;IAED,IAAI,uBAAuB,GAAG,EAAE,CAAA;IAChC,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE,CAAC;QAC7C,uBAAuB,IAAI,KAAK,CAAA;IAClC,CAAC;IAED,MAAM,0BAA0B,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAA;IAEzE,MAAM,uBAAuB,GAC3B,uBAAuB,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAEnE,OAAO,0BAA0B,GAAG,uBAAuB;QACzD,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,0BAA0B,CAAA;AAChC,CAAC,CAAA;AAED,YAAY;AACZ,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAgB,EACc,EAAE;IAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC;QACjD,EAAE,gBAA2B,CAAA;AACjC,CAAC,CAAA;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAmC,EAAE,EAAE,CACvE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { getCallsStatus } from 'viem/experimental';
2
+ import { LiFiErrorCode } from '../../errors/constants.js';
3
+ import { TransactionError } from '../../errors/errors.js';
4
+ import { waitForResult } from '../../utils/waitForResult.js';
5
+ export const waitForBatchTransactionReceipt = async (client, batchHash) => {
6
+ return waitForResult(async () => {
7
+ const callsDetails = await getCallsStatus(client, {
8
+ id: batchHash,
9
+ });
10
+ if (callsDetails.status === 'PENDING') {
11
+ return undefined;
12
+ }
13
+ if (callsDetails.status === 'CONFIRMED') {
14
+ if (!callsDetails.receipts?.length ||
15
+ !callsDetails.receipts.every((receipt) => receipt.transactionHash) ||
16
+ callsDetails.receipts.some((receipt) => receipt.status === 'reverted')) {
17
+ throw new TransactionError(LiFiErrorCode.TransactionFailed, 'Transaction was reverted.');
18
+ }
19
+ const transactionReceipt = callsDetails.receipts.at(-1);
20
+ return transactionReceipt;
21
+ }
22
+ throw new TransactionError(LiFiErrorCode.TransactionFailed, 'Transaction not found.');
23
+ }, 3000);
24
+ };
25
+ //# sourceMappingURL=waitForBatchTransactionReceipt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForBatchTransactionReceipt.js","sourceRoot":"","sources":["../../../core/EVM/waitForBatchTransactionReceipt.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAO5D,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EACjD,MAAc,EACd,SAAe,EACa,EAAE;IAC9B,OAAO,aAAa,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE;YAChD,EAAE,EAAE,SAAS;SACd,CAAC,CAAA;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACxC,IACE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM;gBAC9B,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;gBAClE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,EACtE,CAAC;gBACD,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,iBAAiB,EAC/B,2BAA2B,CAC5B,CAAA;YACH,CAAC;YACD,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;YACxD,OAAO,kBAAkB,CAAA;QAC3B,CAAC;QAED,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,iBAAiB,EAC/B,wBAAwB,CACzB,CAAA;IACH,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC,CAAA"}
@@ -21,11 +21,11 @@ export const checkBalance = async (walletAddress, step, depth = 0) => {
21
21
  else {
22
22
  const neeeded = formatUnits(neededBalance, token.decimals);
23
23
  const current = formatUnits(currentBalance, token.decimals);
24
- let _errorMessage = `Your ${token.symbol} balance is too low, you try to transfer ${neeeded} ${token.symbol}, but your wallet only holds ${current} ${token.symbol}. No funds have been sent.`;
24
+ let errorMessage = `Your ${token.symbol} balance is too low, you try to transfer ${neeeded} ${token.symbol}, but your wallet only holds ${current} ${token.symbol}. No funds have been sent.`;
25
25
  if (currentBalance !== 0n) {
26
- _errorMessage += `If the problem consists, please delete this transfer and start a new one with a maximum of ${current} ${token.symbol}.`;
26
+ errorMessage += `If the problem consists, please delete this transfer and start a new one with a maximum of ${current} ${token.symbol}.`;
27
27
  }
28
- throw new BalanceError('The balance is too low.');
28
+ throw new BalanceError('The balance is too low.', new Error(errorMessage));
29
29
  }
30
30
  }
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../core/checkBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,aAAqB,EACrB,IAAc,EACd,KAAK,GAAG,CAAC,EACM,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEpD,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YACpD,CAAC;iBAAM,IACL,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC;gBAClE,WAAc;gBAChB,cAAc,EACd,CAAC;gBACD,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC3D,IAAI,aAAa,GAAG,QAAQ,KAAK,CAAC,MAAM,4CAA4C,OAAO,IAAI,KAAK,CAAC,MAAM,gCAAgC,OAAO,IAAI,KAAK,CAAC,MAAM,4BAA4B,CAAA;gBAE9L,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,aAAa,IAAI,8FAA8F,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;gBAC3I,CAAC;gBAED,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../core/checkBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,aAAqB,EACrB,IAAc,EACd,KAAK,GAAG,CAAC,EACM,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEpD,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YACpD,CAAC;iBAAM,IACL,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC;gBAClE,WAAc;gBAChB,cAAc,EACd,CAAC;gBACD,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC3D,IAAI,YAAY,GAAG,QAAQ,KAAK,CAAC,MAAM,4CAA4C,OAAO,IAAI,KAAK,CAAC,MAAM,gCAAgC,OAAO,IAAI,KAAK,CAAC,MAAM,4BAA4B,CAAA;gBAE7L,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,YAAY,IAAI,8FAA8F,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;gBAC1I,CAAC;gBAED,MAAM,IAAI,YAAY,CACpB,yBAAyB,EACzB,IAAI,KAAK,CAAC,YAAY,CAAC,CACxB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qDAAqD;AACrD,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAQ3C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAuB5B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAKjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qDAAqD;AACrD,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAK3C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAuB5B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAKjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,43 @@
1
+ // https://github.com/alexreardon/tiny-invariant
2
+ const isProduction = process.env.NODE_ENV === 'production';
3
+ const prefix = 'Invariant failed';
4
+ /**
5
+ * `invariant` is used to [assert](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that the `condition` is [truthy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy).
6
+ *
7
+ * 💥 `invariant` will `throw` an `Error` if the `condition` is [falsey](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy)
8
+ *
9
+ * 🤏 `message`s are not displayed in production environments to help keep bundles small
10
+ *
11
+ * @example
12
+ *
13
+ * ```ts
14
+ * const value: Person | null = { name: 'Alex' };
15
+ * invariant(value, 'Expected value to be a person');
16
+ * // type of `value`` has been narrowed to `Person`
17
+ * ```
18
+ */
19
+ export function invariant(condition,
20
+ // Not providing an inline default argument for message as the result is smaller
21
+ /**
22
+ * Can provide a string, or a function that returns a string for cases where
23
+ * the message takes a fair amount of effort to compute
24
+ */
25
+ message) {
26
+ if (condition) {
27
+ return;
28
+ }
29
+ // Condition not passed
30
+ // In production we strip the message but still throw
31
+ if (isProduction) {
32
+ throw new Error(prefix);
33
+ }
34
+ // When not in production we allow the message to pass through
35
+ // *This block will be removed in production builds*
36
+ const provided = typeof message === 'function' ? message() : message;
37
+ // Options:
38
+ // 1. message provided: `${prefix}: ${provided}`
39
+ // 2. message not provided: prefix
40
+ const value = provided ? `${prefix}: ${provided}` : prefix;
41
+ throw new Error(value);
42
+ }
43
+ //# sourceMappingURL=invariant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant.js","sourceRoot":"","sources":["../../utils/invariant.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,MAAM,YAAY,GAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;AACnE,MAAM,MAAM,GAAW,kBAAkB,CAAA;AAEzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CACvB,SAAc;AACd,gFAAgF;AAChF;;;GAGG;AACH,OAAiC;IAEjC,IAAI,SAAS,EAAE,CAAC;QACd,OAAM;IACR,CAAC;IACD,uBAAuB;IAEvB,qDAAqD;IACrD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;IAED,8DAA8D;IAC9D,oDAAoD;IAEpD,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IAErD,WAAW;IACX,gDAAgD;IAChD,kCAAkC;IAClC,MAAM,KAAK,GAAW,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IAClE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/sdk';
2
- export const version = '3.4.2';
2
+ export const version = '3.5.0-beta.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAA;AAC/B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAA;AAC/B,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAA"}
@@ -1,5 +1,7 @@
1
1
  export declare const AddressZero = "0x0000000000000000000000000000000000000000";
2
2
  export declare const AlternativeAddressZero = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
3
- export declare const wrappedSolAddress = "So11111111111111111111111111111111111111112";
4
3
  export declare const SolSystemProgram = "11111111111111111111111111111111";
4
+ export declare const MaxUint48: bigint;
5
+ export declare const MaxUint160: bigint;
6
+ export declare const MaxUint256: bigint;
5
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,+CAA+C,CAAA;AACvE,eAAO,MAAM,sBAAsB,+CACW,CAAA;AAC9C,eAAO,MAAM,iBAAiB,gDAAgD,CAAA;AAC9E,eAAO,MAAM,gBAAgB,qCAAqC,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,+CAA+C,CAAA;AACvE,eAAO,MAAM,sBAAsB,+CACW,CAAA;AAE9C,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAElE,eAAO,MAAM,SAAS,QAA2B,CAAA;AACjD,eAAO,MAAM,UAAU,QAAuD,CAAA;AAC9E,eAAO,MAAM,UAAU,QACsD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EVM.d.ts","sourceRoot":"","sources":["../../../core/EVM/EVM.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEjE,wBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAsC7D"}
1
+ {"version":3,"file":"EVM.d.ts","sourceRoot":"","sources":["../../../core/EVM/EVM.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEjE,wBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAkC7D"}
@@ -1,15 +1,18 @@
1
1
  import type { Process } from '@lifi/types';
2
- import type { Client } from 'viem';
2
+ import type { Address, Client, Hex } from 'viem';
3
3
  import { BaseStepExecutor } from '../BaseStepExecutor.js';
4
4
  import type { LiFiStepExtended, StepExecutorOptions } from '../types.js';
5
- import type { MultisigConfig } from './types.js';
5
+ export type Call = {
6
+ data?: Hex;
7
+ to?: Address;
8
+ value?: bigint;
9
+ chainId?: number;
10
+ };
6
11
  export interface EVMStepExecutorOptions extends StepExecutorOptions {
7
12
  client: Client;
8
- multisig?: MultisigConfig;
9
13
  }
10
14
  export declare class EVMStepExecutor extends BaseStepExecutor {
11
15
  private client;
12
- private multisig?;
13
16
  constructor(options: EVMStepExecutorOptions);
14
17
  checkClient: (step: LiFiStepExtended, process?: Process) => Promise<Client | undefined>;
15
18
  executeStep: (step: LiFiStepExtended) => Promise<LiFiStepExtended>;
@@ -1 +1 @@
1
- {"version":3,"file":"EVMStepExecutor.d.ts","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,OAAO,EACR,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,MAAM,EAAmC,MAAM,MAAM,CAAA;AAQnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIzD,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EAEpB,MAAM,aAAa,CAAA;AAMpB,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,YAAY,CAAA;AAIrE,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,CAAgB;gBAErB,OAAO,EAAE,sBAAsB;IAO3C,WAAW,SACH,gBAAgB,YACZ,OAAO,KAChB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8C7B;IAED,WAAW,SAAgB,gBAAgB,KAAG,OAAO,CAAC,gBAAgB,CAAC,CA+XtE;CACF"}
1
+ {"version":3,"file":"EVMStepExecutor.d.ts","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,OAAO,EACR,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EAEN,GAAG,EAGJ,MAAM,MAAM,CAAA;AASb,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIzD,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EAEpB,MAAM,aAAa,CAAA;AAcpB,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAO,CAAC,MAAM,CAAQ;gBAEV,OAAO,EAAE,sBAAsB;IAM3C,WAAW,SAAgB,gBAAgB,YAAY,OAAO,iCA8C7D;IAED,WAAW,SAAgB,gBAAgB,KAAG,OAAO,CAAC,gBAAgB,CAAC,CA6ZtE;CACF"}