Transaction Hash:
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 | ||
---|---|---|---|---|---|
0x4Ba26A27...e2635eEB0 |
2.564496570352902914 Eth
Nonce: 152
|
0.156801328125714167 Eth
Nonce: 153
| 2.407695242227188747 | ||
0x88e6A0c2...FcB3f5640 | (Uniswap V3: USDC 3) | ||||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 135.909205647752294115 Eth | 135.909321065852294115 Eth | 0.0001154181 | |
0xA0b86991...E3606eB48 | |||||
0xbEbc4478...3032FF1C7 | (Curve.fi: DAI/USDC/USDT Pool) | ||||
0xC02aaA39...83C756Cc2 | 3,725,264.913019435841991914 Eth | 3,725,267.292019435841991914 Eth | 2.379 | ||
0xdAC17F95...13D831ec7 | |||||
0xdc838074...160b61620 | 916.176344440151360999 Eth | 916.197344440151360999 Eth | 0.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 )
- ETH 2.379
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 )
swap[MetaSwap (ln:1598)]
_swap[MetaSwap (ln:1604)]
safeTransferFrom[MetaSwap (ln:1637)]
swap[MetaSwap (ln:1639)]
encode[MetaSwap (ln:1643)]
Swap[MetaSwap (ln:1648)]
File 1 of 12: MetaSwap
File 2 of 12: WETH9
File 3 of 12: FiatTokenProxy
File 4 of 12: AugustusSwapper
File 5 of 12: Vyper_contract
File 6 of 12: TetherToken
File 7 of 12: Spender
File 8 of 12: MultiPath
File 9 of 12: Adapter01
File 10 of 12: SwapRouter
File 11 of 12: FiatTokenV2_1
File 12 of 12: FeeDistributor
12345678910111213141516pragma 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
File 2 of 12: WETH9
12345678910111213141516// 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;
File 3 of 12: FiatTokenProxy
12345678910111213141516pragma 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`.*/
File 4 of 12: AugustusSwapper
12345678910111213141516// File: openzeppelin-solidity/contracts/utils/EnumerableSet.solpragma 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
File 5 of 12: Vyper_contract
12345678910111213141516# @version 0.2.4# (c) Curve.Fi, 2020# Pool for DAI/USDC/USDTfrom vyper.interfaces import ERC20interface CurveToken:def totalSupply() -> uint256: viewdef mint(_to: address, _value: uint256) -> bool: nonpayabledef burnFrom(_to: address, _value: uint256) -> bool: nonpayable# Eventsevent TokenExchange:buyer: indexed(address)sold_id: int128
File 6 of 12: 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 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 internalconstant 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 todelegatecall\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\nif (success) {\r\n return returndata;\r\n } else {\r\n // Look for revert reason and bubble it up ifpresent\r\n if (returndata.length \u003e 0) {\r\n // The easiest way to bubble the revert reason is using memory viaassembly\r\n\r\n // solhint-disable-next-line no-inline-assembly\r\n assembly {\r\n letreturndata_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"}}
File 8 of 12: MultiPath
12345678910111213141516/*solhint-disable avoid-low-level-calls*/// SPDX-License-Identifier: ISCpragma 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,
File 9 of 12: Adapter01
12345678910111213141516// SPDX-License-Identifier: ISCpragma 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:
File 10 of 12: SwapRouter
12345678910111213141516// SPDX-License-Identifier: GPL-2.0-or-laterpragma 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';
File 11 of 12: FiatTokenV2_1
12345678910111213141516// File: @openzeppelin/contracts/math/SafeMath.sol// SPDX-License-Identifier: MITpragma 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.*
File 12 of 12: FeeDistributor
12345678910111213141516// SPDX-License-Identifier: MIT// File: @openzeppelin/contracts/math/SafeMath.solpragma 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.*