ETH Price: $2,939.54 (-0.47%)

Contract

0xeE9658adf701065024724Ad304f5Cd1fb9d983d4

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
76777422025-04-26 12:01:57273 days ago1745668917  Contract Creation0 ETH
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SDKApproveCheckerFeature

Compiler Version
v0.8.17+commit.8df45f5f

ZkSolc Version
v1.5.12

Optimization Enabled:
Yes with Mode 3

Other Settings:
default evmVersion
/// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

import "../../libs/LibAssetHelper.sol";

interface IElement {
    function getHashNonce(address maker) external view returns (uint256);
}

contract SDKApproveCheckerFeature is LibAssetHelper {

    IElement public immutable ELEMENT;

    constructor(IElement element) {
        ELEMENT = element;
    }

    struct SDKApproveInfo {
        uint8 tokenType; // 0: ERC721, 1: ERC1155, 2: ERC20, 255: other
        address tokenAddress;
        address operator;
    }

    function getSDKApprovalsAndCounter(
        address account,
        SDKApproveInfo[] calldata list
    )
        external
        view
        returns (uint256[] memory approvals, uint256 elementCounter, uint256 seaportCounter)
    {
        approvals = new uint256[](list.length);
        for (uint256 i; i < list.length; i++) {
            uint8 tokenType = list[i].tokenType;
            if (tokenType == 0) {
                approvals[i] = _isApprovedForAll(list[i].tokenAddress, true, account, list[i].operator);
            } else if (tokenType == 1) {
                approvals[i] = _isApprovedForAll(list[i].tokenAddress, false, account, list[i].operator);
            } else if (tokenType == 2) {
                approvals[i] = _erc20Allowance(list[i].tokenAddress, account, list[i].operator);
            }
        }

        elementCounter = ELEMENT.getHashNonce(account);
        seaportCounter = 0;
        return (approvals, elementCounter, seaportCounter);
    }

    function getSDKApprovalsAndCounterV2(
        address seaport,
        address account,
        SDKApproveInfo[] calldata list
    )
        external
        view
        returns (uint256[] memory approvals, uint256 elementCounter, uint256 seaportCounter)
    {
        approvals = new uint256[](list.length);
        for (uint256 i; i < list.length; i++) {
            uint8 tokenType = list[i].tokenType;
            if (tokenType == 0) {
                (uint256 approval, bool isERC404) = _isApprovedForAllV2(list[i].tokenAddress, true, account, list[i].operator);
                if (isERC404) {
                    approvals[i] = (1 << 255) | approval;
                } else {
                    approvals[i] = approval;
                }
            } else if (tokenType == 1) {
                approvals[i] = _isApprovedForAll(list[i].tokenAddress, false, account, list[i].operator);
            } else if (tokenType == 2) {
                approvals[i] = _erc20Allowance(list[i].tokenAddress, account, list[i].operator);
            }
        }

        elementCounter = ELEMENT.getHashNonce(account);
        seaportCounter = _getSeaportCounter(seaport, account);
        return (approvals, elementCounter, seaportCounter);
    }

    function _getSeaportCounter(address seaport, address account) internal view returns (uint256 counter) {
        if (seaport != address(0)) {
            assembly {
                let ptr := mload(0x40) // free memory pointer

                // selector for `getCounter(address)`
                mstore(ptr, 0xf07ec37300000000000000000000000000000000000000000000000000000000)
                mstore(add(ptr, 0x4), account)

                if staticcall(gas(), seaport, ptr, 0x24, ptr, 0x20) {
                    counter := mload(ptr)
                }
            }
        }
        return counter;
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


abstract contract LibAssetHelper {

    address internal constant NATIVE_TOKEN_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
    uint256 internal constant ERC404_APPROVAL = 1 << 126;

    function _isApprovedForAll(
        address token,
        bool isERC721,
        address owner,
        address operator
    ) internal view returns(uint256 approval) {
        (approval, ) = _isApprovedForAllV2(token, isERC721, owner, operator);
    }

    function _isApprovedForAllV2(
        address token,
        bool isERC721,
        address owner,
        address operator
    ) internal view returns(uint256 approval, bool isERC404) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return (0, false);
        }

        bool isApprovedForAll;
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `isApprovedForAll(address,address)`
            mstore(ptr, 0xe985e9c500000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), owner)
            mstore(add(ptr, 0x24), operator)

            if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
                if gt(mload(ptr), 0) {
                    isApprovedForAll := 1
                }
            }
        }
        if (isApprovedForAll) {
            return (1, false);
        }
//        if (isERC721) {
//            if (_erc20Decimals(token) == 0) {
//                return (0, false);
//            }
//            (uint256 allowance, bool success) = _erc20AllowanceV2(token, owner, operator);
//            approval = allowance > ERC404_APPROVAL ? 1 : 0;
//            isERC404 = success;
//            return (approval, isERC404);
//        } else {
//            return (0, false);
//        }
        return (0, false);
    }

    function _erc721OwnerOf(
        address token, uint256 tokenId
    ) internal view returns (address owner) {
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `ownerOf(uint256)`
            mstore(ptr, 0x6352211e00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), tokenId)

            if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
                if lt(mload(ptr), shl(160, 1)) {
                    owner := mload(ptr)
                }
            }
        }
        return owner;
    }

    function _erc721GetApproved(
        address token, uint256 tokenId
    ) internal view returns (address operator) {
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `getApproved(uint256)`
            mstore(ptr, 0x081812fc00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), tokenId)

            if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
                if lt(mload(ptr), shl(160, 1)) {
                    operator := mload(ptr)
                }
            }
        }
        return operator;
    }

    function _erc1155BalanceOf(
        address token,
        address account,
        uint256 tokenId
    ) internal view returns (uint256 _balance) {
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `balanceOf(address,uint256)`
            mstore(ptr, 0x00fdd58e00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), account)
            mstore(add(ptr, 0x24), tokenId)

            if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
                _balance := mload(ptr)
            }
        }
        return _balance;
    }

    function _erc20BalanceOf(
        address token, address account
    ) internal view returns (uint256 _balance) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return account.balance;
        }
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `balanceOf(address)`
            mstore(ptr, 0x70a0823100000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), account)

            if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
                _balance := mload(ptr)
            }
        }
        return _balance;
    }

    function _erc20Allowance(
        address token,
        address owner,
        address spender
    ) internal view returns (uint256 allowance) {
        (allowance, ) = _erc20AllowanceV2(token, owner, spender);
    }

    function _erc20AllowanceV2(
        address token,
        address owner,
        address spender
    ) internal view returns (uint256 allowance, bool callSuccess) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return (type(uint256).max, false);
        }
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `allowance(address,address)`
            mstore(ptr, 0xdd62ed3e00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), owner)
            mstore(add(ptr, 0x24), spender)

            if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
                allowance := mload(ptr)
                callSuccess := 1
            }
        }
        return (allowance, callSuccess);
    }

    function _erc20Decimals(address token) internal view returns (uint8 decimals) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return 18;
        }
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `decimals()`
            mstore(ptr, 0x313ce56700000000000000000000000000000000000000000000000000000000)

            if staticcall(gas(), token, ptr, 0x4, ptr, 0x20) {
                if lt(mload(ptr), 48) {
                    decimals := mload(ptr)
                }
            }
        }
        return decimals;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "mode": "3"
  },
  "outputSelection": {
    "*": {
      "*": [
        "abi"
      ]
    }
  },
  "detectMissingLibraries": false,
  "forceEVMLA": false,
  "enableEraVMExtensions": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract IElement","name":"element","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ELEMENT","outputs":[{"internalType":"contract IElement","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"components":[{"internalType":"uint8","name":"tokenType","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"internalType":"struct SDKApproveCheckerFeature.SDKApproveInfo[]","name":"list","type":"tuple[]"}],"name":"getSDKApprovalsAndCounter","outputs":[{"internalType":"uint256[]","name":"approvals","type":"uint256[]"},{"internalType":"uint256","name":"elementCounter","type":"uint256"},{"internalType":"uint256","name":"seaportCounter","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"seaport","type":"address"},{"internalType":"address","name":"account","type":"address"},{"components":[{"internalType":"uint8","name":"tokenType","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"internalType":"struct SDKApproveCheckerFeature.SDKApproveInfo[]","name":"list","type":"tuple[]"}],"name":"getSDKApprovalsAndCounterV2","outputs":[{"internalType":"uint256[]","name":"approvals","type":"uint256[]"},{"internalType":"uint256","name":"elementCounter","type":"uint256"},{"internalType":"uint256","name":"seaportCounter","type":"uint256"}],"stateMutability":"view","type":"function"}]

9c4d535b00000000000000000000000000000000000000000000000000000000000000000100010b92a539499ce84d4080646bdd55b9fc38f7651c5658e72fe2ed8a7c7e000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003f33a3dab9e6f691a11d0eebdf93da445a021096

Deployed Bytecode

0x0001000000000002000800000000000200000000000103550000006003100270000000f4033001970000000100200190000000220000c13d0000008002000039000000400020043f000000040030008c000000450000413d000000000231034f000000000401043b000000e004400270000000f90040009c000000470000613d000000fa0040009c000000da0000613d000000fb0040009c000000450000c13d0000000001000416000000000001004b000000450000c13d0000000001000412000800000001001d000700000000003d0000000001000415000000080110008a000000050110021003ca03b20000040f000000f701100197000000800010043f0000010901000041000003cb0001042e0000000002000416000000000002004b000000450000c13d0000001f02300039000000f502200197000000a002200039000000400020043f0000001f0430018f000000f605300198000000a002500039000000330000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b0000002f0000c13d000000000004004b000000400000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000000450000413d000000a00100043d000000f70010009c000001050000a13d0000000001000019000003cc00010430000000440030008c000000450000413d0000000004000416000000000004004b000000450000c13d0000000404100370000000000404043b000500000004001d000000f70040009c000000450000213d0000002404100370000000000404043b000000fc0040009c000000450000213d0000002305400039000000000035004b000000450000813d0000000405400039000000000151034f000000000601043b000000fc0060009c000000450000213d000000240740003900000060016000c90000000001710019000000000031004b000000450000213d00000005036002100000003f01300039000000fd01100197000000fe0010009c000000ff0000213d0000008001100039000000400010043f000000800060043f0000001f0130018f000000000003004b000000730000613d000000a003300039000000a004000039000000002502043c0000000004540436000000000034004b0000006f0000c13d000000000001004b000000000006004b0000010e0000c13d000000400200043d000001030100004100000000001204350000000501000029000000f701100197000600000002001d00000004022000390000000000120435000001040100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000f40010009c000000f401008041000000c00110021000000105011001c7000080050200003903ca03c50000040f0000000100200190000002a20000613d000000000201043b0000000601000029000000f40010009c000000f40100804100000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000106011001c7000000f70220019703ca03c50000040f0000006003100270000000f403300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000060b00002900000000057b0019000000a90000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000000a50000c13d000000000006004b000000b60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000003810000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000000fc0010009c000000ff0000213d0000000100200190000000ff0000c13d000000400010043f000000200030008c000000450000413d00000000020b0433000000600300003900000000033104360000006004100039000000800500043d00000000005404350000008004100039000000000005004b000000d60000613d000000800600003900000000070000190000002006600039000000000806043300000000048404360000000107700039000000000057004b000000d00000413d000000000023043500000040021000390000000000020435000002990000013d000000640030008c000000450000413d0000000004000416000000000004004b000000450000c13d0000000404100370000000000404043b000100000004001d000000f70040009c000000450000213d0000002404100370000000000404043b000500000004001d000000f70040009c000000450000213d0000004404100370000000000404043b000000fc0040009c000000450000213d0000002305400039000000000035004b000000450000813d0000000405400039000000000151034f000000000601043b000000fc0060009c000000450000213d000000240740003900000060016000c90000000001710019000000000031004b000000450000213d00000005036002100000003f01300039000000fd01100197000000fe0010009c000001ec0000a13d0000010701000041000000000010043f0000004101000039000000040010043f0000010601000041000003cc00010430000000800010043f000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000f801000041000003cb0001042e0000000005000019000400000006001d000300000007001d0000011c0000013d0000000001000019000000800200043d000000000052004b0000038d0000a13d0000000502500210000000a00220003900000000001204350000000105500039000000000065004b000000760000813d00000060015000c900000000017100190000000002100367000000000202043b000000ff0020008c000000450000213d000000000002004b0000016f0000613d000000010020008c000001a20000613d000000020020008c000001190000c13d00000020011000390000000002100367000000000202043b000000f70020009c000000450000213d00000020011000390000000001100367000000000301043b000000f70030009c000000450000213d000000f704200198000000010100008a000001130000613d000000ff0040009c000001130000613d000600000005001d000000400400043d000200000004001d0000002401400039000000000031043500000100010000410000000000140435000000040140003900000005030000290000000000310435000000f40040009c000000f401000041000000000104401900000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000101011001c703ca03c50000040f00000002090000290000006003100270000000f405300197000000200050008c0000002005008039000000200450019000000000034900190000015a0000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000001560000c13d0000001f05500190000001670000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000040600002900000003070000290000000605000029000001130000613d0000000001090433000001130000013d00000020011000390000000002100367000000000202043b000000f70020009c000000450000213d00000020011000390000000001100367000000000301043b000000f70030009c000000450000213d000000f701200198000001120000613d000000ff0010009c0000000001000019000001130000613d000600000005001d000000400400043d000200000004001d0000002401400039000000000031043500000102010000410000000000140435000000040140003900000005030000290000000000310435000000f40040009c000000f401000041000000000104401900000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000101011001c703ca03c50000040f00000002090000290000006003100270000000f405300197000000200050008c000000200500803900000020045001900000000003490019000001d40000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b0000019d0000c13d000001d40000013d00000020011000390000000002100367000000000202043b000000f70020009c000000450000213d00000020011000390000000001100367000000000301043b000000f70030009c000000450000213d000000f701200198000001120000613d000000ff0010009c0000000001000019000001130000613d000600000005001d000000400400043d000200000004001d0000002401400039000000000031043500000102010000410000000000140435000000040140003900000005030000290000000000310435000000f40040009c000000f401000041000000000104401900000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000101011001c703ca03c50000040f00000002090000290000006003100270000000f405300197000000200050008c000000200500803900000020045001900000000003490019000001d40000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000001d00000c13d0000001f05500190000001e10000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000040600002900000003070000290000000605000029000001130000613d0000000001090433000000000001004b000000010100c0390000000001006019000001130000013d0000008001100039000000400010043f000000800060043f0000001f0130018f000000000003004b000001f80000613d000000a003300039000000a004000039000000002502043c0000000004540436000000000034004b000001f40000c13d000000000001004b000000000006004b000002a30000c13d000000400200043d000001030100004100000000001204350000000501000029000000f701100197000600000002001d00000004022000390000000000120435000001040100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000f40010009c000000f401008041000000c00110021000000105011001c7000080050200003903ca03c50000040f0000000100200190000002a20000613d000000000201043b0000000601000029000000f40010009c000000f40100804100000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000106011001c7000000f70220019703ca03c50000040f0000006003100270000000f403300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000060b00002900000000057b00190000022e0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000022a0000c13d000000000006004b0000023b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f00000000006504350000000100200190000003930000613d0000001f01400039000000600110018f0000000004b10019000000000014004b00000000010000390000000101004039000400000004001d000000fc0040009c000000ff0000213d0000000100100190000000ff0000c13d0000000401000029000000400010043f000000200030008c000000450000413d00000000010b0433000600000001001d0000000101000029000000f7001001980000000002000019000002840000613d000001080100004100000004030000290000000000130435000000040130003900000005020000290000000000210435000000f40030009c000000f401000041000000000103401900000040011002100000000002000414000000f40020009c000000f402008041000000c002200210000000000112019f00000106011001c7000000010200002903ca03c50000040f0000006003100270000000f403300197000000200030008c00000020030080390000001f0430018f00000020053001900000000403500029000002720000613d000000000601034f0000000407000029000000006806043c0000000007870436000000000037004b0000026e0000c13d000000000004004b0000027f0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000002000019000002840000613d00000004010000290000000002010433000000400100043d000000600300003900000000033104360000006004100039000000800500043d00000000005404350000008004100039000000000005004b000002950000613d000000000600001900000080080000390000002008800039000000000708043300000000047404360000000106600039000000000056004b0000028f0000413d00000040051000390000000000250435000000060200002900000000002304350000000002140049000000f40020009c000000f4020080410000006002200210000000f40010009c000000f4010080410000004001100210000000000112019f000003cb0001042e000000000001042f0000000005000019000400000006001d000300000007001d000002b10000013d0000000001000019000000800200043d000000000052004b0000038d0000a13d0000000502500210000000a00220003900000000001204350000000105500039000000000065004b000001fb0000813d00000060015000c900000000017100190000000002100367000000000202043b000000ff0020008c000000450000213d000000000002004b000003040000613d000000010020008c000003370000613d000000020020008c000002ae0000c13d00000020011000390000000002100367000000000202043b000000f70020009c000000450000213d00000020011000390000000001100367000000000301043b000000f70030009c000000450000213d000000f704200198000000010100008a000002a80000613d000000ff0040009c000002a80000613d000600000005001d000000400400043d000200000004001d0000002401400039000000000031043500000100010000410000000000140435000000040140003900000005030000290000000000310435000000f40040009c000000f401000041000000000104401900000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000101011001c703ca03c50000040f00000002090000290000006003100270000000f405300197000000200050008c000000200500803900000020045001900000000003490019000002ef0000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000002eb0000c13d0000001f05500190000002fc0000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000040600002900000003070000290000000605000029000002a80000613d0000000001090433000002a80000013d00000020011000390000000002100367000000000202043b000000f70020009c000000450000213d00000020011000390000000001100367000000000301043b000000f70030009c000000450000213d000000f701200198000002a70000613d000000ff0010009c0000000001000019000002a80000613d000600000005001d000000400400043d000200000004001d0000002401400039000000000031043500000102010000410000000000140435000000040140003900000005030000290000000000310435000000f40040009c000000f401000041000000000104401900000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000101011001c703ca03c50000040f00000002090000290000006003100270000000f405300197000000200050008c000000200500803900000020045001900000000003490019000003690000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000003320000c13d000003690000013d00000020011000390000000002100367000000000202043b000000f70020009c000000450000213d00000020011000390000000001100367000000000301043b000000f70030009c000000450000213d000000f701200198000002a70000613d000000ff0010009c0000000001000019000002a80000613d000600000005001d000000400400043d000200000004001d0000002401400039000000000031043500000102010000410000000000140435000000040140003900000005030000290000000000310435000000f40040009c000000f401000041000000000104401900000040011002100000000003000414000000f40030009c000000f403008041000000c003300210000000000113019f00000101011001c703ca03c50000040f00000002090000290000006003100270000000f405300197000000200050008c000000200500803900000020045001900000000003490019000003690000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000003650000c13d0000001f05500190000003760000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000040600002900000003070000290000000605000029000002a80000613d0000000001090433000000000001004b000000010100c0390000000001006019000002a80000013d0000001f0530018f000000f606300198000000400200043d00000000046200190000039e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003880000c13d0000039e0000013d0000010701000041000000000010043f0000003201000039000000040010043f0000010601000041000003cc000104300000001f0530018f000000f606300198000000400200043d00000000046200190000039e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000039a0000c13d000000000005004b000003ab0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000f40020009c000000f4020080410000004002200210000000000112019f000003cc00010430000000000001042f00000104020000410000000000200443000000050110027000000000020100310000000400200443000000010101003100000024001004430000000001000414000000f40010009c000000f401008041000000c00110021000000105011001c7000080050200003903ca03c50000040f0000000100200190000003c40000613d000000000101043b000000000001042d000000000001042f000003c8002104230000000102000039000000000001042d0000000002000019000000000001042d000003ca00000432000003cb0001042e000003cc0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000000000000000000000000000000000000000000000000000000000000a40224c900000000000000000000000000000000000000000000000000000000991b1a47000000000000000000000000000000000000000000000000000000008bea6a75000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000e985e9c5000000000000000000000000000000000000000000000000000000005e72518600000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e020000020000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000240000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000f07ec37300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000071434e27b34b814cdb6823c08042c5353a8e5348927f00dac7ff356946280bbf

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000003f33a3dab9e6f691a11d0eebdf93da445a021096

-----Decoded View---------------
Arg [0] : element (address): 0x3f33a3dab9e6f691a11D0EEBDf93dA445A021096

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003f33a3dab9e6f691a11d0eebdf93da445a021096


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.