@lifi/sdk 3.7.9 → 3.7.10-beta.1

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 (37) hide show
  1. package/package.json +8 -8
  2. package/src/_cjs/core/EVM/EVMStepExecutor.js +3 -0
  3. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  4. package/src/_cjs/core/EVM/abi.js +2 -10
  5. package/src/_cjs/core/EVM/abi.js.map +1 -1
  6. package/src/_cjs/core/EVM/permits/constants.js +32 -1
  7. package/src/_cjs/core/EVM/permits/constants.js.map +1 -1
  8. package/src/_cjs/core/EVM/permits/getNativePermit.js +57 -48
  9. package/src/_cjs/core/EVM/permits/getNativePermit.js.map +1 -1
  10. package/src/_cjs/version.js +1 -1
  11. package/src/_cjs/version.js.map +1 -1
  12. package/src/_esm/core/EVM/EVMStepExecutor.js +4 -1
  13. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  14. package/src/_esm/core/EVM/abi.js +1 -11
  15. package/src/_esm/core/EVM/abi.js.map +1 -1
  16. package/src/_esm/core/EVM/permits/constants.js +59 -0
  17. package/src/_esm/core/EVM/permits/constants.js.map +1 -1
  18. package/src/_esm/core/EVM/permits/getNativePermit.js +63 -70
  19. package/src/_esm/core/EVM/permits/getNativePermit.js.map +1 -1
  20. package/src/_esm/version.js +1 -1
  21. package/src/_esm/version.js.map +1 -1
  22. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  23. package/src/_types/core/EVM/abi.d.ts +8 -18
  24. package/src/_types/core/EVM/abi.d.ts.map +1 -1
  25. package/src/_types/core/EVM/permits/constants.d.ts +67 -0
  26. package/src/_types/core/EVM/permits/constants.d.ts.map +1 -1
  27. package/src/_types/core/EVM/permits/getNativePermit.d.ts +7 -0
  28. package/src/_types/core/EVM/permits/getNativePermit.d.ts.map +1 -1
  29. package/src/_types/core/UTXO/getUTXOPublicClient.d.ts +6 -0
  30. package/src/_types/core/UTXO/getUTXOPublicClient.d.ts.map +1 -1
  31. package/src/_types/version.d.ts +1 -1
  32. package/src/_types/version.d.ts.map +1 -1
  33. package/src/core/EVM/EVMStepExecutor.ts +4 -1
  34. package/src/core/EVM/abi.ts +1 -12
  35. package/src/core/EVM/permits/constants.ts +71 -0
  36. package/src/core/EVM/permits/getNativePermit.ts +107 -95
  37. package/src/version.ts +1 -1
@@ -1,26 +1,9 @@
1
1
  import { encodeAbiParameters, keccak256, pad, parseAbiParameters, toBytes, toHex, } from 'viem';
2
2
  import { multicall, readContract } from 'viem/actions';
3
- import { eip2612Abi, eip2612Types } from '../abi.js';
3
+ import { eip2612Abi } from '../abi.js';
4
4
  import { getActionWithFallback } from '../getActionWithFallback.js';
5
5
  import { getMulticallAddress } from '../utils.js';
6
- /**
7
- * EIP-712 domain typehash with chainId
8
- * @link https://eips.ethereum.org/EIPS/eip-712#specification
9
- *
10
- * keccak256(toBytes(
11
- * 'EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'
12
- * ))
13
- */
14
- const EIP712_DOMAIN_TYPEHASH = '0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f';
15
- /**
16
- * EIP-712 domain typehash with salt (e.g. USDC.e on Polygon)
17
- * @link https://eips.ethereum.org/EIPS/eip-712#specification
18
- *
19
- * keccak256(toBytes(
20
- * 'EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)'
21
- * ))
22
- */
23
- const EIP712_DOMAIN_TYPEHASH_WITH_SALT = '0x36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7';
6
+ import { DAI_LIKE_PERMIT_TYPEHASH, EIP712_DOMAIN_TYPEHASH, EIP712_DOMAIN_TYPEHASH_WITH_SALT, eip2612Types, } from './constants.js';
24
7
  function makeDomainSeparator({ name, version, chainId, verifyingContract, withSalt = false, }) {
25
8
  const nameHash = keccak256(toBytes(name));
26
9
  const versionHash = keccak256(toBytes(version));
@@ -84,15 +67,7 @@ function validateDomainSeparator({ name, version, chainId, verifyingContract, do
84
67
  domain: {},
85
68
  };
86
69
  }
87
- /**
88
- * Retrieves native permit data (EIP-2612) for a token on a specific chain
89
- * @link https://eips.ethereum.org/EIPS/eip-2612
90
- * @param client - The Viem client instance
91
- * @param chain - The extended chain object containing chain details
92
- * @param tokenAddress - The address of the token to check for permit support
93
- * @returns {Promise<NativePermitData>} Object containing permit data including name, version, nonce and support status
94
- */
95
- export const getNativePermit = async (client, { chainId, tokenAddress, spenderAddress, amount }) => {
70
+ export const getContractData = async (client, chainId, tokenAddress) => {
96
71
  try {
97
72
  const multicallAddress = await getMulticallAddress(chainId);
98
73
  const contractCalls = [
@@ -106,6 +81,11 @@ export const getNativePermit = async (client, { chainId, tokenAddress, spenderAd
106
81
  abi: eip2612Abi,
107
82
  functionName: 'DOMAIN_SEPARATOR',
108
83
  },
84
+ {
85
+ address: tokenAddress,
86
+ abi: eip2612Abi,
87
+ functionName: 'PERMIT_TYPEHASH',
88
+ },
109
89
  {
110
90
  address: tokenAddress,
111
91
  abi: eip2612Abi,
@@ -120,7 +100,7 @@ export const getNativePermit = async (client, { chainId, tokenAddress, spenderAd
120
100
  ];
121
101
  if (multicallAddress) {
122
102
  try {
123
- const [nameResult, domainSeparatorResult, noncesResult, versionResult] = await getActionWithFallback(client, multicall, 'multicall', {
103
+ const [nameResult, domainSeparatorResult, permitTypehashResult, noncesResult, versionResult,] = await getActionWithFallback(client, multicall, 'multicall', {
124
104
  contracts: contractCalls,
125
105
  multicallAddress,
126
106
  });
@@ -133,35 +113,19 @@ export const getNativePermit = async (client, { chainId, tokenAddress, spenderAd
133
113
  // Fall back to individual calls if multicall fails
134
114
  throw new Error('Multicall failed');
135
115
  }
136
- const { isValid, domain } = validateDomainSeparator({
116
+ return {
137
117
  name: nameResult.result,
138
- version: versionResult.result ?? '1',
139
- chainId,
140
- verifyingContract: tokenAddress,
141
118
  domainSeparator: domainSeparatorResult.result,
142
- });
143
- if (!isValid) {
144
- return undefined;
145
- }
146
- const message = {
147
- owner: client.account.address,
148
- spender: spenderAddress,
149
- value: amount.toString(),
150
- nonce: noncesResult.result.toString(),
151
- deadline: BigInt(Math.floor(Date.now() / 1000) + 30 * 60).toString(), // 30 minutes
152
- };
153
- return {
154
- primaryType: 'Permit',
155
- domain,
156
- types: eip2612Types,
157
- message,
119
+ permitTypehash: permitTypehashResult.result,
120
+ nonce: noncesResult.result,
121
+ version: versionResult.result ?? '1',
158
122
  };
159
123
  }
160
124
  catch {
161
125
  // Fall through to individual calls
162
126
  }
163
127
  }
164
- const [nameResult, domainSeparatorResult, noncesResult, versionResult] = (await Promise.allSettled(contractCalls.map((call) => getActionWithFallback(client, readContract, 'readContract', call))));
128
+ const [nameResult, domainSeparatorResult, permitTypehashResult, noncesResult, versionResult,] = (await Promise.allSettled(contractCalls.map((call) => getActionWithFallback(client, readContract, 'readContract', call))));
165
129
  if (nameResult.status !== 'fulfilled' ||
166
130
  domainSeparatorResult.status !== 'fulfilled' ||
167
131
  noncesResult.status !== 'fulfilled') {
@@ -169,32 +133,61 @@ export const getNativePermit = async (client, { chainId, tokenAddress, spenderAd
169
133
  }
170
134
  const name = nameResult.value;
171
135
  const version = versionResult.status === 'fulfilled' ? versionResult.value : '1';
172
- const { isValid, domain } = validateDomainSeparator({
136
+ return {
173
137
  name,
174
- version,
175
- chainId,
176
- verifyingContract: tokenAddress,
177
138
  domainSeparator: domainSeparatorResult.value,
178
- });
179
- if (!isValid) {
180
- return undefined;
181
- }
182
- const message = {
183
- owner: client.account.address,
184
- spender: spenderAddress,
185
- value: amount.toString(),
186
- nonce: noncesResult.value.toString(),
187
- deadline: BigInt(Math.floor(Date.now() / 1000) + 30 * 60).toString(), // 30 minutes
188
- };
189
- return {
190
- primaryType: 'Permit',
191
- domain,
192
- types: eip2612Types,
193
- message,
139
+ permitTypehash: permitTypehashResult.status === 'fulfilled'
140
+ ? permitTypehashResult.value
141
+ : undefined,
142
+ nonce: noncesResult.value,
143
+ version,
194
144
  };
195
145
  }
196
146
  catch {
197
147
  return undefined;
198
148
  }
199
149
  };
150
+ /**
151
+ * Retrieves native permit data (EIP-2612) for a token on a specific chain
152
+ * @link https://eips.ethereum.org/EIPS/eip-2612
153
+ * @param client - The Viem client instance
154
+ * @param chain - The extended chain object containing chain details
155
+ * @param tokenAddress - The address of the token to check for permit support
156
+ * @returns {Promise<NativePermitData>} Object containing permit data including name, version, nonce and support status
157
+ */
158
+ export const getNativePermit = async (client, { chainId, tokenAddress, spenderAddress, amount }) => {
159
+ const contractData = await getContractData(client, chainId, tokenAddress);
160
+ if (!contractData) {
161
+ return undefined;
162
+ }
163
+ const { name, domainSeparator, permitTypehash, nonce, version } = contractData;
164
+ // We don't support DAI-like permits yet (e.g. DAI on Ethereum)
165
+ if (permitTypehash === DAI_LIKE_PERMIT_TYPEHASH) {
166
+ return undefined;
167
+ }
168
+ const { isValid, domain } = validateDomainSeparator({
169
+ name,
170
+ version,
171
+ chainId,
172
+ verifyingContract: tokenAddress,
173
+ domainSeparator,
174
+ });
175
+ if (!isValid) {
176
+ return undefined;
177
+ }
178
+ const deadline = BigInt(Math.floor(Date.now() / 1000) + 30 * 60).toString(); // 30 minutes
179
+ const message = {
180
+ owner: client.account.address,
181
+ spender: spenderAddress,
182
+ value: amount.toString(),
183
+ nonce: nonce.toString(),
184
+ deadline,
185
+ };
186
+ return {
187
+ primaryType: 'Permit',
188
+ domain,
189
+ types: eip2612Types,
190
+ message,
191
+ };
192
+ };
200
193
  //# sourceMappingURL=getNativePermit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNativePermit.js","sourceRoot":"","sources":["../../../../core/EVM/permits/getNativePermit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getNativePermit.js","sourceRoot":"","sources":["../../../../core/EVM/permits/getNativePermit.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/sdk';
2
- export const version = '3.7.9';
2
+ export const version = '3.7.10-beta.1';
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,eAAe,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EVMStepExecutor.d.ts","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAA;AAC3E,OAAO,KAAK,EAEV,MAAM,EAEN,IAAI,EAIL,MAAM,MAAM,CAAA;AAiBb,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,mBAAmB,EAEpB,MAAM,aAAa,CAAA;AAcpB,OAAO,KAAK,EAAQ,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAS7D,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,GAAU,MAAM,gBAAgB,EAAE,UAAU,OAAO,iCAoD7D;IAED,kBAAkB,GAAU,2EAQzB;QACD,IAAI,EAAE,gBAAgB,CAAA;QACtB,OAAO,EAAE,OAAO,CAAA;QAChB,SAAS,EAAE,aAAa,CAAA;QACxB,OAAO,EAAE,aAAa,CAAA;QACtB,MAAM,EAAE,qBAAqB,CAAA;QAC7B,MAAM,EAAE,IAAI,CAAA;QACZ,iBAAiB,EAAE,OAAO,CAAA;KAC3B,mBA0DA;IAED,WAAW,GACT,MAAM,gBAAgB,EAEtB,2BAAyB,KACxB,OAAO,CAAC,gBAAgB,CAAC,CA4c3B;CACF"}
1
+ {"version":3,"file":"EVMStepExecutor.d.ts","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,aAAa,CAAA;AAC3E,OAAO,KAAK,EAEV,MAAM,EAEN,IAAI,EAIL,MAAM,MAAM,CAAA;AAiBb,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,OAAO,KAAK,EACV,gBAAgB,EAChB,OAAO,EACP,mBAAmB,EAEpB,MAAM,aAAa,CAAA;AAcpB,OAAO,KAAK,EAAQ,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAS7D,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,GAAU,MAAM,gBAAgB,EAAE,UAAU,OAAO,iCAoD7D;IAED,kBAAkB,GAAU,2EAQzB;QACD,IAAI,EAAE,gBAAgB,CAAA;QACtB,OAAO,EAAE,OAAO,CAAA;QAChB,SAAS,EAAE,aAAa,CAAA;QACxB,OAAO,EAAE,aAAa,CAAA;QACtB,MAAM,EAAE,qBAAqB,CAAA;QAC7B,MAAM,EAAE,IAAI,CAAA;QACZ,iBAAiB,EAAE,OAAO,CAAA;KAC3B,mBA0DA;IAED,WAAW,GACT,MAAM,gBAAgB,EAEtB,2BAAyB,KACxB,OAAO,CAAC,gBAAgB,CAAC,CA+c3B;CACF"}
@@ -133,6 +133,14 @@ export declare const eip2612Abi: readonly [{
133
133
  readonly outputs: readonly [{
134
134
  readonly type: "string";
135
135
  }];
136
+ }, {
137
+ readonly name: "PERMIT_TYPEHASH";
138
+ readonly type: "function";
139
+ readonly stateMutability: "view";
140
+ readonly inputs: readonly [];
141
+ readonly outputs: readonly [{
142
+ readonly type: "bytes32";
143
+ }];
136
144
  }];
137
145
  export declare const approveAbi: readonly [{
138
146
  readonly name: "approve";
@@ -182,22 +190,4 @@ export declare const balanceOfAbi: readonly [{
182
190
  readonly type: "uint256";
183
191
  }];
184
192
  }];
185
- export declare const eip2612Types: {
186
- readonly Permit: readonly [{
187
- readonly name: "owner";
188
- readonly type: "address";
189
- }, {
190
- readonly name: "spender";
191
- readonly type: "address";
192
- }, {
193
- readonly name: "value";
194
- readonly type: "uint256";
195
- }, {
196
- readonly name: "nonce";
197
- readonly type: "uint256";
198
- }, {
199
- readonly name: "deadline";
200
- readonly type: "uint256";
201
- }];
202
- };
203
193
  //# sourceMappingURL=abi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../core/EVM/abi.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1B,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;EAErB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;EAEvB,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;EAE3B,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;EAEvB,CAAA;AAIF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAQf,CAAA"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../core/EVM/abi.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1B,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOrB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;EAErB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;EAEvB,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;EAE3B,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;EAEvB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import type { Hex } from 'viem';
1
2
  export declare const MaxAllowanceTransferAmount: bigint;
2
3
  export declare const MaxAllowanceExpiration: bigint;
3
4
  export declare const MaxOrderedNonce: bigint;
@@ -5,4 +6,70 @@ export declare const MaxSignatureTransferAmount: bigint;
5
6
  export declare const MaxUnorderedNonce: bigint;
6
7
  export declare const MaxSigDeadline: bigint;
7
8
  export declare const InstantExpiration = 0n;
9
+ export declare const EIP_2612_PERMIT_SELECTOR = "0xd505accf";
10
+ export declare const DAI_PERMIT_SELECTOR = "0x8fcbaf0c";
11
+ /**
12
+ * EIP-712 domain typehash with chainId
13
+ * @link https://eips.ethereum.org/EIPS/eip-712#specification
14
+ *
15
+ * keccak256(toBytes(
16
+ * 'EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'
17
+ * ))
18
+ */
19
+ export declare const EIP712_DOMAIN_TYPEHASH: Hex;
20
+ /**
21
+ * EIP-712 domain typehash with salt (e.g. USDC.e on Polygon)
22
+ * @link https://eips.ethereum.org/EIPS/eip-712#specification
23
+ *
24
+ * keccak256(toBytes(
25
+ * 'EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)'
26
+ * ))
27
+ */
28
+ export declare const EIP712_DOMAIN_TYPEHASH_WITH_SALT: Hex;
29
+ export declare const EIP712_DOMAINS_WITHOUT_VERSION: `0x${string}`[];
30
+ /**
31
+ * @signature Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)
32
+ * */
33
+ export declare const DAI_LIKE_PERMIT_TYPEHASH: Hex;
34
+ /**
35
+ * @example `${tokenAddress}:${chainId}.toLowerCase()`
36
+ * @warning Only toLowerCase string
37
+ * */
38
+ export declare const TOKEN_ADDRESSES_WITH_SALT: string[];
39
+ export declare const eip2612Types: {
40
+ readonly Permit: readonly [{
41
+ readonly name: "owner";
42
+ readonly type: "address";
43
+ }, {
44
+ readonly name: "spender";
45
+ readonly type: "address";
46
+ }, {
47
+ readonly name: "value";
48
+ readonly type: "uint256";
49
+ }, {
50
+ readonly name: "nonce";
51
+ readonly type: "uint256";
52
+ }, {
53
+ readonly name: "deadline";
54
+ readonly type: "uint256";
55
+ }];
56
+ };
57
+ export declare const daiPermitTypes: {
58
+ readonly Permit: readonly [{
59
+ readonly name: "holder";
60
+ readonly type: "address";
61
+ }, {
62
+ readonly name: "spender";
63
+ readonly type: "address";
64
+ }, {
65
+ readonly name: "nonce";
66
+ readonly type: "uint256";
67
+ }, {
68
+ readonly name: "expiry";
69
+ readonly type: "uint256";
70
+ }, {
71
+ readonly name: "allowed";
72
+ readonly type: "bool";
73
+ }];
74
+ };
8
75
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permits/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAC/C,eAAO,MAAM,eAAe,QAAY,CAAA;AAExC,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAC3C,eAAO,MAAM,cAAc,QAAa,CAAA;AAExC,eAAO,MAAM,iBAAiB,KAAK,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permits/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAG/B,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAC/C,eAAO,MAAM,eAAe,QAAY,CAAA;AAExC,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAC3C,eAAO,MAAM,cAAc,QAAa,CAAA;AAExC,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAEnC,eAAO,MAAM,wBAAwB,eAAe,CAAA;AACpD,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EACuC,GAAG,CAAA;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,EAC6B,GAAG,CAAA;AAE7E,eAAO,MAAM,8BAA8B,iBAK1C,CAAA;AAED;;KAEK;AACL,eAAO,MAAM,wBAAwB,EACqC,GAAG,CAAA;AAE7E;;;KAGK;AACL,eAAO,MAAM,yBAAyB,UAGrC,CAAA;AAID,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAQf,CAAA;AAGV,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;CAQjB,CAAA"}
@@ -6,6 +6,13 @@ export type GetNativePermitParams = {
6
6
  spenderAddress: Address;
7
7
  amount: bigint;
8
8
  };
9
+ export declare const getContractData: (client: Client, chainId: number, tokenAddress: Address) => Promise<{
10
+ name: string;
11
+ domainSeparator: `0x${string}`;
12
+ permitTypehash: `0x${string}` | undefined;
13
+ nonce: bigint;
14
+ version: string;
15
+ } | undefined>;
9
16
  /**
10
17
  * Retrieves native permit data (EIP-2612) for a token on a specific chain
11
18
  * @link https://eips.ethereum.org/EIPS/eip-2612
@@ -1 +1 @@
1
- {"version":3,"file":"getNativePermit.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permits/getNativePermit.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAO,MAAM,MAAM,CAAA;AAMhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAwBlD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAqGD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,mDAAmD,qBAAqB,KACvE,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAmItC,CAAA"}
1
+ {"version":3,"file":"getNativePermit.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permits/getNativePermit.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAO,MAAM,MAAM,CAAA;AAYhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAqGD,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,cAAc,OAAO;;;;;;cAkHtB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,mDAAmD,qBAAqB,KACvE,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAwCtC,CAAA"}
@@ -48,6 +48,12 @@ export declare const getUTXOPublicClient: (chainId: number) => Promise<Client<Fa
48
48
  total: number;
49
49
  hasMore?: boolean;
50
50
  };
51
+ }, {
52
+ Method: "getTransactionFee";
53
+ Parameters: {
54
+ txId: string;
55
+ };
56
+ ReturnType: bigint;
51
57
  }, {
52
58
  Method: "getUTXOs";
53
59
  Parameters: {
@@ -1 +1 @@
1
- {"version":3,"file":"getUTXOPublicClient.d.ts","sourceRoot":"","sources":["../../../core/UTXO/getUTXOPublicClient.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,aAAa,EACb,aAAa,EAEb,aAAa,EACd,MAAM,aAAa,CAAA;AAmBpB;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAbrD,CAAJ;aAA2B,CAAC;iBAExB,CAAJ;iBACM,CAAC;;;;;eAO6B,CAAA;;;;;;gBAGwB,CAAC;;;mCAyC5D,CAAA"}
1
+ {"version":3,"file":"getUTXOPublicClient.d.ts","sourceRoot":"","sources":["../../../core/UTXO/getUTXOPublicClient.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,aAAa,EACb,aAAa,EAEb,aAAa,EACd,MAAM,aAAa,CAAA;AAmBpB;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAbrD,CAAJ;aAA2B,CAAC;iBAExB,CAAJ;iBACM,CAAC;;;;;eAO6B,CAAA;;;;;;;;;;;;gBAO5B,CAAC;;;mCAqCR,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@lifi/sdk";
2
- export declare const version = "3.7.9";
2
+ export declare const version = "3.7.10-beta.1";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,cAAc,CAAA;AAC/B,eAAO,MAAM,OAAO,UAAU,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,cAAc,CAAA;AAC/B,eAAO,MAAM,OAAO,kBAAkB,CAAA"}
@@ -586,7 +586,10 @@ export class EVMStepExecutor extends BaseStepExecutor {
586
586
  ? transactionRequest.gas
587
587
  : estimatedGas
588
588
  } catch (_) {
589
- // Let the wallet estimate the gas in case of failure
589
+ // If we fail to estimate the gas, we add 80_000 gas units Permit buffer to the gas limit
590
+ if (transactionRequest.gas) {
591
+ transactionRequest.gas = transactionRequest.gas + 80_000n
592
+ }
590
593
  } finally {
591
594
  this.statusManager.updateProcess(step, process.type, 'DONE')
592
595
  }
@@ -13,6 +13,7 @@ export const eip2612Abi = parseAbi([
13
13
  'function nonces(address) external view returns (uint256)',
14
14
  'function name() external view returns (string)',
15
15
  'function version() external view returns (string)',
16
+ 'function PERMIT_TYPEHASH() external view returns (bytes32)',
16
17
  ])
17
18
 
18
19
  export const approveAbi = parseAbi([
@@ -30,15 +31,3 @@ export const getEthBalanceAbi = parseAbi([
30
31
  export const balanceOfAbi = parseAbi([
31
32
  'function balanceOf(address) external view returns (uint256)',
32
33
  ])
33
-
34
- // EIP-2612 types
35
- // https://eips.ethereum.org/EIPS/eip-2612
36
- export const eip2612Types = {
37
- Permit: [
38
- { name: 'owner', type: 'address' },
39
- { name: 'spender', type: 'address' },
40
- { name: 'value', type: 'uint256' },
41
- { name: 'nonce', type: 'uint256' },
42
- { name: 'deadline', type: 'uint256' },
43
- ],
44
- } as const
@@ -1,3 +1,4 @@
1
+ import type { Hex } from 'viem'
1
2
  import { MaxUint48, MaxUint160, MaxUint256 } from '../../../constants.js'
2
3
 
3
4
  export const MaxAllowanceTransferAmount = MaxUint160
@@ -9,3 +10,73 @@ export const MaxUnorderedNonce = MaxUint256
9
10
  export const MaxSigDeadline = MaxUint256
10
11
 
11
12
  export const InstantExpiration = 0n
13
+
14
+ export const EIP_2612_PERMIT_SELECTOR = '0xd505accf'
15
+ export const DAI_PERMIT_SELECTOR = '0x8fcbaf0c'
16
+
17
+ /**
18
+ * EIP-712 domain typehash with chainId
19
+ * @link https://eips.ethereum.org/EIPS/eip-712#specification
20
+ *
21
+ * keccak256(toBytes(
22
+ * 'EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'
23
+ * ))
24
+ */
25
+ export const EIP712_DOMAIN_TYPEHASH =
26
+ '0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f' as Hex
27
+
28
+ /**
29
+ * EIP-712 domain typehash with salt (e.g. USDC.e on Polygon)
30
+ * @link https://eips.ethereum.org/EIPS/eip-712#specification
31
+ *
32
+ * keccak256(toBytes(
33
+ * 'EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)'
34
+ * ))
35
+ */
36
+ export const EIP712_DOMAIN_TYPEHASH_WITH_SALT =
37
+ '0x36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7' as Hex
38
+
39
+ export const EIP712_DOMAINS_WITHOUT_VERSION = [
40
+ /** @signature 'EIP712Domain(string name,uint chainId,address verifyingContract)' */
41
+ '0x797cfab58fcb15f590eb8e4252d5c228ff88f94f907e119e80c4393a946e8f35' as Hex,
42
+ /** @signature 'EIP712Domain(string name,uint256 chainId,address verifyingContract)' */
43
+ '0x8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866' as Hex,
44
+ ]
45
+
46
+ /**
47
+ * @signature Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)
48
+ * */
49
+ export const DAI_LIKE_PERMIT_TYPEHASH =
50
+ '0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb' as Hex
51
+
52
+ /**
53
+ * @example `${tokenAddress}:${chainId}.toLowerCase()`
54
+ * @warning Only toLowerCase string
55
+ * */
56
+ export const TOKEN_ADDRESSES_WITH_SALT = [
57
+ '0x2791bca1f2de4661ed88a30c99a7a9449aa84174:137', // USDC Proxy Polygon
58
+ '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063:137', // DAI Proxy Polygon
59
+ ]
60
+
61
+ // EIP-2612 types
62
+ // https://eips.ethereum.org/EIPS/eip-2612
63
+ export const eip2612Types = {
64
+ Permit: [
65
+ { name: 'owner', type: 'address' },
66
+ { name: 'spender', type: 'address' },
67
+ { name: 'value', type: 'uint256' },
68
+ { name: 'nonce', type: 'uint256' },
69
+ { name: 'deadline', type: 'uint256' },
70
+ ],
71
+ } as const
72
+
73
+ // DAI on Ethereum
74
+ export const daiPermitTypes = {
75
+ Permit: [
76
+ { name: 'holder', type: 'address' },
77
+ { name: 'spender', type: 'address' },
78
+ { name: 'nonce', type: 'uint256' },
79
+ { name: 'expiry', type: 'uint256' },
80
+ { name: 'allowed', type: 'bool' },
81
+ ],
82
+ } as const