ETH Price: $2,812.92 (+1.70%)

Transaction Decoder

Block:
18668088 at Nov-28-2023 05:37:35 AM +UTC
Transaction Fee:
0.00992288101726348 ETH $27.91
Gas Used:
304,708 Gas / 32.56521331 Gwei

Emitted Events:

174 GROK.Transfer( from=[Sender] 0x85eadf65f71dcb4356ebc64423236ec2aeab36f9, to=BKSwap, value=15964856679170 )
175 GROK.Approval( owner=[Sender] 0x85eadf65f71dcb4356ebc64423236ec2aeab36f9, spender=[Receiver] BKSwapRouter, value=115792089237316195423570985008687907853269984665640564039457583991948272960765 )
176 GROK.Approval( owner=BKSwap, spender=OdosRouterV2, value=115792089237316195423570985008687907853269984665640564039457584007913129639935 )
177 GROK.Transfer( from=BKSwap, to=UniswapV2Pair, value=15964856679170 )
178 GROK.Approval( owner=BKSwap, spender=OdosRouterV2, value=115792089237316195423570985008687907853269984665640564039457583991948272960765 )
179 WETH9.Transfer( src=UniswapV2Pair, dst=0x7D2b63A9ab475397d9c247468803F25Cf6523B76, wad=232060430624497156 )
180 UniswapV2Pair.Sync( reserve0=55860406580411538, reserve1=814180815757453584001 )
181 UniswapV2Pair.Swap( sender=0x7D2b63A9ab475397d9c247468803F25Cf6523B76, amount0In=15964856679170, amount1In=0, amount0Out=0, amount1Out=232060430624497156, to=0x7D2b63A9ab475397d9c247468803F25Cf6523B76 )
182 WETH9.Withdrawal( src=0x7D2b63A9ab475397d9c247468803F25Cf6523B76, wad=232060430624497156 )
183 OdosRouterV2.Swap( sender=BKSwap, inputAmount=15964856679170, inputToken=GROK, amountOut=231097647768243712, outputToken=0x00000000...000000000, slippage=962782856253444, referralCode=0 )
184 BKSwap.0xa3a0edf0526ed08d875540e19888f79e48c7fd86b501e3145a99f2f3e56e0c03( 0xa3a0edf0526ed08d875540e19888f79e48c7fd86b501e3145a99f2f3e56e0c03, 0x0000000000000000000000000000000000000000000000000000000000000002, 0x00000000000000000000000085eadf65f71dcb4356ebc64423236ec2aeab36f9, 0000000000000000000000000000000000000000000000000002768bd79c681b, 0000000000000000000000000000000000000000000000000000000000000060, 00000000000000000000000000000000000000000000000000000000000000a0, 0000000000000000000000000000000000000000000000000000000000000020, 4269744b65657020534f523a204167677265676174696f6e2046656174757265, 0000000000000000000000000000000000000000000000000000000000000003, 312e300000000000000000000000000000000000000000000000000000000000 )
185 BKSwap.0x65015729990773c576a3b60dabbbebc51d01eae66dea69e06f4b79f345cf5b72( 0x65015729990773c576a3b60dabbbebc51d01eae66dea69e06f4b79f345cf5b72, 00000000000000000000000000000000000000000000000000000000000000e0, 0000000000000000000000000000000000000000000000000000000000000001, 000000000000000000000000d1ca1f4dbb645710f5d5a9917aa984a47524f49a, 00000000000000000000000085eadf65f71dcb4356ebc64423236ec2aeab36f9, 0000000000000000000000008390a1da07e376ef7add4be859ba74fb83aa02d5, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000000000000000000000000000000003328f8a3c0b25e5, 0000000000000000000000000000000000000000000000000000000000000020, 6e4a045d23c3dfd10f8a55619596aebbc2d0e9ac82f5a7ddc78ec4da86c21018 )

Account State Difference:

  Address   Before After State Difference Code
2.085739289920668035 Eth2.086196351920668035 Eth0.000457062
0x69c66BeA...93b8d82a2
0x8390a1DA...b83aA02D5
0x85eADF65...2AEaB36f9
0.02902800833232977 Eth
Nonce: 297
0.249509482140005271 Eth
Nonce: 298
0.220481473807675501
0x92c2eA2F...f1D4162fb 45.034636301842170492 Eth45.035329594785475223 Eth0.000693292943304731
0xC02aaA39...83C756Cc2 3,079,385.46585071248950543 Eth3,079,385.233790281865008274 Eth0.232060430624497156
0xCf5540fF...7b0772559
(Odos: Router V2)
1.256852235985432363 Eth1.257815018841685807 Eth0.000962782856253444

Execution Trace

