ETH Price: $2,731.35 (+3.58%)

Transaction Decoder

Block:
22163454 at Mar-31-2025 12:56:47 AM +UTC
Transaction Fee:
0.001005925664832624 ETH $2.75
Gas Used:
386,096 Gas / 2.605377069 Gwei

Emitted Events:

66 Permit2.Permit( owner=[Sender] 0x86d6c2dd4c8160470e1f6ceee5751a02daeed126, token=NetMindTokenProxy, spender=[Receiver] UniversalRouter, amount=1461501637330902918203684832716283019655932542975, expiration=1745974547, nonce=1 )
67 NetMindTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000086d6c2dd4c8160470e1f6ceee5751a02daeed126, 0x000000000000000000000000a86aca6d7c393c06dcdc30473ea3d1b05c358dff, 00000000000000000000000000000000000000000000000f45a45556f11e1a37 )
68 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000a86aca6d7c393c06dcdc30473ea3d1b05c358dff, 0x000000000000000000000000b4e16d0168e52d35cacd2c6185b44281ec28c9dc, 0000000000000000000000000000000000000000000000000000000013a6a227 )
69 UniswapV2Pair.Sync( reserve0=274641195476759445487136, reserve1=322040629689 )
70 UniswapV2Pair.Swap( sender=[Receiver] UniversalRouter, amount0In=281719390822341679671, amount1In=0, amount0Out=0, amount1Out=329687591, to=UniswapV2Pair )
71 WETH9.Transfer( src=UniswapV2Pair, dst=UniswapV2Pair, wad=184282153732815825 )
72 UniswapV2Pair.Sync( reserve0=9394993236437, reserve1=5267041631476065569572 )
73 UniswapV2Pair.Swap( sender=[Receiver] UniversalRouter, amount0In=329687591, amount1In=0, amount0Out=0, amount1Out=184282153732815825, to=UniswapV2Pair )
74 NODEAI.Transfer( from=UniswapV2Pair, to=NODEAI, value=48771386308288647621 )
75 NODEAI.Transfer( from=UniswapV2Pair, to=[Receiver] UniversalRouter, value=1170513271398927542922 )
76 UniswapV2Pair.Sync( reserve0=2079348460722708337399921, reserve1=313513290150341888577 )
77 UniswapV2Pair.Swap( sender=[Receiver] UniversalRouter, amount0In=0, amount1In=184282153732815825, amount0Out=1219284657707216190543, amount1Out=0, to=[Receiver] UniversalRouter )
78 NODEAI.Approval( owner=NODEAI, spender=UniswapV2Router02, value=10016077970415904395585 )
79 NODEAI.Transfer( from=NODEAI, to=UniswapV2Pair, value=10016077970415904395585 )
80 NODEAI.Approval( owner=NODEAI, spender=UniswapV2Router02, value=0 )
81 WETH9.Transfer( src=UniswapV2Pair, dst=UniswapV2Router02, wad=1498445104183687277 )
82 UniswapV2Pair.Sync( reserve0=2089364538693124241795506, reserve1=312014845046158201300 )
83 UniswapV2Pair.Swap( sender=UniswapV2Router02, amount0In=10016077970415904395585, amount1In=0, amount0Out=0, amount1Out=1498445104183687277, to=UniswapV2Router02 )
84 WETH9.Withdrawal( src=UniswapV2Router02, wad=1498445104183687277 )
85 NODEAI.SwapTokensForETH( amountIn=10016077970415904395585, path=[0x1258D60B224c0C5cD888D37bbF31aa5FCFb7e870, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] )
86 NODEAI.Transfer( from=[Receiver] UniversalRouter, to=FeeCollector, value=2926283178497318857 )
87 NODEAI.Transfer( from=[Receiver] UniversalRouter, to=[Sender] 0x86d6c2dd4c8160470e1f6ceee5751a02daeed126, value=1167586988220430224065 )

Account State Difference:

  Address   Before After State Difference Code
0x00000000...43aC78BA3
(Uniswap Protocol: Permit2)
0x03AA6298...57783e8D6
0x1258D60B...FCFb7e870
3.3924488923210338 Eth3.3932210843210338 Eth0.000772192
0x769f5394...6d470cD1f
0x86d6C2DD...2dAEed126
0.0146108498300385 Eth
Nonce: 55
0.013604924165205876 Eth
Nonce: 56
0.001005925664832624
0xA0b86991...E3606eB48
0xA86ACA6D...05c358DFF
0xB4e16d01...1Ec28C9Dc
0xC02aaA39...83C756Cc2 2,882,520.154710636858896339 Eth2,882,518.656265532675209062 Eth1.498445104183687277
0xD335c5E3...F76eE29E6 1.173468893991371172 Eth2.29730272212913663 Eth1.123833828137765458
0xE4eEc0C7...9532E94E5 0.384660341706587807 Eth0.759271617752509626 Eth0.374611276045921819

Execution Trace

UniversalRouter.execute( commands=0x0A080604, inputs=[AAAAAAAAAAAAAAAAA6pimPE3BkJkJBXtwNuLlXeD6NYAAAAAAAAAAAAAAAD//////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoEXUTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAABmqYk8wH2R2VZErt0F0D+V4duorwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABn6e8bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQU3tXKcdonnplfNqBSrkFe+pRJXPjYkLKiuUuG+atzR5I1ZRodAItYUHC9rhYZfxollAjCvaL3VTvwkJqspgo4ocAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9FpFVW8R4aNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAA6pimPE3BkJkJBXtwNuLlXeD6NYAAAAAAAAAAAAAAACguGmRxiGLNsHRnUounrDONgbrSAAAAAAAAAAAAAAAAMAqqjmyI/6NCg5cTyfq2Qg8dWzCAAAAAAAAAAAAAAAAEljWCyJMDFzYiNN7vzGqX8+36HA=, AAAAAAAAAAAAAAAAEljWCyJMDFzYiNN7vzGqX8+36HAAAAAAAAAAAAAAAAAAAAD+4ToQOhDVk7muBrPgXy5+HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ, AAAAAAAAAAAAAAAAEljWCyJMDFzYiNN7vzGqX8+36HAAAAAAAAAAAAAAAACG1sLdTIFgRw4fbO7ldRoC2u7RJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPvro8IXbSP86], deadline=1743384360 )
  • Permit2.permit( owner=0x86d6C2DD4C8160470e1F6ceeE5751a02dAEed126, permitSingle=[{name:details, type:tuple, order:1, indexed:false, value:[{name:token, type:address, order:1, indexed:false, value:0x03AA6298F1370642642415EDC0db8b957783e8D6, valueString:0x03AA6298F1370642642415EDC0db8b957783e8D6}, {name:amount, type:uint160, order:2, indexed:false, value:1461501637330902918203684832716283019655932542975, valueString:1461501637330902918203684832716283019655932542975}, {name:expiration, type:uint48, order:3, indexed:false, value:1745974547, valueString:1745974547}, {name:nonce, type:uint48, order:4, indexed:false, value:1, valueString:1}], valueString:[{name:token, type:address, order:1, indexed:false, value:0x03AA6298F1370642642415EDC0db8b957783e8D6, valueString:0x03AA6298F1370642642415EDC0db8b957783e8D6}, {name:amount, type:uint160, order:2, indexed:false, value:1461501637330902918203684832716283019655932542975, valueString:1461501637330902918203684832716283019655932542975}, {name:expiration, type:uint48, order:3, indexed:false, value:1745974547, valueString:1745974547}, {name:nonce, type:uint48, order:4, indexed:false, value:1, valueString:1}]}, {name:spender, type:address, order:2, indexed:false, value:0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af, valueString:0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af}, {name:sigDeadline, type:uint256, order:3, indexed:false, value:1743384347, valueString:1743384347}], signature=0x4DED5CA71DA279E995F36A052AE415EFA94495CF8D890B2A2B94B86F9AB73479235651A1D008B585070BDAE16197F1A259408C2BDA2F7553BF0909AACA60A38A1C )
    • Null: 0x000...001.7e6d84b6( )
    • Permit2.transferFrom( from=0x86d6C2DD4C8160470e1F6ceeE5751a02dAEed126, to=0xA86ACA6D7C393c06DcDC30473ea3D1b05c358DFF, amount=281719390822341679671, token=0x03AA6298F1370642642415EDC0db8b957783e8D6 )
      • NetMindTokenProxy.23b872dd( )
        • NetMindToken.transferFrom( from=0x86d6C2DD4C8160470e1F6ceeE5751a02dAEed126, to=0xA86ACA6D7C393c06DcDC30473ea3D1b05c358DFF, value=281719390822341679671 ) => ( True )
        • NODEAI.balanceOf( account=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af ) => ( 0 )
        • UniswapV2Pair.STATICCALL( )
        • NetMindTokenProxy.70a08231( )
          • NetMindToken.balanceOf( account=0xA86ACA6D7C393c06DcDC30473ea3D1b05c358DFF ) => ( 274641195476759445487136 )
          • UniswapV2Pair.swap( amount0Out=0, amount1Out=329687591, to=0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc, data=0x )
            • FiatTokenProxy.a9059cbb( )
              • FiatTokenV2_2.transfer( to=0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc, value=329687591 ) => ( True )
              • NetMindTokenProxy.70a08231( )
                • NetMindToken.balanceOf( account=0xA86ACA6D7C393c06DcDC30473ea3D1b05c358DFF ) => ( 274641195476759445487136 )
                • FiatTokenProxy.70a08231( )
                  • FiatTokenV2_2.balanceOf( account=0xA86ACA6D7C393c06DcDC30473ea3D1b05c358DFF ) => ( 322040629689 )
                  • UniswapV2Pair.STATICCALL( )
                  • FiatTokenProxy.70a08231( )
                    • FiatTokenV2_2.balanceOf( account=0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc ) => ( 9394993236437 )
                    • UniswapV2Pair.swap( amount0Out=0, amount1Out=184282153732815825, to=0x769f539486b31eF310125C44d7F405C6d470cD1f, data=0x )
                      • WETH9.transfer( dst=0x769f539486b31eF310125C44d7F405C6d470cD1f, wad=184282153732815825 ) => ( True )
                      • FiatTokenProxy.70a08231( )
                        • FiatTokenV2_2.balanceOf( account=0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc ) => ( 9394993236437 )
                        • WETH9.balanceOf( 0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc ) => ( 5267041631476065569572 )
                        • UniswapV2Pair.STATICCALL( )
                        • WETH9.balanceOf( 0x769f539486b31eF310125C44d7F405C6d470cD1f ) => ( 313513290150341888577 )
                        • UniswapV2Pair.swap( amount0Out=1219284657707216190543, amount1Out=0, to=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af, data=0x )
                          • NODEAI.transfer( recipient=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af, amount=1219284657707216190543 ) => ( True )
                          • NODEAI.balanceOf( account=0x769f539486b31eF310125C44d7F405C6d470cD1f ) => ( 2079348460722708337399921 )
                          • WETH9.balanceOf( 0x769f539486b31eF310125C44d7F405C6d470cD1f ) => ( 313513290150341888577 )
                          • NODEAI.balanceOf( account=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af ) => ( 1170513271398927542922 )
                          • NODEAI.balanceOf( account=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af ) => ( 1170513271398927542922 )
                          • NODEAI.transfer( recipient=0x000000fee13a103A10D593b9AE06b3e05F2E7E1c, amount=2926283178497318857 ) => ( True )
                            • UniswapV2Router02.swapExactTokensForETHSupportingFeeOnTransferTokens( amountIn=10016077970415904395585, amountOutMin=0, path=[0x1258D60B224c0C5cD888D37bbF31aa5FCFb7e870, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], to=0x1258D60B224c0C5cD888D37bbF31aa5FCFb7e870, deadline=1743382607 )
                              • NODEAI.transferFrom( sender=0x1258D60B224c0C5cD888D37bbF31aa5FCFb7e870, recipient=0x769f539486b31eF310125C44d7F405C6d470cD1f, amount=10016077970415904395585 ) => ( True )
                              • UniswapV2Pair.STATICCALL( )
                              • NODEAI.balanceOf( account=0x769f539486b31eF310125C44d7F405C6d470cD1f ) => ( 2089364538693124241795506 )
                              • UniswapV2Pair.swap( amount0Out=0, amount1Out=1498445104183687277, to=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, data=0x )
                                • WETH9.transfer( dst=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, wad=1498445104183687277 ) => ( True )
                                • NODEAI.balanceOf( account=0x769f539486b31eF310125C44d7F405C6d470cD1f ) => ( 2089364538693124241795506 )
                                • WETH9.balanceOf( 0x769f539486b31eF310125C44d7F405C6d470cD1f ) => ( 312014845046158201300 )
                                • WETH9.balanceOf( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ) => ( 1498445104183687277 )
                                • WETH9.withdraw( wad=1498445104183687277 )
                                  • ETH 1.498445104183687277 UniswapV2Router02.CALL( )
                                  • ETH 1.498445104183687277 NODEAI.CALL( )
                                  • ETH 0.374611276045921819 0xe4eec0c7e825f988aeee7d05be579519532e94e5.CALL( )
                                  • ETH 1.123833828137765458 0xd335c5e36f1b19aece98b78e9827a9df76ee29e6.CALL( )
                                  • NODEAI.balanceOf( account=0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af ) => ( 1167586988220430224065 )
                                  • NODEAI.transfer( recipient=0x86d6C2DD4C8160470e1F6ceeE5751a02dAEed126, amount=1167586988220430224065 ) => ( True )
                                    File 1 of 13: UniversalRouter
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    // SPDX-License-Identifier: GPL-3.0-or-later
                                    pragma solidity ^0.8.24;
                                    // Command implementations
                                    import {Dispatcher} from './base/Dispatcher.sol';
                                    import {RouterParameters} from './types/RouterParameters.sol';
                                    import {PaymentsImmutables, PaymentsParameters} from './modules/PaymentsImmutables.sol';
                                    import {UniswapImmutables, UniswapParameters} from './modules/uniswap/UniswapImmutables.sol';
                                    import {V4SwapRouter} from './modules/uniswap/v4/V4SwapRouter.sol';
                                    import {Commands} from './libraries/Commands.sol';
                                    import {IUniversalRouter} from './interfaces/IUniversalRouter.sol';
                                    import {MigratorImmutables, MigratorParameters} from './modules/MigratorImmutables.sol';
                                    contract UniversalRouter is IUniversalRouter, Dispatcher {
                                    constructor(RouterParameters memory params)
                                    UniswapImmutables(
                                    UniswapParameters(params.v2Factory, params.v3Factory, params.pairInitCodeHash, params.poolInitCodeHash)
                                    )
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    File 2 of 13: Permit2
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    // SPDX-License-Identifier: AGPL-3.0-only
                                    pragma solidity >=0.8.0;
                                    /// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
                                    /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
                                    /// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
                                    /// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
                                    abstract contract ERC20 {
                                    /*//////////////////////////////////////////////////////////////
                                    EVENTS
                                    //////////////////////////////////////////////////////////////*/
                                    event Transfer(address indexed from, address indexed to, uint256 amount);
                                    event Approval(address indexed owner, address indexed spender, uint256 amount);
                                    /*//////////////////////////////////////////////////////////////
                                    METADATA STORAGE
                                    //////////////////////////////////////////////////////////////*/
                                    string public name;
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    File 3 of 13: NetMindTokenProxy
                                    1
                                    {"NetMindToken_proxy.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./proxy.sol\";\n\ncontract NetMindTokenProxy
                                        is baseProxy{\n constructor(address impl) {\n _setAdmin(msg.sender);\n _setLogic(impl);\n }\n}\n"},"proxy.sol":{"content":"
                                        // SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n
                                        struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n
                                        uint256 value;\n }\n\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n assembly {\n
                                         r.slot := slot\n }\n }\n\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n assembly
                                        {\n r.slot := slot\n }\n }\n\n\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n
                                         assembly {\n r.slot := slot\n }\n }\n\n\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot
                                        storage r) {\n assembly {\n r.slot := slot\n }\n }\n}\n\ncontract Proxy {\n //EIP1967 Impl_solt: keccak-256 hash of
                                        \"eip1967.proxy.implementation\" subtracted by 1\n bytes32 internal constant _IMPLEMENTATION_SLOT =
                                        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n //EIP1967 Admin_solt: keccak-256 hash of \"eip1967.proxy.admin\"
                                        subtracted by 1\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n \n function
                                        _setAdmin(address admin_) internal {\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = admin_;\n }\n \n function _setLogic(address
                                        logic_) internal {\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = logic_;\n }\n \n function logic() public view returns
                                        (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n \n function admin() public view returns (address
                                        ) {\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n }\n \n \n fallback () external payable {\n assembly {\n
                                         let impl := sload(_IMPLEMENTATION_SLOT)\n calldatacopy(0, 0, calldatasize())\n let result := delegatecall(gas(), impl,
                                        0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n switch result\n case 0 { revert(0,
                                        returndatasize()) }\n default { return(0, returndatasize()) }\n }\n }\n \n receive () external payable virtual
                                        {}\n}\n\n\ncontract baseProxy is Proxy {\n event Upgraded(address indexed impl);\n event AdminChanged(address preAdmin, address newAdmin);\n
                                         \n modifier onlyAmdin(){\n require(msg.sender == admin(), \"baseProxy: Caller not admin\");\n _;\n }\n \n function
                                        changeAdmin(address newAdmin) external onlyAmdin returns(bool) {\n address preAdmin = admin();\n _setAdmin(newAdmin);\n emit
                                        AdminChanged(preAdmin, newAdmin);\n return true;\n } \n \n function upgrad(address newLogic) external onlyAmdin returns(bool) {\n
                                         _setLogic(newLogic);\n emit Upgraded(newLogic);\n return true;\n }\n}\n"}}
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    File 4 of 13: 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 5 of 13: 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 13: 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 7 of 13: 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 13: 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 13: NODEAI
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    // SPDX-License-Identifier: UNLICENSED
                                    pragma solidity 0.8.19;
                                    /*
                                    /$$$$$$ /$$$$$$$ /$$ /$$
                                    /$$__ $$| $$__ $$| $$ | $$
                                    | $$ \__/| $$ \ $$| $$ | $$
                                    | $$ /$$$$| $$$$$$$/| $$ | $$
                                    | $$|_ $$| $$____/ | $$ | $$
                                    | $$ \ $$| $$ | $$ | $$
                                    | $$$$$$/| $$ | $$$$$$/
                                    \______/ |__/ \______/
                                    Website: https://nodeai.app
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    File 10 of 13: UniswapV2Router02
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    pragma solidity =0.6.6;
                                    interface IUniswapV2Factory {
                                    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
                                    function feeTo() external view returns (address);
                                    function feeToSetter() external view returns (address);
                                    function getPair(address tokenA, address tokenB) external view returns (address pair);
                                    function allPairs(uint) external view returns (address pair);
                                    function allPairsLength() external view returns (uint);
                                    function createPair(address tokenA, address tokenB) external returns (address pair);
                                    function setFeeTo(address) external;
                                    function setFeeToSetter(address) external;
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    File 11 of 13: FeeCollector
                                    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.8.0;
                                    import {Owned} from "solmate/auth/Owned.sol";
                                    import {ERC20} from "solmate/tokens/ERC20.sol";
                                    import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
                                    import {IFeeCollector} from "./interfaces/IFeeCollector.sol";
                                    import {IPermit2} from "./external/IPermit2.sol";
                                    /// @notice The collector of protocol fees that will be used to swap and send to a fee recipient address.
                                    contract FeeCollector is Owned, IFeeCollector {
                                    using SafeTransferLib for ERC20;
                                    address public universalRouter;
                                    ERC20 public immutable feeToken;
                                    IPermit2 public immutable permit2;
                                    uint256 public constant MAX_APPROVAL_AMOUNT = type(uint256).max;
                                    uint160 public constant MAX_PERMIT2_APPROVAL_AMOUNT = type(uint160).max;
                                    uint48 public constant MAX_PERMIT2_DEADLINE = type(uint48).max;
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    File 12 of 13: NetMindToken
                                    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 "@openzeppelin/contracts/access/IAccessControl.sol";
                                    import {ContextUpgradeable} from "../utils/ContextUpgradeable.sol";
                                    import {ERC165Upgradeable} from "../utils/introspection/ERC165Upgradeable.sol";
                                    import {Initializable} from "../proxy/utils/Initializable.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
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    File 13 of 13: FiatTokenV2_2
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9
                                    10
                                    11
                                    12
                                    13
                                    14
                                    15
                                    16
                                    /**
                                    * SPDX-License-Identifier: Apache-2.0
                                    *
                                    * Copyright (c) 2023, Circle Internet Financial, LLC.
                                    *
                                    * Licensed under the Apache License, Version 2.0 (the "License");
                                    * you may not use this file except in compliance with the License.
                                    * You may obtain a copy of the License at
                                    *
                                    * http://www.apache.org/licenses/LICENSE-2.0
                                    *
                                    * Unless required by applicable law or agreed to in writing, software
                                    * distributed under the License is distributed on an "AS IS" BASIS,
                                    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                                    * See the License for the specific language governing permissions and
                                    * limitations under the License.
                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX