ETH Price: $3,038.64 (-3.74%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Amount:Between 1-100k
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Update your filters to view other transactions

Amount:Between 1-100k
Reset Filter

Advanced mode:
Parent Transaction Hash Method Block
From
To

There are no matching entries

Update your filters to view other transactions

View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CNPSelfLocker

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 200 runs

Other Settings:
cancun EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "./interfaces/ICNP.sol";

contract CNPSelfLocker {
    ICNP public cnpContract;

    event TokensBlocked(address indexed user, uint256[] tokenIds);

    constructor(address _cnpContract) {
        cnpContract = ICNP(_cnpContract);
    }

    function lockTokens(uint256[] calldata tokenIds) external {
        for (uint256 i = 0; i < tokenIds.length; i++) {
            require(
                cnpContract.ownerOf(tokenIds[i]) == msg.sender,
                "Not token owner"
            );
        }

        cnpContract.setBlockedTokens(tokenIds);

        emit TokensBlocked(msg.sender, tokenIds);
    }

    function isTokenBlocked(uint256 tokenId) external view returns (bool) {
        return cnpContract.getBlockedToken(tokenId);
    }

    function isTokensBlocked(
        uint256[] calldata tokenIds
    ) external view returns (bool[] memory) {
        bool[] memory results = new bool[](tokenIds.length);
        for (uint256 i = 0; i < tokenIds.length; i++) {
            results[i] = cnpContract.getBlockedToken(tokenIds[i]);
        }
        return results;
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface ICNP {
    function getBlockedToken(uint256 tokenId) external view returns (bool);
    function setBlockedTokens(uint256[] calldata tokenIds) external;
    function ownerOf(uint256 tokenId) external view returns (address);
}

Settings
{
  "remappings": [
    "forge-std/=lib/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "cancun",
  "viaIR": false
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_cnpContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"TokensBlocked","type":"event"},{"inputs":[],"name":"cnpContract","outputs":[{"internalType":"contract ICNP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isTokenBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"isTokensBlocked","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"lockTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052348015600e575f5ffd5b50604051610613380380610613833981016040819052602b91604e565b5f80546001600160a01b0319166001600160a01b03929092169190911790556079565b5f60208284031215605d575f5ffd5b81516001600160a01b03811681146072575f5ffd5b9392505050565b61058d806100865f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063084b731a1461004e5780635b08e1b814610063578063669047281461008c578063812177e5146100b6575b5f5ffd5b61006161005c3660046103e0565b6100d9565b005b6100766100713660046103e0565b610265565b6040516100839190610451565b60405180910390f35b5f5461009e906001600160a01b031681565b6040516001600160a01b039091168152602001610083565b6100c96100c4366004610495565b61036f565b6040519015158152602001610083565b5f5b818110156101bf575f5433906001600160a01b0316636352211e858585818110610107576101076104ac565b905060200201356040518263ffffffff1660e01b815260040161012c91815260200190565b602060405180830381865afa158015610147573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016b91906104c0565b6001600160a01b0316146101b75760405162461bcd60e51b815260206004820152600f60248201526e2737ba103a37b5b2b71037bbb732b960891b604482015260640160405180910390fd5b6001016100db565b505f5460405163ae66a5bb60e01b81526001600160a01b039091169063ae66a5bb906101f190859085906004016104ed565b5f604051808303815f87803b158015610208575f5ffd5b505af115801561021a573d5f5f3e3d5ffd5b50505050336001600160a01b03167f24236b9168186dc5492f93b13f6608deb0f4cf958801dfcc6b3d86110904088e83836040516102599291906104ed565b60405180910390a25050565b60605f8267ffffffffffffffff81111561028157610281610524565b6040519080825280602002602001820160405280156102aa578160200160208202803683370190505b5090505f5b83811015610367575f546001600160a01b031663f02f5baf8686848181106102d9576102d96104ac565b905060200201356040518263ffffffff1660e01b81526004016102fe91815260200190565b602060405180830381865afa158015610319573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033d9190610538565b82828151811061034f5761034f6104ac565b911515602092830291909101909101526001016102af565b509392505050565b5f805460405163f02f5baf60e01b8152600481018490526001600160a01b039091169063f02f5baf90602401602060405180830381865afa1580156103b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103da9190610538565b92915050565b5f5f602083850312156103f1575f5ffd5b823567ffffffffffffffff811115610407575f5ffd5b8301601f81018513610417575f5ffd5b803567ffffffffffffffff81111561042d575f5ffd5b8560208260051b8401011115610441575f5ffd5b6020919091019590945092505050565b602080825282518282018190525f918401906040840190835b8181101561048a578351151583526020938401939092019160010161046a565b509095945050505050565b5f602082840312156104a5575f5ffd5b5035919050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156104d0575f5ffd5b81516001600160a01b03811681146104e6575f5ffd5b9392505050565b602080825281018290525f6001600160fb1b0383111561050b575f5ffd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610548575f5ffd5b815180151581146104e6575f5ffdfea2646970667358221220ca81007e0e688f0f4e4ae97121533b5280a236e65bccdee59645725b0e9ce1a764736f6c634300081b0033000000000000000000000000138a5c693279b6cd82f48d4bef563251bc15adce

Deployed Bytecode

0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063084b731a1461004e5780635b08e1b814610063578063669047281461008c578063812177e5146100b6575b5f5ffd5b61006161005c3660046103e0565b6100d9565b005b6100766100713660046103e0565b610265565b6040516100839190610451565b60405180910390f35b5f5461009e906001600160a01b031681565b6040516001600160a01b039091168152602001610083565b6100c96100c4366004610495565b61036f565b6040519015158152602001610083565b5f5b818110156101bf575f5433906001600160a01b0316636352211e858585818110610107576101076104ac565b905060200201356040518263ffffffff1660e01b815260040161012c91815260200190565b602060405180830381865afa158015610147573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016b91906104c0565b6001600160a01b0316146101b75760405162461bcd60e51b815260206004820152600f60248201526e2737ba103a37b5b2b71037bbb732b960891b604482015260640160405180910390fd5b6001016100db565b505f5460405163ae66a5bb60e01b81526001600160a01b039091169063ae66a5bb906101f190859085906004016104ed565b5f604051808303815f87803b158015610208575f5ffd5b505af115801561021a573d5f5f3e3d5ffd5b50505050336001600160a01b03167f24236b9168186dc5492f93b13f6608deb0f4cf958801dfcc6b3d86110904088e83836040516102599291906104ed565b60405180910390a25050565b60605f8267ffffffffffffffff81111561028157610281610524565b6040519080825280602002602001820160405280156102aa578160200160208202803683370190505b5090505f5b83811015610367575f546001600160a01b031663f02f5baf8686848181106102d9576102d96104ac565b905060200201356040518263ffffffff1660e01b81526004016102fe91815260200190565b602060405180830381865afa158015610319573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033d9190610538565b82828151811061034f5761034f6104ac565b911515602092830291909101909101526001016102af565b509392505050565b5f805460405163f02f5baf60e01b8152600481018490526001600160a01b039091169063f02f5baf90602401602060405180830381865afa1580156103b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103da9190610538565b92915050565b5f5f602083850312156103f1575f5ffd5b823567ffffffffffffffff811115610407575f5ffd5b8301601f81018513610417575f5ffd5b803567ffffffffffffffff81111561042d575f5ffd5b8560208260051b8401011115610441575f5ffd5b6020919091019590945092505050565b602080825282518282018190525f918401906040840190835b8181101561048a578351151583526020938401939092019160010161046a565b509095945050505050565b5f602082840312156104a5575f5ffd5b5035919050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156104d0575f5ffd5b81516001600160a01b03811681146104e6575f5ffd5b9392505050565b602080825281018290525f6001600160fb1b0383111561050b575f5ffd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610548575f5ffd5b815180151581146104e6575f5ffdfea2646970667358221220ca81007e0e688f0f4e4ae97121533b5280a236e65bccdee59645725b0e9ce1a764736f6c634300081b0033

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

000000000000000000000000138a5c693279b6cd82f48d4bef563251bc15adce

-----Decoded View---------------
Arg [0] : _cnpContract (address): 0x138A5C693279b6Cd82F48d4bEf563251Bc15ADcE

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000138a5c693279b6cd82f48d4bef563251bc15adce


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

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.