BKSwapRouter.swap( swapParams=[{name:fromTokenAddress, type:address, order:1, indexed:false, value:0x8390a1DA07E376ef7aDd4Be859BA74Fb83aA02D5, valueString:0x8390a1DA07E376ef7aDd4Be859BA74Fb83aA02D5}, {name:amountInTotal, type:uint256, order:2, indexed:false, value:15964856679170, valueString:15964856679170}, {name:data, type:bytes, order:3, indexed:false, value:0x6A2B69F00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000008390A1DA07E376EF7ADD4BE859BA74FB83AA02D5000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000000000000000000000000000E851B9C7B0200000000000000000000000000000000000000000000000000000E851B9C7B0200000000000000000000000085EADF65F71DCB4356EBC64423236EC2AEAB36F900000000000000000000000000000000000000000000000003287ED6DAE1C463EADDD3C0375CA71EA17E7F531249173C8051F377474A10984E1493CF042FB1790000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004138CA8146B665FD37B85B8368268B5FB8277F3E246F2034E8BB3DF94F1057CB796DF9B65BD632032D452A8F1CB7DADDE977BA34C22CE1D7BAD8F314212EA442111B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000CF5540FFFCDC3D510B18BFCA6D2B9987B0772559000000000000000000000000CF5540FFFCDC3D510B18BFCA6D2B9987B0772559000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000D683BD37F900018390A1DA07E376EF7ADD4BE859BA74FB83AA02D50000060E851B9C7B02080335061613A78E00028F5C00017D2B63A9AB475397D9C247468803F25CF6523B76000169C66BEAFB06674DB41B22CFC50C34A93B8D82A200012F2DD99235CB728FC79AF575F1325EAA270F0C99000000000301020300030100000102011E020600000001FF0000000000000000000000000069C66BEAFB06674DB41B22CFC50C34A93B8D82A28390A1DA07E376EF7ADD4BE859BA74FB83AA02D50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085EADF65F71DCB4356EBC64423236EC2AEAB36F900000000000000000000000000000000000000000000000000000000000000206E4A045D23C3DFD10F8A55619596AEBBC2D0E9AC82F5A7DDC78EC4DA86C21018, valueString:0x6A2B69F00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000008390A1DA07E376EF7ADD4BE859BA74FB83AA02D5000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000000000000000000000000000E851B9C7B0200000000000000000000000000000000000000000000000000000E851B9C7B0200000000000000000000000085EADF65F71DCB4356EBC64423236EC2AEAB36F900000000000000000000000000000000000000000000000003287ED6DAE1C463EADDD3C0375CA71EA17E7F531249173C8051F377474A10984E1493CF042FB1790000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004138CA8146B665FD37B85B8368268B5FB8277F3E246F2034E8BB3DF94F1057CB796DF9B65BD632032D452A8F1CB7DADDE977BA34C22CE1D7BAD8F314212EA442111B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000CF5540FFFCDC3D510B18BFCA6D2B9987B0772559000000000000000000000000CF5540FFFCDC3D510B18BFCA6D2B9987B0772559000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000D683BD37F900018390A1DA07E376EF7ADD4BE859BA74FB83AA02D50000060E851B9C7B02080335061613A78E00028F5C00017D2B63A9AB475397D9C247468803F25CF6523B76000169C66BEAFB06674DB41B22CFC50C34A93B8D82A200012F2DD99235CB728FC79AF575F1325EAA270F0C99000000000301020300030100000102011E020600000001FF0000000000000000000000000069C66BEAFB06674DB41B22CFC50C34A93B8D82A28390A1DA07E376EF7ADD4BE859BA74FB83AA02D50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085EADF65F71DCB4356EBC64423236EC2AEAB36F900000000000000000000000000000000000000000000000000000000000000206E4A045D23C3DFD10F8A55619596AEBBC2D0E9AC82F5A7DDC78EC4DA86C21018}] )
  • GROK.transferFrom( sender=0x85eADF65f71dCB4356eBC64423236ec2AEaB36f9, recipient=0x2F2dD99235Cb728fc79Af575f1325Eaa270f0C99, amount=15964856679170 ) => ( True )
  • BKSwap.6a2b69f0( )
    • BKRegistry.getFeature( _methodId=System.Byte[] ) => ( proxy=0x60396fca11136A1F960CaadA73DDD08495e0b94E, isLib=True )
    • AggregationFeature.6a2b69f0( )
      • BKRegistry.isCallTarget( _methodId=System.Byte[], _target=0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 ) => ( True )
      • BKRegistry.isApproveTarget( _methodId=System.Byte[], _target=0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 ) => ( True )
      • BKFees.STATICCALL( )
      • GROK.balanceOf( account=0x2F2dD99235Cb728fc79Af575f1325Eaa270f0C99 ) => ( 15964856679171 )
      • GROK.allowance( owner=0x2F2dD99235Cb728fc79Af575f1325Eaa270f0C99, spender=0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 ) => ( 0 )
      • GROK.allowance( owner=0x2F2dD99235Cb728fc79Af575f1325Eaa270f0C99, spender=0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 ) => ( 0 )
      • GROK.approve( spender=0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559, amount=115792089237316195423570985008687907853269984665640564039457584007913129639935 ) => ( True )
      • OdosRouterV2.swapCompact( ) => ( 231097647768243712 )
        • GROK.transferFrom( sender=0x2F2dD99235Cb728fc79Af575f1325Eaa270f0C99, recipient=0x69c66BeAfB06674Db41b22CFC50c34A93b8d82a2, amount=15964856679170 ) => ( True )
        • 0x7d2b63a9ab475397d9c247468803f25cf6523b76.cb70e273( )
          • UniswapV2Pair.STATICCALL( )
          • UniswapV2Pair.swap( amount0Out=0, amount1Out=232060430624497156, to=0x7D2b63A9ab475397d9c247468803F25Cf6523B76, data=0x )
            • WETH9.transfer( dst=0x7D2b63A9ab475397d9c247468803F25Cf6523B76, wad=232060430624497156 ) => ( True )
            • GROK.balanceOf( account=0x69c66BeAfB06674Db41b22CFC50c34A93b8d82a2 ) => ( 55860406580411538 )
            • WETH9.balanceOf( 0x69c66BeAfB06674Db41b22CFC50c34A93b8d82a2 ) => ( 814180815757453584001 )
            • WETH9.withdraw( wad=232060430624497156 )
              • ETH 0.232060430624497156 0x7d2b63a9ab475397d9c247468803f25cf6523b76.CALL( )
              • ETH 0.232060430624497156 OdosRouterV2.CALL( )
              • ETH 0.231097647768243712 BKSwap.CALL( )
              • ETH 0.000693292943304731 0x92c2ea2fafe891758da0ed2ec2978acf1d4162fb.CALL( )
              • ETH 0.230404354824938981 0x85eadf65f71dcb4356ebc64423236ec2aeab36f9.CALL( )
                File 1 of 9: BKSwapRouter
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // SPDX-License-Identifier: MIT
                // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
                pragma solidity ^0.8.0;
                import "../utils/Context.sol";
                /**
                * @dev Contract module which provides a basic access control mechanism, where
                * there is an account (an owner) that can be granted exclusive access to
                * specific functions.
                *
                * By default, the owner account will be the one that deploys the contract. This
                * can later be changed with {transferOwnership}.
                *
                * This module is used through inheritance. It will make available the modifier
                * `onlyOwner`, which can be applied to your functions to restrict their use to
                * the owner.
                */
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 2 of 9: BKSwap
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // SPDX-License-Identifier: MIT
                // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
                pragma solidity ^0.8.0;
                import "../utils/Context.sol";
                /**
                * @dev Contract module which provides a basic access control mechanism, where
                * there is an account (an owner) that can be granted exclusive access to
                * specific functions.
                *
                * By default, the owner account will be the one that deploys the contract. This
                * can later be changed with {transferOwnership}.
                *
                * This module is used through inheritance. It will make available the modifier
                * `onlyOwner`, which can be applied to your functions to restrict their use to
                * the owner.
                */
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 3 of 9: GROK
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                /*
                https://t.me/GROKERC20
                */
                // SPDX-License-Identifier: MIT
                pragma solidity 0.8.20;
                abstract contract Context {
                function _msgSender() internal view virtual returns (address) {
                return msg.sender;
                }
                }
                interface IERC20 {
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 4 of 9: 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 9: 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 6 of 9: OdosRouterV2
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // SPDX-License-Identifier: MIT
                pragma solidity 0.8.8;
                // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
                /**
                * @dev Provides information about the current execution context, including the
                * sender of the transaction and its data. While these are generally available
                * via msg.sender and msg.data, they should not be accessed in such a direct
                * manner, since when dealing with meta-transactions the account sending and
                * paying for execution may not be the actual sender (as far as an application
                * is concerned).
                *
                * This contract is only required for intermediate, library-like contracts.
                */
                abstract contract Context {
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 7 of 9: BKRegistry
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // SPDX-License-Identifier: MIT
                // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
                pragma solidity ^0.8.0;
                import "../utils/Context.sol";
                /**
                * @dev Contract module which provides a basic access control mechanism, where
                * there is an account (an owner) that can be granted exclusive access to
                * specific functions.
                *
                * By default, the owner account will be the one that deploys the contract. This
                * can later be changed with {transferOwnership}.
                *
                * This module is used through inheritance. It will make available the modifier
                * `onlyOwner`, which can be applied to your functions to restrict their use to
                * the owner.
                */
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 8 of 9: AggregationFeature
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // SPDX-License-Identifier: MIT
                // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)
                pragma solidity ^0.8.0;
                /**
                * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
                * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
                *
                * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
                * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
                * need to send a transaction, and thus is not required to hold Ether at all.
                */
                interface IERC20Permit {
                /**
                * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
                * given ``owner``'s signed approval.
                *
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                File 9 of 9: BKFees
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                // SPDX-License-Identifier: MIT
                // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
                pragma solidity ^0.8.0;
                import "../utils/Context.sol";
                /**
                * @dev Contract module which provides a basic access control mechanism, where
                * there is an account (an owner) that can be granted exclusive access to
                * specific functions.
                *
                * By default, the owner account will be the one that deploys the contract. This
                * can later be changed with {transferOwnership}.
                *
                * This module is used through inheritance. It will make available the modifier
                * `onlyOwner`, which can be applied to your functions to restrict their use to
                * the owner.
                */
                XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX