Address Contract Partially Verified
Address
0x347Cfa9d96C967d9c4C488B67B321cFd57B30C5D
Balance
0 ETH
Nonce
1
Code Size
3243 bytes
Creator
0x30A851FD...4F95 at tx 0xf86e6ac4...7b2f38
Indexed Transactions
0
Contract Bytecode
3243 bytes
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a9059cbb11610071578063a9059cbb14610352578063cae9ca511461037e578063d8162db714610403578063dd62ed3e1461040b578063fca3b5aa146104395761012c565b806370a08231146102ee5780638da5cb5b1461031457806395d89b411461031c578063a39a45b714610324578063a4e2d6341461034a5761012c565b8063313ce567116100f4578063313ce56714610262578063366a68dc1461028057806340c10f191461029d57806342966c68146102c957806354fd4d50146102e65761012c565b806306fdde031461013157806307546172146101ae578063095ea7b3146101d257806318160ddd1461021257806323b872dd1461022c575b600080fd5b61013961045f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b66104ec565b604080516001600160a01b039092168252519081900360200190f35b6101fe600480360360408110156101e857600080fd5b506001600160a01b0381351690602001356104fb565b604080519115158252519081900360200190f35b61021a610562565b60408051918252519081900360200190f35b6101fe6004803603606081101561024257600080fd5b506001600160a01b03813581169160208101359091169060400135610568565b61026a610657565b6040805160ff9092168252519081900360200190f35b6101fe6004803603602081101561029657600080fd5b5035610660565b6101fe600480360360408110156102b357600080fd5b506001600160a01b0381351690602001356106b7565b6101fe600480360360208110156102df57600080fd5b50356107ba565b610139610898565b61021a6004803603602081101561030457600080fd5b50356001600160a01b03166108f3565b6101b661090e565b61013961091d565b6101fe6004803603602081101561033a57600080fd5b50356001600160a01b0316610978565b6101fe6109e7565b6101fe6004803603604081101561036857600080fd5b506001600160a01b0381351690602001356109ef565b6101fe6004803603606081101561039457600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103c457600080fd5b8201836020820111156103d657600080fd5b803590602001918460018302840111640100000000831117156103f857600080fd5b509092509050610a8d565b61021a610b5f565b61021a6004803603604081101561042157600080fd5b506001600160a01b0381358116916020013516610b65565b6101fe6004803603602081101561044f57600080fd5b50356001600160a01b0316610b90565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104e45780601f106104b9576101008083540402835291602001916104e4565b820191906000526020600020905b8154815290600101906020018083116104c757829003601f168201915b505050505081565b6006546001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60005481565b6000836105736109e7565b158061058c57506005546001600160a01b038281169116145b1561064f5784848461059f838383610bff565b1561064b576001600160a01b03881660009081526009602090815260408083203384529091529020548611156105d8576000945061064b565b6001600160a01b03808916600081815260086020908152604080832080548c90039055938b1680835284832080548c0190558383526009825284832033845282529184902080548b9003905583518a815293519193600080516020610c56833981519152929081900390910190a3600194505b5050505b509392505050565b60025460ff1681565b6005546000906001600160a01b03163314156106b25760078290556040805183815290517f6c04066f6ede40cc1642c211ba9d18f1a096ccc84fb8d11be28ea6c3c6f68b369181900360200190a15060015b919050565b6006546000906001600160a01b03163314806106dd57506005546001600160a01b031633145b1561055c57336106eb6109e7565b158061070457506005546001600160a01b038281169116145b156107b3576000548381011161071d57600091506107b3565b6001600160a01b0384166000818152600860209081526040808320805488019055825487019283905580518781529182019290925281517f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f929181900390910190a26040805184815290516001600160a01b03861691600091600080516020610c568339815191529181900360200190a3600191505b5092915050565b6000336107c56109e7565b15806107de57506005546001600160a01b038281169116145b15610892578215806107fe57503360009081526008602052604090205483115b1561080c5760009150610892565b3360008181526008602090815260408083208054889003905582548790039283905580518781529182019290925281517f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a929181900390910190a26040805184815290516000913391600080516020610c568339815191529181900360200190a3600191505b50919050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104e45780601f106104b9576101008083540402835291602001916104e4565b6001600160a01b031660009081526008602052604090205490565b6005546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104e45780601f106104b9576101008083540402835291602001916104e4565b6005546000906001600160a01b03163314156106b257600580546001600160a01b0384166001600160a01b0319909116811790915560408051918252517f3edd90e7770f06fafde38004653b33870066c33bfc923ff6102acd601f85dfbc9181900360200190a1506001919050565b600754431090565b6000336109fa6109e7565b1580610a1357506005546001600160a01b038281169116145b156107b357338484610a26838383610bff565b15610a835733600081815260086020908152604080832080548b900390556001600160a01b038b168084529281902080548b01905580518a81529051929392600080516020610c56833981519152929181900390910190a3600194505b5050505092915050565b6000610a9985856104fb565b15610b5757846001600160a01b0316638f4ffcb133863087876040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b50505050600190505b949350505050565b60075481565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6005546000906001600160a01b03163314156106b257600680546001600160a01b0384166001600160a01b0319909116811790915560408051918252517f6adffd5c93085d835dac6f3b40adf7c242ca4b3284048d20c3d8a501748dc9739181900360200190a1506001919050565b6001600160a01b0383166000908152600860205260408120548211801590610c275750600082115b8015610c3c57506001600160a01b0383163014155b8015610b57575050506001600160a01b0316151591905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202f1ef76d90a0613671ac682cd349c08f428a8b33d96f2a2f75e99d7789f988d764736f6c634300060c0033
Verified Source Code Partial Match
Compiler: v0.6.12+commit.27d51765
EVM: istanbul
Optimization: Yes (200 runs)
DaaToken.sol 242 lines
pragma solidity ^0.6.12;
interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external; }
/// @title ICONOMI Daa token
contract DaaToken {
//
// events
//
// ERC20 events
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
// mint/burn events
event Mint(address indexed _to, uint256 _amount, uint256 _newTotalSupply);
event Burn(address indexed _from, uint256 _amount, uint256 _newTotalSupply);
// admin events
event BlockLockSet(uint256 _value);
event NewOwner(address _newOwner);
event NewMinter(address _minter);
modifier onlyOwner {
if (msg.sender == owner) {
_;
}
}
modifier minterOrOwner {
if (msg.sender == minter || msg.sender == owner) {
_;
}
}
modifier blockLock(address _sender) {
if (!isLocked() || _sender == owner) {
_;
}
}
modifier validTransfer(address _from, address _to, uint256 _amount) {
if (isTransferValid(_from, _to, _amount)) {
_;
}
}
uint256 public totalSupply;
string public name;
uint8 public decimals;
string public symbol;
string public version = '0.0.1';
address public owner;
address public minter;
uint256 public lockedUntilBlock;
constructor(
string memory _tokenName,
uint8 _decimalUnits,
string memory _tokenSymbol,
address _owner,
address _minter,
uint256 _lockedUntilBlock
) public {
name = _tokenName;
decimals = _decimalUnits;
symbol = _tokenSymbol;
owner = _owner;
minter = _minter;
lockedUntilBlock = _lockedUntilBlock;
}
function transfer(address _to, uint256 _value)
public
blockLock(msg.sender)
validTransfer(msg.sender, _to, _value)
returns (bool success)
{
// transfer tokens
balances[msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
function approve(address _spender, uint256 _value)
public
returns (bool success)
{
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function transferFrom(address _from, address _to, uint256 _value)
public
blockLock(_from)
validTransfer(_from, _to, _value)
returns (bool success)
{
// check sufficient allowance
if (_value > allowed[_from][msg.sender]) {
return false;
}
// transfer tokens
balances[_from] -= _value;
balances[_to] += _value;
allowed[_from][msg.sender] -= _value;
emit Transfer(_from, _to, _value);
return true;
}
function approveAndCall(address _spender, uint256 _value, bytes calldata _extraData)
public
returns (bool success)
{
if (approve(_spender, _value)) {
tokenRecipient(_spender).receiveApproval(msg.sender, _value, address(this), _extraData);
return true;
}
}
/// @notice Mint new tokens. Can only be called by minter or owner
function mint(address _to, uint256 _value)
public
minterOrOwner
blockLock(msg.sender)
returns (bool success)
{
// ensure _value is greater than zero and
// doesn't overflow
if (totalSupply + _value <= totalSupply) {
return false;
}
balances[_to] += _value;
totalSupply += _value;
emit Mint(_to, _value, totalSupply);
emit Transfer(address(0x0), _to, _value);
return true;
}
/// @notice Burn tokens. Can be called by any account
function burn(uint256 _value)
public
blockLock(msg.sender)
returns (bool success)
{
if (_value == 0 || _value > balances[msg.sender]) {
return false;
}
balances[msg.sender] -= _value;
totalSupply -= _value;
Burn(msg.sender, _value, totalSupply);
emit Transfer(msg.sender, address(0x0), _value);
return true;
}
/// @notice Set block lock. Until that block (exclusive) transfers are disallowed
function setBlockLock(uint256 _lockedUntilBlock)
public
onlyOwner
returns (bool success)
{
lockedUntilBlock = _lockedUntilBlock;
BlockLockSet(_lockedUntilBlock);
return true;
}
/// @notice Replace current owner with new one
function replaceOwner(address _newOwner)
public
onlyOwner
returns (bool success)
{
owner = _newOwner;
NewOwner(_newOwner);
return true;
}
/// @notice Set account that can mint new tokens
function setMinter(address _newMinter)
public
onlyOwner
returns (bool success)
{
minter = _newMinter;
NewMinter(_newMinter);
return true;
}
function balanceOf(address _owner)
public
view
returns (uint256 balance)
{
return balances[_owner];
}
function allowance(address _owner, address _spender)
public
view
returns (uint256 remaining)
{
return allowed[_owner][_spender];
}
/// @notice Are transfers currently disallowed
function isLocked()
public
view
returns (bool success)
{
return lockedUntilBlock > block.number;
}
/// @dev Checks if transfer parameters are valid
function isTransferValid(address _from, address _to, uint256 _amount)
private
view
returns (bool isValid)
{
return balances[_from] >= _amount && // sufficient balance
_amount > 0 && // amount is positive
_to != address(this) && // prevent sending tokens to contract
_to != address(0x0) // prevent sending token to 0x0 address
;
}
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isLocked 0xa4e2d634 → bool
lockedUntilBlock 0xd8162db7 → uint256
minter 0x07546172 → address
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
version 0x54fd4d50 → string
Write Contract 9 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
approveAndCall 0xcae9ca51
address _spender
uint256 _value
bytes _extraData
returns: bool
burn 0x42966c68
uint256 _value
returns: bool
mint 0x40c10f19
address _to
uint256 _value
returns: bool
replaceOwner 0xa39a45b7
address _newOwner
returns: bool
setBlockLock 0x366a68dc
uint256 _lockedUntilBlock
returns: bool
setMinter 0xfca3b5aa
address _newMinter
returns: bool
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
Recent Transactions
No transactions found for this address