ETH Price: $3,117.83 (+5.02%)

Transaction Decoder

Block:
22559405 at May-25-2025 11:01:23 AM +UTC
Transaction Fee:
0.000155934366873047 ETH $0.49
Gas Used:
341,567 Gas / 0.456526441 Gwei

Emitted Events:

414 BoringVault.Transfer( from=[Sender] 0xc9c321360991f7dacfbe551c5c6a0049d38db5d3, to=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, amount=770752637248428 )
415 BoringVault.Transfer( from=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, to=0x39041F1B366fE33F9A5a79dE5120F2Aee2577ebc, amount=1926881593121 )
416 BoringVault.Approval( owner=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, spender=FluidDexT1, amount=768825755655307 )
417 BoringVault.Transfer( from=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, to=FluidLiquidityProxy, amount=768825755655307 )
418 ZtakingPool.Deposit( eventId=384845, depositor=FluidLiquidityProxy, token=BoringVault, amount=768825755655307 )
419 BoringVault.Transfer( from=FluidLiquidityProxy, to=ZtakingPool, amount=768825755655307 )
420 FluidLiquidityProxy.0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15( 0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15, 0x000000000000000000000000080574d224e960c272e005aa03efbe793f317640, 0x000000000000000000000000917cee801a67f933f2e6b33fc0cd1ed2d5909d88, 0000000000000000000000000000000000000000000000000002bb27d1c6b2c0, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000eaf754fb36a51012, 000000000000000746a528800000000746a5288001a0c7c71c01e00003e80000 )
421 FluidLiquidityProxy.0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15( 0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15, 0x000000000000000000000000080574d224e960c272e005aa03efbe793f317640, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, fffffffffffffffffffffffffffffffffffffffffffffffffffd33b187c60e80, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a190, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000008f41bd8b14cf3e150000000000000000aa2e78293f090a15, 0000000000000007c708ccb440000007a91738b109a0cbca9c01e85fc3e80126 )
422 FluidDexT1.Swap( swap0to1=True, amountIn=768825755655307, amountOut=787587350000000, to=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190 )
423 WETH9.Deposit( dst=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, wad=787587350000000 )
424 ENA.Transfer( from=UniswapV3Pool, to=[Receiver] AggregationRouterV6, value=5453857033287885224 )
425 WETH9.Transfer( src=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, dst=UniswapV3Pool, wad=787587350000000 )
426 UniswapV3Pool.Swap( sender=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, recipient=[Receiver] AggregationRouterV6, amount0=-5453857033287885224, amount1=787587350000000, sqrtPriceX96=950658863090989415497285647, liquidity=300869703783748045886953, tick=-88464 )
427 ENA.Transfer( from=[Receiver] AggregationRouterV6, to=[Sender] 0xc9c321360991f7dacfbe551c5c6a0049d38db5d3, value=5453857033287885224 )

Account State Difference:

  Address   Before After State Difference Code
0x080574D2...93f317640
(Fluid: Dex weETHs - ETH)
(Titan Builder)
22.378221611575382345 Eth22.378238689925382345 Eth0.00001707835
0x52Aa8994...360F4e497
(Fluid: Liquidity)
15,394.906360728427527265 Eth15,394.905573141077527265 Eth0.00078758735
0x57e114B6...3181e6061
0x917ceE80...2d5909D88
0xC02aaA39...83C756Cc2 2,825,561.476373154524741615 Eth2,825,561.477160741874741615 Eth0.00078758735
0xc3Db44AD...f4A8EEa18
(Uniswap V3: ENA 3)
0xc9c32136...9d38db5d3
0.005545663183474279 Eth
Nonce: 30
0.005389728816601232 Eth
Nonce: 31
0.000155934366873047
0xF047ab4c...611aEAfa6
(Zircuit: Restaking Pool)

Execution Trace

