ETH Price: $2,838.94 (+3.71%)

Transaction Decoder

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 Code
0x0d4a11d5...0471f1852
0x4d3C5dB2...97DD64bff
0x6eD4c63b...510ce3796
0.010982076933035188 Eth
Nonce: 27691
0.010249568662335588 Eth
Nonce: 27692
0.0007325082706996
0x72e364F2...09Cd634D7
(beaverbuild)
13.689685914608370025 Eth13.689970634609508905 Eth0.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 )
          • TetherToken.transfer( _to=0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852, _value=73582031 )
          • TetherToken.balanceOf( who=0xD4E0b3d5A0319405E05c55f86fE67CC9BACfd667 ) => ( 8587762652 )
          • SLN.balanceOf( account=0xD4E0b3d5A0319405E05c55f86fE67CC9BACfd667 ) => ( 116352681423996273200853 )
          • UniswapV2Pair.STATICCALL( )
          • UniswapV2Pair.swap( amount0Out=29920705477973299, amount1Out=0, to=0x4d3C5dB2C68f6859e0Cd05D080979f597DD64bff, data=0x )
            • WETH9.transfer( dst=0x4d3C5dB2C68f6859e0Cd05D080979f597DD64bff, wad=29920705477973299 ) => ( True )
            • WETH9.balanceOf( 0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852 ) => ( 4541101227140911052457 )
            • TetherToken.balanceOf( who=0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852 ) => ( 11134203462794 )
            • 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 )
                File 1 of 10: 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 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 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 3 of 10: SLN
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // SPDX-License-Identifier: MIT
                // OpenZeppelin Contracts (last updated v5.0.0) (access/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:
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 4 of 10: UniswapV2Pair
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // File: contracts/interfaces/IUniswapV2Pair.sol
                pragma 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);
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 5 of 10: UniswapV2Pair
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // File: contracts/interfaces/IUniswapV2Pair.sol
                pragma 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);
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 6 of 10: 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 10: UniswapV2Pair
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // File: contracts/interfaces/IUniswapV2Pair.sol
                pragma 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);
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

                File 10 of 10: AggregationRouterV5
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                /*
                ,▄▓▓██▌ ,╓▄▄▓▓▓▓▓▓▓▓▄▄▄,,
                ,▓██▓███▓▄▓███▓╬╬╬╬╬╬╬╬╬╬╬╬╬▓███▓▄,
                ▄█ ▓██╬╣███████╬▓▀╬╬▓▓▓████████████▓█████▄,
                ▓██▌ ▓██╬╣██████╬▓▌ ██████████████████████▌╙╙▀ⁿ
                ▐████████╬▓████▓▓█╨ ▄ ╟█████████▓▓╬╬╬╬╬▓▓█████▓▄
                └▀▓▓▄╓ ╟█▓╣█████▓██████▀ ╓█▌ ███████▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓██▓▄
                └▀████▓▄╥ ▐██╬╬██████████╙ Æ▀─ ▓███▀╚╠╬╩▀▀███████▓▓╬╬╬╬╬╬╬╬╬██▄
                └▀██▓▀▀█████▓╬▓██████▀ ▄█████▒╠" └╙▓██████▓╬╬╬╬╬╬╬╬██▄
                └▀██▄,└╙▀▀████▌└╙ ^"▀╙╙╙"╙██ @▄ ╙▀███████╬╬╬╬╬╬╬██µ
                └▀██▓▄, ██▌ ╒ ╙█▓ ]▓█▓╔ ▀███████▓╬╬╬╬╬▓█▌
                ▀█████ ▓ ╟█▌ ]╠██▓░▒╓ ▀████████╬╬╬╬╣█▌
                ▐████ ╓█▀█▌ ,██▌ ╚Å███▓▒▒╠╓ ╙█████████╬╬╬╣█▌
                └████ ▓█░░▓█ ▀▀▀ φ▒╫████▒▒▒▒╠╓ █████████▓╬╬▓█µ
                ╘███µ ▌▄█▓▄▓▀` ,▀ ,╔╠░▓██████▌╠▒▒▒φ ██████████╬╬██
                ▐████µ╙▓▀` ,▀╙,╔╔φφφ╠░▄▓███████▌░▓╙▒▒▒╠ └██╬███████╬▓█⌐
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX