ETH Price: $1,741.23 (+10.35%)
 

Overview

ETH Balance

0.005 ETH

Eth Value

$8.71 (@ $1,741.23/ETH)

Multichain Info

Transaction Hash
Method
Block
From
To
Set Can Use Anti...223173132025-04-21 12:15:2334 hrs ago1745237723IN
0x6120fA4b...303D0ff06
0.005 ETH0.000219680.84952283
Set Can Use Anti...223104672025-04-20 13:19:352 days ago1745155175IN
0x6120fA4b...303D0ff06
0.005 ETH0.000200580.77565877
Set Exempt223002882025-04-19 3:13:233 days ago1745032403IN
0x6120fA4b...303D0ff06
0 ETH0.000051820.91127226
Set Exempt223002862025-04-19 3:12:593 days ago1745032379IN
0x6120fA4b...303D0ff06
0 ETH0.000047280.831474
Set Can Use Anti...222977822025-04-18 18:49:594 days ago1745002199IN
0x6120fA4b...303D0ff06
0.005 ETH0.000232120.89764764
Set Can Use Anti...222975722025-04-18 18:07:594 days ago1744999679IN
0x6120fA4b...303D0ff06
0.005 ETH0.000236170.91331536
Set Can Use Anti...222488352025-04-11 22:57:4710 days ago1744412267IN
0x6120fA4b...303D0ff06
0.005 ETH0.000353231.36595356
Set Exempt222467902025-04-11 16:07:2311 days ago1744387643IN
0x6120fA4b...303D0ff06
0 ETH0.000219493.85972739
Set Exempt222467882025-04-11 16:06:5911 days ago1744387619IN
0x6120fA4b...303D0ff06
0 ETH0.00019883.49576873
Set Can Use Anti...222467642025-04-11 16:02:1111 days ago1744387331IN
0x6120fA4b...303D0ff06
0.005 ETH0.00077572.99968618
Set Exempt222456512025-04-11 12:18:3511 days ago1744373915IN
0x6120fA4b...303D0ff06
0 ETH0.000154742.72100606
Set Exempt222456482025-04-11 12:17:5911 days ago1744373879IN
0x6120fA4b...303D0ff06
0 ETH0.000071231.25256961
Set Can Use Anti...222456322025-04-11 12:14:4711 days ago1744373687IN
0x6120fA4b...303D0ff06
0.005 ETH0.000310251.19975312
Set Exempt222452172025-04-11 10:51:1111 days ago1744368671IN
0x6120fA4b...303D0ff06
0 ETH0.000136822.40593694
Set Exempt222452142025-04-11 10:50:3511 days ago1744368635IN
0x6120fA4b...303D0ff06
0 ETH0.000125732.21097662
Set Can Use Anti...222446222025-04-11 8:51:5911 days ago1744361519IN
0x6120fA4b...303D0ff06
0.005 ETH0.000269721.04302751
Set Exempt222382272025-04-10 11:27:5912 days ago1744284479IN
0x6120fA4b...303D0ff06
0 ETH0.000055180.97045229
Set Exempt222382222025-04-10 11:26:5912 days ago1744284419IN
0x6120fA4b...303D0ff06
0 ETH0.000061111.07458566
Set Exempt222377522025-04-10 9:52:4712 days ago1744278767IN
0x6120fA4b...303D0ff06
0 ETH0.000065781.15670227
Set Exempt222377492025-04-10 9:52:1112 days ago1744278731IN
0x6120fA4b...303D0ff06
0 ETH0.000064581.13572122
Set Can Use Anti...222376622025-04-10 9:34:3512 days ago1744277675IN
0x6120fA4b...303D0ff06
0.005 ETH0.000299771.15924688
Set Can Use Anti...222373232025-04-10 8:26:4712 days ago1744273607IN
0x6120fA4b...303D0ff06
0.005 ETH0.000308111.19150726
Set Can Use Anti...222343322025-04-09 22:27:3513 days ago1744237655IN
0x6120fA4b...303D0ff06
0.005 ETH0.000524532.02837826
Set Exempt222323042025-04-09 15:40:4713 days ago1744213247IN
0x6120fA4b...303D0ff06
0 ETH0.000080111.40873274
Set Exempt222323022025-04-09 15:40:2313 days ago1744213223IN
0x6120fA4b...303D0ff06
0 ETH0.000074461.30936527
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Pay Service223173132025-04-21 12:15:2334 hrs ago1745237723
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service223104672025-04-20 13:19:352 days ago1745155175
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222977822025-04-18 18:49:594 days ago1745002199
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222975722025-04-18 18:07:594 days ago1744999679
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222488352025-04-11 22:57:4710 days ago1744412267
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222467642025-04-11 16:02:1111 days ago1744387331
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222456322025-04-11 12:14:4711 days ago1744373687
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222446222025-04-11 8:51:5911 days ago1744361519
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222376622025-04-10 9:34:3512 days ago1744277675
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222373232025-04-10 8:26:4712 days ago1744273607
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222343322025-04-09 22:27:3513 days ago1744237655
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222322742025-04-09 15:34:4713 days ago1744212887
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222321182025-04-09 15:03:1113 days ago1744210991
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222201552025-04-07 22:59:2314 days ago1744066763
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service222049022025-04-05 19:48:4717 days ago1743882527
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service221457972025-03-28 13:45:5925 days ago1743169559
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service221352322025-03-27 2:22:1126 days ago1743042131
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service221323112025-03-26 16:34:4727 days ago1743006887
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service221293812025-03-26 6:47:5927 days ago1742971679
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service221290612025-03-26 5:43:3527 days ago1742967815
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service221223972025-03-25 7:22:2328 days ago1742887343
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service220797522025-03-19 8:33:5934 days ago1742373239
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service220744082025-03-18 14:38:1135 days ago1742308691
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service220740292025-03-18 13:22:1135 days ago1742304131
0x6120fA4b...303D0ff06
0.005 ETH
Pay Service220603232025-03-16 15:24:3537 days ago1742138675
0x6120fA4b...303D0ff06
0.005 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20AntiBot

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 1000 runs

Other Settings:
paris EvmVersion
File 1 of 6 : ERC20AntiBot.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;

/*

                                                                                                    
                    &&&&&& &&&&&                                        &%                          
                     &&&&&&&&&&&&&&&                               && &&&&&&&&&&%                   
                     &&&&&&&      &&&&&                          #&&&&&&&&&&&&&                     
                     &&&&&  &&&&&&&   &&                      &&&&    &%  &&&&&&&                   
                        &&. &&&&&&&&&&                        &  %&&&&&&&  &&&&                     
                        &&&&  *&&&&&&&&&                       &&&&&&&&&  &&&&                      
                           .&&&   &&&&&&&&                   &&&&&&&&   &&&                         
                                    .&&&&&&&               &&&&&&&   &&&%                           
                                       &&&&&&             &&&&&&                                    
                                         &&&&&          /&&&&.                                      
                                           &&&&  %&&&  #&&&,                                        
                                   &&&&(     &&&&&&&&&&&&&                                          
                               &&&&&&&&&&&&&&&&&&&&&&&&&&&&   &&&&&&&&&&                            
                             &&&%        &&&&&&&&&&&&&&&&&&&&&&&&&     &&&                          
                            &&&    &&&*    &&&&&&&&&&&&&&&&&&&&&         &&*                        
                           &&&   .&&&&&&   &&&&&&&&&&&&&&&&&&&&   &&&&&   &&                        
                           &&&   #&&&&&&   &&&&&&&&&&&&&&&&&&&&&  &&&&&   &&                        
                            &&&    &&&&    &&&&&&&&&&&&&&&&&&&&&&  #&&   &&&                        
                             &&&         &&&&&&&&&&&&&&&&&&&&&&&&,     *&&&                         
                              (&&&&&&&&&&&&&&&&&&&&          &&&&&&&&&&&%                           
                                  &&&&&&&&&&&&&&&&&          &&&&&                                  
                                    &&&&&&&&&&&&&&&&&&    %&&&&&&&                                  
                                    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#                                 
                                      &&&&&&&&&&&&&&&&&&&&&&&&&&&&                                  
                                           &&&&&&&&&&&&&&&&&&&&                                     

*/
/*
 * ERC20AntiBot contract
 * This contract is used to control bad actors using bots on trades
 */
/// @title ERC20AntiBot
/// @author Smithii

import {IERC20AntiBot} from "./interfaces/services/IERC20AntiBot.sol";
import {Indexable} from "./utils/Indexable.sol";
import {Payable} from "./utils/Payable.sol";

contract ERC20AntiBot is IERC20AntiBot, Payable, Indexable {
    constructor(
        address _indexer,
        address _payments,
        string memory _serviceId
    ) Indexable(_indexer) Payable(_payments, _serviceId) {}

    /// mappings
    mapping(address => mapping(address => uint256)) private buyBlock;
    mapping(address => Options) private canUseAntiBot;
    mapping(address => mapping(address => bool)) public exempts;

    /// @inheritdoc IERC20AntiBot
    function isBotDetected(address _from) public view returns (bool) {
        if (isExempt(msg.sender, _from)) return false;

        if (isActive(msg.sender)) {
            return (buyBlock[msg.sender][_from] == block.number);
        }
        return false;
    }
    /// @inheritdoc IERC20AntiBot
    function registerBlock(address _to) external {
        if (isActive(msg.sender)) {
            buyBlock[msg.sender][_to] = block.number;
        }
    }
    /// set a token address to be registered in the AntiBot
    /// @param _tokenAddress the address to check
    /// @param _options the options for anti bot
    function _setCanUseAntiBot(
        address _tokenAddress,
        Options memory _options
    ) internal {
        canUseAntiBot[_tokenAddress] = _options;
    }
    /// @inheritdoc IERC20AntiBot
    function setCanUseAntiBot(
        bytes32 projectId,
        address _tokenAddress
    ) external payable onlyProjectOwner(_tokenAddress) {
        if (canUseAntiBot[_tokenAddress].active)
            revert TokenAlreadyActiveOnAntiBot();
        Options memory _options = Options(true, true);
        _setCanUseAntiBot(_tokenAddress, _options);
        payService(projectId, _tokenAddress, 1);
    }
    /// @inheritdoc IERC20AntiBot
    function setActive(
        address _tokenAddress,
        bool _active
    ) external onlyProjectOwner(_tokenAddress) {
        if (!canUseAntiBot[_tokenAddress].active)
            revert TokenNotActiveOnAntiBot();
        canUseAntiBot[_tokenAddress].applied = _active;
    }
    /// @inheritdoc IERC20AntiBot
    function setExempt(
        address _tokenAddress,
        address _traderAddress,
        bool _exempt
    ) external onlyProjectOwner(_tokenAddress) {
        if (!canUseAntiBot[_tokenAddress].active)
            revert TokenNotActiveOnAntiBot();
        exempts[_tokenAddress][_traderAddress] = _exempt;
    }
    /// @inheritdoc IERC20AntiBot
    function isExempt(
        address _tokenAddress,
        address _traderAddress
    ) public view returns (bool) {
        return exempts[_tokenAddress][_traderAddress];
    }
    /// @inheritdoc IERC20AntiBot
    function isActive(address _tokenAddress) public view returns (bool) {
        if (!canUseAntiBot[_tokenAddress].active) return false;
        return canUseAntiBot[_tokenAddress].applied;
    }
    /// @inheritdoc IERC20AntiBot
    function canUse(address _tokenAddress) public view returns (bool) {
        return canUseAntiBot[_tokenAddress].active;
    }
}

File 2 of 6 : IIndexer.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;
/*
 * IIndexer Inteface
 */
/// @title IIndexer
/// @author Smithii

interface IIndexer {
    /// Structs
    struct Contract {
        address contractAddress;
        string contracType;
        string name;
        string symbol;
    }
    struct Project {
        address owner;
        Contract[] contracts;
    }

    /// Errors
    error ProjectContractAlreadyRegistered();
    error ProjectIndexAlreadyRegistered();

    /// Events
    event ProjectRegistered(
        bytes32 projectId,
        address owner,
        address contractAddress,
        string contractType
    );

    /// Register a project in the Indexer
    /// @param _projectId bytes32 projectId
    /// @param _owner the owner of the project
    /// @param _contract the contract address
    function registerProject(
        bytes32 _projectId,
        address _owner,
        address _contract,
        string memory _contractType,
        string memory _name,
        string memory _symbol
    ) external;
    /// Check if the ProjectIndex is registered
    /// @param _projectId bytes32 projectId
    /// @return bool if the proyect is aleady registered
    function isProjectIndexRegistered(
        bytes32 _projectId
    ) external returns (bool);
    /// Check if a contract is registered in the project
    /// @param _contract the contract address
    /// @return bool if the proyect is aleady registered`
    function isContractRegistered(address _contract) external returns (bool);
    /// @param _projectId the project Index
    function getProjectOwner(bytes32 _projectId) external returns (address);
    ///
    /// @param _projectAddress address of the project
    function getProjectAddressOwner(
        address _projectAddress
    ) external returns (address);
    ///
    /// @param _projectAddress address of the project
    /// @return address the owner of the project
    /// @return address[] the contracts of the project
    function getProjectInfoByProjectAddress(
        address _projectAddress
    ) external returns (address, Contract[] memory);
    ///
    /// @param _projectId bytes32 projectId
    /// @return address the owner of the project
    /// @return address[] the contracts of the project
    function getProjectInfoByIndex(
        bytes32 _projectId
    ) external returns (address, Contract[] memory);
}

File 3 of 6 : IPayments.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;

/*
 * IPayments interface
 */
/// @title Payments
/// @author Smithii

interface IPayments {
    struct Service {
        bytes32 serviceId;
        uint256 pricePerItem;
        bool active;
    }

    struct Invoice {
        address user;
        Service service;
        uint256 qty;
        uint256 total;
        uint256 timestamp;
    }

    /// Events
    event ServiceAdded(bytes32 serviceId, string name, uint256 price);
    event ServiceSet(bytes32 serviceId, bool active);
    event ServicePaid(
        bytes32 projectId,
        address contractAddress,
        bytes32 serviceId,
        address user,
        uint256 amount,
        uint256 timestamp
    );
    event ServiceWithdraw(
        bytes32 projectId,
        address contractAddress,
        bytes32 serviceId,
        uint256 amount
    );

    /// Errors
    error ServiceNotActive(bytes32 serviceId);
    error InvalidTotalAmount();
    error ServiceAlreadyPaid(
        bytes32 projectId,
        address contractAddress,
        bytes32 serviceId
    );

    /// Add a service to the payment program
    /// @param _serviceId the service id
    /// @param _pricePerItem the price per item
    function addService(bytes32 _serviceId, uint256 _pricePerItem) external;
    /// Set the service active status
    /// @param _serviceId the service id
    /// @param _active the active status
    function setService(bytes32 _serviceId, bool _active) external;
    /// function payService by projectId and contract address
    /// @param _projectId bytes32 projectId
    /// @param _contract the contract address
    /// @param _serviceId the service id
    /// @param _qty the qty of items to pay
    function payService(
        bytes32 _projectId,
        address _contract,
        bytes32 _serviceId,
        uint256 _qty
    ) external payable;
    /// Withdraw per invoice
    /// @param _projectId the project id
    /// @param _contract the contract address
    /// @param _serviceId the service id
    /// @param _to the address to withdraw the balance
    function withdraw(
        bytes32 _projectId,
        address _contract,
        bytes32 _serviceId,
        address payable _to
    ) external;
    /// Withdraw the contract balance
    /// @param _to the address to withdraw the balance
    function withdrawAll(address payable _to) external;
}

File 4 of 6 : IERC20AntiBot.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;
/*
 * IERC20AntiBot interface
 */
/// @title ERC20AntiBot
/// @author Smithii

interface IERC20AntiBot {
    struct Options {
        bool applied;
        bool active;
    }
    /// errors
    error TokenNotActiveOnAntiBot();
    error TokenAlreadyActiveOnAntiBot();
    ///
    /// @param _from the address to check
    function isBotDetected(address _from) external returns (bool);
    /// Registers the block number of the receiver
    /// @param _to the address to register
    function registerBlock(address _to) external;
    /// Registers and pay for a token address to use the Antibot
    /// @param projectId the project id
    /// @param _tokenAddress the address to register
    function setCanUseAntiBot(
        bytes32 projectId,
        address _tokenAddress
    ) external payable;
    /// Set the exempt status of a trader
    /// @param _tokenAddress the token address
    /// @param _traderAddress the trader address
    /// @param _exempt the exempt status
    function setExempt(
        address _tokenAddress,
        address _traderAddress,
        bool _exempt
    ) external;
    /// helper function to check if the trader is exempt
    /// @param _tokenAddress the token address
    /// @param _traderAddress the trader address
    function isExempt(
        address _tokenAddress,
        address _traderAddress
    ) external returns (bool);
    ///
    /// @param _tokenAddress the token address
    /// @param _active the active oft he options to be applied
    function setActive(address _tokenAddress, bool _active) external;
    /// Check if the token address is active to use the Antibot
    /// @param _tokenAddress the address to check
    function isActive(address _tokenAddress) external returns (bool);
    /// Get if the token address can use the Antibot
    /// @param _tokenAddress the address to check
    function canUse(address _tokenAddress) external returns (bool);
}

File 5 of 6 : Indexable.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;

/// @title Indexable
/// @author Smithii

import {IIndexer} from "../interfaces/marketplace/IIndexer.sol";

abstract contract Indexable {
    address public indexer = address(0);
    bytes32 public projectId;
    /// errors
    error NotPtojectOwner();
    constructor(address _indexer) {
        indexer = _indexer;
    }
    modifier onlyProjectOwner(address _address) {
        if (getProjectAddressOwner(_address) != msg.sender)
            revert NotPtojectOwner();
        _;
    }
    /// Registers the project in the Indexer
    /// @param _projectId the project id
    /// @param _owner the owner of the project
    /// @param _contract the contract address
    /// @param _contractType the contract type eg. ERC20, ERC721
    function registerProject(
        bytes32 _projectId,
        address _owner,
        address _contract,
        string memory _contractType,
        string memory _name,
        string memory _symbol
    ) public {
        IIndexer(indexer).registerProject(
            _projectId,
            _owner,
            _contract,
            _contractType,
            _name,
            _symbol
        );
    }
    ///
    /// @param _projectAddress the project address
    function isContractRegistered(
        address _projectAddress
    ) public returns (bool) {
        return IIndexer(indexer).isContractRegistered(_projectAddress);
    }
    ///
    /// @param _projectId the project id
    function getProjectOwner(bytes32 _projectId) public returns (address) {
        return IIndexer(indexer).getProjectOwner(_projectId);
    }
    function getProjectAddressOwner(
        address _projectAddress
    ) public returns (address) {
        return IIndexer(indexer).getProjectAddressOwner(_projectAddress);
    }
}

File 6 of 6 : Payable.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;

/// @title Payable
/// @author Smithii

import {IPayments} from "../interfaces/marketplace/IPayments.sol";

abstract contract Payable {
    address public payments = address(0);
    bytes32 public serviceId;

    constructor(address _payments, string memory _serviceId) {
        payments = _payments;
        serviceId = keccak256(abi.encodePacked(_serviceId));
    }
    ///
    /// @param _projectId the project id
    /// @param _token the token address
    /// @param qty the qty of items to pay
    function payService(
        bytes32 _projectId,
        address _token,
        uint256 qty
    ) public payable {
        IPayments(payments).payService{value: msg.value}(
            _projectId,
            _token,
            serviceId,
            qty
        );
    }
    receive() external payable {}
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_indexer","type":"address"},{"internalType":"address","name":"_payments","type":"address"},{"internalType":"string","name":"_serviceId","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotPtojectOwner","type":"error"},{"inputs":[],"name":"TokenAlreadyActiveOnAntiBot","type":"error"},{"inputs":[],"name":"TokenNotActiveOnAntiBot","type":"error"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"canUse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"exempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_projectAddress","type":"address"}],"name":"getProjectAddressOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_projectId","type":"bytes32"}],"name":"getProjectOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"indexer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"}],"name":"isBotDetected","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_projectAddress","type":"address"}],"name":"isContractRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_traderAddress","type":"address"}],"name":"isExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_projectId","type":"bytes32"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"qty","type":"uint256"}],"name":"payService","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"payments","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"registerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_projectId","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_contract","type":"address"},{"internalType":"string","name":"_contractType","type":"string"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"registerProject","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"serviceId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"bool","name":"_active","type":"bool"}],"name":"setActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"setCanUseAntiBot","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_traderAddress","type":"address"},{"internalType":"bool","name":"_exempt","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600080546001600160a01b03199081169091556002805490911690553480156200002d57600080fd5b5060405162000fd338038062000fd3833981016040819052620000509162000124565b600080546001600160a01b0319166001600160a01b0384161790556040518390839083906200008490829060200162000204565b60408051808303601f1901815291905280516020909101206001555050600280546001600160a01b0319166001600160a01b03929092169190911790555062000222915050565b80516001600160a01b0381168114620000e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200011b57818101518382015260200162000101565b50506000910152565b6000806000606084860312156200013a57600080fd5b6200014584620000cb565b92506200015560208501620000cb565b60408501519092506001600160401b03808211156200017357600080fd5b818601915086601f8301126200018857600080fd5b8151818111156200019d576200019d620000e8565b604051601f8201601f19908116603f01168101908382118183101715620001c857620001c8620000e8565b81604052828152896020848701011115620001e257600080fd5b620001f5836020830160208801620000fe565b80955050505050509250925092565b6000825162000218818460208701620000fe565b9190910192915050565b610da180620002326000396000f3fe60806040526004361061012d5760003560e01c8063c0e9d8b0116100a5578063e06118b711610074578063f4b6122211610059578063f4b6122214610379578063f9f6b49b1461038c578063fa12b14c146103ac57600080fd5b8063e06118b714610339578063ec253dbc1461035957600080fd5b8063c0e9d8b01461029a578063d406b88a146102ba578063da20ec6a146102da578063dfc693f0146102f057600080fd5b80636f058fd2116100fc578063a571c0d1116100e1578063a571c0d11461021f578063a6d23e101461023f578063b092abfb1461025f57600080fd5b80636f058fd2146101b75780639f8a13d7146101ef57600080fd5b80630df344af146101395780632ce962cf1461014e5780633fafa1271461016e578063466634291461019757600080fd5b3661013457005b600080fd5b61014c6101473660046109ba565b6103ea565b005b34801561015a57600080fd5b5061014c6101693660046109f8565b6104db565b34801561017a57600080fd5b5061018460035481565b6040519081526020015b60405180910390f35b3480156101a357600080fd5b5061014c6101b2366004610ae2565b610577565b3480156101c357600080fd5b506101d76101d2366004610b98565b610604565b6040516001600160a01b03909116815260200161018e565b3480156101fb57600080fd5b5061020f61020a366004610b98565b610695565b604051901515815260200161018e565b34801561022b57600080fd5b5061014c61023a366004610b98565b6106e1565b34801561024b57600080fd5b506000546101d7906001600160a01b031681565b34801561026b57600080fd5b5061020f61027a366004610bbc565b600660209081526000928352604080842090915290825290205460ff1681565b3480156102a657600080fd5b5061014c6102b5366004610bea565b610719565b3480156102c657600080fd5b5061020f6102d5366004610b98565b6107c4565b3480156102e657600080fd5b5061018460015481565b3480156102fc57600080fd5b5061020f61030b366004610bbc565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561034557600080fd5b506002546101d7906001600160a01b031681565b34801561036557600080fd5b506101d7610374366004610c35565b610839565b61014c610387366004610c4e565b610884565b34801561039857600080fd5b5061020f6103a7366004610b98565b61091b565b3480156103b857600080fd5b5061020f6103c7366004610b98565b6001600160a01b0316600090815260056020526040902054610100900460ff1690565b80336103f582610604565b6001600160a01b03161461041c5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038216600090815260056020526040902054610100900460ff1615610474576040517f3f72e1b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600180825260208083019182526001600160a01b038616600090815260059091529290922081518154935161ffff1990941690151561ff0019161761010093151593909302929092179091556104d584846001610884565b50505050565b81336104e682610604565b6001600160a01b03161461050d5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038316600090815260056020526040902054610100900460ff1661054b57604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6002546040517f466634290000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906346663429906105ca90899089908990899089908990600401610ccc565b600060405180830381600087803b1580156105e457600080fd5b505af11580156105f8573d6000803e3d6000fd5b50505050505050505050565b6002546040517f6f058fd20000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526000921690636f058fd2906024015b6020604051808303816000875af115801561066b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d31565b92915050565b6001600160a01b038116600090815260056020526040812054610100900460ff166106c257506000919050565b506001600160a01b031660009081526005602052604090205460ff1690565b6106ea33610695565b15610716573360009081526004602090815260408083206001600160a01b038516845290915290204390555b50565b823361072482610604565b6001600160a01b03161461074b5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038416600090815260056020526040902054610100900460ff1661078957604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03928316600090815260066020908152604080832094909516825292909252919020805460ff1916911515919091179055565b3360009081526006602090815260408083206001600160a01b038516845290915281205460ff16156107f857506000919050565b61080133610695565b1561083157503360009081526004602090815260408083206001600160a01b039490941683529290522054431490565b506000919050565b6002546040517fec253dbc000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b03169063ec253dbc9060240161064c565b6000546001546040517f8690b8c9000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038581166024830152604482019290925260648101849052911690638690b8c99034906084016000604051808303818588803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b5050505050505050565b6002546040517ff9f6b49b0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063f9f6b49b906024016020604051808303816000875af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d4e565b6001600160a01b038116811461071657600080fd5b600080604083850312156109cd57600080fd5b8235915060208301356109df816109a5565b809150509250929050565b801515811461071657600080fd5b60008060408385031215610a0b57600080fd5b8235610a16816109a5565b915060208301356109df816109ea565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610a6657600080fd5b813567ffffffffffffffff80821115610a8157610a81610a26565b604051601f8301601f19908116603f01168101908282118183101715610aa957610aa9610a26565b81604052838152866020858801011115610ac257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215610afb57600080fd5b863595506020870135610b0d816109a5565b94506040870135610b1d816109a5565b9350606087013567ffffffffffffffff80821115610b3a57600080fd5b610b468a838b01610a55565b94506080890135915080821115610b5c57600080fd5b610b688a838b01610a55565b935060a0890135915080821115610b7e57600080fd5b50610b8b89828a01610a55565b9150509295509295509295565b600060208284031215610baa57600080fd5b8135610bb5816109a5565b9392505050565b60008060408385031215610bcf57600080fd5b8235610bda816109a5565b915060208301356109df816109a5565b600080600060608486031215610bff57600080fd5b8335610c0a816109a5565b92506020840135610c1a816109a5565b91506040840135610c2a816109ea565b809150509250925092565b600060208284031215610c4757600080fd5b5035919050565b600080600060608486031215610c6357600080fd5b833592506020840135610c75816109a5565b929592945050506040919091013590565b6000815180845260005b81811015610cac57602081850181015186830182015201610c90565b506000602082860101526020601f19601f83011685010191505092915050565b86815260006001600160a01b03808816602084015280871660408401525060c06060830152610cfe60c0830186610c86565b8281036080840152610d108186610c86565b905082810360a0840152610d248185610c86565b9998505050505050505050565b600060208284031215610d4357600080fd5b8151610bb5816109a5565b600060208284031215610d6057600080fd5b8151610bb5816109ea56fea2646970667358221220f7be706641a0a56d6bd42335dfc99d8d6ed778bb3ac9f3ca2a4aa345a15f87a764736f6c6343000818003300000000000000000000000097219a5865fe186817d581a56b3b451a3fa62e19000000000000000000000000d5765b5d565227a27dd7c96b32b2600958c9ce9c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000c4552433230416e7469426f740000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061012d5760003560e01c8063c0e9d8b0116100a5578063e06118b711610074578063f4b6122211610059578063f4b6122214610379578063f9f6b49b1461038c578063fa12b14c146103ac57600080fd5b8063e06118b714610339578063ec253dbc1461035957600080fd5b8063c0e9d8b01461029a578063d406b88a146102ba578063da20ec6a146102da578063dfc693f0146102f057600080fd5b80636f058fd2116100fc578063a571c0d1116100e1578063a571c0d11461021f578063a6d23e101461023f578063b092abfb1461025f57600080fd5b80636f058fd2146101b75780639f8a13d7146101ef57600080fd5b80630df344af146101395780632ce962cf1461014e5780633fafa1271461016e578063466634291461019757600080fd5b3661013457005b600080fd5b61014c6101473660046109ba565b6103ea565b005b34801561015a57600080fd5b5061014c6101693660046109f8565b6104db565b34801561017a57600080fd5b5061018460035481565b6040519081526020015b60405180910390f35b3480156101a357600080fd5b5061014c6101b2366004610ae2565b610577565b3480156101c357600080fd5b506101d76101d2366004610b98565b610604565b6040516001600160a01b03909116815260200161018e565b3480156101fb57600080fd5b5061020f61020a366004610b98565b610695565b604051901515815260200161018e565b34801561022b57600080fd5b5061014c61023a366004610b98565b6106e1565b34801561024b57600080fd5b506000546101d7906001600160a01b031681565b34801561026b57600080fd5b5061020f61027a366004610bbc565b600660209081526000928352604080842090915290825290205460ff1681565b3480156102a657600080fd5b5061014c6102b5366004610bea565b610719565b3480156102c657600080fd5b5061020f6102d5366004610b98565b6107c4565b3480156102e657600080fd5b5061018460015481565b3480156102fc57600080fd5b5061020f61030b366004610bbc565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561034557600080fd5b506002546101d7906001600160a01b031681565b34801561036557600080fd5b506101d7610374366004610c35565b610839565b61014c610387366004610c4e565b610884565b34801561039857600080fd5b5061020f6103a7366004610b98565b61091b565b3480156103b857600080fd5b5061020f6103c7366004610b98565b6001600160a01b0316600090815260056020526040902054610100900460ff1690565b80336103f582610604565b6001600160a01b03161461041c5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038216600090815260056020526040902054610100900460ff1615610474576040517f3f72e1b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600180825260208083019182526001600160a01b038616600090815260059091529290922081518154935161ffff1990941690151561ff0019161761010093151593909302929092179091556104d584846001610884565b50505050565b81336104e682610604565b6001600160a01b03161461050d5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038316600090815260056020526040902054610100900460ff1661054b57604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6002546040517f466634290000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906346663429906105ca90899089908990899089908990600401610ccc565b600060405180830381600087803b1580156105e457600080fd5b505af11580156105f8573d6000803e3d6000fd5b50505050505050505050565b6002546040517f6f058fd20000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526000921690636f058fd2906024015b6020604051808303816000875af115801561066b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d31565b92915050565b6001600160a01b038116600090815260056020526040812054610100900460ff166106c257506000919050565b506001600160a01b031660009081526005602052604090205460ff1690565b6106ea33610695565b15610716573360009081526004602090815260408083206001600160a01b038516845290915290204390555b50565b823361072482610604565b6001600160a01b03161461074b5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038416600090815260056020526040902054610100900460ff1661078957604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03928316600090815260066020908152604080832094909516825292909252919020805460ff1916911515919091179055565b3360009081526006602090815260408083206001600160a01b038516845290915281205460ff16156107f857506000919050565b61080133610695565b1561083157503360009081526004602090815260408083206001600160a01b039490941683529290522054431490565b506000919050565b6002546040517fec253dbc000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b03169063ec253dbc9060240161064c565b6000546001546040517f8690b8c9000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038581166024830152604482019290925260648101849052911690638690b8c99034906084016000604051808303818588803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b5050505050505050565b6002546040517ff9f6b49b0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063f9f6b49b906024016020604051808303816000875af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d4e565b6001600160a01b038116811461071657600080fd5b600080604083850312156109cd57600080fd5b8235915060208301356109df816109a5565b809150509250929050565b801515811461071657600080fd5b60008060408385031215610a0b57600080fd5b8235610a16816109a5565b915060208301356109df816109ea565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610a6657600080fd5b813567ffffffffffffffff80821115610a8157610a81610a26565b604051601f8301601f19908116603f01168101908282118183101715610aa957610aa9610a26565b81604052838152866020858801011115610ac257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215610afb57600080fd5b863595506020870135610b0d816109a5565b94506040870135610b1d816109a5565b9350606087013567ffffffffffffffff80821115610b3a57600080fd5b610b468a838b01610a55565b94506080890135915080821115610b5c57600080fd5b610b688a838b01610a55565b935060a0890135915080821115610b7e57600080fd5b50610b8b89828a01610a55565b9150509295509295509295565b600060208284031215610baa57600080fd5b8135610bb5816109a5565b9392505050565b60008060408385031215610bcf57600080fd5b8235610bda816109a5565b915060208301356109df816109a5565b600080600060608486031215610bff57600080fd5b8335610c0a816109a5565b92506020840135610c1a816109a5565b91506040840135610c2a816109ea565b809150509250925092565b600060208284031215610c4757600080fd5b5035919050565b600080600060608486031215610c6357600080fd5b833592506020840135610c75816109a5565b929592945050506040919091013590565b6000815180845260005b81811015610cac57602081850181015186830182015201610c90565b506000602082860101526020601f19601f83011685010191505092915050565b86815260006001600160a01b03808816602084015280871660408401525060c06060830152610cfe60c0830186610c86565b8281036080840152610d108186610c86565b905082810360a0840152610d248185610c86565b9998505050505050505050565b600060208284031215610d4357600080fd5b8151610bb5816109a5565b600060208284031215610d6057600080fd5b8151610bb5816109ea56fea2646970667358221220f7be706641a0a56d6bd42335dfc99d8d6ed778bb3ac9f3ca2a4aa345a15f87a764736f6c63430008180033

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

00000000000000000000000097219a5865fe186817d581a56b3b451a3fa62e19000000000000000000000000d5765b5d565227a27dd7c96b32b2600958c9ce9c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000c4552433230416e7469426f740000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _indexer (address): 0x97219a5865fe186817D581A56B3b451a3Fa62E19
Arg [1] : _payments (address): 0xD5765b5d565227A27dD7C96B32b2600958c9cE9c
Arg [2] : _serviceId (string): ERC20AntiBot

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000097219a5865fe186817d581a56b3b451a3fa62e19
Arg [1] : 000000000000000000000000d5765b5d565227a27dd7c96b32b2600958c9ce9c
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [4] : 4552433230416e7469426f740000000000000000000000000000000000000000


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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  ]
[ 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.