Address Contract Partially Verified
Address
0x738865301A9b7Dd80Dc3666dD48cF034ec42bdDa
Balance
0 ETH
Nonce
1
Code Size
5457 bytes
Creator
0xC7D77eb7...9b01 at tx 0x1435992b...d0be12
Indexed Transactions
0
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 →Recent Transactions
No transactions found for this address