Address Contract Partially Verified
Address
0x9e3319636e2126e3c0bc9e3134AEC5e1508A46c7
Balance
0 ETH
Nonce
1
Code Size
1896 bytes
Creator
0x88419103...8451 at tx 0xac79bb1d...b86ef2
Indexed Transactions
0
Contract Bytecode
1896 bytes
0x6060604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd1461019f57806323b872dd146101c4578063313ce567146101ec57806342966c68146102155780634334614a1461022d57806354fd4d501461024c578063567a03a71461025f57806370a08231146102835780638da5cb5b146102a257806395d89b41146102d1578063a9059cbb146102e4578063dd62ed3e14610306578063f2fde38b1461032b575b600080fd5b34156100ea57600080fd5b6100f261034a565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012e578082015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017457600080fd5b61018b600160a060020a0360043516602435610381565b604051901515815260200160405180910390f35b34156101aa57600080fd5b6101b2610389565b60405190815260200160405180910390f35b34156101cf57600080fd5b61018b600160a060020a036004358116906024351660443561038f565b34156101f757600080fd5b6101ff610398565b60405160ff909116815260200160405180910390f35b341561022057600080fd5b61022b60043561039d565b005b341561023857600080fd5b61018b600160a060020a03600435166103d0565b341561025757600080fd5b6100f26103e5565b341561026a57600080fd5b61022b600160a060020a0360043516602435151561041c565b341561028e57600080fd5b6101b2600160a060020a0360043516610462565b34156102ad57600080fd5b6102b561047d565b604051600160a060020a03909116815260200160405180910390f35b34156102dc57600080fd5b6100f261048c565b34156102ef57600080fd5b61018b600160a060020a03600435166024356104c3565b341561031157600080fd5b6101b2600160a060020a0360043581169060243516610381565b341561033657600080fd5b61022b600160a060020a03600435166105be565b60408051908101604052601581527f55544e2d503a20556e69766572736120546f6b656e0000000000000000000000602082015281565b600092915050565b60005481565b60009392505050565b601281565b600160a060020a03331660009081526003602052604090205460ff1615156103c457600080fd5b6103cd81610659565b50565b60036020526000908152604090205460ff1681565b60408051908101604052600381527f312e300000000000000000000000000000000000000000000000000000000000602082015281565b60025433600160a060020a0390811691161461043757600080fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b600160a060020a031660009081526001602052604090205490565b600254600160a060020a031681565b60408051908101604052600481527f55544e5000000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a03831615156104da57600080fd5b600160a060020a0333166000908152600160205260409020548211156104ff57600080fd5b600160a060020a033316600090815260016020526040902054610528908363ffffffff61071416565b600160a060020a03338116600090815260016020526040808220939093559085168152205461055d908363ffffffff61072616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60025433600160a060020a039081169116146105d957600080fd5b600160a060020a03811615156105ee57600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03331660009081526001602052604081205482111561067e57600080fd5b5033600160a060020a0381166000908152600160205260409020546106a39083610714565b600160a060020a038216600090815260016020526040812091909155546106d0908363ffffffff61071416565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b60008282111561072057fe5b50900390565b60008282018381101561073557fe5b93925050505600a165627a7a72305820664588c96d34e5a74eaad24b1388f142ca884acdcabe989c3f0cfe99ef7889000029
Verified Source Code Partial Match
Compiler: v0.4.18+commit.9cf6e910
Optimization: Yes (200 runs)
UTNP.sol 222 lines
pragma solidity ^0.4.13;
/**
* @title UTN-P ERC20 token by Universa Blockchain.
*
* @dev Based on OpenZeppelin framework.
*
* Features:
*
* * ERC20 compatibility, with token details as properties.
* * total supply: 4997891952 (initially given to the contract author).
* * decimals: 18
* * BurnableToken: some addresses are allowed to burn tokens.
* * “third-party smart contract trading protection”: transferFrom/approve/allowance methods are present but do nothing.
* * TimeLock: implemented externally (in TokenTimelock contract), some tokens are time-locked for 3 months.
* * Bulk send: implemented externally (in BulkSender contract), some tokens are time-locked for 3 months.
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract ERC20Basic {
uint256 public totalSupply;
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
}
contract BurnableToken is BasicToken {
event Burn(address indexed burner, uint256 value);
/**
* @dev Burns a specific amount of tokens.
* @param _value The amount of token to be burned.
*/
function burn(uint256 _value) public {
require(_value <= balances[msg.sender]);
// no need to require value <= totalSupply, since that would imply the
// sender's balance is greater than the totalSupply, which *should* be an assertion failure
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalSupply = totalSupply.sub(_value);
Burn(burner, _value);
}
}
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract UTNP is BasicToken, BurnableToken, ERC20, Ownable {
string public constant name = "UTN-P: Universa Token";
string public constant symbol = "UTNP";
uint8 public constant decimals = 18;
string public constant version = "1.0";
uint256 constant INITIAL_SUPPLY_UTN = 4997891952;
/// @dev whether an address is permitted to perform burn operations.
mapping(address => bool) public isBurner;
/**
* @dev Constructor that:
* * gives all of existing tokens to the message sender;
* * initializes the burners (also adding the message sender);
*/
function UTNP() public {
totalSupply = INITIAL_SUPPLY_UTN * (10 ** uint256(decimals));
balances[msg.sender] = totalSupply;
isBurner[msg.sender] = true;
}
/**
* @dev Standard method to comply with ERC20 interface;
* prevents some Ethereum-contract-initiated operations.
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
return false;
}
/**
* @dev Standard method to comply with ERC20 interface;
* prevents some Ethereum-contract-initiated operations.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
return false;
}
/**
* @dev Standard method to comply with ERC20 interface;
* prevents some Ethereum-contract-initiated operations.
*/
function allowance(address _owner, address _spender) public view returns (uint256) {
return 0;
}
/**
* @dev Grant or remove burn permissions. Only owner can do that!
*/
function grantBurner(address _burner, bool _value) public onlyOwner {
isBurner[_burner] = _value;
}
/**
* @dev Throws if called by any account other than the burner.
*/
modifier onlyBurner() {
require(isBurner[msg.sender]);
_;
}
/**
* @dev Burns a specific amount of tokens.
* Only an address listed in `isBurner` can do this.
* @param _value The amount of token to be burned.
*/
function burn(uint256 _value) public onlyBurner {
super.burn(_value);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isBurner 0x4334614a → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
version 0x54fd4d50 → string
Write Contract 6 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
burn 0x42966c68
uint256 _value
grantBurner 0x567a03a7
address _burner
bool _value
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address