ETH Price: $1,814.44 (-4.53%)

Transaction Decoder

Block:
16030939 at Nov-23-2022 06:35:11 AM +UTC
Transaction Fee:
0.00679695571438681 ETH $12.33
Gas Used:
495,094 Gas / 13.728616615 Gwei

Emitted Events:

164 WETH9.Deposit( dst=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, wad=12000000000000000000 )
165 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640, 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20, 000000000000000000000000000000000000000000000000000000033d6faa3d )
166 WETH9.Transfer( src=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, dst=0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640, wad=12000000000000000000 )
167 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640.0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67( 0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67, 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20, 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20, fffffffffffffffffffffffffffffffffffffffffffffffffffffffcc29055c3, 000000000000000000000000000000000000000000000000a688906bd8b00000, 00000000000000000000000000000000000072aeac8d5b738117879118683c16, 000000000000000000000000000000000000000000000000d25436a318ce1c82, 00000000000000000000000000000000000000000000000000000000000323bd )
168 FiatTokenProxy.0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925( 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20, 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8, 000000000000000000000000000000000000000000000000000000033d6faa3d )
169 ComposableStablePool.TokenRateCacheUpdated( tokenIndex=0, rate=1001000000000000000 )
170 ComposableStablePool.TokenRateCacheUpdated( tokenIndex=1, rate=999000000000000000 )
171 ComposableStablePool.TokenRateCacheUpdated( tokenIndex=3, rate=999000000000000000 )
172 ComposableStablePool.TokenRateCacheUpdated( tokenIndex=4, rate=1001000000000000000 )
173 Vault.Swap( poolId=81B7F92C7B7D9349B989B4982588761BFA1AA6270000000000000000000003E9, tokenIn=FiatTokenProxy, tokenOut=0x6B175474...495271d0F, amountIn=13915630141, amountOut=13915527132653088884274 )
174 Vault.Swap( poolId=C45D42F801105E861E86658648E3678AD7AA70F900010000000000000000011E, tokenIn=0x6B175474...495271d0F, tokenOut=OlympusERC20Token, amountIn=13915527132653088884274, amountOut=1640949468574 )
175 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20, 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8, 000000000000000000000000000000000000000000000000000000033d6faa3d )
176 OlympusERC20Token.Transfer( from=Vault, to=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, value=1640949468574 )
177 OlympusERC20Token.Transfer( from=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, to=[Receiver] AggregationRouterV5, value=1640949468574 )
178 OlympusERC20Token.Transfer( from=[Receiver] AggregationRouterV5, to=[Sender] 0x493374100e511b1b091fa5bace1929dc154fee80, value=1640949468574 )

Account State Difference:

  Address   Before After State Difference Code
0x49337410...C154FeE80
32.013781147853362056 Eth
Nonce: 4771
20.006984192138975246 Eth
Nonce: 4772
12.00679695571438681
0x64aa3364...3D7e7f1D5
0x81b7f92c...bfa1aA627
0x88e6A0c2...FcB3f5640
(Uniswap V3: USDC 3)
0xA0b86991...E3606eB48
0xBA122222...d566BF2C8
(Balancer: Vault)
0xC02aaA39...83C756Cc2 3,861,368.892914646006602348 Eth3,861,380.892914646006602348 Eth12
(eth-builder)
1.037360299100188557 Eth1.037739604080145357 Eth0.0003793049799568

Execution Trace

ETH 12 AggregationRouterV5.swap( executor=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, desc=[{name:srcToken, type:address, order:1, indexed:false, value:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, valueString:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE}, {name:dstToken, type:address, order:2, indexed:false, value:0x64aa3364F17a4D01c6f1751Fd97C2BD3D7e7f1D5, valueString:0x64aa3364F17a4D01c6f1751Fd97C2BD3D7e7f1D5}, {name:srcReceiver, type:address, order:3, indexed:false, value:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, valueString:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20}, {name:dstReceiver, type:address, order:4, indexed:false, value:0x493374100e511b1b091FA5BACe1929DC154FeE80, valueString:0x493374100e511b1b091FA5BACe1929DC154FeE80}, {name:amount, type:uint256, order:5, indexed:false, value:12000000000000000000, valueString:12000000000000000000}, {name:minReturnAmount, type:uint256, order:6, indexed:false, value:1636905502655, valueString:1636905502655}, {name:flags, type:uint256, order:7, indexed:false, value:0, valueString:0}], permit=0x, data=0x0000000000000000000000000000000000000000000001AC00017E00013400A007E5C0D200000000000000000000000000000000000000000000011000006900001A4041C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2D0E30DB002A000000000000000000000000000000000000000000000000000000003352BD161EE63C1E50088E6A0C2DDD26FEEB64F039A2C41296FCB3F5640C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200A0BD46A3430281B7F92C7B7D9349B989B4982588761BFA1AA6270000000000000000000003E9C45D42F801105E861E86658648E3678AD7AA70F900010000000000000000011E000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB480000000000000000000000006B175474E89094C44DA98B954EEDEAC495271D0F00000000000000000000000064AA3364F17A4D01C6F1751FD97C2BD3D7E7F1D500A0F2FA6B6664AA3364F17A4D01C6F1751FD97C2BD3D7E7F1D50000000000000000000000000000000000000000000000000000017E13B344B800000000000000000000000037463A1780A06C4ECA2764AA3364F17A4D01C6F1751FD97C2BD3D7E7F1D51111111254EEB25477B68FB85ED929F73A960582 ) => ( returnAmount=1640949468574, spentAmount=12000000000000000000 )
  • ETH 12 0x53222470cdcfb8081c0e3a50fd106f0d69e63f20.4b64e492( )
    • 0x53222470cdcfb8081c0e3a50fd106f0d69e63f20.07e5c0d2( )
      • ETH 12 WETH9.CALL( )
      • 0x53222470cdcfb8081c0e3a50fd106f0d69e63f20.ee63c1e5( )
        • Uniswap V3: USDC 3.128acb08( )
          • FiatTokenProxy.a9059cbb( )
            • FiatTokenV2_1.transfer( to=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, value=13915630141 ) => ( True )
            • WETH9.balanceOf( 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640 ) => ( 83028362501547333048841 )
            • 0x53222470cdcfb8081c0e3a50fd106f0d69e63f20.fa461e33( )
              • WETH9.transfer( dst=0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640, wad=12000000000000000000 ) => ( True )
              • WETH9.balanceOf( 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640 ) => ( 83040362501547333048841 )
              • 0x53222470cdcfb8081c0e3a50fd106f0d69e63f20.bd46a343( )
                • FiatTokenProxy.095ea7b3( )
                  • FiatTokenV2_1.approve( spender=0xBA12222222228d8Ba445958a75a0704d566BF2C8, value=13915630141 ) => ( True )
                  • Vault.batchSwap( kind=0, swaps=, assets=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0x6B175474E89094C44Da98b954EedeAC495271d0F, 0x64aa3364F17a4D01c6f1751Fd97C2BD3D7e7f1D5], funds=[{name:sender, type:address, order:1, indexed:false, value:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, valueString:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20}, {name:fromInternalBalance, type:bool, order:2, indexed:false, value:false, valueString:False}, {name:recipient, type:address, order:3, indexed:false, value:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, valueString:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20}, {name:toInternalBalance, type:bool, order:4, indexed:false, value:false, valueString:False}], limits=[57896044618658097711785492504343953926634992332820282019728792003956564819967, 0, 0], deadline=1669185311 ) => ( assetDeltas=[13915630141, 0, -1640949468574] )
                    • ComposableStablePool.onSwap( swapRequest=[{name:kind, type:uint8, order:1, indexed:false, value:0, valueString:0}, {name:tokenIn, type:address, order:2, indexed:false, value:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, valueString:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48}, {name:tokenOut, type:address, order:3, indexed:false, value:0x6B175474E89094C44Da98b954EedeAC495271d0F, valueString:0x6B175474E89094C44Da98b954EedeAC495271d0F}, {name:amount, type:uint256, order:4, indexed:false, value:13915630141, valueString:13915630141}, {name:poolId, type:bytes32, order:5, indexed:false, value:81B7F92C7B7D9349B989B4982588761BFA1AA6270000000000000000000003E9, valueString:81B7F92C7B7D9349B989B4982588761BFA1AA6270000000000000000000003E9}, {name:lastChangeBlock, type:uint256, order:6, indexed:false, value:16030890, valueString:16030890}, {name:from, type:address, order:7, indexed:false, value:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, valueString:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20}, {name:to, type:address, order:8, indexed:false, value:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, valueString:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20}, {name:userData, type:bytes, order:9, indexed:false, value:0x, valueString:0x}], balances=[16422893400968138515487, 31228217330287115112204, 2596148429127627490096450171844420, 17520123006, 78012630761], indexIn=3, indexOut=1 ) => ( 13915527132653088884274 )
                      • 0x47b584e4c7c4a030060450ec9e51d52d919b1fcb.STATICCALL( )
                      • 0x1a867225414678c2c6faf54b1123dcf86e09cae7.STATICCALL( )
                      • 0xbacd5f6a91e8d040f2989af877ac06b5a26f1c85.STATICCALL( )
                      • 0xf8bbc8c2ced9c24992b6ec9bbd0eddaf3bce70eb.STATICCALL( )
                      • WeightedPool.onSwap( request=[{name:kind, type:uint8, order:1, indexed:false, value:0, valueString:0}, {name:tokenIn, type:address, order:2, indexed:false, value:0x6B175474E89094C44Da98b954EedeAC495271d0F, valueString:0x6B175474E89094C44Da98b954EedeAC495271d0F}, {name:tokenOut, type:address, order:3, indexed:false, value:0x64aa3364F17a4D01c6f1751Fd97C2BD3D7e7f1D5, valueString:0x64aa3364F17a4D01c6f1751Fd97C2BD3D7e7f1D5}, {name:amount, type:uint256, order:4, indexed:false, value:13915527132653088884274, valueString:13915527132653088884274}, {name:poolId, type:bytes32, order:5, indexed:false, value:C45D42F801105E861E86658648E3678AD7AA70F900010000000000000000011E, valueString:C45D42F801105E861E86658648E3678AD7AA70F900010000000000000000011E}, {name:lastChangeBlock, type:uint256, order:6, indexed:false, value:16030825, valueString:16030825}, {name:from, type:address, order:7, indexed:false, value:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, valueString:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20}, {name:to, type:address, order:8, indexed:false, value:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, valueString:0x53222470CdcfB8081C0E3a50fd106f0D69e63F20}, {name:userData, type:bytes, order:9, indexed:false, value:0x, valueString:0x}], balanceTokenIn=14103284619859924872054752, balanceTokenOut=3338650275978342 ) => ( 1640949468574 )
                      • FiatTokenProxy.23b872dd( )
                        • FiatTokenV2_1.transferFrom( from=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, to=0xBA12222222228d8Ba445958a75a0704d566BF2C8, value=13915630141 ) => ( True )
                        • OlympusERC20Token.transfer( recipient=0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, amount=1640949468574 ) => ( True )
                        • 0x53222470cdcfb8081c0e3a50fd106f0d69e63f20.f2fa6b66( )
                        • 0x53222470cdcfb8081c0e3a50fd106f0d69e63f20.6c4eca27( )
                          • OlympusERC20Token.transfer( recipient=0x1111111254EEB25477B68fb85Ed929f73A960582, amount=1640949468574 ) => ( True )
                          • OlympusERC20Token.balanceOf( account=0x1111111254EEB25477B68fb85Ed929f73A960582 ) => ( 1640949468575 )
                          • OlympusERC20Token.transfer( recipient=0x493374100e511b1b091FA5BACe1929DC154FeE80, amount=1640949468574 ) => ( True )
                            File 1 of 8: AggregationRouterV5
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            /*
                            ,▄▓▓██▌ ,╓▄▄▓▓▓▓▓▓▓▓▄▄▄,,
                            ,▓██▓███▓▄▓███▓╬╬╬╬╬╬╬╬╬╬╬╬╬▓███▓▄,
                            ▄█ ▓██╬╣███████╬▓▀╬╬▓▓▓████████████▓█████▄,
                            ▓██▌ ▓██╬╣██████╬▓▌ ██████████████████████▌╙╙▀ⁿ
                            ▐████████╬▓████▓▓█╨ ▄ ╟█████████▓▓╬╬╬╬╬▓▓█████▓▄
                            └▀▓▓▄╓ ╟█▓╣█████▓██████▀ ╓█▌ ███████▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓██▓▄
                            └▀████▓▄╥ ▐██╬╬██████████╙ Æ▀─ ▓███▀╚╠╬╩▀▀███████▓▓╬╬╬╬╬╬╬╬╬██▄
                            └▀██▓▀▀█████▓╬▓██████▀ ▄█████▒╠" └╙▓██████▓╬╬╬╬╬╬╬╬██▄
                            └▀██▄,└╙▀▀████▌└╙ ^"▀╙╙╙"╙██ @▄ ╙▀███████╬╬╬╬╬╬╬██µ
                            └▀██▓▄, ██▌ ╒ ╙█▓ ]▓█▓╔ ▀███████▓╬╬╬╬╬▓█▌
                            ▀█████ ▓ ╟█▌ ]╠██▓░▒╓ ▀████████╬╬╬╬╣█▌
                            ▐████ ╓█▀█▌ ,██▌ ╚Å███▓▒▒╠╓ ╙█████████╬╬╬╣█▌
                            └████ ▓█░░▓█ ▀▀▀ φ▒╫████▒▒▒▒╠╓ █████████▓╬╬▓█µ
                            ╘███µ ▌▄█▓▄▓▀` ,▀ ,╔╠░▓██████▌╠▒▒▒φ ██████████╬╬██
                            ▐████µ╙▓▀` ,▀╙,╔╔φφφ╠░▄▓███████▌░▓╙▒▒▒╠ └██╬███████╬▓█⌐
                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                            File 2 of 8: 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 3 of 8: FiatTokenProxy
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            pragma solidity ^0.4.24;
                            // File: zos-lib/contracts/upgradeability/Proxy.sol
                            /**
                            * @title Proxy
                            * @dev Implements delegation of calls to other contracts, with proper
                            * forwarding of return values and bubbling of failures.
                            * It defines a fallback function that delegates all calls to the address
                            * returned by the abstract _implementation() internal function.
                            */
                            contract Proxy {
                            /**
                            * @dev Fallback function.
                            * Implemented entirely in `_fallback`.
                            */
                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                            File 4 of 8: ComposableStablePool
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            // SPDX-License-Identifier: GPL-3.0-or-later
                            // 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.7.0;
                            pragma experimental ABIEncoderV2;
                            import "@balancer-labs/v2-interfaces/contracts/pool-stable/StablePoolUserData.sol";
                            import "@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/BalancerErrors.sol";
                            import "@balancer-labs/v2-interfaces/contracts/standalone-utils/IProtocolFeePercentagesProvider.sol";
                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                            File 5 of 8: Vault
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            // SPDX-License-Identifier: GPL-3.0-or-later
                            // 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.7.0;
                            pragma experimental ABIEncoderV2;
                            import "./interfaces/IAuthorizer.sol";
                            import "./interfaces/IWETH.sol";
                            import "./VaultAuthorization.sol";
                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                            File 6 of 8: OlympusERC20Token
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            // SPDX-License-Identifier: AGPL-3.0-or-later
                            // File: interfaces/IOlympusAuthority.sol
                            pragma solidity =0.7.5;
                            interface IOlympusAuthority {
                            /* ========== EVENTS ========== */
                            event GovernorPushed(address indexed from, address indexed to, bool _effectiveImmediately);
                            event GuardianPushed(address indexed from, address indexed to, bool _effectiveImmediately);
                            event PolicyPushed(address indexed from, address indexed to, bool _effectiveImmediately);
                            event VaultPushed(address indexed from, address indexed to, bool _effectiveImmediately);
                            event GovernorPulled(address indexed from, address indexed to);
                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                            File 7 of 8: FiatTokenV2_1
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            // File: @openzeppelin/contracts/math/SafeMath.sol
                            // SPDX-License-Identifier: MIT
                            pragma solidity ^0.6.0;
                            /**
                            * @dev Wrappers over Solidity's arithmetic operations with added overflow
                            * checks.
                            *
                            * Arithmetic operations in Solidity wrap on overflow. This can easily result
                            * in bugs, because programmers usually assume that an overflow raises an
                            * error, which is the standard behavior in high level programming languages.
                            * `SafeMath` restores this intuition by reverting the transaction when an
                            * operation overflows.
                            *
                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                            File 8 of 8: WeightedPool
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            15
                            16
                            // SPDX-License-Identifier: GPL-3.0-or-later
                            // 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 experimental ABIEncoderV2;
                            import "../../lib/openzeppelin/IERC20.sol";
                            import "./IWETH.sol";
                            import "./IAsset.sol";
                            import "./IAuthorizer.sol";
                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX