ETH Price: $1,994.34 (-3.33%)

Transaction Decoder

Block:
16813046 at Mar-12-2023 04:10:35 PM +UTC
Transaction Fee:
0.007695242227188747 ETH $15.35
Gas Used:
384,727 Gas / 20.001825261 Gwei

Emitted Events:

138 WETH9.Deposit( dst=AugustusSwapper, wad=2379000000000000000 )
139 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640, 0x000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57, 00000000000000000000000000000000000000000000000000000000d9f47a8e )
140 WETH9.Transfer( src=AugustusSwapper, dst=0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640, wad=2379000000000000000 )
141 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640.0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67( 0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67, 0x000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564, 0x000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57, ffffffffffffffffffffffffffffffffffffffffffffffffffffffff260b8572, 0000000000000000000000000000000000000000000000002103e7e540a78000, 000000000000000000000000000000000000639c4f2eae72dca0121714b59684, 000000000000000000000000000000000000000000000005ccf4daa91a3af8d5, 00000000000000000000000000000000000000000000000000000000000318bb )
142 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57, 0x000000000000000000000000bebc44782c7db0a1a60cb6fe97d0b483032ff1c7, 00000000000000000000000000000000000000000000000000000000d9f47a8e )
143 TetherToken.Transfer( from=Vyper_contract, to=AugustusSwapper, value=3471355658 )
144 Vyper_contract.TokenExchange( buyer=AugustusSwapper, sold_id=1, tokens_sold=3656678030, bought_id=2, tokens_bought=3471355658 )
145 TetherToken.Transfer( from=AugustusSwapper, to=Spender, value=3471355658 )
146 AugustusSwapper.0xe00361d207b252a464323eb23d45d42583e391f2031acdd2e9fa36efddd43cb0( 0xe00361d207b252a464323eb23d45d42583e391f2031acdd2e9fa36efddd43cb0, 0x00000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7, 74f21014cdb244ecb5dac9ec73ce04c400000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0100000000000000000000000000000000000000000000000000000000004000, 00000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631, 0000000000000000000000000000000000000000000000002103e7e540a78000, 00000000000000000000000000000000000000000000000000000000cee8af0a, 00000000000000000000000000000000000000000000000000000000cfddb0ed )
147 TetherToken.Transfer( from=Spender, to=[Sender] 0x4ba26a27df60655a5768cb98b71c3bae2635eeb0, value=3471355658 )
148 MetaSwap.Swap( 0xbeee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630d, 0x9e4182a38ef65fd4828a1563124c6ada8e2cd461a1a638cbc46803f0cd3e7f48, 0x0000000000000000000000004ba26a27df60655a5768cb98b71c3bae2635eeb0 )

Account State Difference:

  Address   Before After State Difference Code
0x4Ba26A27...e2635eEB0
2.564496570352902914 Eth
Nonce: 152
0.156801328125714167 Eth
Nonce: 153
2.407695242227188747
0x88e6A0c2...FcB3f5640
(Uniswap V3: USDC 3)
(beaverbuild)
135.909205647752294115 Eth135.909321065852294115 Eth0.0001154181
0xA0b86991...E3606eB48
0xbEbc4478...3032FF1C7
(Curve.fi: DAI/USDC/USDT Pool)
0xC02aaA39...83C756Cc2 3,725,264.913019435841991914 Eth3,725,267.292019435841991914 Eth2.379
0xdAC17F95...13D831ec7
0xdc838074...160b61620 916.176344440151360999 Eth916.197344440151360999 Eth0.021

Execution Trace

ETH 2.4 MetaSwap.swap( aggregatorId=paraswapV5FeeDynamic, tokenFrom=0x0000000000000000000000000000000000000000, amount=2400000000000000000, data=0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC70000000000000000000000000000000000000000000000002103E7E540A7800000000000000000000000000000000000000000000000000000000000CBB56AD40000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000004A9B6384488000000000000000000000000000DC838074D95C89A5C2CBF26984FEDC9160B6162000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000784A94E78EF0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE0000000000000000000000000000000000000000000000002103E7E540A7800000000000000000000000000000000000000000000000000000000000CBB56AD400000000000000000000000000000000000000000000000000000000CFDDB0ED0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000640E4DC374F21014CDB244ECB5DAC9EC73CE04C400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000009BE264469EF954C139DA4A45CF76CBCC5E3A6A73000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000E592427A0AECE92DE3EDEE1F18E0157C05861564000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000640E0773000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48000000000000000000000000000000000000000000000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000009BE264469EF954C139DA4A45CF76CBCC5E3A6A73000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000BEBC44782C7DB0A1A60CB6FE97D0B483032FF1C7000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
  • ETH 2.4 Spender.swap( adapter=0xda6f9b1FedeD6A2F26A7869B06254adFe7e207CD, data=0x92F5F0370000000000000000000000004BA26A27DF60655A5768CB98B71C3BAE2635EEB00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC70000000000000000000000000000000000000000000000002103E7E540A7800000000000000000000000000000000000000000000000000000000000CBB56AD40000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000004A9B6384488000000000000000000000000000DC838074D95C89A5C2CBF26984FEDC9160B6162000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000784A94E78EF0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE0000000000000000000000000000000000000000000000002103E7E540A7800000000000000000000000000000000000000000000000000000000000CBB56AD400000000000000000000000000000000000000000000000000000000CFDDB0ED0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000640E4DC374F21014CDB244ECB5DAC9EC73CE04C400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000009BE264469EF954C139DA4A45CF76CBCC5E3A6A73000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000E592427A0AECE92DE3EDEE1F18E0157C05861564000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000640E0773000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48000000000000000000000000000000000000000000000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000009BE264469EF954C139DA4A45CF76CBCC5E3A6A73000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000BEBC44782C7DB0A1A60CB6FE97D0B483032FF1C7000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
    • ETH 2.4 0xda6f9b1feded6a2f26a7869b06254adfe7e207cd.92f5f037( )
      • ETH 2.379 AugustusSwapper.a94e78ef( )
        • ETH 2.379 MultiPath.multiSwap( data=[{name:fromToken, type:address, order:1, indexed:false, value:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, valueString:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE}, {name:fromAmount, type:uint256, order:2, indexed:false, value:2379000000000000000, valueString:2379000000000000000}, {name:toAmount, type:uint256, order:3, indexed:false, value:3417664212, valueString:3417664212}, {name:expectedAmount, type:uint256, order:4, indexed:false, value:3487412461, valueString:3487412461}, {name:beneficiary, type:address, order:5, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:path, type:tuple[], order:6, indexed:false}, {name:partner, type:address, order:7, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:feePercent, type:uint256, order:8, indexed:false, value:452312848583266388373324160190187140051835877600158453279131187530910679040, valueString:452312848583266388373324160190187140051835877600158453279131187530910679040}, {name:permit, type:bytes, order:9, indexed:false, value:0x, valueString:0x}, {name:deadline, type:uint256, order:10, indexed:false, value:1678659011, valueString:1678659011}, {name:uuid, type:bytes16, order:11, indexed:false, value:dPIQFM2yROy12snsc84ExA==, valueString:System.Byte[]}] ) => ( 3471355658 )
          • AugustusSwapper.hasRole( role=8429D542926E6695B59AC6FBDCD9B37E8B1AEB757AFAB06AB60B1BB5878C3B49, account=0x9bE264469eF954c139Da4A45Cf76CbCC5e3A6A73 ) => ( True )
          • ETH 2.379 Adapter01.swap( fromToken=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, toToken=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, fromAmount=2379000000000000000, 0, route= )
            • ETH 2.379 WETH9.CALL( )
            • WETH9.allowance( 0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57, 0xE592427A0AEce92De3Edee1F18E0157C05861564 ) => ( 115792089237316195423570985008687907853269984665640564039457584007913129639935 )
            • SwapRouter.exactInput( params=[{name:path, type:bytes, order:1, indexed:false, value:0xC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48, valueString:0xC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48}, {name:recipient, type:address, order:2, indexed:false, value:0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57, valueString:0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57}, {name:deadline, type:uint256, order:3, indexed:false, value:1678641011, valueString:1678641011}, {name:amountIn, type:uint256, order:4, indexed:false, value:2379000000000000000, valueString:2379000000000000000}, {name:amountOutMinimum, type:uint256, order:5, indexed:false, value:1, valueString:1}] ) => ( amountOut=3656678030 )
            • FiatTokenProxy.70a08231( )
              • FiatTokenV2_1.balanceOf( account=0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57 ) => ( 3656678030 )
              • AugustusSwapper.hasRole( role=8429D542926E6695B59AC6FBDCD9B37E8B1AEB757AFAB06AB60B1BB5878C3B49, account=0x9bE264469eF954c139Da4A45Cf76CbCC5e3A6A73 ) => ( True )
              • FiatTokenProxy.70a08231( )
                • FiatTokenV2_1.balanceOf( account=0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57 ) => ( 3656678030 )
                • ETH 2.379 Adapter01.swap( fromToken=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, toToken=0xdAC17F958D2ee523a2206206994597C13D831ec7, fromAmount=3656678030, 0, route= )
                  • FiatTokenProxy.dd62ed3e( )
                  • Vyper_contract.exchange( i=1, j=2, dx=3656678030, min_dy=1 )
                  • TetherToken.balanceOf( who=0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57 ) => ( 3471355658 )
                  • TetherToken.transfer( _to=0x74de5d4FCbf63E00296fd95d33236B9794016631, _value=3471355658 )
                  • ETH 0.021 FeeDistributor.CALL( )
                  • TetherToken.balanceOf( who=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 3471355658 )
                  • TetherToken.transfer( _to=0x4Ba26A27df60655A5768CB98B71c3BAe2635eEB0, _value=3471355658 )
                    File 1 of 12: MetaSwap
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    pragma solidity ^0.6.0;
                    import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
                    import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
                    import "@openzeppelin/contracts/utils/Address.sol";
                    import "../Constants.sol";
                    contract CommonAdapter {
                    using SafeERC20 for IERC20;
                    using Address for address;
                    using Address for address payable;
                    /**
                    * @dev Performs a swap
                    * @param recipient The original msg.sender performing the swap
                    * @param aggregator Address of the aggregator's contract
                    * @param spender Address to which tokens will be approved
                    * @param method Selector of the function to be called in the aggregator's contract
                    * @param tokenFrom Token to be swapped
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 2 of 12: 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 12: 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 12: AugustusSwapper
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // File: openzeppelin-solidity/contracts/utils/EnumerableSet.sol
                    pragma solidity >=0.6.0 <0.8.0;
                    /**
                    * @dev Library for managing
                    * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive
                    * types.
                    *
                    * Sets have the following properties:
                    *
                    * - Elements are added, removed, and checked for existence in constant time
                    * (O(1)).
                    * - Elements are enumerated in O(n). No guarantees are made on the ordering.
                    *
                    * ```
                    * contract Example {
                    * // Add the library methods
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 5 of 12: Vyper_contract
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    # @version 0.2.4
                    # (c) Curve.Fi, 2020
                    # Pool for DAI/USDC/USDT
                    from vyper.interfaces import ERC20
                    interface CurveToken:
                    def totalSupply() -> uint256: view
                    def mint(_to: address, _value: uint256) -> bool: nonpayable
                    def burnFrom(_to: address, _value: uint256) -> bool: nonpayable
                    # Events
                    event TokenExchange:
                    buyer: indexed(address)
                    sold_id: int128
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 6 of 12: TetherToken
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    pragma 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;
                    }
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 7 of 12: Spender
                    1
                    {"Constants.84ef19f8.sol":{"content":"// SPDX-License-Identifier: MIT\r\n\r\npragma solidity ^0.6.0;\r\n\r\nlibrary Constants {\r\n address internal
                        constant ETH = 0x0000000000000000000000000000000000000000;\r\n}\r\n"},"Spender.3372a096.sol":{"content":"// SPDX-License-Identifier:
                        MIT\r\n\r\npragma solidity ^0.6.0;\r\n\r\nimport \"./Constants.84ef19f8.sol\";\r\n\r\ncontract Spender {\r\n address public immutable metaswap
                        ;\r\n\r\n constructor() public {\r\n metaswap = msg.sender;\r\n }\r\n\r\n /// @dev Receives ether from swaps\r\n fallback()
                        external payable {}\r\n\r\n function swap(address adapter, bytes calldata data) external payable {\r\n require(msg.sender == metaswap,
                        \"FORBIDDEN\");\r\n require(adapter != address(0), \"ADAPTER_NOT_PROVIDED\");\r\n _delegate(adapter, data,
                        \"ADAPTER_DELEGATECALL_FAILED\");\r\n }\r\n\r\n /**\r\n * @dev Performs a delegatecall and bubbles up the errors, adapted from\r\n *
                        https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol\r\n * @param target Address of the contract to
                        delegatecall\r\n * @param data Data passed in the delegatecall\r\n * @param errorMessage Fallback revert reason\r\n */\r\n function
                        _delegate(\r\n address target,\r\n bytes memory data,\r\n string memory errorMessage\r\n ) private returns (bytes memory)
                        {\r\n // solhint-disable-next-line avoid-low-level-calls\r\n (bool success, bytes memory returndata) = target.delegatecall(data);\r\n
                         if (success) {\r\n return returndata;\r\n } else {\r\n // Look for revert reason and bubble it up if
                        present\r\n if (returndata.length \u003e 0) {\r\n // The easiest way to bubble the revert reason is using memory via
                        assembly\r\n\r\n // solhint-disable-next-line no-inline-assembly\r\n assembly {\r\n let
                        returndata_size := mload(returndata)\r\n revert(add(32, returndata), returndata_size)\r\n }\r\n } else
                        {\r\n revert(errorMessage);\r\n }\r\n }\r\n }\r\n}\r\n"}}
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 8 of 12: MultiPath
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    /*solhint-disable avoid-low-level-calls*/
                    // SPDX-License-Identifier: ISC
                    pragma solidity 0.7.5;
                    pragma abicoder v2;
                    import "./IRouter.sol";
                    import "../IAugustusSwapperV5.sol";
                    import "../adapters/IAdapter.sol";
                    import "../adapters/IBuyAdapter.sol";
                    import "../fee/FeeModel.sol";
                    import "../fee/IFeeClaimer.sol";
                    contract MultiPath is FeeModel, IRouter {
                    using SafeMath for uint256;
                    /*solhint-disable no-empty-blocks*/
                    constructor(
                    uint256 _partnerSharePercent,
                    uint256 _maxFeePercent,
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 9 of 12: Adapter01
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: ISC
                    pragma solidity 0.7.5;
                    pragma abicoder v2;
                    import "../../lib/uniswapv2/NewUniswapV2.sol";
                    import "../../lib/zeroxv4/ZeroxV4.sol";
                    import "../../lib/zeroxv2/ZeroxV2.sol";
                    import "../../lib/curve/Curve.sol";
                    import "../../lib/balancer/Balancer.sol";
                    import "../../lib/uniswapv3/UniswapV3.sol";
                    import "../../lib/aavee2/Aavee2.sol";
                    import "../../lib/oneinchlp/OneInchPool.sol";
                    import "../../lib/mstable/MStable.sol";
                    import "../../lib/curve/CurveV2.sol";
                    import "../IAdapter.sol";
                    /**
                    * @dev This contract will route call to:
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 10 of 12: SwapRouter
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: GPL-2.0-or-later
                    pragma solidity =0.7.6;
                    pragma abicoder v2;
                    import '@uniswap/v3-core/contracts/libraries/SafeCast.sol';
                    import '@uniswap/v3-core/contracts/libraries/TickMath.sol';
                    import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol';
                    import './interfaces/ISwapRouter.sol';
                    import './base/PeripheryImmutableState.sol';
                    import './base/PeripheryValidation.sol';
                    import './base/PeripheryPaymentsWithFee.sol';
                    import './base/Multicall.sol';
                    import './base/SelfPermit.sol';
                    import './libraries/Path.sol';
                    import './libraries/PoolAddress.sol';
                    import './libraries/CallbackValidation.sol';
                    import './interfaces/external/IWETH9.sol';
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 11 of 12: 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 12 of 12: FeeDistributor
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // File: @openzeppelin/contracts/math/SafeMath.sol
                    pragma solidity >=0.6.0 <0.8.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