Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 472 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Issue | 3696660 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696660 | 2930 days ago | IN | 0 ETH | 0.00171814 | ||||
Issue | 3696658 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696658 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696658 | 2930 days ago | IN | 0 ETH | 0.00171814 | ||||
Issue | 3696658 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696658 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171814 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171814 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171814 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171814 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.0017207 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.0017207 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.0017207 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.0017207 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171814 | ||||
Issue | 3696656 | 2930 days ago | IN | 0 ETH | 0.00171942 | ||||
Issue | 3696653 | 2930 days ago | IN | 0 ETH | 0.00171558 | ||||
Issue | 3696653 | 2930 days 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
Contract ABI
API[{"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
Deployed Bytecode
0x606060405236156100675763ffffffff60e060020a6000350416630b0f7743811461006c578063867904b41461008b5780638da5cb5b146100a9578063dd449a83146100d2578063f02d7ef0146100fb578063f2fde38b14610128578063fc0c546a14610143575b610000565b346100005761007961016c565b60408051918252519081900360200190f35b34610000576100a7600160a060020a0360043516602435610172565b005b34610000576100b6610271565b60408051600160a060020a039092168252519081900360200190f35b34610000576100b6610280565b60408051600160a060020a039092168252519081900360200190f35b3461000057610114600160a060020a036004351661028f565b604080519115158252519081900360200190f35b34610000576100a7600160a060020a03600435166102a4565b005b34610000576100b66102fc565b60408051600160a060020a039092168252519081900360200190f35b60045481565b60005433600160a060020a0390811691161461018d57610000565b600160a060020a03821660009081526001602052604090205460ff16156101b357610000565b600254600354604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a039485166004820152878516602482015260448101879052925193909416936323b872dd936064808501949192918390030190829087803b156100005760325a03f11561000057505050600160a060020a0382166000908152600160208190526040909120805460ff1916909117905560048054820190555b5b5050565b600054600160a060020a031681565b600354600160a060020a031681565b60016020526000908152604090205460ff1681565b60005433600160a060020a039081169116146102bf57610000565b600160a060020a038116156102f7576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600254600160a060020a0316815600a165627a7a7230582023fba5a9744f27e999b258d38bf9aae18d824cc802096ad426ac343f8716e8990029
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
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.