Transaction Hash:
Block:
21973384 at Mar-04-2025 11:59:59 AM +UTC
Transaction Fee:
0.0002854462 ETH
$1.03
Gas Used:
219,574 Gas / 1.3 Gwei
Emitted Events:
256 |
GaspToken.Approval( owner=[Sender] 0x3224cc4cebbb90efdd18947a5b47ace8175805f2, spender=[Receiver] ApprovalProxy, value=0 )
|
257 |
GaspToken.Transfer( from=[Sender] 0x3224cc4cebbb90efdd18947a5b47ace8175805f2, to=ERC20Router, value=213425203718100239639 )
|
258 |
GaspToken.Approval( owner=ERC20Router, spender=AllowanceHolder, value=213425203718100239639 )
|
259 |
TetherToken.Transfer( from=UniswapV3Pool, to=ERC20Router, value=17508116 )
|
260 |
GaspToken.Approval( owner=ERC20Router, spender=AllowanceHolder, value=0 )
|
261 |
GaspToken.Transfer( from=ERC20Router, to=UniswapV3Pool, value=213425203718100239639 )
|
262 |
UniswapV3Pool.Swap( sender=MainnetSettler, recipient=ERC20Router, amount0=213425203718100239639, amount1=-17508116, sqrtPriceX96=22725359349616388484705, liquidity=731870186799610892, tick=-301303 )
|
263 |
TetherToken.Transfer( from=ERC20Router, to=[Sender] 0x3224cc4cebbb90efdd18947a5b47ace8175805f2, value=17508116 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x2c21D8Fe...a9b816128 | (Uniswap V3: GASP-USDT) | ||||
0x3224Cc4c...8175805F2 |
0.0106352748602191 Eth
Nonce: 8
|
0.0103498286602191 Eth
Nonce: 9
| 0.0002854462 | ||
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 7.458607259613633106 Eth | 7.458709107913028218 Eth | 0.000101848299395112 | |
0x736ECc52...416b1d96E | |||||
0xdAC17F95...13D831ec7 |
Execution Trace
ApprovalProxy.transferAndMulticall( tokens=[0x736ECc5237B31eDec6f1aB9a396FaE2416b1d96E], amounts=[213425203718100239639], targets=[0x736ECc5237B31eDec6f1aB9a396FaE2416b1d96E, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x0000000000001fF3684f28c67538d4D072C22734, 0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB], datas=[CV6nswAAAAAAAAAAAAAAAAAAAAAAAB/zaE8oxnU41NBywic0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALkd6kAaS+RRc=, , IhO8CwAAAAAAAAAAAAAAAA0ONkqnhSKRiDwWKyLW2B9jVUKPAAAAAAAAAAAAAAAAc27MUjezHt7G8auaOW+uJBax2W4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuR3qQBpL5FFwAAAAAAAAAAAAAAAA0ONkqnhSKRiDwWKyLW2B9jVUKPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpB//mR8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoDiPDmV0PLnzxiURWQr0PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEIs5u3gAAAAAAAAAAAAAAAKG+pf6RdFAEF0jbu+fprFeku+urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAABzbsxSN7Me3sbxq5o5b64kFrHZbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5HepAGkvkUXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ8bsRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6qZoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALHNuzFI3sx7exvGrmjlvriQWsdluAAALuNrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, Pa0MnAAAAAAAAAAAAAAAANrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAMiTMTOu7kO/dGJR6W0es6BdYBfI=], values=[0, 0, 0, 0], refundTo=0x3224Cc4cEBBB90eFdd18947A5B47ACe8175805F2 ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000E0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000 )
-
GaspToken.transferFrom( owner=0x3224Cc4cEBBB90eFdd18947A5B47ACe8175805F2, recipient=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, amount=213425203718100239639 ) => ( True )
ERC20Router.delegatecallMulticall( targets=[0x736ECc5237B31eDec6f1aB9a396FaE2416b1d96E, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x0000000000001fF3684f28c67538d4D072C22734, 0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB], datas=[CV6nswAAAAAAAAAAAAAAAAAAAAAAAB/zaE8oxnU41NBywic0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALkd6kAaS+RRc=, , IhO8CwAAAAAAAAAAAAAAAA0ONkqnhSKRiDwWKyLW2B9jVUKPAAAAAAAAAAAAAAAAc27MUjezHt7G8auaOW+uJBax2W4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuR3qQBpL5FFwAAAAAAAAAAAAAAAA0ONkqnhSKRiDwWKyLW2B9jVUKPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpB//mR8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoDiPDmV0PLnzxiURWQr0PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEIs5u3gAAAAAAAAAAAAAAAKG+pf6RdFAEF0jbu+fprFeku+urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAABzbsxSN7Me3sbxq5o5b64kFrHZbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5HepAGkvkUXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ8bsRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6qZoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALHNuzFI3sx7exvGrmjlvriQWsdluAAALuNrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, Pa0MnAAAAAAAAAAAAAAAANrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAMiTMTOu7kO/dGJR6W0es6BdYBfI=], values=[0, 0, 0, 0], refundTo=0x3224Cc4cEBBB90eFdd18947A5B47ACe8175805F2 ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000E0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000 )
Multicaller.aggregate( targets=[0x736ECc5237B31eDec6f1aB9a396FaE2416b1d96E, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x0000000000001fF3684f28c67538d4D072C22734, 0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB], data=[CV6nswAAAAAAAAAAAAAAAAAAAAAAAB/zaE8oxnU41NBywic0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALkd6kAaS+RRc=, , IhO8CwAAAAAAAAAAAAAAAA0ONkqnhSKRiDwWKyLW2B9jVUKPAAAAAAAAAAAAAAAAc27MUjezHt7G8auaOW+uJBax2W4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuR3qQBpL5FFwAAAAAAAAAAAAAAAA0ONkqnhSKRiDwWKyLW2B9jVUKPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpB//mR8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoDiPDmV0PLnzxiURWQr0PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEIs5u3gAAAAAAAAAAAAAAAKG+pf6RdFAEF0jbu+fprFeku+urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAABzbsxSN7Me3sbxq5o5b64kFrHZbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5HepAGkvkUXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ8bsRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6qZoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALHNuzFI3sx7exvGrmjlvriQWsdluAAALuNrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, Pa0MnAAAAAAAAAAAAAAAANrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAMiTMTOu7kO/dGJR6W0es6BdYBfI=], values=[0, 0, 0, 0], refundTo=0x3224Cc4cEBBB90eFdd18947A5B47ACe8175805F2 ) => ( [AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=, , AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB, ] )
-
GaspToken.approve( spender=0x0000000000001fF3684f28c67538d4D072C22734, amount=213425203718100239639 ) => ( True )
-
Relay: Solver.CALL( )
AllowanceHolder.2213bc0b( )
-
MainnetSettler.balanceOf( 0x000000000000000000000000000000000000dEaD )
MainnetSettler.execute( slippage=[{name:recipient, type:address, order:1, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:buyToken, type:address, order:2, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:minAmountOut, type:uint256, order:3, indexed:false, value:0, valueString:0}], actions=[Is5u3gAAAAAAAAAAAAAAAKG+pf6RdFAEF0jbu+fprFeku+urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAABzbsxSN7Me3sbxq5o5b64kFrHZbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5HepAGkvkUXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ8bsRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6qZoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALHNuzFI3sx7exvGrmjlvriQWsdluAAALuNrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==], 388F0E65743CB9F3C62511590AF43C0000000000000000000000000000000000 ) => ( True )
UniswapV3Pool.swap( recipient=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, zeroForOne=True, amountSpecified=213425203718100239639, sqrtPriceLimitX96=4295128740, data=0x0000000000000000000000000000000000000000736ECC5237B31EDEC6F1AB9A396FAE2416B1D96E00000000000000000000000000000000000000000000000B91DEA401A4BE451700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067C6EC4401 ) => ( amount0=213425203718100239639, amount1=-17508116 )
-
TetherToken.transfer( _to=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, _value=17508116 )
-
GaspToken.balanceOf( account=0x2c21D8Fe29cdbf6C98Ff638Ac50b51Da9b816128 ) => ( 5321742623529278517514746 )
-
MainnetSettler.fa461e33( )
-
GaspToken.balanceOf( account=0x2c21D8Fe29cdbf6C98Ff638Ac50b51Da9b816128 ) => ( 5321956048732996617754385 )
-
-
ERC20Router.cleanupERC20( token=0xdAC17F958D2ee523a2206206994597C13D831ec7, refundTo=0x3224Cc4cEBBB90eFdd18947A5B47ACe8175805F2 )
-
transferAndMulticall[ApprovalProxy (ln:37)]
ArrayLengthsMismatch[ApprovalProxy (ln:47)]
ArrayLengthsMismatch[ApprovalProxy (ln:51)]
safeTransferFrom[ApprovalProxy (ln:55)]
delegatecallMulticall[ApprovalProxy (ln:60)]
File 1 of 8: ApprovalProxy
File 2 of 8: GaspToken
File 3 of 8: ERC20Router
File 4 of 8: UniswapV3Pool
File 5 of 8: TetherToken
File 6 of 8: Multicaller
File 7 of 8: AllowanceHolder
File 8 of 8: MainnetSettler
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.23;import {Ownable} from "solady/src/auth/Ownable.sol";import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {IERC20Router} from "../src/types/interfaces/IERC20Router.sol";contract ApprovalProxy is Ownable {using SafeERC20 for IERC20;error ArrayLengthsMismatch();error ERC20TransferFromFailed();error NativeTransferFailed();event RouterUpdated(address newRouter);address public router;receive() external payable {}constructor(address _owner, address _router) {_initializeOwner(_owner);
File 2 of 8: GaspToken
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity 0.8.13;import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {Context} from "@openzeppelin/contracts/utils/Context.sol";import {IGaspToken} from "./interfaces/IGaspToken.sol";contract GaspToken is Context, Ownable, ERC20, IGaspToken {uint256 private constant _TOTAL_SUPPLY = 1_000_000_000 * 10 ** 18;string private constant _NAME = "GASP";string private constant _SYMBOL = "GASP";mapping(address => bool) public override senderWhitelist;mapping(address => bool) public override recipientWhitelist;bool public override allowTransfers;modifier isWhitelisted(address sender, address recipient, bytes4 selector) {if (!allowTransfers && !senderWhitelist[sender] && !recipientWhitelist[recipient]) {
File 3 of 8: ERC20Router
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.25;import {Ownable} from "solady/src/auth/Ownable.sol";import {Tstorish} from "tstorish/src/Tstorish.sol";import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {IAllowanceTransfer} from "permit2-relay/src/interfaces/IAllowanceTransfer.sol";import {ISignatureTransfer} from "permit2-relay/src/interfaces/ISignatureTransfer.sol";import {IPermit2} from "permit2-relay/src/interfaces/IPermit2.sol";import {RelayerWitness} from "./types/lib/RelayStructs.sol";import {IMulticaller} from "./types/interfaces/IMulticaller.sol";contract ERC20Router is Ownable, Tstorish {using SafeERC20 for IERC20;// --- Errors --- //
File 4 of 8: UniswapV3Pool
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity =0.7.6;import './interfaces/IUniswapV3Pool.sol';import './NoDelegateCall.sol';import './libraries/LowGasSafeMath.sol';import './libraries/SafeCast.sol';import './libraries/Tick.sol';import './libraries/TickBitmap.sol';import './libraries/Position.sol';import './libraries/Oracle.sol';import './libraries/FullMath.sol';import './libraries/FixedPoint128.sol';import './libraries/TransferHelper.sol';import './libraries/TickMath.sol';import './libraries/LiquidityMath.sol';import './libraries/SqrtPriceMath.sol';
File 5 of 8: TetherToken
12345678910111213141516pragma solidity ^0.4.17;/*** @title SafeMath* @dev Math operations with safety checks that throw on error*/library SafeMath {function mul(uint256 a, uint256 b) internal pure returns (uint256) {if (a == 0) {return 0;}uint256 c = a * b;assert(c / a == b);return c;}
File 6 of 8: Multicaller
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/*** @title Multicaller* @author vectorized.eth* @notice Contract that allows for efficient aggregation* of multiple calls in a single transaction.*/contract Multicaller {// =============================================================// ERRORS// =============================================================/*** @dev The lengths of the input arrays are not the same.*/error ArrayLengthsMismatch();
File 7 of 8: AllowanceHolder
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.25;import {AllowanceHolderBase} from "./AllowanceHolderBase.sol";import {TransientStorage} from "./TransientStorage.sol";/// @custom:security-contact security@0x.orgcontract AllowanceHolder is TransientStorage, AllowanceHolderBase {constructor() {require(address(this) == 0x0000000000001fF3684f28c67538d4D072C22734 || block.chainid == 31337);}/// @inheritdoc AllowanceHolderBasefunction exec(address operator, address token, uint256 amount, address payable target, bytes calldata data)internaloverridereturns (bytes memory){(bytes memory result, address sender, TSlot allowance) = _exec(operator, token, amount, target, data);
File 8 of 8: MainnetSettler
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity =0.8.25 >=0.6.2 >=0.8.25 ^0.8.0 ^0.8.25;// lib/forge-std/src/interfaces/IERC165.solinterface IERC165 {/// @notice Query if a contract implements an interface/// @param interfaceID The interface identifier, as specified in ERC-165/// @dev Interface identification is specified in ERC-165. This function/// uses less than 30,000 gas./// @return `true` if the contract implements `interfaceID` and/// `interfaceID` is not 0xffffffff, `false` otherwisefunction supportsInterface(bytes4 interfaceID) external view returns (bool);}// lib/forge-std/src/interfaces/IERC20.sol/// @dev Interface of the ERC20 standard as defined in the EIP./// @dev This includes the optional name, symbol, and decimals metadata.interface IERC20 {