Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x738865301A9b7Dd80Dc3666dD48cF034ec42bdDa
Balance 0 ETH
Nonce 1
Code Size 5457 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

5457 bytes
0x608060405234801561001057600080fd5b50600436106101215760003560e01c80635c975abb116100ad578063a0712d6811610071578063a0712d6814610220578063a457c2d714610233578063a9059cbb14610246578063bf85223714610259578063dd62ed3e1461026c57610121565b80635c975abb146101e257806370a08231146101ea5780638456cb59146101fd578063882f327b1461020557806395d89b411461021857610121565b8063313ce567116100f4578063313ce5671461018c57806339509351146101a15780633f4ba83a146101b45780634a387bef146101bc5780634a4fbeec146101cf57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016457806323b872dd14610179575b600080fd5b61012e61027f565b60405161013b9190610f0e565b60405180910390f35b610157610152366004610e45565b610311565b60405161013b9190610f03565b61016c610327565b60405161013b9190611484565b610157610187366004610e0a565b61032d565b610194610402565b60405161013b919061148d565b6101576101af366004610e45565b61040b565b61015761048d565b6101576101ca366004610db7565b6104cd565b6101576101dd366004610db7565b610584565b6101576105a2565b61016c6101f8366004610db7565b6105ab565b6101576105c6565b610157610213366004610db7565b610600565b61012e6106a9565b61015761022e366004610ed7565b6106b8565b610157610241366004610e45565b6107ff565b610157610254366004610e45565b610878565b610157610267366004610e6e565b6108b3565b61016c61027a366004610dd8565b6109aa565b60606005805461028e906114ca565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba906114ca565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b600061031e3384846109d5565b50600192915050565b60045490565b6001600160a01b03831660009081526003602052604081205460ff161561036f5760405162461bcd60e51b815260040161036690611241565b60405180910390fd5b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156103b25760405162461bcd60e51b81526004016103669061109a565b6001600160a01b0384166000908152600260209081526040808320338085529252909120546103ed9186916103e89086906114b3565b6109d5565b6103f8848484610a89565b5060019392505050565b60075460ff1690565b3360009081526002602090815260408083206001600160a01b0386168452909152812054819061043c90849061149b565b3360009081526002602090815260408083206001600160a01b03891684529091529020549091508110156104825760405162461bcd60e51b81526004016103669061144d565b6103f83385836109d5565b60075460009061010090046001600160a01b031633146104bf5760405162461bcd60e51b815260040161036690611008565b6104c7610c12565b50600190565b60006104d76105a2565b156104f45760405162461bcd60e51b8152600401610366906110e7565b60075461010090046001600160a01b031633146105235760405162461bcd60e51b815260040161036690610f61565b6001600160a01b03821660009081526003602052604090819020805460ff19169055517f7e6adfec7e3f286831a0200a754127c171a2da564078722cb97704741bbdb0ea90610573908490610eef565b60405180910390a15060015b919050565b6001600160a01b031660009081526003602052604090205460ff1690565b60005460ff1690565b6001600160a01b031660009081526001602052604090205490565b60075460009061010090046001600160a01b031633146105f85760405162461bcd60e51b8152600401610366906112c1565b6104c7610c67565b600061060a6105a2565b156106275760405162461bcd60e51b8152600401610366906110e7565b60075461010090046001600160a01b031633146106565760405162461bcd60e51b815260040161036690610f61565b6001600160a01b03821660009081526003602052604090819020805460ff19166001179055517f44427e3003a08f22cf803894075ac0297524e09e521fc1c15bc91741ce3dc15990610573908490610eef565b60606006805461028e906114ca565b60006106c26105a2565b156106df5760405162461bcd60e51b8152600401610366906110e7565b60075461010090046001600160a01b0316331461070e5760405162461bcd60e51b8152600401610366906113c2565b60045461071b838261149b565b10156107395760405162461bcd60e51b81526004016103669061144d565b60075461010090046001600160a01b0316600090815260016020526040902054829061076690829061149b565b10156107845760405162461bcd60e51b81526004016103669061144d565b8160046000828254610796919061149b565b909155505060075461010090046001600160a01b0316600090815260016020526040812080548492906107ca90849061149b565b90915550506040517f07883703ed0e86588a40d76551c92f8a4b329e3bf19765e0e6749473c1a8466590610573908490611484565b3360009081526002602090815260408083206001600160a01b03861684529091528120548211156108425760405162461bcd60e51b815260040161036690611403565b3360008181526002602090815260408083206001600160a01b038816845290915290205461031e919085906103e89086906114b3565b3360009081526003602052604081205460ff16156108a85760405162461bcd60e51b8152600401610366906111bf565b61031e338484610a89565b60006108bd6105a2565b156108da5760405162461bcd60e51b8152600401610366906110e7565b60075461010090046001600160a01b031633146109095760405162461bcd60e51b815260040161036690610f61565b602084111561092a5760405162461bcd60e51b81526004016103669061130a565b836109475760405162461bcd60e51b815260040161036690610fa3565b60088211156109685760405162461bcd60e51b815260040161036690611116565b816109855760405162461bcd60e51b81526004016103669061138b565b61099160058686610cc0565b5061099e60068484610cc0565b50600195945050505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b0383166109fb5760405162461bcd60e51b815260040161036690611278565b6001600160a01b038216610a215760405162461bcd60e51b815260040161036690611053565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a7c908590611484565b60405180910390a3505050565b610a916105a2565b15610aae5760405162461bcd60e51b8152600401610366906110e7565b6001600160a01b038316610ad45760405162461bcd60e51b815260040161036690611341565b6001600160a01b038216610afa5760405162461bcd60e51b81526004016103669061114d565b6001600160a01b038316600090815260016020526040902054811115610b325760405162461bcd60e51b8152600401610366906111f6565b6001600160a01b038216600090815260016020526040902054610b55828261149b565b1015610b735760405162461bcd60e51b81526004016103669061144d565b6001600160a01b03831660009081526001602052604081208054839290610b9b9084906114b3565b90915550506001600160a01b03821660009081526001602052604081208054839290610bc890849061149b565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a7c9190611484565b60005460ff16610c345760405162461bcd60e51b815260040161036690610fda565b6000805460ff191681556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d169339190a1565b60005460ff1615610c8a5760405162461bcd60e51b815260040161036690611195565b6000805460ff191660011781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b828054610ccc906114ca565b90600052602060002090601f016020900481019282610cee5760008555610d34565b82601f10610d075782800160ff19823516178555610d34565b82800160010185558215610d34579182015b82811115610d34578235825591602001919060010190610d19565b50610d40929150610d44565b5090565b5b80821115610d405760008155600101610d45565b80356001600160a01b038116811461057f57600080fd5b60008083601f840112610d81578182fd5b50813567ffffffffffffffff811115610d98578182fd5b602083019150836020828501011115610db057600080fd5b9250929050565b600060208284031215610dc8578081fd5b610dd182610d59565b9392505050565b60008060408385031215610dea578081fd5b610df383610d59565b9150610e0160208401610d59565b90509250929050565b600080600060608486031215610e1e578081fd5b610e2784610d59565b9250610e3560208501610d59565b9150604084013590509250925092565b60008060408385031215610e57578182fd5b610e6083610d59565b946020939093013593505050565b60008060008060408587031215610e83578081fd5b843567ffffffffffffffff80821115610e9a578283fd5b610ea688838901610d70565b90965094506020870135915080821115610ebe578283fd5b50610ecb87828801610d70565b95989497509550505050565b600060208284031215610ee8578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610f3a57858101830151858201604001528201610f1e565b81811115610f4b5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f41676f726173546f6b656e3a207570646174652066726f6d206e6f6e206f776e60408201526132b960f11b606082015260800190565b60208082526017908201527f41676f726173546f6b656e3a20656d707479206e616d65000000000000000000604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602b908201527f41676f726173546f6b656e3a20756e706175736520726571756573742066726f60408201526a36903737b71037bbb732b960a91b606082015260800190565b60208082526027908201527f41676f726173546f6b656e20617070726f766520746f20746865207a65726f206040820152666164647265737360c81b606082015260800190565b6020808252602d908201527f41676f726173546f6b656e207472616e7366657220616d6f756e74206578636560408201526c65647320616c6c6f77616e636560981b606082015260800190565b6020808252601590820152741059dbdc985cd51bdad95b881a5cc814185d5cd959605a1b604082015260600190565b6020808252601c908201527f41676f726173546f6b656e3a2073796d626f6c20746f6f206c6f6e6700000000604082015260600190565b60208082526028908201527f41676f726173546f6b656e207472616e7366657220746f20746865207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526019908201527f41676f726173546f6b656e206c6f636b65642073656e64657200000000000000604082015260600190565b6020808252602b908201527f41676f726173546f6b656e207472616e7366657220616d6f756e74206578636560408201526a6564732062616c616e636560a81b606082015260800190565b6020808252601e908201527f41676f726173546f6b656e206c6f636b65642066726f6d2073656e6465720000604082015260600190565b60208082526029908201527f41676f726173546f6b656e20617070726f76652066726f6d20746865207a65726040820152686f206164647265737360b81b606082015260800190565b60208082526029908201527f41676f726173546f6b656e3a20706175736520726571756573742066726f6d206040820152683737b71037bbb732b960b91b606082015260800190565b6020808252601a908201527f41676f726173546f6b656e3a206e616d6520746f6f206c6f6e67000000000000604082015260600190565b6020808252602a908201527f41676f726173546f6b656e207472616e736665722066726f6d20746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526019908201527f41676f726173546f6b656e3a20656d7074792073796d626f6c00000000000000604082015260600190565b60208082526021908201527f41676f726173546f6b656e3a206d696e742066726f6d206e6f6e206f776e65726040820152600160fd1b606082015260800190565b6020808252602a908201527f41676f726173546f6b656e2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b6020808252601d908201527f41676f726173546f6b656e206164646974696f6e206f766572666c6f77000000604082015260600190565b90815260200190565b60ff91909116815260200190565b600082198211156114ae576114ae611505565b500190565b6000828210156114c5576114c5611505565b500390565b6002810460018216806114de57607f821691505b602082108114156114ff57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212203fd3b53fd42bd998ef47c8d10224988b5aadbe0c5090e3856fb135e69396489b64736f6c63430008000033

