Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
Latest 25 from a total of 472 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
|---|---|---|---|---|---|---|---|---|---|
| Issue | 3696660 | 2199 days 41 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696660 | 2199 days 41 mins ago | IN | 0 ETH | 0.00171814 | ||||
| Issue | 3696658 | 2199 days 41 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696658 | 2199 days 41 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696658 | 2199 days 41 mins ago | IN | 0 ETH | 0.00171814 | ||||
| Issue | 3696658 | 2199 days 41 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696658 | 2199 days 41 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171814 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171814 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171814 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171814 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.0017207 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.0017207 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.0017207 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.0017207 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171814 | ||||
| Issue | 3696656 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171942 | ||||
| Issue | 3696653 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171558 | ||||
| Issue | 3696653 | 2199 days 42 mins ago | IN | 0 ETH | 0.00171814 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Issuer
Compiler Version
v0.4.8+commit.60cc1668
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-05-12
*/
pragma solidity ^0.4.8;
/*
* ERC20 interface
* see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 {
uint public totalSupply;
function balanceOf(address who) constant returns (uint);
function allowance(address owner, address spender) constant returns (uint);
function transfer(address to, uint value) returns (bool ok);
function transferFrom(address from, address to, uint value) returns (bool ok);
function approve(address spender, uint value) returns (bool ok);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
/**
* Math operations with safety checks
*/
contract SafeMath {
function safeMul(uint a, uint b) internal returns (uint) {
uint c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function safeDiv(uint a, uint b) internal returns (uint) {
assert(b > 0);
uint c = a / b;
assert(a == b * c + a % b);
return c;
}
function safeSub(uint a, uint b) internal returns (uint) {
assert(b <= a);
return a - b;
}
function safeAdd(uint a, uint b) internal returns (uint) {
uint c = a + b;
assert(c>=a && c>=b);
return c;
}
function max64(uint64 a, uint64 b) internal constant returns (uint64) {
return a >= b ? a : b;
}
function min64(uint64 a, uint64 b) internal constant returns (uint64) {
return a < b ? a : b;
}
function max256(uint256 a, uint256 b) internal constant returns (uint256) {
return a >= b ? a : b;
}
function min256(uint256 a, uint256 b) internal constant returns (uint256) {
return a < b ? a : b;
}
function assert(bool assertion) internal {
if (!assertion) {
throw;
}
}
}
/**
* Standard ERC20 token
*
* https://github.com/ethereum/EIPs/issues/20
* Based on code by FirstBlood:
* https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*/
contract StandardToken is ERC20, SafeMath {
mapping(address => uint) balances;
mapping (address => mapping (address => uint)) allowed;
function transfer(address _to, uint _value) returns (bool success) {
balances[msg.sender] = safeSub(balances[msg.sender], _value);
balances[_to] = safeAdd(balances[_to], _value);
Transfer(msg.sender, _to, _value);
return true;
}
function transferFrom(address _from, address _to, uint _value) returns (bool success) {
var _allowance = allowed[_from][msg.sender];
// Check is not needed because safeSub(_allowance, _value) will already throw if this condition is not met
// if (_value > _allowance) throw;
balances[_to] = safeAdd(balances[_to], _value);
balances[_from] = safeSub(balances[_from], _value);
allowed[_from][msg.sender] = safeSub(_allowance, _value);
Transfer(_from, _to, _value);
return true;
}
function balanceOf(address _owner) constant returns (uint balance) {
return balances[_owner];
}
function approve(address _spender, uint _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint remaining) {
return allowed[_owner][_spender];
}
}
/*
* Ownable
*
* Base contract with an owner.
* Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
*/
contract Ownable {
address public owner;
function Ownable() {
owner = msg.sender;
}
modifier onlyOwner() {
if (msg.sender != owner) {
throw;
}
_;
}
function transferOwnership(address newOwner) onlyOwner {
if (newOwner != address(0)) {
owner = newOwner;
}
}
}
/**
* Issuer manages token distribution after the crowdsale.
*
* This contract is fed a CSV file with Ethereum addresses and their
* issued token balances.
*
* Issuer act as a gate keeper to ensure there is no double issuance
* per address, in the case we need to do several issuance batches,
* there is a race condition or there is a fat finger error.
*
* Issuer contract gets allowance from the team multisig to distribute tokens.
*
*/
contract Issuer is Ownable {
/** Map addresses whose tokens we have already issued. */
mapping(address => bool) public issued;
/** Centrally issued token we are distributing to our contributors */
StandardToken public token;
/** Party (team multisig) who is in the control of the token pool. Note that this will be different from the owner address (scripted) that calls this contract. */
address public allower;
/** How many addresses have received their tokens. */
uint public issuedCount;
function Issuer(address _owner, address _allower, StandardToken _token) {
owner = _owner;
allower = _allower;
token = _token;
}
function issue(address benefactor, uint amount) onlyOwner {
if(issued[benefactor]) throw;
token.transferFrom(allower, benefactor, amount);
issued[benefactor] = true;
issuedCount += amount;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"issuedCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"benefactor","type":"address"},{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"allower","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"issued","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_allower","type":"address"},{"name":"_token","type":"address"}],"payable":false,"type":"constructor"}]Contract Creation Code
606060405234610000576040516060806103cd8339810160409081528151602083015191909201515b5b60008054600160a060020a03191633600160a060020a03161790555b60008054600160a060020a03808616600160a060020a0319928316179092556003805485841690831617905560028054928416929091169190911790555b5050505b610337806100966000396000f300606060405236156100675763ffffffff60e060020a6000350416630b0f7743811461006c578063867904b41461008b5780638da5cb5b146100a9578063dd449a83146100d2578063f02d7ef0146100fb578063f2fde38b14610128578063fc0c546a14610143575b610000565b346100005761007961016c565b60408051918252519081900360200190f35b34610000576100a7600160a060020a0360043516602435610172565b005b34610000576100b6610271565b60408051600160a060020a039092168252519081900360200190f35b34610000576100b6610280565b60408051600160a060020a039092168252519081900360200190f35b3461000057610114600160a060020a036004351661028f565b604080519115158252519081900360200190f35b34610000576100a7600160a060020a03600435166102a4565b005b34610000576100b66102fc565b60408051600160a060020a039092168252519081900360200190f35b60045481565b60005433600160a060020a0390811691161461018d57610000565b600160a060020a03821660009081526001602052604090205460ff16156101b357610000565b600254600354604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a039485166004820152878516602482015260448101879052925193909416936323b872dd936064808501949192918390030190829087803b156100005760325a03f11561000057505050600160a060020a0382166000908152600160208190526040909120805460ff1916909117905560048054820190555b5b5050565b600054600160a060020a031681565b600354600160a060020a031681565b60016020526000908152604090205460ff1681565b60005433600160a060020a039081169116146102bf57610000565b600160a060020a038116156102f7576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600254600160a060020a0316815600a165627a7a7230582023fba5a9744f27e999b258d38bf9aae18d824cc802096ad426ac343f8716e8990029000000000000000000000000f0f7052a1713b5c216bc240b9eed6ea67e2aa0bc000000000000000000000000f0f7052a1713b5c216bc240b9eed6ea67e2aa0bc0000000000000000000000001dce4fa03639b7f0c38ee5bb6065045edcf9819a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f0f7052a1713b5c216bc240b9eed6ea67e2aa0bc000000000000000000000000f0f7052a1713b5c216bc240b9eed6ea67e2aa0bc0000000000000000000000001dce4fa03639b7f0c38ee5bb6065045edcf9819a
-----Decoded View---------------
Arg [0] : _owner (address): 0xF0F7052A1713B5C216BC240b9eED6ea67E2AA0bc
Arg [1] : _allower (address): 0xF0F7052A1713B5C216BC240b9eED6ea67E2AA0bc
Arg [2] : _token (address): 0x1dCE4Fa03639B7F0C38ee5bB6065045EdCf9819a
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000f0f7052a1713b5c216bc240b9eed6ea67e2aa0bc
Arg [1] : 000000000000000000000000f0f7052a1713b5c216bc240b9eed6ea67e2aa0bc
Arg [2] : 0000000000000000000000001dce4fa03639b7f0c38ee5bb6065045edcf9819a
Swarm Source
bzzr://23fba5a9744f27e999b258d38bf9aae18d824cc802096ad426ac343f8716e899
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.