AggregationRouterV6.swap( executor=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, desc=[{name:srcToken, type:address, order:1, indexed:false, value:0x917ceE801a67f933F2e6b33fC0cD1ED2d5909D88, valueString:0x917ceE801a67f933F2e6b33fC0cD1ED2d5909D88}, {name:dstToken, type:address, order:2, indexed:false, value:0x57e114B691Db790C35207b2e685D4A43181e6061, valueString:0x57e114B691Db790C35207b2e685D4A43181e6061}, {name:srcReceiver, type:address, order:3, indexed:false, value:0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, valueString:0x5141B82f5fFDa4c6fE1E372978F1C5427640a190}, {name:dstReceiver, type:address, order:4, indexed:false, value:0xc9c321360991F7DAcFbe551c5C6A0049d38db5d3, valueString:0xc9c321360991F7DAcFbe551c5C6A0049d38db5d3}, {name:amount, type:uint256, order:5, indexed:false, value:770752637248428, valueString:770752637248428}, {name:minReturnAmount, type:uint256, order:6, indexed:false, value:5393163041495983541, valueString:5393163041495983541}, {name:flags, type:uint256, order:7, indexed:false, value:0, valueString:0}], data=0x00000000000000000000000000000000000000017B0001180000FE00004E00A0744C8C09917CEE801A67F933F2E6B33FC0CD1ED2D5909D8839041F1B366FE33F9A5A79DE5120F2AEE2577EBC000000000000000000000000000000000000000000000000000001C0A317C7215120080574D224E960C272E005AA03EFBE793F317640917CEE801A67F933F2E6B33FC0CD1ED2D5909D8800242668DFAA000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002C524B99586200000000000000000000000005141B82F5FFDA4C6FE1E372978F1C5427640A1904041C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2D0E30DB002A00000000000000000000000000000000000000000000000004AD85D36482225B5EE63C1E580C3DB44ADC1FCDFD5671F555236EAE49F4A8EEA18C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2111111125421CA6DC452D289314280A0F8842A65 ) => ( returnAmount=5453857033287885224, spentAmount=770752637248428 )
  • BoringVault.transferFrom( from=0xc9c321360991F7DAcFbe551c5C6A0049d38db5d3, to=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, amount=770752637248428 ) => ( True )
    • TellerWithMultiAssetSupport.beforeTransfer( from=0xc9c321360991F7DAcFbe551c5C6A0049d38db5d3, to=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, operator=0x111111125421cA6dc452d289314280a0f8842A65 )
    • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.4b64e492( )
      • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.744c8c09( )
        • BoringVault.transfer( to=0x39041F1B366fE33F9A5a79dE5120F2Aee2577ebc, amount=1926881593121 ) => ( True )
          • TellerWithMultiAssetSupport.beforeTransfer( from=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, to=0x39041F1B366fE33F9A5a79dE5120F2Aee2577ebc, operator=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190 )
          • BoringVault.approve( spender=0x080574D224E960c272e005aA03EFbe793f317640, amount=768825755655307 ) => ( True )
          • FluidDexT1.swapIn( swap0to1_=True, amountIn_=768825755655307, amountOutMin_=779711476500000, to_=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190 ) => ( amountOut_=787587350000000 )
            • WeETHsContractRate.CALL( )
            • FluidLiquidityProxy.readFromStorage( slot_=E1BF7D29361978714AD5A88CF9255AB1BF29D90B2F7E0300E50CA1B25589AC63 ) => ( result_=45671926166590716196341031100955108770610950403862984916992 )
            • FluidLiquidityProxy.readFromStorage( slot_=A1829A9003092132F585B6CCDD167C19FE9774DBDEA4260287E8A8E8CA8185D7 ) => ( result_=48819952516598523884898598493544113638675068145129071575334 )
            • FluidLiquidityProxy.readFromStorage( slot_=BEBCFC02B6EF587ED23CE76915023B7E22E433FAB664C04187BE9D46655D8707 ) => ( result_=270372147105548618748076018633333563945760820839563050126680268831 )
            • FluidLiquidityProxy.readFromStorage( slot_=40DC33F4A02496C26F5643439C0FCDA9736D08A48EF4F82731C2BF134576DF97 ) => ( result_=261733248179612287026762430424907473794601457552431745637973304347 )
            • FluidLiquidityProxy.ad967e15( )
              • FluidLiquidityUserModule.operate( token_=0x917ceE801a67f933F2e6b33fC0cD1ED2d5909D88, supplyAmount_=768729651000000, borrowAmount_=0, withdrawTo_=0x0000000000000000000000000000000000000000, borrowTo_=0x0000000000000000000000000000000000000000, callbackData_=0x0000000000000000000000000000000000000000000000000002BB3E320F5C8B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005141B82F5FFDA4C6FE1E372978F1C5427640A190 ) => ( memVar3_=1000000000000, memVar4_=1000000000000 )
                • BoringVault.balanceOf( 0x52Aa899454998Be5b000Ad077a46Bbe360F4e497 ) => ( 0 )
                • FluidDexT1.liquidityCallback( token_=0x917ceE801a67f933F2e6b33fC0cD1ED2d5909D88, amount_=768729651000000, data_=0x0000000000000000000000000000000000000000000000000002BB3E320F5C8B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005141B82F5FFDA4C6FE1E372978F1C5427640A190 )
                  • BoringVault.transferFrom( from=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, to=0x52Aa899454998Be5b000Ad077a46Bbe360F4e497, amount=768825755655307 ) => ( True )
                  • BoringVault.balanceOf( 0x52Aa899454998Be5b000Ad077a46Bbe360F4e497 ) => ( 768825755655307 )
                  • BoringVault.allowance( 0x52Aa899454998Be5b000Ad077a46Bbe360F4e497, 0xF047ab4c75cebf0eB9ed34Ae2c186f3611aEAfa6 ) => ( 115792089237316195423570985008687907853269984665640564039457584007913129639935 )
                  • ZtakingPool.depositFor( _token=0x917ceE801a67f933F2e6b33fC0cD1ED2d5909D88, _for=0x52Aa899454998Be5b000Ad077a46Bbe360F4e497, _amount=768825755655307 )
                    • BoringVault.transferFrom( from=0x52Aa899454998Be5b000Ad077a46Bbe360F4e497, to=0xF047ab4c75cebf0eB9ed34Ae2c186f3611aEAfa6, amount=768825755655307 ) => ( True )
                    • FluidLiquidityProxy.ad967e15( )
                      • FluidLiquidityUserModule.operate( token_=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, supplyAmount_=-787587350000000, borrowAmount_=0, withdrawTo_=0x5141B82f5fFDa4c6fE1E372978F1C5427640a190, borrowTo_=0x0000000000000000000000000000000000000000, callbackData_=0x ) => ( memVar3_=1052852557345, memVar4_=1068928439944 )
                        • ETH 0.00078758735 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.CALL( )
                        • ETH 0.00078758735 WETH9.CALL( )
                        • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.ee63c1e5( )
                          • UniswapV3Pool.swap( recipient=0x111111125421cA6dc452d289314280a0f8842A65, zeroForOne=False, amountSpecified=787587350000000, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 ) => ( amount0=-5453857033287885224, amount1=787587350000000 )
                            • ENA.transfer( to=0x111111125421cA6dc452d289314280a0f8842A65, amount=5453857033287885224 ) => ( True )
                            • WETH9.balanceOf( 0xc3Db44ADC1fCdFd5671f555236eae49f4A8EEa18 ) => ( 216526144005649815047 )
                            • 0x5141b82f5ffda4c6fe1e372978f1c5427640a190.fa461e33( )
                              • WETH9.transfer( dst=0xc3Db44ADC1fCdFd5671f555236eae49f4A8EEa18, wad=787587350000000 ) => ( True )
                              • WETH9.balanceOf( 0xc3Db44ADC1fCdFd5671f555236eae49f4A8EEa18 ) => ( 216526931592999815047 )
                              • ENA.transfer( to=0xc9c321360991F7DAcFbe551c5C6A0049d38db5d3, amount=5453857033287885224 ) => ( True )
                                File 1 of 11: AggregationRouterV6
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                /*
                                ,▄▓▓██▌ ,╓▄▄▓▓▓▓▓▓▓▓▄▄▄,,
                                ,▓██▓███▓▄▓███▓╬╬╬╬╬╬╬╬╬╬╬╬╬▓███▓▄,
                                ▄█ ▓██╬╣███████╬▓▀╬╬▓▓▓████████████▓█████▄,
                                ▓██▌ ▓██╬╣██████╬▓▌ ██████████████████████▌╙╙▀ⁿ
                                ▐████████╬▓████▓▓█╨ ▄ ╟█████████▓▓╬╬╬╬╬▓▓█████▓▄
                                └▀▓▓▄╓ ╟█▓╣█████▓██████▀ ╓█▌ ███████▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓██▓▄
                                └▀████▓▄╥ ▐██╬╬██████████╙ Æ▀─ ▓███▀╚╠╬╩▀▀███████▓▓╬╬╬╬╬╬╬╬╬██▄
                                └▀██▓▀▀█████▓╬▓██████▀ ▄█████▒╠" └╙▓██████▓╬╬╬╬╬╬╬╬██▄
                                └▀██▄,└╙▀▀████▌└╙ ^"▀╙╙╙"╙██ @▄ ╙▀███████╬╬╬╬╬╬╬██µ
                                └▀██▓▄, ██▌ ╒ ╙█▓ ]▓█▓╔ ▀███████▓╬╬╬╬╬▓█▌
                                ▀█████ ▓ ╟█▌ ]╠██▓░▒╓ ▀████████╬╬╬╬╣█▌
                                ▐████ ╓█▀█▌ ,██▌ ╚Å███▓▒▒╠╓ ╙█████████╬╬╬╣█▌
                                └████ ▓█░░▓█ ▀▀▀ φ▒╫████▒▒▒▒╠╓ █████████▓╬╬▓█µ
                                ╘███µ ▌▄█▓▄▓▀` ,▀ ,╔╠░▓██████▌╠▒▒▒φ ██████████╬╬██
                                ▐████µ╙▓▀` ,▀╙,╔╔φφφ╠░▄▓███████▌░▓╙▒▒▒╠ └██╬███████╬▓█⌐
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 2 of 11: BoringVault
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: MIT
                                pragma solidity 0.8.21;
                                import {Address} from "@openzeppelin/contracts/utils/Address.sol";
                                import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
                                import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";
                                import {FixedPointMathLib} from "@solmate/utils/FixedPointMathLib.sol";
                                import {SafeTransferLib} from "@solmate/utils/SafeTransferLib.sol";
                                import {ERC20} from "@solmate/tokens/ERC20.sol";
                                import {BeforeTransferHook} from "src/interfaces/BeforeTransferHook.sol";
                                import {Auth, Authority} from "@solmate/auth/Auth.sol";
                                contract BoringVault is ERC20, Auth, ERC721Holder, ERC1155Holder {
                                using Address for address;
                                using SafeTransferLib for ERC20;
                                using FixedPointMathLib for uint256;
                                // ========================================= STATE =========================================
                                /**
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 3 of 11: FluidLiquidityProxy
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                //SPDX-License-Identifier: MIT
                                pragma solidity 0.8.21;
                                contract Error {
                                error FluidInfiniteProxyError(uint256 errorId_);
                                }
                                //SPDX-License-Identifier: MIT
                                pragma solidity 0.8.21;
                                library ErrorTypes {
                                /***********************************|
                                | Infinite proxy |
                                |__________________________________*/
                                /// @notice thrown when an implementation does not exist
                                uint256 internal constant InfiniteProxy__ImplementationNotExist = 50001;
                                }
                                // SPDX-License-Identifier: BUSL-1.1
                                pragma solidity 0.8.21;
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 4 of 11: ZtakingPool
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: MIT
                                // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
                                pragma solidity ^0.8.20;
                                import {Context} from "../utils/Context.sol";
                                /**
                                * @dev Contract module which provides a basic access control mechanism, where
                                * there is an account (an owner) that can be granted exclusive access to
                                * specific functions.
                                *
                                * The initial owner is set to the address provided by the deployer. This can
                                * later be changed with {transferOwnership}.
                                *
                                * This module is used through inheritance. It will make available the modifier
                                * `onlyOwner`, which can be applied to your functions to restrict their use to
                                * the owner.
                                */
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 5 of 11: FluidDexT1
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: MIT
                                pragma solidity 0.8.21;
                                interface IProxy {
                                function setAdmin(address newAdmin_) external;
                                function setDummyImplementation(address newDummyImplementation_) external;
                                function addImplementation(address implementation_, bytes4[] calldata sigs_) external;
                                function removeImplementation(address implementation_) external;
                                function getAdmin() external view returns (address);
                                function getDummyImplementation() external view returns (address);
                                function getImplementationSigs(address impl_) external view returns (bytes4[] memory);
                                function getSigsImplementation(bytes4 sig_) external view returns (address);
                                function readFromStorage(bytes32 slot_) external view returns (uint256 result_);
                                }
                                // SPDX-License-Identifier: BUSL-1.1
                                pragma solidity 0.8.21;
                                /// @notice implements calculation of address for contracts deployed through CREATE.
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 6 of 11: WETH9
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // Copyright (C) 2015, 2016, 2017 Dapphub
                                // This program is free software: you can redistribute it and/or modify
                                // it under the terms of the GNU General Public License as published by
                                // the Free Software Foundation, either version 3 of the License, or
                                // (at your option) any later version.
                                // This program is distributed in the hope that it will be useful,
                                // but WITHOUT ANY WARRANTY; without even the implied warranty of
                                // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
                                // GNU General Public License for more details.
                                // You should have received a copy of the GNU General Public License
                                // along with this program. If not, see <http://www.gnu.org/licenses/>.
                                pragma solidity ^0.4.18;
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 7 of 11: UniswapV3Pool
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: BUSL-1.1
                                pragma 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';
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 8 of 11: ENA
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: GPL-3.0
                                pragma solidity 0.8.20;
                                import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
                                import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
                                import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
                                import "@openzeppelin/contracts/access/Ownable2Step.sol";
                                import "./interfaces/IENADefinitions.sol";
                                /**
                                * @title ENA
                                * @notice Governance token for the Ethena protocol
                                */
                                contract ENA is Ownable2Step, ERC20Burnable, ERC20Permit, IENADefinitions {
                                /// @notice Maximum inflation rate per year (percentage) expressed as an integer
                                uint8 public constant MAX_INFLATION = 10;
                                /// @notice The maximum frequency of inflationary mint invocations
                                uint32 public constant MINT_WAIT_PERIOD = 365 days;
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 9 of 11: TellerWithMultiAssetSupport
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: MIT
                                pragma solidity 0.8.21;
                                import {ERC20} from "@solmate/tokens/ERC20.sol";
                                import {WETH} from "@solmate/tokens/WETH.sol";
                                import {BoringVault} from "src/base/BoringVault.sol";
                                import {AccountantWithRateProviders} from "src/base/Roles/AccountantWithRateProviders.sol";
                                import {FixedPointMathLib} from "@solmate/utils/FixedPointMathLib.sol";
                                import {SafeTransferLib} from "@solmate/utils/SafeTransferLib.sol";
                                import {BeforeTransferHook} from "src/interfaces/BeforeTransferHook.sol";
                                import {Auth, Authority} from "@solmate/auth/Auth.sol";
                                import {ReentrancyGuard} from "@solmate/utils/ReentrancyGuard.sol";
                                contract TellerWithMultiAssetSupport is Auth, BeforeTransferHook, ReentrancyGuard {
                                using FixedPointMathLib for uint256;
                                using SafeTransferLib for ERC20;
                                using SafeTransferLib for WETH;
                                // ========================================= CONSTANTS =========================================
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 10 of 11: WeETHsContractRate
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: BUSL-1.1
                                pragma solidity 0.8.21;
                                import { IWeETHsAccountant } from "../../interfaces/external/IWeETHsAccountant.sol";
                                import { IFluidOracle } from "../../interfaces/iFluidOracle.sol";
                                import { FluidCenterPrice } from "../../fluidCenterPrice.sol";
                                import { Error as OracleError } from "../../error.sol";
                                import { ErrorTypes } from "../../errorTypes.sol";
                                abstract contract Events {
                                /// @notice emitted when rebalancer successfully changes the contract rate
                                event LogRebalanceRate(uint256 oldRate, uint256 newRate);
                                }
                                abstract contract Constants {
                                /// @dev WEETHS accountant contract; 0xbe16605B22a7faCEf247363312121670DFe5afBE
                                IWeETHsAccountant internal immutable _WEETHS_ACCOUNTANT;
                                /// @dev Minimum difference to trigger update in percent 1e4 decimals, 10000 = 1%
                                uint256 internal immutable _MIN_UPDATE_DIFF_PERCENT;
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                File 11 of 11: FluidLiquidityUserModule
                                1
                                2
                                3
                                4
                                5
                                6
                                7
                                8
                                9
                                10
                                11
                                12
                                13
                                14
                                15
                                16
                                // SPDX-License-Identifier: MIT
                                // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)
                                pragma solidity ^0.8.0;
                                import "../token/ERC20/IERC20.sol";
                                // SPDX-License-Identifier: MIT
                                // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
                                pragma solidity ^0.8.0;
                                /**
                                * @dev Interface of the ERC20 standard as defined in the EIP.
                                */
                                interface IERC20 {
                                /**
                                * @dev Emitted when `value` tokens are moved from one account (`from`) to
                                * another (`to`).
                                *
                                * Note that `value` may be zero.
                                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX