// 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;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_indexer",
"type": "address",
"internalType": "address"
},
{
"name": "_payments",
"type": "address",
"internalType": "address"
},
{
"name": "_serviceId",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "nonpayable"
},
{
"name": "NotPtojectOwner",
"type": "error",
"inputs": []
},
{
"name": "TokenAlreadyActiveOnAntiBot",
"type": "error",
"inputs": []
},
{
"name": "TokenNotActiveOnAntiBot",
"type": "error",
"inputs": []
},
{
"name": "canUse",
"type": "function",
"inputs": [
{
"name": "_tokenAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "exempts",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "getProjectAddressOwner",
"type": "function",
"inputs": [
{
"name": "_projectAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "getProjectOwner",
"type": "function",
"inputs": [
{
"name": "_projectId",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "indexer",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "isActive",
"type": "function",
"inputs": [
{
"name": "_tokenAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "isBotDetected",
"type": "function",
"inputs": [
{
"name": "_from",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "isContractRegistered",
"type": "function",
"inputs": [
{
"name": "_projectAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "isExempt",
"type": "function",
"inputs": [
{
"name": "_tokenAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_traderAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "payService",
"type": "function",
"inputs": [
{
"name": "_projectId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_token",
"type": "address",
"internalType": "address"
},
{
"name": "qty",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "payments",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "projectId",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "registerBlock",
"type": "function",
"inputs": [
{
"name": "_to",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "registerProject",
"type": "function",
"inputs": [
{
"name": "_projectId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_owner",
"type": "address",
"internalType": "address"
},
{
"name": "_contract",
"type": "address",
"internalType": "address"
},
{
"name": "_contractType",
"type": "string",
"internalType": "string"
},
{
"name": "_name",
"type": "string",
"internalType": "string"
},
{
"name": "_symbol",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "serviceId",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "setActive",
"type": "function",
"inputs": [
{
"name": "_tokenAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_active",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setCanUseAntiBot",
"type": "function",
"inputs": [
{
"name": "projectId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_tokenAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "setExempt",
"type": "function",
"inputs": [
{
"name": "_tokenAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_traderAddress",
"type": "address",
"internalType": "address"
},
{
"name": "_exempt",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x6080604052600080546001600160a01b03199081169091556002805490911690553480156200002d57600080fd5b5060405162000fd338038062000fd3833981016040819052620000509162000124565b600080546001600160a01b0319166001600160a01b0384161790556040518390839083906200008490829060200162000204565b60408051808303601f1901815291905280516020909101206001555050600280546001600160a01b0319166001600160a01b03929092169190911790555062000222915050565b80516001600160a01b0381168114620000e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200011b57818101518382015260200162000101565b50506000910152565b6000806000606084860312156200013a57600080fd5b6200014584620000cb565b92506200015560208501620000cb565b60408501519092506001600160401b03808211156200017357600080fd5b818601915086601f8301126200018857600080fd5b8151818111156200019d576200019d620000e8565b604051601f8201601f19908116603f01168101908382118183101715620001c857620001c8620000e8565b81604052828152896020848701011115620001e257600080fd5b620001f5836020830160208801620000fe565b80955050505050509250925092565b6000825162000218818460208701620000fe565b9190910192915050565b610da180620002326000396000f3fe60806040526004361061012d5760003560e01c8063c0e9d8b0116100a5578063e06118b711610074578063f4b6122211610059578063f4b6122214610379578063f9f6b49b1461038c578063fa12b14c146103ac57600080fd5b8063e06118b714610339578063ec253dbc1461035957600080fd5b8063c0e9d8b01461029a578063d406b88a146102ba578063da20ec6a146102da578063dfc693f0146102f057600080fd5b80636f058fd2116100fc578063a571c0d1116100e1578063a571c0d11461021f578063a6d23e101461023f578063b092abfb1461025f57600080fd5b80636f058fd2146101b75780639f8a13d7146101ef57600080fd5b80630df344af146101395780632ce962cf1461014e5780633fafa1271461016e578063466634291461019757600080fd5b3661013457005b600080fd5b61014c6101473660046109ba565b6103ea565b005b34801561015a57600080fd5b5061014c6101693660046109f8565b6104db565b34801561017a57600080fd5b5061018460035481565b6040519081526020015b60405180910390f35b3480156101a357600080fd5b5061014c6101b2366004610ae2565b610577565b3480156101c357600080fd5b506101d76101d2366004610b98565b610604565b6040516001600160a01b03909116815260200161018e565b3480156101fb57600080fd5b5061020f61020a366004610b98565b610695565b604051901515815260200161018e565b34801561022b57600080fd5b5061014c61023a366004610b98565b6106e1565b34801561024b57600080fd5b506000546101d7906001600160a01b031681565b34801561026b57600080fd5b5061020f61027a366004610bbc565b600660209081526000928352604080842090915290825290205460ff1681565b3480156102a657600080fd5b5061014c6102b5366004610bea565b610719565b3480156102c657600080fd5b5061020f6102d5366004610b98565b6107c4565b3480156102e657600080fd5b5061018460015481565b3480156102fc57600080fd5b5061020f61030b366004610bbc565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561034557600080fd5b506002546101d7906001600160a01b031681565b34801561036557600080fd5b506101d7610374366004610c35565b610839565b61014c610387366004610c4e565b610884565b34801561039857600080fd5b5061020f6103a7366004610b98565b61091b565b3480156103b857600080fd5b5061020f6103c7366004610b98565b6001600160a01b0316600090815260056020526040902054610100900460ff1690565b80336103f582610604565b6001600160a01b03161461041c5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038216600090815260056020526040902054610100900460ff1615610474576040517f3f72e1b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600180825260208083019182526001600160a01b038616600090815260059091529290922081518154935161ffff1990941690151561ff0019161761010093151593909302929092179091556104d584846001610884565b50505050565b81336104e682610604565b6001600160a01b03161461050d5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038316600090815260056020526040902054610100900460ff1661054b57604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6002546040517f466634290000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906346663429906105ca90899089908990899089908990600401610ccc565b600060405180830381600087803b1580156105e457600080fd5b505af11580156105f8573d6000803e3d6000fd5b50505050505050505050565b6002546040517f6f058fd20000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526000921690636f058fd2906024015b6020604051808303816000875af115801561066b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d31565b92915050565b6001600160a01b038116600090815260056020526040812054610100900460ff166106c257506000919050565b506001600160a01b031660009081526005602052604090205460ff1690565b6106ea33610695565b15610716573360009081526004602090815260408083206001600160a01b038516845290915290204390555b50565b823361072482610604565b6001600160a01b03161461074b5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038416600090815260056020526040902054610100900460ff1661078957604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03928316600090815260066020908152604080832094909516825292909252919020805460ff1916911515919091179055565b3360009081526006602090815260408083206001600160a01b038516845290915281205460ff16156107f857506000919050565b61080133610695565b1561083157503360009081526004602090815260408083206001600160a01b039490941683529290522054431490565b506000919050565b6002546040517fec253dbc000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b03169063ec253dbc9060240161064c565b6000546001546040517f8690b8c9000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038581166024830152604482019290925260648101849052911690638690b8c99034906084016000604051808303818588803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b5050505050505050565b6002546040517ff9f6b49b0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063f9f6b49b906024016020604051808303816000875af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d4e565b6001600160a01b038116811461071657600080fd5b600080604083850312156109cd57600080fd5b8235915060208301356109df816109a5565b809150509250929050565b801515811461071657600080fd5b60008060408385031215610a0b57600080fd5b8235610a16816109a5565b915060208301356109df816109ea565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610a6657600080fd5b813567ffffffffffffffff80821115610a8157610a81610a26565b604051601f8301601f19908116603f01168101908282118183101715610aa957610aa9610a26565b81604052838152866020858801011115610ac257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215610afb57600080fd5b863595506020870135610b0d816109a5565b94506040870135610b1d816109a5565b9350606087013567ffffffffffffffff80821115610b3a57600080fd5b610b468a838b01610a55565b94506080890135915080821115610b5c57600080fd5b610b688a838b01610a55565b935060a0890135915080821115610b7e57600080fd5b50610b8b89828a01610a55565b9150509295509295509295565b600060208284031215610baa57600080fd5b8135610bb5816109a5565b9392505050565b60008060408385031215610bcf57600080fd5b8235610bda816109a5565b915060208301356109df816109a5565b600080600060608486031215610bff57600080fd5b8335610c0a816109a5565b92506020840135610c1a816109a5565b91506040840135610c2a816109ea565b809150509250925092565b600060208284031215610c4757600080fd5b5035919050565b600080600060608486031215610c6357600080fd5b833592506020840135610c75816109a5565b929592945050506040919091013590565b6000815180845260005b81811015610cac57602081850181015186830182015201610c90565b506000602082860101526020601f19601f83011685010191505092915050565b86815260006001600160a01b03808816602084015280871660408401525060c06060830152610cfe60c0830186610c86565b8281036080840152610d108186610c86565b905082810360a0840152610d248185610c86565b9998505050505050505050565b600060208284031215610d4357600080fd5b8151610bb5816109a5565b600060208284031215610d6057600080fd5b8151610bb5816109ea56fea2646970667358221220f7be706641a0a56d6bd42335dfc99d8d6ed778bb3ac9f3ca2a4aa345a15f87a764736f6c63430008180033000000000000000000000000dffb00f283e806dcc739d4d10bfa3efce677b4a100000000000000000000000028778222995570426535e2d9624d4a6b59c79ca00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000c4552433230416e7469426f740000000000000000000000000000000000000000
0x60806040526004361061012d5760003560e01c8063c0e9d8b0116100a5578063e06118b711610074578063f4b6122211610059578063f4b6122214610379578063f9f6b49b1461038c578063fa12b14c146103ac57600080fd5b8063e06118b714610339578063ec253dbc1461035957600080fd5b8063c0e9d8b01461029a578063d406b88a146102ba578063da20ec6a146102da578063dfc693f0146102f057600080fd5b80636f058fd2116100fc578063a571c0d1116100e1578063a571c0d11461021f578063a6d23e101461023f578063b092abfb1461025f57600080fd5b80636f058fd2146101b75780639f8a13d7146101ef57600080fd5b80630df344af146101395780632ce962cf1461014e5780633fafa1271461016e578063466634291461019757600080fd5b3661013457005b600080fd5b61014c6101473660046109ba565b6103ea565b005b34801561015a57600080fd5b5061014c6101693660046109f8565b6104db565b34801561017a57600080fd5b5061018460035481565b6040519081526020015b60405180910390f35b3480156101a357600080fd5b5061014c6101b2366004610ae2565b610577565b3480156101c357600080fd5b506101d76101d2366004610b98565b610604565b6040516001600160a01b03909116815260200161018e565b3480156101fb57600080fd5b5061020f61020a366004610b98565b610695565b604051901515815260200161018e565b34801561022b57600080fd5b5061014c61023a366004610b98565b6106e1565b34801561024b57600080fd5b506000546101d7906001600160a01b031681565b34801561026b57600080fd5b5061020f61027a366004610bbc565b600660209081526000928352604080842090915290825290205460ff1681565b3480156102a657600080fd5b5061014c6102b5366004610bea565b610719565b3480156102c657600080fd5b5061020f6102d5366004610b98565b6107c4565b3480156102e657600080fd5b5061018460015481565b3480156102fc57600080fd5b5061020f61030b366004610bbc565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561034557600080fd5b506002546101d7906001600160a01b031681565b34801561036557600080fd5b506101d7610374366004610c35565b610839565b61014c610387366004610c4e565b610884565b34801561039857600080fd5b5061020f6103a7366004610b98565b61091b565b3480156103b857600080fd5b5061020f6103c7366004610b98565b6001600160a01b0316600090815260056020526040902054610100900460ff1690565b80336103f582610604565b6001600160a01b03161461041c5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038216600090815260056020526040902054610100900460ff1615610474576040517f3f72e1b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600180825260208083019182526001600160a01b038616600090815260059091529290922081518154935161ffff1990941690151561ff0019161761010093151593909302929092179091556104d584846001610884565b50505050565b81336104e682610604565b6001600160a01b03161461050d5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038316600090815260056020526040902054610100900460ff1661054b57604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6002546040517f466634290000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906346663429906105ca90899089908990899089908990600401610ccc565b600060405180830381600087803b1580156105e457600080fd5b505af11580156105f8573d6000803e3d6000fd5b50505050505050505050565b6002546040517f6f058fd20000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526000921690636f058fd2906024015b6020604051808303816000875af115801561066b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d31565b92915050565b6001600160a01b038116600090815260056020526040812054610100900460ff166106c257506000919050565b506001600160a01b031660009081526005602052604090205460ff1690565b6106ea33610695565b15610716573360009081526004602090815260408083206001600160a01b038516845290915290204390555b50565b823361072482610604565b6001600160a01b03161461074b5760405163e0b2364960e01b815260040160405180910390fd5b6001600160a01b038416600090815260056020526040902054610100900460ff1661078957604051639d38be3360e01b815260040160405180910390fd5b506001600160a01b03928316600090815260066020908152604080832094909516825292909252919020805460ff1916911515919091179055565b3360009081526006602090815260408083206001600160a01b038516845290915281205460ff16156107f857506000919050565b61080133610695565b1561083157503360009081526004602090815260408083206001600160a01b039490941683529290522054431490565b506000919050565b6002546040517fec253dbc000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b03169063ec253dbc9060240161064c565b6000546001546040517f8690b8c9000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038581166024830152604482019290925260648101849052911690638690b8c99034906084016000604051808303818588803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b5050505050505050565b6002546040517ff9f6b49b0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063f9f6b49b906024016020604051808303816000875af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068f9190610d4e565b6001600160a01b038116811461071657600080fd5b600080604083850312156109cd57600080fd5b8235915060208301356109df816109a5565b809150509250929050565b801515811461071657600080fd5b60008060408385031215610a0b57600080fd5b8235610a16816109a5565b915060208301356109df816109ea565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610a6657600080fd5b813567ffffffffffffffff80821115610a8157610a81610a26565b604051601f8301601f19908116603f01168101908282118183101715610aa957610aa9610a26565b81604052838152866020858801011115610ac257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215610afb57600080fd5b863595506020870135610b0d816109a5565b94506040870135610b1d816109a5565b9350606087013567ffffffffffffffff80821115610b3a57600080fd5b610b468a838b01610a55565b94506080890135915080821115610b5c57600080fd5b610b688a838b01610a55565b935060a0890135915080821115610b7e57600080fd5b50610b8b89828a01610a55565b9150509295509295509295565b600060208284031215610baa57600080fd5b8135610bb5816109a5565b9392505050565b60008060408385031215610bcf57600080fd5b8235610bda816109a5565b915060208301356109df816109a5565b600080600060608486031215610bff57600080fd5b8335610c0a816109a5565b92506020840135610c1a816109a5565b91506040840135610c2a816109ea565b809150509250925092565b600060208284031215610c4757600080fd5b5035919050565b600080600060608486031215610c6357600080fd5b833592506020840135610c75816109a5565b929592945050506040919091013590565b6000815180845260005b81811015610cac57602081850181015186830182015201610c90565b506000602082860101526020601f19601f83011685010191505092915050565b86815260006001600160a01b03808816602084015280871660408401525060c06060830152610cfe60c0830186610c86565b8281036080840152610d108186610c86565b905082810360a0840152610d248185610c86565b9998505050505050505050565b600060208284031215610d4357600080fd5b8151610bb5816109a5565b600060208284031215610d6057600080fd5b8151610bb5816109ea56fea2646970667358221220f7be706641a0a56d6bd42335dfc99d8d6ed778bb3ac9f3ca2a4aa345a15f87a764736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000106 | $0 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| no event logs emitted by this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x733290b0…4bebc6 | Transfer | 20,625,030 | 19 days agoMon, 27 Jul 2026 09:29:23 UTC | 0xcaf7…5d11 | IN | 0xdc67…fc78 | $0.001 DIH |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x498195…6a667d | setExempt | 17,310,137 | 23 days agoThu, 23 Jul 2026 13:06:23 UTC | 0xcbe0…12e1 | IN | ERC20AntiBot | $0.000 ETH | 0.00000616 | |
| 0xa80a63…a11084 | setExempt | 17,310,080 | 23 days agoThu, 23 Jul 2026 13:06:17 UTC | 0xcbe0…12e1 | IN | ERC20AntiBot | $0.000 ETH | 0.00000607 | |
| 0xb05fb0…b8cad4 | setCanUseAntiBot | 17,300,631 | 23 days agoThu, 23 Jul 2026 12:50:31 UTC | 0xcbe0…12e1 | IN | ERC20AntiBot | $9.410.005 ETH | 0.00002782 | |
| 0x441b77…b0b6c8 | setCanUseAntiBot | 14,045,823 | 27 days agoSun, 19 Jul 2026 18:11:40 UTC | 0x3197…3235 | IN | ERC20AntiBot | $9.410.005 ETH | 0.00001462 | |
| 0x1cf035…16cd0b | setExempt | 13,172,073 | 28 days agoSat, 18 Jul 2026 17:49:13 UTC | 0x337e…bda8 | IN | ERC20AntiBot | $0.000 ETH | 0.00000372 | |
| 0xba6b57…b47d96 | setExempt | 13,171,993 | 28 days agoSat, 18 Jul 2026 17:49:05 UTC | 0x337e…bda8 | IN | ERC20AntiBot | $0.000 ETH | 0.00000371 | |
| 0x0b3a47…1171a0 | setCanUseAntiBot | 13,131,580 | 28 days agoSat, 18 Jul 2026 16:41:32 UTC | 0x337e…bda8 | IN | ERC20AntiBot | $9.410.005 ETH | 0.00001697 | |
| 0x3bff15…9a4553 | setCanUseAntiBot | 11,727,275 | 30 days agoFri, 17 Jul 2026 01:32:32 UTC | 0x7574…2169 | IN | ERC20AntiBot | $9.410.005 ETH | 0.00002155 | |
| 0x8c2093…843f5e | setExempt | 10,500,543 | 31 days agoWed, 15 Jul 2026 15:27:41 UTC | 0x22c7…82cd | IN | ERC20AntiBot | $0.000 ETH | 0.00000355 | |
| 0xb7954b…d81481 | setExempt | 10,485,083 | 31 days agoWed, 15 Jul 2026 15:01:55 UTC | 0x22c7…82cd | IN | ERC20AntiBot | $0.000 ETH | 0.00000344 | |
| 0x9580ba…a7c123 | setExempt | 10,484,912 | 31 days agoWed, 15 Jul 2026 15:01:37 UTC | 0x22c7…82cd | IN | ERC20AntiBot | $0.000 ETH | 0.00000350 | |
| 0xe43281…d2b58a | setCanUseAntiBot | 9,806,549 | 32 days agoTue, 14 Jul 2026 20:10:34 UTC | 0xe4b5…4144 | IN | ERC20AntiBot | $9.410.005 ETH | 0.00001378 | |
| 0x9e3434…fc8dac | setCanUseAntiBot | 9,806,248 | 32 days agoTue, 14 Jul 2026 20:10:04 UTC | 0x22c7…82cd | IN | ERC20AntiBot | $9.410.005 ETH | 0.00001387 | |
| 0xb97e61…eff6be | setCanUseAntiBot | 8,910,985 | 33 days agoMon, 13 Jul 2026 19:15:11 UTC | 0x3258…60a0 | IN | ERC20AntiBot | $9.410.005 ETH | 0.00001334 | |
| 0xf7b1a0…6cd33e | setActive | 7,539,427 | 34 days agoSun, 12 Jul 2026 05:04:32 UTC | 0x41ad…6041 | IN | ERC20AntiBot | $0.000 ETH | 0.00000209 | |
| 0x185bff…fc646b | setActive | 7,535,979 | 34 days agoSun, 12 Jul 2026 04:58:45 UTC | 0x41ad…6041 | IN | ERC20AntiBot | $0.000 ETH | 0.00000210 | |
| 0xa920a4…f70753 | setActive | 7,523,646 | 34 days agoSun, 12 Jul 2026 04:38:09 UTC | 0x41ad…6041 | IN | ERC20AntiBot | $0.000 ETH | 0.00000210 | |
| 0x7ce003…62354a | setCanUseAntiBot | 7,460,082 | 34 days agoSun, 12 Jul 2026 02:51:53 UTC | 0x41ad…6041 | IN | ERC20AntiBot | $9.410.005 ETH | 0.00001496 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 17,300,631 | 23 days agoThu, 23 Jul 2026 12:50:31 UTC | 0xb05fb0…b8cad4 | CALL | setCanUseAntiBot | 0xdc67…fc78 | OUT | 0x2877…9ca0 | 0.005 ETH |
| 14,045,823 | 27 days agoSun, 19 Jul 2026 18:11:40 UTC | 0x441b77…b0b6c8 | CALL | setCanUseAntiBot | 0xdc67…fc78 | OUT | 0x2877…9ca0 | 0.005 ETH |
| 13,131,580 | 28 days agoSat, 18 Jul 2026 16:41:32 UTC | 0x0b3a47…1171a0 | CALL | setCanUseAntiBot | 0xdc67…fc78 | OUT | 0x2877…9ca0 | 0.005 ETH |
| 11,727,275 | 30 days agoFri, 17 Jul 2026 01:32:32 UTC | 0x3bff15…9a4553 | CALL | setCanUseAntiBot | 0xdc67…fc78 | OUT | 0x2877…9ca0 | 0.005 ETH |