Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 89,915 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034467 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034416 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028416 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028416 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00028442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 | ||||
Issue | 5135955 | 2496 days ago | IN | 0 ETH | 0.00034442 |
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 2018-02-20 */ /* * 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 with Short Hand Attack and approve() race condition mitigation. * * 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; // Interface marker bool public constant isToken = true; /** * * Fix for the ERC20 short address attack * * http://vessenes.com/the-erc20-short-address-attack-explained/ */ modifier onlyPayloadSize(uint size) { if(msg.data.length < size + 4) { throw; } _; } function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) 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) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw; 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, SafeMath { /** 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 masterTokenBalanceHolder; /** How many addresses have received their tokens. */ uint public issuedCount; /** * * @param _issuerDeploymentAccount Ethereun account that controls the issuance process and pays the gas fee * @param _token Token contract address * @param _masterTokenBalanceHolder Multisig address that does StandardToken.approve() to give allowance for this contract */ function Issuer(address _issuerDeploymentAccount, address _masterTokenBalanceHolder, StandardToken _token) { owner = _issuerDeploymentAccount; masterTokenBalanceHolder = _masterTokenBalanceHolder; token = _token; } function issue(address benefactor, uint amount) onlyOwner { if(issued[benefactor]) throw; token.transferFrom(masterTokenBalanceHolder, benefactor, amount); issued[benefactor] = true; issuedCount = safeAdd(amount, issuedCount); } /** * How many tokens we have left in our approval pool. */ function getApprovedTokenCount() public constant returns(uint tokens) { return token.allowance(masterTokenBalanceHolder, address(this)); } }
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":true,"inputs":[],"name":"masterTokenBalanceHolder","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getApprovedTokenCount","outputs":[{"name":"tokens","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":"","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":"_issuerDeploymentAccount","type":"address"},{"name":"_masterTokenBalanceHolder","type":"address"},{"name":"_token","type":"address"}],"payable":false,"type":"constructor"}]
Contract Creation Code
606060405234610000576040516060806104c58339810160409081528151602083015191909201515b5b60008054600160a060020a03191633600160a060020a03161790555b60008054600160a060020a03808616600160a060020a0319928316179092556003805485841690831617905560028054928416929091169190911790555b5050505b61042f806100966000396000f300606060405236156100725763ffffffff60e060020a6000350416630b0f774381146100775780634019fc541461009657806354830df7146100bf578063867904b4146100de5780638da5cb5b146100fc578063f02d7ef014610125578063f2fde38b14610152578063fc0c546a1461016d575b610000565b3461000057610084610196565b60408051918252519081900360200190f35b34610000576100a361019c565b60408051600160a060020a039092168252519081900360200190f35b34610000576100846101ab565b60408051918252519081900360200190f35b34610000576100fa600160a060020a0360043516602435610238565b005b34610000576100a3610340565b60408051600160a060020a039092168252519081900360200190f35b346100005761013e600160a060020a036004351661034f565b604080519115158252519081900360200190f35b34610000576100fa600160a060020a0360043516610364565b005b34610000576100a36103bc565b60408051600160a060020a039092168252519081900360200190f35b60045481565b600354600160a060020a031681565b600254600354604080516000602091820181905282517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a039485166004820152308516602482015292519094939093169263dd62ed3e92604480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b60005433600160a060020a0390811691161461025357610000565b600160a060020a03821660009081526001602052604090205460ff161561027957610000565b600254600354604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a039485166004820152878516602482015260448101879052925193909416936323b872dd936064808501949192918390030190829087803b156100005760325a03f11561000057505050600160a060020a0382166000908152600160208190526040909120805460ff191690911790556004546103379082906103cb565b6004555b5b5050565b600054600160a060020a031681565b60016020526000908152604090205460ff1681565b60005433600160a060020a0390811691161461037f57610000565b600160a060020a038116156103b7576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600254600160a060020a031681565b60008282016103e88482108015906103e35750838210155b6103f3565b8091505b5092915050565b8015156103b757610000565b5b505600a165627a7a723058200f7acb1e9d340bd63a40d755bae20d5932971301190f2c798ce68c3bc9e76d92002900000000000000000000000000eee5f9ad50b926876cc187d8453fa0ceba141f000000000000000000000000da0131319b5d8faa0f405d6c7cd2e629ceb35ac0000000000000000000000000b64ef51c888972c908cfacf59b47c1afbc0ab8ac
Deployed Bytecode
0x606060405236156100725763ffffffff60e060020a6000350416630b0f774381146100775780634019fc541461009657806354830df7146100bf578063867904b4146100de5780638da5cb5b146100fc578063f02d7ef014610125578063f2fde38b14610152578063fc0c546a1461016d575b610000565b3461000057610084610196565b60408051918252519081900360200190f35b34610000576100a361019c565b60408051600160a060020a039092168252519081900360200190f35b34610000576100846101ab565b60408051918252519081900360200190f35b34610000576100fa600160a060020a0360043516602435610238565b005b34610000576100a3610340565b60408051600160a060020a039092168252519081900360200190f35b346100005761013e600160a060020a036004351661034f565b604080519115158252519081900360200190f35b34610000576100fa600160a060020a0360043516610364565b005b34610000576100a36103bc565b60408051600160a060020a039092168252519081900360200190f35b60045481565b600354600160a060020a031681565b600254600354604080516000602091820181905282517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a039485166004820152308516602482015292519094939093169263dd62ed3e92604480820193929182900301818787803b156100005760325a03f115610000575050604051519150505b90565b60005433600160a060020a0390811691161461025357610000565b600160a060020a03821660009081526001602052604090205460ff161561027957610000565b600254600354604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a039485166004820152878516602482015260448101879052925193909416936323b872dd936064808501949192918390030190829087803b156100005760325a03f11561000057505050600160a060020a0382166000908152600160208190526040909120805460ff191690911790556004546103379082906103cb565b6004555b5b5050565b600054600160a060020a031681565b60016020526000908152604090205460ff1681565b60005433600160a060020a0390811691161461037f57610000565b600160a060020a038116156103b7576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600254600160a060020a031681565b60008282016103e88482108015906103e35750838210155b6103f3565b8091505b5092915050565b8015156103b757610000565b5b505600a165627a7a723058200f7acb1e9d340bd63a40d755bae20d5932971301190f2c798ce68c3bc9e76d920029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000eee5f9ad50b926876cc187d8453fa0ceba141f000000000000000000000000da0131319b5d8faa0f405d6c7cd2e629ceb35ac0000000000000000000000000b64ef51c888972c908cfacf59b47c1afbc0ab8ac
-----Decoded View---------------
Arg [0] : _issuerDeploymentAccount (address): 0x00eEE5f9ad50B926876cC187D8453Fa0cEbA141f
Arg [1] : _masterTokenBalanceHolder (address): 0xDa0131319B5d8fAA0F405d6c7cD2E629ceb35AC0
Arg [2] : _token (address): 0xB64ef51C888972c908CFacf59B47C1AfBC0Ab8aC
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000000eee5f9ad50b926876cc187d8453fa0ceba141f
Arg [1] : 000000000000000000000000da0131319b5d8faa0f405d6c7cd2e629ceb35ac0
Arg [2] : 000000000000000000000000b64ef51c888972c908cfacf59b47c1afbc0ab8ac
Swarm Source
bzzr://0f7acb1e9d340bd63a40d755bae20d5932971301190f2c798ce68c3bc9e76d92
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.