@lifi/sdk 3.5.2 → 3.6.0-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.
- package/package.json +1 -1
- package/src/_cjs/constants.js +4 -2
- package/src/_cjs/constants.js.map +1 -1
- package/src/_cjs/core/EVM/EVM.js +0 -4
- package/src/_cjs/core/EVM/EVM.js.map +1 -1
- package/src/_cjs/core/EVM/EVMStepExecutor.js +156 -81
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/abi.js +36 -43
- package/src/_cjs/core/EVM/abi.js.map +1 -1
- package/src/_cjs/core/EVM/checkAllowance.js +36 -30
- 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/getNativePermit.js +90 -0
- package/src/_cjs/core/EVM/getNativePermit.js.map +1 -0
- package/src/_cjs/core/EVM/parseEVMErrors.js +5 -2
- package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -1
- package/src/_cjs/core/EVM/permit2/allowanceTransfer.js +100 -0
- package/src/_cjs/core/EVM/permit2/allowanceTransfer.js.map +1 -0
- package/src/_cjs/core/EVM/permit2/constants.js +12 -0
- package/src/_cjs/core/EVM/permit2/constants.js.map +1 -0
- package/src/_cjs/core/EVM/permit2/domain.js +12 -0
- package/src/_cjs/core/EVM/permit2/domain.js.map +1 -0
- package/src/_cjs/core/EVM/permit2/signatureTransfer.js +121 -0
- package/src/_cjs/core/EVM/permit2/signatureTransfer.js.map +1 -0
- package/src/_cjs/core/EVM/setAllowance.js +3 -4
- package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/signPermitMessage.js +169 -0
- package/src/_cjs/core/EVM/signPermitMessage.js.map +1 -0
- package/src/_cjs/core/EVM/typeguards.js +8 -0
- package/src/_cjs/core/EVM/typeguards.js.map +1 -0
- package/src/_cjs/core/EVM/types.js.map +1 -1
- package/src/_cjs/core/EVM/utils.js +2 -1
- package/src/_cjs/core/EVM/utils.js.map +1 -1
- package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js +32 -0
- package/src/_cjs/core/EVM/waitForBatchTransactionReceipt.js.map +1 -0
- package/src/_cjs/core/EVM/waitForRelayedTransactionReceipt.js +40 -0
- package/src/_cjs/core/EVM/waitForRelayedTransactionReceipt.js.map +1 -0
- package/src/_cjs/core/checkBalance.js +3 -3
- package/src/_cjs/core/checkBalance.js.map +1 -1
- package/src/_cjs/core/waitForTransactionStatus.js +4 -2
- package/src/_cjs/core/waitForTransactionStatus.js.map +1 -1
- package/src/_cjs/createConfig.js +2 -2
- package/src/_cjs/createConfig.js.map +1 -1
- package/src/_cjs/errors/constants.js +1 -0
- package/src/_cjs/errors/constants.js.map +1 -1
- package/src/_cjs/index.js +9 -6
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/services/api.js +127 -53
- package/src/_cjs/services/api.js.map +1 -1
- package/src/_cjs/utils/checkPackageUpdates.js +20 -0
- package/src/_cjs/utils/checkPackageUpdates.js.map +1 -0
- package/src/_cjs/utils/convertQuoteToRoute.js +33 -0
- package/src/_cjs/utils/convertQuoteToRoute.js.map +1 -0
- package/src/_cjs/utils/fetchTxErrorDetails.js +13 -0
- package/src/_cjs/utils/fetchTxErrorDetails.js.map +1 -0
- package/src/_cjs/utils/invariant.js +17 -0
- package/src/_cjs/utils/invariant.js.map +1 -0
- package/src/_cjs/utils/waitForResult.js +16 -3
- package/src/_cjs/utils/waitForResult.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_cjs/version.js.map +1 -1
- package/src/_esm/constants.js +3 -1
- package/src/_esm/constants.js.map +1 -1
- package/src/_esm/core/EVM/EVM.js +0 -4
- package/src/_esm/core/EVM/EVM.js.map +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +186 -92
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/abi.js +37 -42
- package/src/_esm/core/EVM/abi.js.map +1 -1
- package/src/_esm/core/EVM/checkAllowance.js +41 -32
- 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/getNativePermit.js +95 -0
- package/src/_esm/core/EVM/getNativePermit.js.map +1 -0
- package/src/_esm/core/EVM/parseEVMErrors.js +9 -1
- package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -1
- package/src/_esm/core/EVM/permit2/allowanceTransfer.js +93 -0
- package/src/_esm/core/EVM/permit2/allowanceTransfer.js.map +1 -0
- package/src/_esm/core/EVM/permit2/constants.js +9 -0
- package/src/_esm/core/EVM/permit2/constants.js.map +1 -0
- package/src/_esm/core/EVM/permit2/domain.js +9 -0
- package/src/_esm/core/EVM/permit2/domain.js.map +1 -0
- package/src/_esm/core/EVM/permit2/signatureTransfer.js +117 -0
- package/src/_esm/core/EVM/permit2/signatureTransfer.js.map +1 -0
- package/src/_esm/core/EVM/setAllowance.js +3 -4
- package/src/_esm/core/EVM/setAllowance.js.map +1 -1
- package/src/_esm/core/EVM/signPermitMessage.js +163 -0
- package/src/_esm/core/EVM/signPermitMessage.js.map +1 -0
- package/src/_esm/core/EVM/typeguards.js +5 -0
- package/src/_esm/core/EVM/typeguards.js.map +1 -0
- package/src/_esm/core/EVM/types.js.map +1 -1
- package/src/_esm/core/EVM/utils.js +2 -1
- package/src/_esm/core/EVM/utils.js.map +1 -1
- package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js +28 -0
- package/src/_esm/core/EVM/waitForBatchTransactionReceipt.js.map +1 -0
- package/src/_esm/core/EVM/waitForRelayedTransactionReceipt.js +36 -0
- package/src/_esm/core/EVM/waitForRelayedTransactionReceipt.js.map +1 -0
- package/src/_esm/core/checkBalance.js +3 -3
- package/src/_esm/core/checkBalance.js.map +1 -1
- package/src/_esm/core/waitForTransactionStatus.js +4 -2
- package/src/_esm/core/waitForTransactionStatus.js.map +1 -1
- package/src/_esm/createConfig.js +1 -1
- package/src/_esm/createConfig.js.map +1 -1
- package/src/_esm/errors/constants.js +1 -0
- package/src/_esm/errors/constants.js.map +1 -1
- package/src/_esm/index.js +4 -2
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/services/api.js +165 -72
- package/src/_esm/services/api.js.map +1 -1
- package/src/_esm/utils/checkPackageUpdates.js +17 -0
- package/src/_esm/utils/checkPackageUpdates.js.map +1 -0
- package/src/_esm/utils/convertQuoteToRoute.js +37 -0
- package/src/_esm/utils/convertQuoteToRoute.js.map +1 -0
- package/src/_esm/utils/fetchTxErrorDetails.js +9 -0
- package/src/_esm/utils/fetchTxErrorDetails.js.map +1 -0
- package/src/_esm/utils/invariant.js +43 -0
- package/src/_esm/utils/invariant.js.map +1 -0
- package/src/_esm/utils/waitForResult.js +19 -3
- package/src/_esm/utils/waitForResult.js.map +1 -1
- package/src/_esm/version.js +1 -1
- package/src/_esm/version.js.map +1 -1
- package/src/_types/constants.d.ts +3 -1
- 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 +7 -4
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
- package/src/_types/core/EVM/abi.d.ts +202 -5
- package/src/_types/core/EVM/abi.d.ts.map +1 -1
- package/src/_types/core/EVM/checkAllowance.d.ts +12 -2
- package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/getAllowance.d.ts +5 -4
- package/src/_types/core/EVM/getAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/getEVMBalance.d.ts +2 -1
- package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -1
- package/src/_types/core/EVM/getNativePermit.d.ts +18 -0
- package/src/_types/core/EVM/getNativePermit.d.ts.map +1 -0
- package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts +41 -0
- package/src/_types/core/EVM/permit2/allowanceTransfer.d.ts.map +1 -0
- package/src/_types/core/EVM/permit2/constants.d.ts +8 -0
- package/src/_types/core/EVM/permit2/constants.d.ts.map +1 -0
- package/src/_types/core/EVM/permit2/domain.d.ts +8 -0
- package/src/_types/core/EVM/permit2/domain.d.ts.map +1 -0
- package/src/_types/core/EVM/permit2/signatureTransfer.d.ts +42 -0
- package/src/_types/core/EVM/permit2/signatureTransfer.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/signPermitMessage.d.ts +25 -0
- package/src/_types/core/EVM/signPermitMessage.d.ts.map +1 -0
- package/src/_types/core/EVM/typeguards.d.ts +4 -0
- package/src/_types/core/EVM/typeguards.d.ts.map +1 -0
- package/src/_types/core/EVM/types.d.ts +8 -18
- 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/EVM/waitForBatchTransactionReceipt.d.ts +4 -0
- package/src/_types/core/EVM/waitForBatchTransactionReceipt.d.ts.map +1 -0
- package/src/_types/core/EVM/waitForRelayedTransactionReceipt.d.ts +4 -0
- package/src/_types/core/EVM/waitForRelayedTransactionReceipt.d.ts.map +1 -0
- package/src/_types/core/checkBalance.d.ts.map +1 -1
- package/src/_types/core/waitForTransactionStatus.d.ts.map +1 -1
- package/src/_types/createConfig.d.ts.map +1 -1
- package/src/_types/errors/constants.d.ts +2 -1
- package/src/_types/errors/constants.d.ts.map +1 -1
- package/src/_types/index.d.ts +5 -3
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/services/api.d.ts +93 -26
- package/src/_types/services/api.d.ts.map +1 -1
- package/src/_types/utils/checkPackageUpdates.d.ts +2 -0
- package/src/_types/utils/checkPackageUpdates.d.ts.map +1 -0
- package/src/_types/utils/convertQuoteToRoute.d.ts +11 -0
- package/src/_types/utils/convertQuoteToRoute.d.ts.map +1 -0
- package/src/_types/utils/fetchTxErrorDetails.d.ts +2 -0
- package/src/_types/utils/fetchTxErrorDetails.d.ts.map +1 -0
- package/src/_types/utils/invariant.d.ts +22 -0
- package/src/_types/utils/invariant.d.ts.map +1 -0
- package/src/_types/utils/waitForResult.d.ts +4 -1
- package/src/_types/utils/waitForResult.d.ts.map +1 -1
- package/src/_types/version.d.ts +1 -1
- package/src/_types/version.d.ts.map +1 -1
- package/src/constants.ts +6 -1
- package/src/core/EVM/EVM.ts +0 -4
- package/src/core/EVM/EVMStepExecutor.ts +239 -146
- package/src/core/EVM/abi.ts +40 -43
- package/src/core/EVM/checkAllowance.ts +96 -92
- package/src/core/EVM/getAllowance.ts +8 -8
- package/src/core/EVM/getEVMBalance.ts +2 -2
- package/src/core/EVM/getNativePermit.ts +114 -0
- package/src/core/EVM/parseEVMErrors.ts +9 -1
- package/src/core/EVM/permit2/allowanceTransfer.ts +168 -0
- package/src/core/EVM/permit2/constants.ts +11 -0
- package/src/core/EVM/permit2/domain.ts +20 -0
- package/src/core/EVM/permit2/signatureTransfer.ts +214 -0
- package/src/core/EVM/setAllowance.ts +14 -15
- package/src/core/EVM/signPermitMessage.ts +280 -0
- package/src/core/EVM/typeguards.ts +7 -0
- package/src/core/EVM/types.ts +11 -26
- package/src/core/EVM/utils.ts +4 -3
- package/src/core/EVM/waitForBatchTransactionReceipt.ts +61 -0
- package/src/core/EVM/waitForRelayedTransactionReceipt.ts +57 -0
- package/src/core/checkBalance.ts +6 -3
- package/src/core/waitForTransactionStatus.ts +6 -2
- package/src/createConfig.ts +1 -1
- package/src/errors/constants.ts +1 -0
- package/src/index.ts +4 -8
- package/src/services/api.ts +279 -105
- package/src/utils/checkPackageUpdates.ts +22 -0
- package/src/utils/convertQuoteToRoute.ts +45 -0
- package/src/utils/fetchTxErrorDetails.ts +10 -0
- package/src/utils/invariant.ts +51 -0
- package/src/utils/waitForResult.ts +22 -3
- package/src/version.ts +1 -1
- package/src/_cjs/core/EVM/multisig.js +0 -29
- package/src/_cjs/core/EVM/multisig.js.map +0 -1
- package/src/_cjs/helpers.js +0 -55
- package/src/_cjs/helpers.js.map +0 -1
- package/src/_esm/core/EVM/multisig.js +0 -25
- package/src/_esm/core/EVM/multisig.js.map +0 -1
- package/src/_esm/helpers.js +0 -58
- package/src/_esm/helpers.js.map +0 -1
- package/src/_types/core/EVM/multisig.d.ts +0 -6
- package/src/_types/core/EVM/multisig.d.ts.map +0 -1
- package/src/_types/helpers.d.ts +0 -13
- package/src/_types/helpers.d.ts.map +0 -1
- package/src/core/EVM/multisig.ts +0 -54
- package/src/helpers.ts +0 -75
|
@@ -1,19 +1,24 @@
|
|
|
1
|
-
import { getAddresses, sendTransaction } from 'viem/actions';
|
|
1
|
+
import { estimateGas, getAddresses, sendTransaction } from 'viem/actions';
|
|
2
|
+
import { getCapabilities, sendCalls } from 'viem/experimental';
|
|
2
3
|
import { getAction } from 'viem/utils';
|
|
3
4
|
import { config } from '../../config.js';
|
|
4
5
|
import { LiFiErrorCode } from '../../errors/constants.js';
|
|
5
|
-
import { TransactionError
|
|
6
|
-
import { getStepTransaction } from '../../services/api.js';
|
|
6
|
+
import { TransactionError } from '../../errors/errors.js';
|
|
7
|
+
import { getRelayerQuote, getStepTransaction, relayTransaction, } from '../../services/api.js';
|
|
7
8
|
import { isZeroAddress } from '../../utils/isZeroAddress.js';
|
|
8
9
|
import { BaseStepExecutor } from '../BaseStepExecutor.js';
|
|
9
10
|
import { checkBalance } from '../checkBalance.js';
|
|
10
11
|
import { stepComparison } from '../stepComparison.js';
|
|
11
12
|
import { waitForDestinationChainTransaction } from '../waitForDestinationChainTransaction.js';
|
|
12
13
|
import { checkAllowance } from './checkAllowance.js';
|
|
13
|
-
import {
|
|
14
|
+
import { getNativePermit } from './getNativePermit.js';
|
|
14
15
|
import { parseEVMErrors } from './parseEVMErrors.js';
|
|
16
|
+
import { signPermitMessage } from './signPermitMessage.js';
|
|
15
17
|
import { switchChain } from './switchChain.js';
|
|
18
|
+
import { isEVMPermitStep } from './typeguards.js';
|
|
16
19
|
import { getMaxPriorityFeePerGas } from './utils.js';
|
|
20
|
+
import { waitForBatchTransactionReceipt, } from './waitForBatchTransactionReceipt.js';
|
|
21
|
+
import { waitForRelayedTransactionReceipt } from './waitForRelayedTransactionReceipt.js';
|
|
17
22
|
import { waitForTransactionReceipt } from './waitForTransactionReceipt.js';
|
|
18
23
|
export class EVMStepExecutor extends BaseStepExecutor {
|
|
19
24
|
constructor(options) {
|
|
@@ -24,12 +29,6 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
24
29
|
writable: true,
|
|
25
30
|
value: void 0
|
|
26
31
|
});
|
|
27
|
-
Object.defineProperty(this, "multisig", {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true,
|
|
30
|
-
writable: true,
|
|
31
|
-
value: void 0
|
|
32
|
-
});
|
|
33
32
|
// Ensure that we are using the right chain and wallet when executing transactions.
|
|
34
33
|
Object.defineProperty(this, "checkClient", {
|
|
35
34
|
enumerable: true,
|
|
@@ -86,29 +85,68 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
86
85
|
return step;
|
|
87
86
|
}
|
|
88
87
|
}
|
|
89
|
-
const isMultisigClient = !!this.multisig?.isMultisigWalletClient;
|
|
90
|
-
const multisigBatchTransactions = [];
|
|
91
|
-
const shouldBatchTransactions = this.multisig?.shouldBatchTransactions &&
|
|
92
|
-
!!this.multisig.sendBatchTransaction;
|
|
93
88
|
const fromChain = await config.getChainById(step.action.fromChainId);
|
|
94
89
|
const toChain = await config.getChainById(step.action.toChainId);
|
|
90
|
+
let atomicBatchSupported = false;
|
|
91
|
+
try {
|
|
92
|
+
const capabilities = (await getAction(this.client, getCapabilities, 'getCapabilities')(undefined));
|
|
93
|
+
atomicBatchSupported = capabilities[fromChain.id]?.atomicBatch?.supported;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// If the wallet does not support getCapabilities, we assume that atomic batch is not supported
|
|
97
|
+
}
|
|
98
|
+
const calls = [];
|
|
95
99
|
const isBridgeExecution = fromChain.id !== toChain.id;
|
|
96
100
|
const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
|
|
97
|
-
//
|
|
101
|
+
// Find existing swap/bridge process
|
|
98
102
|
const existingProcess = step.execution.process.find((p) => p.type === currentProcessType);
|
|
99
|
-
// Check
|
|
100
|
-
const
|
|
103
|
+
// Check if step requires permit signature and will be used with relayer service
|
|
104
|
+
const isPermitStep = isEVMPermitStep(step);
|
|
105
|
+
// Check if token requires approval
|
|
106
|
+
// Native tokens (like ETH) don't need approval since they're not ERC20 tokens
|
|
107
|
+
// We should support different permit types:
|
|
108
|
+
// 1. Native permits (EIP-2612)
|
|
109
|
+
// 2. Permit2 - Universal permit implementation by Uniswap (limited to certain chains)
|
|
110
|
+
// 3. Standard ERC20 approval
|
|
111
|
+
const nativePermit = await getNativePermit(this.client, fromChain, step.action.fromToken.address);
|
|
112
|
+
// Check if proxy contract is available and token supports native permits, not available for atomic batch
|
|
113
|
+
const nativePermitSupported = !!fromChain.permit2Proxy &&
|
|
114
|
+
nativePermit.supported &&
|
|
115
|
+
!atomicBatchSupported &&
|
|
116
|
+
!isPermitStep;
|
|
117
|
+
// Check if chain has Permit2 contract deployed. Permit2 should not be available for atomic batch.
|
|
118
|
+
const permit2Supported = !!fromChain.permit2 && !!fromChain.permit2Proxy && !atomicBatchSupported;
|
|
119
|
+
// Token supports either native permits or Permit2
|
|
120
|
+
const permitSupported = permit2Supported || nativePermitSupported;
|
|
121
|
+
const checkForAllowance =
|
|
122
|
+
// No existing swap/bridgetransaction is pending
|
|
123
|
+
!existingProcess?.txHash &&
|
|
124
|
+
// Token is not native (address is not zero)
|
|
101
125
|
!isZeroAddress(step.action.fromToken.address) &&
|
|
102
|
-
|
|
126
|
+
// Token doesn't support native permits
|
|
127
|
+
!nativePermitSupported;
|
|
103
128
|
if (checkForAllowance) {
|
|
104
|
-
|
|
129
|
+
// Check if token needs approval and get approval transaction or message data when available
|
|
130
|
+
const data = await checkAllowance({
|
|
131
|
+
client: this.client,
|
|
132
|
+
chain: fromChain,
|
|
133
|
+
step,
|
|
134
|
+
statusManager: this.statusManager,
|
|
135
|
+
executionOptions: this.executionOptions,
|
|
136
|
+
allowUserInteraction: this.allowUserInteraction,
|
|
137
|
+
atomicBatchSupported,
|
|
138
|
+
permit2Supported,
|
|
139
|
+
});
|
|
105
140
|
if (data) {
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
141
|
+
// Create approval transaction call
|
|
142
|
+
// No value needed since we're only approving ERC20 tokens
|
|
143
|
+
if (atomicBatchSupported) {
|
|
144
|
+
calls.push({
|
|
145
|
+
chainId: step.action.fromToken.chainId,
|
|
146
|
+
to: step.action.fromToken.address,
|
|
147
|
+
data,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
112
150
|
}
|
|
113
151
|
}
|
|
114
152
|
let process = this.statusManager.findOrCreateProcess({
|
|
@@ -117,15 +155,7 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
117
155
|
chainId: fromChain.id,
|
|
118
156
|
});
|
|
119
157
|
if (process.status !== 'DONE') {
|
|
120
|
-
const multisigProcess = step.execution.process.find((p) => !!p.multisigTxHash);
|
|
121
158
|
try {
|
|
122
|
-
if (isMultisigClient && multisigProcess) {
|
|
123
|
-
const multisigTxHash = multisigProcess.multisigTxHash;
|
|
124
|
-
if (!multisigTxHash) {
|
|
125
|
-
throw new ValidationError('Multisig internal transaction hash is undefined.');
|
|
126
|
-
}
|
|
127
|
-
await updateMultisigRouteProcess(multisigTxHash, step, process.type, fromChain, this.statusManager, this.multisig);
|
|
128
|
-
}
|
|
129
159
|
let txHash;
|
|
130
160
|
if (process.txHash) {
|
|
131
161
|
// Make sure that the chain is still correct
|
|
@@ -140,10 +170,31 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
140
170
|
process = this.statusManager.updateProcess(step, process.type, 'STARTED');
|
|
141
171
|
// Check balance
|
|
142
172
|
await checkBalance(this.client.account.address, step);
|
|
143
|
-
// Create new transaction
|
|
173
|
+
// Create new transaction request
|
|
144
174
|
if (!step.transactionRequest) {
|
|
145
175
|
const { execution, ...stepBase } = step;
|
|
146
|
-
|
|
176
|
+
let updatedStep;
|
|
177
|
+
if (isPermitStep) {
|
|
178
|
+
const updatedRelayedStep = await getRelayerQuote({
|
|
179
|
+
fromChain: stepBase.action.fromChainId,
|
|
180
|
+
fromToken: stepBase.action.fromToken.address,
|
|
181
|
+
fromAddress: stepBase.action.fromAddress,
|
|
182
|
+
fromAmount: stepBase.action.fromAmount,
|
|
183
|
+
toChain: stepBase.action.toChainId,
|
|
184
|
+
toToken: stepBase.action.toToken.address,
|
|
185
|
+
slippage: stepBase.action.slippage,
|
|
186
|
+
toAddress: stepBase.action.toAddress,
|
|
187
|
+
allowBridges: [stepBase.tool],
|
|
188
|
+
});
|
|
189
|
+
updatedStep = {
|
|
190
|
+
...updatedRelayedStep.data.quote.step,
|
|
191
|
+
...updatedRelayedStep.data.quote,
|
|
192
|
+
id: stepBase.id,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
updatedStep = await getStepTransaction(stepBase);
|
|
197
|
+
}
|
|
147
198
|
const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
|
|
148
199
|
Object.assign(step, {
|
|
149
200
|
...comparedStep,
|
|
@@ -153,15 +204,6 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
153
204
|
if (!step.transactionRequest) {
|
|
154
205
|
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
155
206
|
}
|
|
156
|
-
// Make sure that the chain is still correct
|
|
157
|
-
const updatedClient = await this.checkClient(step, process);
|
|
158
|
-
if (!updatedClient) {
|
|
159
|
-
return step;
|
|
160
|
-
}
|
|
161
|
-
process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
|
|
162
|
-
if (!this.allowUserInteraction) {
|
|
163
|
-
return step;
|
|
164
|
-
}
|
|
165
207
|
let transactionRequest = {
|
|
166
208
|
to: step.transactionRequest.to,
|
|
167
209
|
from: step.transactionRequest.from,
|
|
@@ -194,65 +236,118 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
194
236
|
...customizedTransactionRequest,
|
|
195
237
|
};
|
|
196
238
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
to: transactionRequest.to,
|
|
202
|
-
data: transactionRequest.data,
|
|
203
|
-
};
|
|
204
|
-
multisigBatchTransactions.push(populatedTransaction);
|
|
205
|
-
txHash = await this.multisig?.sendBatchTransaction(multisigBatchTransactions);
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
209
|
-
}
|
|
239
|
+
// Make sure that the chain is still correct
|
|
240
|
+
const updatedClient = await this.checkClient(step, process);
|
|
241
|
+
if (!updatedClient) {
|
|
242
|
+
return step;
|
|
210
243
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
244
|
+
process = this.statusManager.updateProcess(step, process.type, permitSupported ? 'PERMIT_REQUIRED' : 'ACTION_REQUIRED');
|
|
245
|
+
if (!this.allowUserInteraction) {
|
|
246
|
+
return step;
|
|
247
|
+
}
|
|
248
|
+
if (atomicBatchSupported) {
|
|
249
|
+
const transferCall = {
|
|
250
|
+
chainId: fromChain.id,
|
|
215
251
|
data: transactionRequest.data,
|
|
252
|
+
to: transactionRequest.to,
|
|
216
253
|
value: transactionRequest.value,
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
if (isMultisigClient) {
|
|
225
|
-
process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED', {
|
|
226
|
-
multisigTxHash: txHash,
|
|
227
|
-
});
|
|
254
|
+
};
|
|
255
|
+
calls.push(transferCall);
|
|
256
|
+
txHash = (await getAction(this.client, sendCalls, 'sendCalls')({
|
|
257
|
+
account: this.client.account,
|
|
258
|
+
calls,
|
|
259
|
+
}));
|
|
228
260
|
}
|
|
229
261
|
else {
|
|
230
|
-
|
|
262
|
+
let permitSignature;
|
|
263
|
+
if (permitSupported) {
|
|
264
|
+
permitSignature = await signPermitMessage(this.client, {
|
|
265
|
+
transactionRequest,
|
|
266
|
+
chain: fromChain,
|
|
267
|
+
tokenAddress: step.action.fromToken.address,
|
|
268
|
+
amount: BigInt(step.action.fromAmount),
|
|
269
|
+
nativePermit,
|
|
270
|
+
permitData: isPermitStep ? step.permitData : undefined,
|
|
271
|
+
useWitness: isPermitStep,
|
|
272
|
+
});
|
|
273
|
+
transactionRequest.to = fromChain.permit2Proxy;
|
|
274
|
+
}
|
|
275
|
+
if (isPermitStep && permitSignature) {
|
|
276
|
+
const relayedTransaction = await relayTransaction({
|
|
277
|
+
tokenOwner: this.client.account.address,
|
|
278
|
+
chainId: fromChain.id,
|
|
279
|
+
permit: step.permit,
|
|
280
|
+
witness: step.witness,
|
|
281
|
+
signedPermitData: permitSignature.signature,
|
|
282
|
+
callData: transactionRequest.data,
|
|
283
|
+
});
|
|
284
|
+
txHash = relayedTransaction.data.taskId;
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
if (permitSignature) {
|
|
288
|
+
// If we have a permit signature, we need to use updated data
|
|
289
|
+
transactionRequest.data = permitSignature.data;
|
|
290
|
+
try {
|
|
291
|
+
// Try to re-estimate the gas due to additional Permit data
|
|
292
|
+
transactionRequest.gas = await estimateGas(this.client, {
|
|
293
|
+
account: this.client.account,
|
|
294
|
+
to: transactionRequest.to,
|
|
295
|
+
data: transactionRequest.data,
|
|
296
|
+
value: transactionRequest.value,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
// Let the wallet estimate the gas in case of failure
|
|
301
|
+
transactionRequest.gas = undefined;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
|
|
305
|
+
txHash = await getAction(this.client, sendTransaction, 'sendTransaction')({
|
|
306
|
+
to: transactionRequest.to,
|
|
307
|
+
account: this.client.account,
|
|
308
|
+
data: transactionRequest.data,
|
|
309
|
+
value: transactionRequest.value,
|
|
310
|
+
gas: transactionRequest.gas,
|
|
311
|
+
gasPrice: transactionRequest.gasPrice,
|
|
312
|
+
maxFeePerGas: transactionRequest.maxFeePerGas,
|
|
313
|
+
maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
process = this.statusManager.updateProcess(step, process.type, 'PENDING',
|
|
318
|
+
// When atomic batch is supported, txHash represents the batch hash rather than an individual transaction hash at this point
|
|
319
|
+
atomicBatchSupported
|
|
320
|
+
? {
|
|
321
|
+
atomicBatchSupported,
|
|
322
|
+
}
|
|
323
|
+
: {
|
|
231
324
|
txHash: txHash,
|
|
232
325
|
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
|
|
233
326
|
});
|
|
234
|
-
}
|
|
235
327
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
328
|
+
let transactionReceipt;
|
|
329
|
+
if (atomicBatchSupported) {
|
|
330
|
+
transactionReceipt = await waitForBatchTransactionReceipt(this.client, txHash);
|
|
331
|
+
}
|
|
332
|
+
else if (isPermitStep) {
|
|
333
|
+
transactionReceipt = await waitForRelayedTransactionReceipt(txHash);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
transactionReceipt = await waitForTransactionReceipt({
|
|
337
|
+
client: this.client,
|
|
338
|
+
chainId: fromChain.id,
|
|
339
|
+
txHash,
|
|
340
|
+
onReplaced: (response) => {
|
|
341
|
+
this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
342
|
+
txHash: response.transaction.hash,
|
|
343
|
+
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
|
|
344
|
+
});
|
|
345
|
+
},
|
|
346
|
+
});
|
|
251
347
|
}
|
|
252
348
|
// Update pending process if the transaction hash from the receipt is different.
|
|
253
349
|
// This might happen if the transaction was replaced.
|
|
254
|
-
if (
|
|
255
|
-
transactionReceipt?.transactionHash &&
|
|
350
|
+
if (transactionReceipt?.transactionHash &&
|
|
256
351
|
transactionReceipt.transactionHash !== txHash) {
|
|
257
352
|
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
258
353
|
txHash: transactionReceipt.transactionHash,
|
|
@@ -294,7 +389,6 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
294
389
|
}
|
|
295
390
|
});
|
|
296
391
|
this.client = options.client;
|
|
297
|
-
this.multisig = options.multisig;
|
|
298
392
|
}
|
|
299
393
|
}
|
|
300
394
|
//# sourceMappingURL=EVMStepExecutor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EVMStepExecutor.js","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EVMStepExecutor.js","sourceRoot":"","sources":["../../../core/EVM/EVMStepExecutor.ts"],"names":[],"mappings":"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"}
|
package/src/_esm/core/EVM/abi.js
CHANGED
|
@@ -1,43 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
outputs: [{ name: 'balance', type: 'uint256' }],
|
|
39
|
-
type: 'function',
|
|
40
|
-
stateMutability: 'view',
|
|
41
|
-
},
|
|
42
|
-
];
|
|
1
|
+
import { parseAbi } from 'viem';
|
|
2
|
+
export const permit2ProxyAbi = parseAbi([
|
|
3
|
+
'function callDiamondWithPermit2(bytes, ((address, uint256), uint256, uint256), bytes) external',
|
|
4
|
+
'function callDiamondWithEIP2612Signature(address, uint256, uint256, uint8, bytes32, bytes32, bytes) external payable',
|
|
5
|
+
'function nextNonce(address) external view returns (uint256)',
|
|
6
|
+
'function callDiamondWithPermit2Witness(bytes, address, ((address, uint256), uint256, uint256), bytes) external payable',
|
|
7
|
+
]);
|
|
8
|
+
export const eip2612Abi = parseAbi([
|
|
9
|
+
'function permit(address, address, uint256, uint256, uint8, bytes32, bytes32) external',
|
|
10
|
+
'function DOMAIN_SEPARATOR() external view returns (bytes32)',
|
|
11
|
+
'function nonces(address) external view returns (uint256)',
|
|
12
|
+
'function name() external view returns (string)',
|
|
13
|
+
'function version() external view returns (string)',
|
|
14
|
+
]);
|
|
15
|
+
export const approveAbi = parseAbi([
|
|
16
|
+
'function approve(address, uint256) external returns (bool)',
|
|
17
|
+
]);
|
|
18
|
+
export const allowanceAbi = parseAbi([
|
|
19
|
+
'function allowance(address, address) external view returns (uint256)',
|
|
20
|
+
]);
|
|
21
|
+
export const getEthBalanceAbi = parseAbi([
|
|
22
|
+
'function getEthBalance(address) external view returns (uint256)',
|
|
23
|
+
]);
|
|
24
|
+
export const balanceOfAbi = parseAbi([
|
|
25
|
+
'function balanceOf(address) external view returns (uint256)',
|
|
26
|
+
]);
|
|
27
|
+
// EIP-2612 types
|
|
28
|
+
// https://eips.ethereum.org/EIPS/eip-2612
|
|
29
|
+
export const eip2612Types = {
|
|
30
|
+
Permit: [
|
|
31
|
+
{ name: 'owner', type: 'address' },
|
|
32
|
+
{ name: 'spender', type: 'address' },
|
|
33
|
+
{ name: 'value', type: 'uint256' },
|
|
34
|
+
{ name: 'nonce', type: 'uint256' },
|
|
35
|
+
{ name: 'deadline', type: 'uint256' },
|
|
36
|
+
],
|
|
37
|
+
};
|
|
43
38
|
//# sourceMappingURL=abi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../core/EVM/abi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../core/EVM/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;IACtC,gGAAgG;IAChG,sHAAsH;IACtH,6DAA6D;IAC7D,wHAAwH;CACzH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,uFAAuF;IACvF,6DAA6D;IAC7D,0DAA0D;IAC1D,gDAAgD;IAChD,mDAAmD;CACpD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,4DAA4D;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,sEAAsE;CACvE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,iEAAiE;CAClE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,6DAA6D;CAC9D,CAAC,CAAA;AAEF,iBAAiB;AACjB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KACtC;CACO,CAAA"}
|
|
@@ -1,43 +1,49 @@
|
|
|
1
|
+
import { MaxUint256 } from '../../constants.js';
|
|
1
2
|
import { getAllowance } from './getAllowance.js';
|
|
2
3
|
import { parseEVMErrors } from './parseEVMErrors.js';
|
|
3
4
|
import { setAllowance } from './setAllowance.js';
|
|
4
5
|
import { waitForTransactionReceipt } from './waitForTransactionReceipt.js';
|
|
5
|
-
export const checkAllowance = async (client, chain, step, statusManager,
|
|
6
|
-
//
|
|
7
|
-
|
|
6
|
+
export const checkAllowance = async ({ client, chain, step, statusManager, executionOptions, allowUserInteraction = false, atomicBatchSupported = false, permit2Supported = false, }) => {
|
|
7
|
+
// Find existing or create new allowance process
|
|
8
|
+
const allowanceProcess = statusManager.findOrCreateProcess({
|
|
8
9
|
step,
|
|
9
10
|
type: 'TOKEN_ALLOWANCE',
|
|
10
11
|
chainId: step.action.fromChainId,
|
|
11
12
|
});
|
|
12
|
-
// Check allowance
|
|
13
13
|
try {
|
|
14
|
+
// Handle existing pending transaction
|
|
14
15
|
if (allowanceProcess.txHash && allowanceProcess.status !== 'DONE') {
|
|
15
16
|
await waitForApprovalTransaction(client, allowanceProcess.txHash, allowanceProcess.type, step, chain, statusManager);
|
|
17
|
+
return;
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return approveTxHash;
|
|
29
|
-
}
|
|
30
|
-
const approveTxHash = await setAllowance(client, step.action.fromToken.address, step.estimate.approvalAddress, fromAmount);
|
|
31
|
-
await waitForApprovalTransaction(client, approveTxHash, allowanceProcess.type, step, chain, statusManager);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
allowanceProcess = statusManager.updateProcess(step, allowanceProcess.type, 'DONE');
|
|
35
|
-
}
|
|
19
|
+
// Start new allowance check
|
|
20
|
+
statusManager.updateProcess(step, allowanceProcess.type, 'STARTED');
|
|
21
|
+
const spenderAddress = permit2Supported
|
|
22
|
+
? chain.permit2
|
|
23
|
+
: step.estimate.approvalAddress;
|
|
24
|
+
const fromAmount = BigInt(step.action.fromAmount);
|
|
25
|
+
const approved = await getAllowance(chain.id, step.action.fromToken.address, client.account.address, spenderAddress);
|
|
26
|
+
// Return early if already approved
|
|
27
|
+
if (fromAmount <= approved) {
|
|
28
|
+
statusManager.updateProcess(step, allowanceProcess.type, 'DONE');
|
|
29
|
+
return;
|
|
36
30
|
}
|
|
31
|
+
if (!allowUserInteraction) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
statusManager.updateProcess(step, allowanceProcess.type, 'ACTION_REQUIRED');
|
|
35
|
+
// Set new allowance
|
|
36
|
+
const approveAmount = permit2Supported ? MaxUint256 : fromAmount;
|
|
37
|
+
const approveTxHash = await setAllowance(client, step.action.fromToken.address, spenderAddress, approveAmount, executionOptions, atomicBatchSupported);
|
|
38
|
+
if (atomicBatchSupported) {
|
|
39
|
+
statusManager.updateProcess(step, allowanceProcess.type, 'DONE');
|
|
40
|
+
return approveTxHash;
|
|
41
|
+
}
|
|
42
|
+
await waitForApprovalTransaction(client, approveTxHash, allowanceProcess.type, step, chain, statusManager);
|
|
37
43
|
}
|
|
38
44
|
catch (e) {
|
|
39
45
|
const error = await parseEVMErrors(e, step, allowanceProcess);
|
|
40
|
-
|
|
46
|
+
statusManager.updateProcess(step, allowanceProcess.type, 'FAILED', {
|
|
41
47
|
error: {
|
|
42
48
|
message: error.cause.message,
|
|
43
49
|
code: error.code,
|
|
@@ -48,25 +54,28 @@ export const checkAllowance = async (client, chain, step, statusManager, setting
|
|
|
48
54
|
}
|
|
49
55
|
};
|
|
50
56
|
const waitForApprovalTransaction = async (client, txHash, processType, step, chain, statusManager) => {
|
|
57
|
+
const baseExplorerUrl = chain.metamask.blockExplorerUrls[0];
|
|
58
|
+
const getTxLink = (hash) => `${baseExplorerUrl}tx/${hash}`;
|
|
51
59
|
statusManager.updateProcess(step, processType, 'PENDING', {
|
|
52
60
|
txHash,
|
|
53
|
-
txLink:
|
|
61
|
+
txLink: getTxLink(txHash),
|
|
54
62
|
});
|
|
55
63
|
const transactionReceipt = await waitForTransactionReceipt({
|
|
56
|
-
client
|
|
64
|
+
client,
|
|
57
65
|
chainId: chain.id,
|
|
58
|
-
txHash
|
|
66
|
+
txHash,
|
|
59
67
|
onReplaced(response) {
|
|
68
|
+
const newHash = response.transaction.hash;
|
|
60
69
|
statusManager.updateProcess(step, processType, 'PENDING', {
|
|
61
|
-
txHash:
|
|
62
|
-
txLink:
|
|
70
|
+
txHash: newHash,
|
|
71
|
+
txLink: getTxLink(newHash),
|
|
63
72
|
});
|
|
64
73
|
},
|
|
65
74
|
});
|
|
66
|
-
const
|
|
75
|
+
const finalHash = transactionReceipt?.transactionHash || txHash;
|
|
67
76
|
statusManager.updateProcess(step, processType, 'DONE', {
|
|
68
|
-
txHash:
|
|
69
|
-
txLink:
|
|
77
|
+
txHash: finalHash,
|
|
78
|
+
txLink: getTxLink(finalHash),
|
|
70
79
|
});
|
|
71
80
|
};
|
|
72
81
|
//# sourceMappingURL=checkAllowance.js.map
|