Transaction Hash:
Block:
22471156 at May-13-2025 01:51:11 AM +UTC
Transaction Fee:
0.0007325082706996 ETH
$2.08
Gas Used:
284,720 Gas / 2.572732055 Gwei
Emitted Events:
174 |
SLN.Transfer( from=[Sender] 0x6ed4c63bccae0a7d2b87b9dc9111165510ce3796, to=Spender, value=1000169000000000000000 )
|
175 |
SLN.Transfer( from=Spender, to=UniswapV2Pair, value=991417521250000000000 )
|
176 |
TetherToken.Transfer( from=UniswapV2Pair, to=UniswapV2Pair, value=73582031 )
|
177 |
UniswapV2Pair.Sync( reserve0=8587762652, reserve1=116352681423996273200853 )
|
178 |
UniswapV2Pair.Swap( sender=AggregationRouterV5, amount0In=0, amount1In=991417521250000000000, amount0Out=73582031, amount1Out=0, to=UniswapV2Pair )
|
179 |
WETH9.Transfer( src=UniswapV2Pair, dst=UniswapV2Pair, wad=29920705477973299 )
|
180 |
UniswapV2Pair.Sync( reserve0=4541101227140911052457, reserve1=11134203462794 )
|
181 |
UniswapV2Pair.Swap( sender=AggregationRouterV5, amount0In=0, amount1In=73582031, amount0Out=29920705477973299, amount1Out=0, to=UniswapV2Pair )
|
182 |
SetToken.Transfer( from=UniswapV2Pair, to=Spender, value=3554041615739569207 )
|
183 |
UniswapV2Pair.Sync( reserve0=2330386047377816120071, reserve1=19590078324899423579 )
|
184 |
UniswapV2Pair.Swap( sender=AggregationRouterV5, amount0In=0, amount1In=29920705477973299, amount0Out=3554041615739569207, amount1Out=0, to=Spender )
|
185 |
SLN.Transfer( from=Spender, to=0x4ACb6C4321253548a7d4Bb9C84032Cc4eE04bFD7, value=8751478750000000000 )
|
186 |
SetToken.Transfer( from=Spender, to=[Sender] 0x6ed4c63bccae0a7d2b87b9dc9111165510ce3796, value=3554041615739569207 )
|
187 |
MetaSwap.Swap( 0xbeee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630d, 0xf35f348d53012d52a5d39f9390d246956ac932d5778d2bb49e359dba4fa0896d, 0x0000000000000000000000006ed4c63bccae0a7d2b87b9dc9111165510ce3796 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x0d4a11d5...0471f1852 | |||||
0x4d3C5dB2...97DD64bff | |||||
0x6eD4c63b...510ce3796 |
0.010982076933035188 Eth
Nonce: 27691
|
0.010249568662335588 Eth
Nonce: 27692
| 0.0007325082706996 | ||
0x72e364F2...09Cd634D7 | |||||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 13.689685914608370025 Eth | 13.689970634609508905 Eth | 0.00028472000113888 | |
0xC02aaA39...83C756Cc2 | |||||
0xD4E0b3d5...9BACfd667 | |||||
0xdAC17F95...13D831ec7 | |||||
0xDb82c0d9...41da6df14 |
Execution Trace
MetaSwap.swap( aggregatorId=oneInchV5FeeDynamic, tokenFrom=0xDb82c0d91E057E05600C8F8dc836bEb41da6df14, amount=1000169000000000000000, data=0x000000000000000000000000DB82C0D91E057E05600C8F8DC836BEB41DA6DF1400000000000000000000000072E364F2ABDC788B7E918BC238B21F109CD634D7000000000000000000000000000000000000000000000035BEAE96D25C8954000000000000000000000000000000000000000000000000003055F66106A66E5F000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000079737F8E49212C000000000000000000000000004ACB6C4321253548A7D4BB9C84032CC4EE04BFD7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080502B1C5000000000000000000000000DB82C0D91E057E05600C8F8DC836BEB41DA6DF14000000000000000000000000000000000000000000000035BEAE96D25C8954000000000000000000000000000000000000000000000000003055F66106A66E5E0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000380000000000000003B6D0340D4E0B3D5A0319405E05C55F86FE67CC9BACFD66780000000000000003B6D03400D4A11D5EEAAC28EC3F61D100DAF4D40471F185280000000000000003B6D03404D3C5DB2C68F6859E0CD05D080979F597DD64BFF7DCBEA7C000000000000000000000000000000000000000000000000 )
-
SLN.transferFrom( from=0x6eD4c63bCcaE0A7d2b87B9Dc9111165510ce3796, to=0x74de5d4FCbf63E00296fd95d33236B9794016631, value=1000169000000000000000 ) => ( True )
Spender.swap( adapter=0x7CDf68CE9A05413Cbb76cb7F80EAF415A826E313, data=0x92F5F0370000000000000000000000006ED4C63BCCAE0A7D2B87B9DC9111165510CE3796000000000000000000000000DB82C0D91E057E05600C8F8DC836BEB41DA6DF1400000000000000000000000072E364F2ABDC788B7E918BC238B21F109CD634D7000000000000000000000000000000000000000000000035BEAE96D25C8954000000000000000000000000000000000000000000000000003055F66106A66E5F000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000079737F8E49212C000000000000000000000000004ACB6C4321253548A7D4BB9C84032CC4EE04BFD7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080502B1C5000000000000000000000000DB82C0D91E057E05600C8F8DC836BEB41DA6DF14000000000000000000000000000000000000000000000035BEAE96D25C8954000000000000000000000000000000000000000000000000003055F66106A66E5E0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000380000000000000003B6D0340D4E0B3D5A0319405E05C55F86FE67CC9BACFD66780000000000000003B6D03400D4A11D5EEAAC28EC3F61D100DAF4D40471F185280000000000000003B6D03404D3C5DB2C68F6859E0CD05D080979F597DD64BFF7DCBEA7C000000000000000000000000000000000000000000000000 )
0x7cdf68ce9a05413cbb76cb7f80eaf415a826e313.92f5f037( )
-
SLN.allowance( owner=0x74de5d4FCbf63E00296fd95d33236B9794016631, spender=0x1111111254EEB25477B68fb85Ed929f73A960582 ) => ( 115792089237316195423570985008687907853269984665640564039457584007913129639935 )
AggregationRouterV5.unoswap( srcToken=0xDb82c0d91E057E05600C8F8dc836bEb41da6df14, amount=991417521250000000000, minReturn=3482960783424777822, pools=[57896044618658097713242609637978181212215450793137442325285148435239547164263, 57896044618658097713242609636838732824955715184611276608003493337300805294162, 57896044618658097713242609637203802632426198315530506610696001332662362328063] ) => ( returnAmount=3554041615739569207 )
-
SLN.transferFrom( from=0x74de5d4FCbf63E00296fd95d33236B9794016631, to=0xD4E0b3d5A0319405E05c55f86fE67CC9BACfd667, value=991417521250000000000 ) => ( True )
-
UniswapV2Pair.STATICCALL( )
UniswapV2Pair.swap( amount0Out=73582031, amount1Out=0, to=0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852, data=0x )
-
UniswapV2Pair.STATICCALL( )
UniswapV2Pair.swap( amount0Out=29920705477973299, amount1Out=0, to=0x4d3C5dB2C68f6859e0Cd05D080979f597DD64bff, data=0x )
-
UniswapV2Pair.STATICCALL( )
UniswapV2Pair.swap( amount0Out=3554041615739569207, amount1Out=0, to=0x74de5d4FCbf63E00296fd95d33236B9794016631, data=0x )
-
SetToken.transfer( recipient=0x74de5d4FCbf63E00296fd95d33236B9794016631, amount=3554041615739569207 ) => ( True )
-
SetToken.balanceOf( account=0x4d3C5dB2C68f6859e0Cd05D080979f597DD64bff ) => ( 2330386047377816120071 )
-
WETH9.balanceOf( 0x4d3C5dB2C68f6859e0Cd05D080979f597DD64bff ) => ( 19590078324899423579 )
-
-
-
SLN.transfer( to=0x4ACb6C4321253548a7d4Bb9C84032Cc4eE04bFD7, value=8751478750000000000 ) => ( True )
-
SLN.balanceOf( account=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 0 )
-
SetToken.balanceOf( account=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 3554041615739569207 )
-
SetToken.transfer( recipient=0x6eD4c63bCcaE0A7d2b87B9Dc9111165510ce3796, amount=3554041615739569207 ) => ( True )
-
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 10: MetaSwap
File 2 of 10: Spender
File 3 of 10: SLN
File 4 of 10: UniswapV2Pair
File 5 of 10: UniswapV2Pair
File 6 of 10: TetherToken
File 7 of 10: UniswapV2Pair
File 8 of 10: WETH9
File 9 of 10: SetToken
File 10 of 10: AggregationRouterV5
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 10: 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 3 of 10: SLN
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)pragma solidity ^0.8.20;import {IAccessControl} from "./IAccessControl.sol";import {Context} from "../utils/Context.sol";import {ERC165} from "../utils/introspection/ERC165.sol";/*** @dev Contract module that allows children to implement role-based access* control mechanisms. This is a lightweight version that doesn't allow enumerating role* members except through off-chain means by accessing the contract event logs. Some* applications may benefit from on-chain enumerability, for those cases see* {AccessControlEnumerable}.** Roles are referred to by their `bytes32` identifier. These should be exposed* in the external API and be unique. The best way to achieve this is by* using `public constant` hash digests:
File 4 of 10: UniswapV2Pair
12345678910111213141516// File: contracts/interfaces/IUniswapV2Pair.solpragma solidity >=0.5.0;interface IUniswapV2Pair {event Approval(address indexed owner, address indexed spender, uint value);event Transfer(address indexed from, address indexed to, uint value);function name() external pure returns (string memory);function symbol() external pure returns (string memory);function decimals() external pure returns (uint8);function totalSupply() external view returns (uint);function balanceOf(address owner) external view returns (uint);function allowance(address owner, address spender) external view returns (uint);function approve(address spender, uint value) external returns (bool);
File 5 of 10: UniswapV2Pair
12345678910111213141516// File: contracts/interfaces/IUniswapV2Pair.solpragma solidity >=0.5.0;interface IUniswapV2Pair {event Approval(address indexed owner, address indexed spender, uint value);event Transfer(address indexed from, address indexed to, uint value);function name() external pure returns (string memory);function symbol() external pure returns (string memory);function decimals() external pure returns (uint8);function totalSupply() external view returns (uint);function balanceOf(address owner) external view returns (uint);function allowance(address owner, address spender) external view returns (uint);function approve(address spender, uint value) external returns (bool);
File 6 of 10: 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 10: UniswapV2Pair
12345678910111213141516// File: contracts/interfaces/IUniswapV2Pair.solpragma solidity >=0.5.0;interface IUniswapV2Pair {event Approval(address indexed owner, address indexed spender, uint value);event Transfer(address indexed from, address indexed to, uint value);function name() external pure returns (string memory);function symbol() external pure returns (string memory);function decimals() external pure returns (uint8);function totalSupply() external view returns (uint);function balanceOf(address owner) external view returns (uint);function allowance(address owner, address spender) external view returns (uint);function approve(address spender, uint value) external returns (bool);
File 8 of 10: 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 9 of 10: SetToken
12345678910111213141516// Dependency file: @openzeppelin/contracts/utils/Address.sol// pragma solidity >=0.6.2 <0.8.0;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [// importANT]* ====* It is unsafe to assume that an address for which this function returns
File 10 of 10: AggregationRouterV5
12345678910111213141516/*,▄▓▓██▌ ,╓▄▄▓▓▓▓▓▓▓▓▄▄▄,,,▓██▓███▓▄▓███▓╬╬╬╬╬╬╬╬╬╬╬╬╬▓███▓▄,▄█ ▓██╬╣███████╬▓▀╬╬▓▓▓████████████▓█████▄,▓██▌ ▓██╬╣██████╬▓▌ ██████████████████████▌╙╙▀ⁿ▐████████╬▓████▓▓█╨ ▄ ╟█████████▓▓╬╬╬╬╬▓▓█████▓▄└▀▓▓▄╓ ╟█▓╣█████▓██████▀ ╓█▌ ███████▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓██▓▄└▀████▓▄╥ ▐██╬╬██████████╙ Æ▀─ ▓███▀╚╠╬╩▀▀███████▓▓╬╬╬╬╬╬╬╬╬██▄└▀██▓▀▀█████▓╬▓██████▀ ▄█████▒╠" └╙▓██████▓╬╬╬╬╬╬╬╬██▄└▀██▄,└╙▀▀████▌└╙ ^"▀╙╙╙"╙██ @▄ ╙▀███████╬╬╬╬╬╬╬██µ└▀██▓▄, ██▌ ╒ ╙█▓ ]▓█▓╔ ▀███████▓╬╬╬╬╬▓█▌▀█████ ▓ ╟█▌ ]╠██▓░▒╓ ▀████████╬╬╬╬╣█▌▐████ ╓█▀█▌ ,██▌ ╚Å███▓▒▒╠╓ ╙█████████╬╬╬╣█▌└████ ▓█░░▓█ ▀▀▀ φ▒╫████▒▒▒▒╠╓ █████████▓╬╬▓█µ╘███µ ▌▄█▓▄▓▀` ,▀ ,╔╠░▓██████▌╠▒▒▒φ ██████████╬╬██▐████µ╙▓▀` ,▀╙,╔╔φφφ╠░▄▓███████▌░▓╙▒▒▒╠ └██╬███████╬▓█⌐