@lifi/sdk 3.5.0-beta.0 → 3.5.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -9
- package/src/_cjs/constants.js +2 -4
- package/src/_cjs/constants.js.map +1 -1
- package/src/_cjs/core/EVM/EVM.js +4 -0
- package/src/_cjs/core/EVM/EVM.js.map +1 -1
- package/src/_cjs/core/EVM/EVMStepExecutor.js +79 -145
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/abi.js +43 -36
- package/src/_cjs/core/EVM/abi.js.map +1 -1
- package/src/_cjs/core/EVM/checkAllowance.js +30 -36
- package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/getAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -1
- package/src/_cjs/core/EVM/multisig.js +29 -0
- package/src/_cjs/core/EVM/multisig.js.map +1 -0
- package/src/_cjs/core/EVM/parseEVMErrors.js +0 -3
- package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -1
- package/src/_cjs/core/EVM/setAllowance.js +6 -4
- package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/switchChain.js +3 -2
- package/src/_cjs/core/EVM/switchChain.js.map +1 -1
- package/src/_cjs/core/EVM/types.js.map +1 -1
- package/src/_cjs/core/EVM/utils.js +1 -2
- package/src/_cjs/core/EVM/utils.js.map +1 -1
- package/src/_cjs/core/Solana/SolanaStepExecutor.js +2 -48
- package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js +2 -48
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -1
- package/src/_cjs/core/checkBalance.js +3 -3
- package/src/_cjs/core/checkBalance.js.map +1 -1
- package/src/_cjs/core/waitForDestinationChainTransaction.js +53 -0
- package/src/_cjs/core/waitForDestinationChainTransaction.js.map +1 -0
- package/src/_cjs/core/{waitForReceivingTransaction.js → waitForTransactionStatus.js} +3 -3
- package/src/_cjs/core/waitForTransactionStatus.js.map +1 -0
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_esm/constants.js +1 -3
- package/src/_esm/constants.js.map +1 -1
- package/src/_esm/core/EVM/EVM.js +4 -0
- package/src/_esm/core/EVM/EVM.js.map +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +92 -179
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/abi.js +42 -37
- package/src/_esm/core/EVM/abi.js.map +1 -1
- package/src/_esm/core/EVM/checkAllowance.js +32 -41
- package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
- package/src/_esm/core/EVM/getAllowance.js.map +1 -1
- package/src/_esm/core/EVM/getEVMBalance.js.map +1 -1
- package/src/_esm/core/EVM/multisig.js +25 -0
- package/src/_esm/core/EVM/multisig.js.map +1 -0
- package/src/_esm/core/EVM/parseEVMErrors.js +0 -8
- package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -1
- package/src/_esm/core/EVM/setAllowance.js +6 -4
- package/src/_esm/core/EVM/setAllowance.js.map +1 -1
- package/src/_esm/core/EVM/switchChain.js +3 -2
- package/src/_esm/core/EVM/switchChain.js.map +1 -1
- package/src/_esm/core/EVM/types.js.map +1 -1
- package/src/_esm/core/EVM/utils.js +1 -2
- package/src/_esm/core/EVM/utils.js.map +1 -1
- package/src/_esm/core/Solana/SolanaStepExecutor.js +3 -50
- package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_esm/core/UTXO/UTXOStepExecutor.js +4 -51
- package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
- package/src/_esm/core/checkBalance.js +3 -3
- package/src/_esm/core/checkBalance.js.map +1 -1
- package/src/_esm/core/waitForDestinationChainTransaction.js +52 -0
- package/src/_esm/core/waitForDestinationChainTransaction.js.map +1 -0
- package/src/_esm/core/{waitForReceivingTransaction.js → waitForTransactionStatus.js} +2 -2
- package/src/_esm/core/waitForTransactionStatus.js.map +1 -0
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/version.js +1 -1
- package/src/_types/constants.d.ts +1 -3
- package/src/_types/constants.d.ts.map +1 -1
- package/src/_types/core/EVM/EVM.d.ts.map +1 -1
- package/src/_types/core/EVM/EVMStepExecutor.d.ts +4 -7
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
- package/src/_types/core/EVM/abi.d.ts +5 -202
- package/src/_types/core/EVM/abi.d.ts.map +1 -1
- package/src/_types/core/EVM/checkAllowance.d.ts +2 -12
- package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/getAllowance.d.ts +4 -5
- package/src/_types/core/EVM/getAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/getEVMBalance.d.ts +1 -2
- package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -1
- package/src/_types/core/EVM/multisig.d.ts +6 -0
- package/src/_types/core/EVM/multisig.d.ts.map +1 -0
- package/src/_types/core/EVM/setAllowance.d.ts +2 -2
- package/src/_types/core/EVM/setAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
- package/src/_types/core/EVM/types.d.ts +18 -1
- package/src/_types/core/EVM/types.d.ts.map +1 -1
- package/src/_types/core/EVM/utils.d.ts +2 -2
- package/src/_types/core/EVM/utils.d.ts.map +1 -1
- package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
- package/src/_types/core/UTXO/UTXOStepExecutor.d.ts.map +1 -1
- package/src/_types/core/checkBalance.d.ts.map +1 -1
- package/src/_types/core/waitForDestinationChainTransaction.d.ts +5 -0
- package/src/_types/core/waitForDestinationChainTransaction.d.ts.map +1 -0
- package/src/_types/core/waitForTransactionStatus.d.ts +4 -0
- package/src/_types/core/waitForTransactionStatus.d.ts.map +1 -0
- package/src/_types/index.d.ts +1 -1
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/version.d.ts +1 -1
- package/src/constants.ts +1 -6
- package/src/core/EVM/EVM.ts +4 -0
- package/src/core/EVM/EVMStepExecutor.ts +156 -245
- package/src/core/EVM/abi.ts +43 -40
- package/src/core/EVM/checkAllowance.ts +92 -96
- package/src/core/EVM/getAllowance.ts +8 -8
- package/src/core/EVM/getEVMBalance.ts +2 -2
- package/src/core/EVM/multisig.ts +54 -0
- package/src/core/EVM/parseEVMErrors.ts +0 -8
- package/src/core/EVM/setAllowance.ts +21 -15
- package/src/core/EVM/switchChain.ts +12 -3
- package/src/core/EVM/types.ts +27 -1
- package/src/core/EVM/utils.ts +3 -4
- package/src/core/Solana/SolanaStepExecutor.ts +9 -63
- package/src/core/UTXO/UTXOStepExecutor.ts +10 -68
- package/src/core/checkBalance.ts +3 -6
- package/src/core/waitForDestinationChainTransaction.ts +79 -0
- package/src/core/{waitForReceivingTransaction.ts → waitForTransactionStatus.ts} +1 -1
- package/src/index.ts +3 -0
- package/src/version.ts +1 -1
- package/src/_cjs/core/EVM/getNativePermit.js +0 -90
- package/src/_cjs/core/EVM/getNativePermit.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/allowanceTransfer.js +0 -100
- package/src/_cjs/core/EVM/permit2/allowanceTransfer.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/constants.js +0 -12
- package/src/_cjs/core/EVM/permit2/constants.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/domain.js +0 -12
- package/src/_cjs/core/EVM/permit2/domain.js.map +0 -1
- package/src/_cjs/core/EVM/permit2/signatureTransfer.js +0 -121
- package/src/_cjs/core/EVM/permit2/signatureTransfer.js.map +0 -1
- package/src/_cjs/core/EVM/signPermitMessage.js +0 -168
- package/src/_cjs/core/EVM/signPermitMessage.js.map +0 -1
- package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js +0 -29
- package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js.map +0 -1
- package/src/_cjs/core/waitForReceivingTransaction.js.map +0 -1
- package/src/_cjs/utils/invariant.js +0 -17
- package/src/_cjs/utils/invariant.js.map +0 -1
- package/src/_esm/core/EVM/getNativePermit.js +0 -95
- package/src/_esm/core/EVM/getNativePermit.js.map +0 -1
- package/src/_esm/core/EVM/permit2/allowanceTransfer.js +0 -93
- package/src/_esm/core/EVM/permit2/allowanceTransfer.js.map +0 -1
- package/src/_esm/core/EVM/permit2/constants.js +0 -9
- package/src/_esm/core/EVM/permit2/constants.js.map +0 -1
- package/src/_esm/core/EVM/permit2/domain.js +0 -9
- package/src/_esm/core/EVM/permit2/domain.js.map +0 -1
- package/src/_esm/core/EVM/permit2/signatureTransfer.js +0 -117
- package/src/_esm/core/EVM/permit2/signatureTransfer.js.map +0 -1
- package/src/_esm/core/EVM/signPermitMessage.js +0 -162
- package/src/_esm/core/EVM/signPermitMessage.js.map +0 -1
- package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js +0 -25
- package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js.map +0 -1
- package/src/_esm/core/waitForReceivingTransaction.js.map +0 -1
- package/src/_esm/utils/invariant.js +0 -43
- package/src/_esm/utils/invariant.js.map +0 -1
- package/src/_types/core/EVM/getNativePermit.d.ts +0 -18
- package/src/_types/core/EVM/getNativePermit.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts +0 -41
- package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/constants.d.ts +0 -8
- package/src/_types/core/EVM/permit2/constants.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/domain.d.ts +0 -8
- package/src/_types/core/EVM/permit2/domain.d.ts.map +0 -1
- package/src/_types/core/EVM/permit2/signatureTransfer.d.ts +0 -42
- package/src/_types/core/EVM/permit2/signatureTransfer.d.ts.map +0 -1
- package/src/_types/core/EVM/signPermitMessage.d.ts +0 -22
- package/src/_types/core/EVM/signPermitMessage.d.ts.map +0 -1
- package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts +0 -4
- package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts.map +0 -1
- package/src/_types/core/waitForReceivingTransaction.d.ts +0 -4
- package/src/_types/core/waitForReceivingTransaction.d.ts.map +0 -1
- package/src/_types/utils/invariant.d.ts +0 -22
- package/src/_types/utils/invariant.d.ts.map +0 -1
- package/src/core/EVM/getNativePermit.ts +0 -113
- package/src/core/EVM/permit2/allowanceTransfer.ts +0 -168
- package/src/core/EVM/permit2/constants.ts +0 -11
- package/src/core/EVM/permit2/domain.ts +0 -20
- package/src/core/EVM/permit2/signatureTransfer.ts +0 -214
- package/src/core/EVM/signPermitMessage.ts +0 -248
- package/src/core/EVM/waitForBatchTransactionReceipt.ts +0 -49
- package/src/utils/invariant.ts +0 -51
|
@@ -1,162 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signPermitMessage.js","sourceRoot":"","sources":["../../../core/EVM/signPermitMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAEL,aAAa,GACd,MAAM,gCAAgC,CAAA;AAEvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,MAAc,EACd,kBAAyC,EACzC,KAAoB,EACpB,YAAqB,EACrB,MAAc,EACd,YAA8B,EAC9B,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA,CAAC,aAAa;IAE9E,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,iBAAiB,EAAE,YAAY;KAChC,CAAA;IAED,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,MAAM,CAAC,OAAQ,CAAC,OAAO;QAC9B,OAAO,EAAE,KAAK,CAAC,YAAuB;QACtC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,QAAQ;KACT,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAQ;QACxB,MAAM;QACN,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,QAAQ;QACrB,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IAE7C,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,iCAAiC;QAC/C,IAAI,EAAE;YACJ,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,MAAM,CAAC,CAAC,CAAC;YACT,CAAC;YACD,CAAC;YACD,kBAAkB,CAAC,IAAW;SAC/B;KACF,CAAC,CAAA;IAEF,OAAO;QACL,SAAS;QACT,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAc,EACd,kBAAyC,EACzC,KAAoB,EACpB,YAAqB,EACrB,MAAc,EACd,EAAE;IACF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;QACvC,OAAO,EAAE,KAAK,CAAC,YAAuB;QACtC,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,MAAM,CAAC,OAAQ,CAAC,OAAO,CAAC;KAChC,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAuB;QAC7C,SAAS,EAAE;YACT,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,MAAM;SACf;QACD,OAAO,EAAE,KAAK,CAAC,YAAuB;QACtC,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa;KACzE,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAC7C,kBAAkB,EAClB,KAAK,CAAC,OAAkB,EACxB,KAAK,CAAC,EAAE,CACT,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAQ;QACxB,WAAW,EAAE,oBAAoB;QACjC,MAAM;QACN,KAAK;QACL,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE;KACvB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,wBAAwB;QACtC,IAAI,EAAE;YACJ,kBAAkB,CAAC,IAAW;YAC9B;gBACE,CAAC,YAAY,EAAE,MAAM,CAAC;gBACtB,kBAAkB,CAAC,KAAK;gBACxB,kBAAkB,CAAC,QAAQ;aAC5B;YACD,SAAgB;SACjB;KACF,CAAC,CAAA;IAEF,OAAO;QACL,SAAS;QACT,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,MAAc,EACd,kBAAyC,EACzC,KAAoB,EACpB,YAAqB,EACrB,MAAc,EACd,EAAE;IACF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;QACvC,OAAO,EAAE,KAAK,CAAC,YAAuB;QACtC,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,MAAM,CAAC,OAAQ,CAAC,OAAO,CAAC;KAChC,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAuB;QAC7C,SAAS,EAAE;YACT,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,MAAM;SACf;QACD,OAAO,EAAE,KAAK,CAAC,YAAuB;QACtC,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa;KACzE,CAAA;IAED,yCAAyC;IACzC,MAAM,OAAO,GAAG;QACd,OAAO,EAAE;YACP,aAAa,EAAE,KAAK,CAAC,YAAuB;YAC5C,cAAc,EAAE,KAAK,CAAC,cAAyB;YAC/C,mBAAmB,EAAE,SAAS,CAAC,kBAAkB,CAAC,IAAW,CAAC;SAC/D;QACD,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC3C,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE;aACjD;SACF;KACF,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAC7C,kBAAkB,EAClB,KAAK,CAAC,OAAkB,EACxB,KAAK,CAAC,EAAE,EACR,OAAO,CACR,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAQ;QACxB,WAAW,EAAE,2BAA2B;QACxC,MAAM;QACN,KAAK;QACL,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE;KACvB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG,EAAE,eAAe;QACpB,YAAY,EAAE,+BAA+B;QAC7C,IAAI,EAAE;YACJ,kBAAkB,CAAC,IAAW;YAC9B,MAAM,CAAC,OAAQ,CAAC,OAAO;YACvB;gBACE,CAAC,YAAY,EAAE,MAAM,CAAC;gBACtB,kBAAkB,CAAC,KAAK;gBACxB,kBAAkB,CAAC,QAAQ;aAC5B;YACD,SAAgB;SACjB;KACF,CAAC,CAAA;IAEF,OAAO;QACL,SAAS;QACT,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAc,EACd,kBAAyC,EACzC,KAAoB,EACpB,YAAqB,EACrB,MAAc,EACd,YAA+B,EAC/B,UAAU,GAAG,KAAK,EAClB,EAAE;IACF,IAAI,aAAa,GAAG,YAAY,CAAA;IAEhC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,uBAAuB,CAC5B,MAAM,EACN,kBAAkB,EAClB,KAAK,EACL,YAAY,EACZ,MAAM,EACN,aAAa,CACd,CAAA;IACH,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,yBAAyB,CAC9B,MAAM,EACN,kBAAkB,EAClB,KAAK,EACL,YAAY,EACZ,MAAM,CACP,CAAA;IACH,CAAC;IAED,OAAO,kBAAkB,CACvB,MAAM,EACN,kBAAkB,EAClB,KAAK,EACL,YAAY,EACZ,MAAM,CACP,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"waitForReceivingTransaction.js","sourceRoot":"","sources":["../../core/waitForReceivingTransaction.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,0BAA0B,GAA4C,EAAE,CAAA;AAE9E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAc,EACd,aAA4B,EAC5B,WAAwB,EACxB,IAAc,EACd,QAAQ,GAAG,KAAK;IAEhB,MAAM,UAAU,GAAG,GAAwC,EAAE;QAC3D,OAAO,SAAS,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC9B,MAAM;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SACrD,CAAC;aACC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YACvB,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC9B,KAAK,MAAM;oBACT,OAAO,cAAc,CAAA;gBACvB,KAAK,SAAS;oBACZ,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;wBACzD,SAAS,EAAE,cAAc,CAAC,SAAS;wBACnC,gBAAgB,EACd,cAAc,CAAC,gBAAgB;4BAC/B,mBAAmB,CACjB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,SAAS,CACzB;wBACH,MAAM,EAAG,cAAiC,CAAC,kBAAkB;qBAC9D,CAAC,CAAA;oBACF,OAAO,SAAS,CAAA;gBAClB,KAAK,WAAW;oBACd,OAAO,SAAS,CAAA;gBAClB;oBACE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAA;YACxD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,IAAI,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC5C,0BAA0B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC7C,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,MAAM,CAAA;IAEnC,IAAI,CAAC,CAAC,WAAW,IAAI,cAAc,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,WAAW,CAAC,+CAA+C,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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,18 +0,0 @@
|
|
|
1
|
-
import type { ExtendedChain } from '@lifi/types';
|
|
2
|
-
import type { Address, Client } from 'viem';
|
|
3
|
-
export type NativePermitData = {
|
|
4
|
-
name: string;
|
|
5
|
-
version: string;
|
|
6
|
-
nonce: bigint;
|
|
7
|
-
supported: boolean;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Retrieves native permit data (EIP-2612) for a token on a specific chain
|
|
11
|
-
* @link https://eips.ethereum.org/EIPS/eip-2612
|
|
12
|
-
* @param client - The Viem client instance
|
|
13
|
-
* @param chain - The extended chain object containing chain details
|
|
14
|
-
* @param tokenAddress - The address of the token to check for permit support
|
|
15
|
-
* @returns {Promise<NativePermitData>} Object containing permit data including name, version, nonce and support status
|
|
16
|
-
*/
|
|
17
|
-
export declare const getNativePermit: (client: Client, chain: ExtendedChain, tokenAddress: Address) => Promise<NativePermitData>;
|
|
18
|
-
//# sourceMappingURL=getNativePermit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getNativePermit.d.ts","sourceRoot":"","sources":["../../../core/EVM/getNativePermit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAK3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AACD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,WAClB,MAAM,SACP,aAAa,gBACN,OAAO,KACpB,OAAO,CAAC,gBAAgB,CAwF1B,CAAA"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { type Address, type TypedData, type TypedDataDomain } from 'viem';
|
|
2
|
-
export declare const MaxAllowanceTransferAmount: bigint;
|
|
3
|
-
export declare const MaxAllowanceExpiration: bigint;
|
|
4
|
-
export declare const MaxOrderedNonce: bigint;
|
|
5
|
-
export interface PermitDetails {
|
|
6
|
-
token: Address;
|
|
7
|
-
amount: bigint;
|
|
8
|
-
expiration: number;
|
|
9
|
-
nonce: number;
|
|
10
|
-
}
|
|
11
|
-
export interface PermitSingle {
|
|
12
|
-
details: PermitDetails;
|
|
13
|
-
spender: Address;
|
|
14
|
-
sigDeadline: bigint;
|
|
15
|
-
}
|
|
16
|
-
export interface PermitBatch {
|
|
17
|
-
details: PermitDetails[];
|
|
18
|
-
spender: Address;
|
|
19
|
-
sigDeadline: bigint;
|
|
20
|
-
}
|
|
21
|
-
export type PermitSingleData = {
|
|
22
|
-
domain: TypedDataDomain;
|
|
23
|
-
types: TypedData;
|
|
24
|
-
values: PermitSingle;
|
|
25
|
-
};
|
|
26
|
-
export type PermitBatchData = {
|
|
27
|
-
domain: TypedDataDomain;
|
|
28
|
-
types: TypedData;
|
|
29
|
-
values: PermitBatch;
|
|
30
|
-
};
|
|
31
|
-
export declare function getPermitSingleData(permit: PermitSingle, permit2Address: Address, chainId: number): {
|
|
32
|
-
domain: TypedDataDomain;
|
|
33
|
-
values: PermitSingle;
|
|
34
|
-
};
|
|
35
|
-
export declare function getPermitBatchData(permit: PermitBatch, permit2Address: Address, chainId: number): {
|
|
36
|
-
domain: TypedDataDomain;
|
|
37
|
-
values: PermitBatch;
|
|
38
|
-
};
|
|
39
|
-
export declare function getPermitData(permit: PermitSingle | PermitBatch, permit2Address: Address, chainId: number): PermitSingleData | PermitBatchData;
|
|
40
|
-
export declare function hash(permit: PermitSingle | PermitBatch, permit2Address: Address, chainId: number): string;
|
|
41
|
-
//# sourceMappingURL=allowanceTransfer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowanceTransfer.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/allowanceTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,MAAM,CAAA;AAMb,eAAO,MAAM,0BAA0B,QAAa,CAAA;AACpD,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAC/C,eAAO,MAAM,eAAe,QAAY,CAAA;AAExC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,WAAW,CAAA;CACpB,CAAA;AA+BD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM;;;EAWhB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM;;;EAWhB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,GAAG,WAAW,EAClC,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,eAAe,CAkBpC;AAED,wBAAgB,IAAI,CAClB,MAAM,EAAE,YAAY,GAAG,WAAW,EAClC,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,GACd,MAAM,CAuBR"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare const MaxAllowanceTransferAmount: bigint;
|
|
2
|
-
export declare const MaxAllowanceExpiration: bigint;
|
|
3
|
-
export declare const MaxOrderedNonce: bigint;
|
|
4
|
-
export declare const MaxSignatureTransferAmount: bigint;
|
|
5
|
-
export declare const MaxUnorderedNonce: bigint;
|
|
6
|
-
export declare const MaxSigDeadline: bigint;
|
|
7
|
-
export declare const InstantExpiration = 0n;
|
|
8
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/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,8 +0,0 @@
|
|
|
1
|
-
import type { Address, TypedData, TypedDataDomain } from 'viem';
|
|
2
|
-
export declare function permit2Domain(permit2Address: Address, chainId: number): TypedDataDomain;
|
|
3
|
-
export type PermitData = {
|
|
4
|
-
domain: TypedDataDomain;
|
|
5
|
-
types: TypedData;
|
|
6
|
-
values: any;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAI/D,wBAAgB,aAAa,CAC3B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,GACd,eAAe,CAMjB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,GAAG,CAAA;CACZ,CAAA"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { Address, TypedData, TypedDataDomain } from 'viem';
|
|
2
|
-
export interface Witness {
|
|
3
|
-
witness: any;
|
|
4
|
-
witnessTypeName: string;
|
|
5
|
-
witnessType: {
|
|
6
|
-
[key: string]: {
|
|
7
|
-
name: string;
|
|
8
|
-
type: string;
|
|
9
|
-
}[];
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export interface TokenPermissions {
|
|
13
|
-
token: Address;
|
|
14
|
-
amount: bigint;
|
|
15
|
-
}
|
|
16
|
-
export interface PermitTransferFrom {
|
|
17
|
-
permitted: TokenPermissions;
|
|
18
|
-
spender: Address;
|
|
19
|
-
nonce: bigint;
|
|
20
|
-
deadline: bigint;
|
|
21
|
-
}
|
|
22
|
-
export interface PermitBatchTransferFrom {
|
|
23
|
-
permitted: TokenPermissions[];
|
|
24
|
-
spender: Address;
|
|
25
|
-
nonce: bigint;
|
|
26
|
-
deadline: bigint;
|
|
27
|
-
}
|
|
28
|
-
export type PermitTransferFromData = {
|
|
29
|
-
domain: TypedDataDomain;
|
|
30
|
-
types: TypedData;
|
|
31
|
-
values: PermitTransferFrom;
|
|
32
|
-
};
|
|
33
|
-
export type PermitBatchTransferFromData = {
|
|
34
|
-
domain: TypedDataDomain;
|
|
35
|
-
types: TypedData;
|
|
36
|
-
values: PermitBatchTransferFrom;
|
|
37
|
-
};
|
|
38
|
-
export declare function getPermitTransferData(permit: PermitTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): PermitTransferFromData;
|
|
39
|
-
export declare function getPermitBatchTransferData(permit: PermitBatchTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): PermitBatchTransferFromData;
|
|
40
|
-
export declare function getPermitData(permit: PermitTransferFrom | PermitBatchTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): PermitTransferFromData | PermitBatchTransferFromData;
|
|
41
|
-
export declare function hash(permit: PermitTransferFrom | PermitBatchTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): `0x${string}`;
|
|
42
|
-
//# sourceMappingURL=signatureTransfer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signatureTransfer.d.ts","sourceRoot":"","sources":["../../../../core/EVM/permit2/signatureTransfer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAS/D,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,GAAG,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAA;CACjE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,gBAAgB,EAAE,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,kBAAkB,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,uBAAuB,CAAA;CAChC,CAAA;AAiCD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,kBAAkB,EAC1B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,sBAAsB,CA+BxB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,2BAA2B,CA+B7B;AAID,wBAAgB,aAAa,CAC3B,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,EACpD,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,sBAAsB,GAAG,2BAA2B,CAKtD;AAED,wBAAgB,IAAI,CAClB,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,EACpD,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,iBAkClB"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { ExtendedChain } from '@lifi/types';
|
|
2
|
-
import type { Client } from 'viem';
|
|
3
|
-
import type { Address } from 'viem';
|
|
4
|
-
import type { TransactionParameters } from '../types.js';
|
|
5
|
-
import { type NativePermitData } from './getNativePermit.js';
|
|
6
|
-
export declare const signNativePermitMessage: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint, nativePermit: NativePermitData) => Promise<{
|
|
7
|
-
signature: `0x${string}`;
|
|
8
|
-
data: `0x${string}`;
|
|
9
|
-
}>;
|
|
10
|
-
export declare const signPermit2Message: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint) => Promise<{
|
|
11
|
-
signature: `0x${string}`;
|
|
12
|
-
data: `0x${string}`;
|
|
13
|
-
}>;
|
|
14
|
-
export declare const signPermit2WitnessMessage: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint) => Promise<{
|
|
15
|
-
signature: `0x${string}`;
|
|
16
|
-
data: `0x${string}`;
|
|
17
|
-
}>;
|
|
18
|
-
export declare const signPermitMessage: (client: Client, transactionRequest: TransactionParameters, chain: ExtendedChain, tokenAddress: Address, amount: bigint, nativePermit?: NativePermitData, useWitness?: boolean) => Promise<{
|
|
19
|
-
signature: `0x${string}`;
|
|
20
|
-
data: `0x${string}`;
|
|
21
|
-
}>;
|
|
22
|
-
//# sourceMappingURL=signPermitMessage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signPermitMessage.d.ts","sourceRoot":"","sources":["../../../core/EVM/signPermitMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAO,MAAM,MAAM,CAAA;AAGvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,sBAAsB,CAAA;AAM7E,eAAO,MAAM,uBAAuB,WAC1B,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM,gBACA,gBAAgB;;;EA+C/B,CAAA;AAED,eAAO,MAAM,kBAAkB,WACrB,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM;;;EAmDf,CAAA;AAED,eAAO,MAAM,yBAAyB,WAC5B,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM;;;EAqEf,CAAA;AAED,eAAO,MAAM,iBAAiB,WACpB,MAAM,sBACM,qBAAqB,SAClC,aAAa,gBACN,OAAO,UACb,MAAM,iBACC,gBAAgB;;;EAqChC,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { Client, Hash, WalletCallReceipt as _WalletCallReceipt } from 'viem';
|
|
2
|
-
export type WalletCallReceipt = _WalletCallReceipt<bigint, 'success' | 'reverted'>;
|
|
3
|
-
export declare const waitForBatchTransactionReceipt: (client: Client, batchHash: Hash) => Promise<WalletCallReceipt>;
|
|
4
|
-
//# sourceMappingURL=waitForBatchTransactionReceipt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"waitForBatchTransactionReceipt.d.ts","sourceRoot":"","sources":["../../../core/EVM/waitForBatchTransactionReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,IAAI,EACJ,iBAAiB,IAAI,kBAAkB,EACxC,MAAM,MAAM,CAAA;AAMb,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAChD,MAAM,EACN,SAAS,GAAG,UAAU,CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,WACjC,MAAM,aACH,IAAI,KACd,OAAO,CAAC,iBAAiB,CA8B3B,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { LiFiStep, ProcessType, StatusResponse } from '@lifi/types';
|
|
2
|
-
import type { StatusManager } from './StatusManager.js';
|
|
3
|
-
export declare function waitForReceivingTransaction(txHash: string, statusManager: StatusManager, processType: ProcessType, step: LiFiStep, interval?: number): Promise<StatusResponse>;
|
|
4
|
-
//# sourceMappingURL=waitForReceivingTransaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"waitForReceivingTransaction.d.ts","sourceRoot":"","sources":["../../core/waitForReceivingTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACX,cAAc,EACf,MAAM,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKvD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,QAAQ,EACd,QAAQ,SAAQ,GACf,OAAO,CAAC,cAAc,CAAC,CAkDzB"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `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).
|
|
3
|
-
*
|
|
4
|
-
* 💥 `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)
|
|
5
|
-
*
|
|
6
|
-
* 🤏 `message`s are not displayed in production environments to help keep bundles small
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
*
|
|
10
|
-
* ```ts
|
|
11
|
-
* const value: Person | null = { name: 'Alex' };
|
|
12
|
-
* invariant(value, 'Expected value to be a person');
|
|
13
|
-
* // type of `value`` has been narrowed to `Person`
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export declare function invariant(condition: any,
|
|
17
|
-
/**
|
|
18
|
-
* Can provide a string, or a function that returns a string for cases where
|
|
19
|
-
* the message takes a fair amount of effort to compute
|
|
20
|
-
*/
|
|
21
|
-
message?: string | (() => string)): asserts condition;
|
|
22
|
-
//# sourceMappingURL=invariant.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../utils/invariant.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,GAAG;AAEd;;;GAGG;AACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAChC,OAAO,CAAC,SAAS,CAsBnB"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import type { ExtendedChain } from '@lifi/types'
|
|
2
|
-
import type { Address, Client } from 'viem'
|
|
3
|
-
import { multicall, readContract } from 'viem/actions'
|
|
4
|
-
import { eip2612Abi } from './abi.js'
|
|
5
|
-
import { getMulticallAddress } from './utils.js'
|
|
6
|
-
|
|
7
|
-
export type NativePermitData = {
|
|
8
|
-
name: string
|
|
9
|
-
version: string
|
|
10
|
-
nonce: bigint
|
|
11
|
-
supported: boolean
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Retrieves native permit data (EIP-2612) for a token on a specific chain
|
|
15
|
-
* @link https://eips.ethereum.org/EIPS/eip-2612
|
|
16
|
-
* @param client - The Viem client instance
|
|
17
|
-
* @param chain - The extended chain object containing chain details
|
|
18
|
-
* @param tokenAddress - The address of the token to check for permit support
|
|
19
|
-
* @returns {Promise<NativePermitData>} Object containing permit data including name, version, nonce and support status
|
|
20
|
-
*/
|
|
21
|
-
export const getNativePermit = async (
|
|
22
|
-
client: Client,
|
|
23
|
-
chain: ExtendedChain,
|
|
24
|
-
tokenAddress: Address
|
|
25
|
-
): Promise<NativePermitData> => {
|
|
26
|
-
try {
|
|
27
|
-
const multicallAddress = await getMulticallAddress(chain.id)
|
|
28
|
-
|
|
29
|
-
if (multicallAddress) {
|
|
30
|
-
const [nameResult, domainSeparatorResult, noncesResult, versionResult] =
|
|
31
|
-
await multicall(client, {
|
|
32
|
-
contracts: [
|
|
33
|
-
{
|
|
34
|
-
address: tokenAddress,
|
|
35
|
-
abi: eip2612Abi,
|
|
36
|
-
functionName: 'name',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
address: tokenAddress,
|
|
40
|
-
abi: eip2612Abi,
|
|
41
|
-
functionName: 'DOMAIN_SEPARATOR',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
address: tokenAddress,
|
|
45
|
-
abi: eip2612Abi,
|
|
46
|
-
functionName: 'nonces',
|
|
47
|
-
args: [client.account!.address],
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
address: tokenAddress,
|
|
51
|
-
abi: eip2612Abi,
|
|
52
|
-
functionName: 'version',
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
multicallAddress,
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
const supported =
|
|
59
|
-
nameResult.status === 'success' &&
|
|
60
|
-
domainSeparatorResult.status === 'success' &&
|
|
61
|
-
noncesResult.status === 'success' &&
|
|
62
|
-
!!nameResult.result &&
|
|
63
|
-
!!domainSeparatorResult.result &&
|
|
64
|
-
noncesResult.result !== undefined
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
name: nameResult.result!,
|
|
68
|
-
version: versionResult.result ?? '1',
|
|
69
|
-
nonce: noncesResult.result!,
|
|
70
|
-
supported,
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Fallback to individual calls
|
|
75
|
-
const [name, domainSeparator, nonce, version] = await Promise.all([
|
|
76
|
-
readContract(client, {
|
|
77
|
-
address: tokenAddress,
|
|
78
|
-
abi: eip2612Abi,
|
|
79
|
-
functionName: 'name',
|
|
80
|
-
}),
|
|
81
|
-
readContract(client, {
|
|
82
|
-
address: tokenAddress,
|
|
83
|
-
abi: eip2612Abi,
|
|
84
|
-
functionName: 'DOMAIN_SEPARATOR',
|
|
85
|
-
}),
|
|
86
|
-
readContract(client, {
|
|
87
|
-
address: tokenAddress,
|
|
88
|
-
abi: eip2612Abi,
|
|
89
|
-
functionName: 'nonces',
|
|
90
|
-
args: [client.account!.address],
|
|
91
|
-
}),
|
|
92
|
-
readContract(client, {
|
|
93
|
-
address: tokenAddress,
|
|
94
|
-
abi: eip2612Abi,
|
|
95
|
-
functionName: 'version',
|
|
96
|
-
}),
|
|
97
|
-
])
|
|
98
|
-
|
|
99
|
-
return {
|
|
100
|
-
name,
|
|
101
|
-
version: version ?? '1',
|
|
102
|
-
nonce,
|
|
103
|
-
supported: !!name && !!domainSeparator && nonce !== undefined,
|
|
104
|
-
}
|
|
105
|
-
} catch {
|
|
106
|
-
return {
|
|
107
|
-
name: '',
|
|
108
|
-
version: '1',
|
|
109
|
-
nonce: 0n,
|
|
110
|
-
supported: false,
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|