Verified Source Code Partial Match

Compiler: v0.8.0+commit.c7dfd78e EVM: istanbul Optimization: Yes (200 runs)
AgorasToken.sol 166 lines
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <=0.8.0;

interface IERC20 {
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        event Approval(address indexed owner, address indexed spender, uint256 value);
        event Transfer(address indexed from, address indexed to, uint256 value);
}

contract Pausable {
        event Paused();
        event Unpaused();
        bool private _paused;
        constructor ()                                  { _paused = false; }
        function paused() public view returns (bool)    { return _paused; }
        modifier whenNotPaused()                        { require(!_paused, "Pausable: paused"); _; }
        modifier whenPaused()                           { require(_paused, "Pausable: not paused"); _; }
        function _pause() internal virtual whenNotPaused{ _paused = true; emit Paused(); }
        function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(); }
}

contract AgorasToken is IERC20, Pausable {
        mapping (address => uint256) private _balances;
        mapping (address => mapping (address => uint256)) private _allowances;
        mapping (address => bool) private _locked;
        uint256 private _totalSupply;
        string private _name;
        string private _symbol;
        uint8 private _decimals;
        address private _owner;

        constructor() {
                _name = 'Agoras Token';
                _symbol = 'AGRS';
                _decimals = 8;
                _totalSupply = 42000000 * (10**_decimals);
                _balances[msg.sender] = _totalSupply;
                _owner = msg.sender;
        }

        function name() public view returns (string memory)     { return _name; }
        function symbol() public view returns (string memory) { return _symbol; }
        function decimals() public view returns (uint8) { return _decimals; }
        function totalSupply() public view override returns (uint256) { return _totalSupply; }
        function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
        function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
                require(!_locked[msg.sender], "AgorasToken locked sender");
                _transfer(msg.sender, recipient, amount);
                return true;
        }
        function allowance(address owner, address spender) public view virtual override returns (uint256) {
                return _allowances[owner][spender];
        }
        function approve(address spender, uint256 amount) public virtual override returns (bool) {
                _approve(msg.sender, spender, amount);
                return true;
        }

        function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
                require(!_locked[sender], "AgorasToken locked from sender");
                require(_allowances[sender][msg.sender] >= amount, "AgorasToken transfer amount exceeds allowance");
                _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
                _transfer(sender, recipient, amount);
                return true;
        }

        function _approve(address owner, address spender, uint256 amount) internal virtual {
                require(owner != address(0), "AgorasToken approve from the zero address");
                require(spender != address(0), "AgorasToken approve to the zero address");
                _allowances[owner][spender] = amount;
                emit Approval(owner, spender, amount);
        }

        function _transfer(address sender, address recipient, uint256 amount) internal virtual {
                //_beforeTokenTransfer();
                require(paused() == false, "AgorasToken is Paused");
                require(sender != address(0), "AgorasToken transfer from the zero address");
                require(recipient != address(0), "AgorasToken transfer to the zero address");
                require(_balances[sender] >= amount, "AgorasToken transfer amount exceeds balance");
                require(_balances[recipient] + amount >= _balances[recipient], "AgorasToken addition overflow");

                _balances[sender] -= amount;
                _balances[recipient] += amount;
                emit Transfer(sender, recipient, amount);
        }

        function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
                uint256 c = _allowances[msg.sender][spender] + addedValue;
                require(c >= _allowances[msg.sender][spender], "AgorasToken addition overflow");
                _approve(msg.sender, spender, c);
                return true;
        }

        function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
                require(_allowances[msg.sender][spender] >= subtractedValue, "AgorasToken decreased allowance below zero");
                _approve(msg.sender, spender, _allowances[msg.sender][spender] - subtractedValue);
                return true;
        }

        function _beforeTokenTransfer() internal virtual { }

        function pause()  public virtual returns (bool) {
                require(msg.sender == _owner, "AgorasToken: pause request from non owner");
                _pause();
                return true;
        }

        function unpause() public virtual returns (bool) {
                require(msg.sender == _owner, "AgorasToken: unpause request from non owner");
                _unpause();
                return true;
        }

        event Mint(uint256 amount);

        function mint(uint256 amount) public virtual returns (bool) {
                require(paused()==false, "AgorasToken is Paused");
                require(msg.sender == _owner, "AgorasToken: mint from non owner ");
                require(_totalSupply + amount >= _totalSupply, "AgorasToken addition overflow");
                require(_balances[_owner] + amount >= amount, "AgorasToken addition overflow");
                _totalSupply += amount;
                _balances[_owner] += amount;
                emit Mint(amount);
                return true;
        }

        function updateNameSymbol(string calldata newname, string calldata newsymbol) public virtual returns (bool) {
                require(paused()==false, "AgorasToken is Paused");
                require(msg.sender == _owner, "AgorasToken: update from non owner");
                require(bytes(newname).length <= 32, "AgorasToken: name too long");
                require(bytes(newname).length > 0, "AgorasToken: empty name");
                require(bytes(newsymbol).length <= 8, "AgorasToken: symbol too long");
                require(bytes(newsymbol).length > 0, "AgorasToken: empty symbol");
                _name = newname;
                _symbol = newsymbol;
                return true;
        }

        function isLocked(address addr) public virtual returns (bool) {
                return _locked[addr];
        }

        function addLock(address addr) public virtual returns (bool) {
                require(paused()==false, "AgorasToken is Paused");
                require(msg.sender == _owner, "AgorasToken: update from non owner");
                _locked[addr] = true;
                emit Locked(addr);
                return true;
        }

        function removeLock(address addr) public virtual returns (bool) {
                require(paused()==false, "AgorasToken is Paused");
                require(msg.sender == _owner, "AgorasToken: update from non owner");
                _locked[addr] = false;
                emit Unlocked(addr);
                return true;
        }

        event Locked(address addr);
        event Unlocked(address addr);
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
paused 0x5c975abb → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 12 functions

These functions modify contract state and require a wallet transaction to execute.

addLock 0x882f327b
address addr
returns: bool
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
isLocked 0x4a4fbeec
address addr
returns: bool
mint 0xa0712d68
uint256 amount
returns: bool
pause 0x8456cb59
No parameters
returns: bool
removeLock 0x4a387bef
address addr
returns: bool
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
unpause 0x3f4ba83a
No parameters
returns: bool
updateNameSymbol 0xbf852237
string newname
string newsymbol
returns: bool

Token Balances (1)

View Transfers →
USDT 30

Recent Transactions

No transactions found for this address