More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 8,196 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Tokens | 3976990 | 2770 days ago | IN | 0 ETH | 0.00049362 | ||||
Fix Investment | 3948865 | 2776 days ago | IN | 0 ETH | 0.00084262 | ||||
Fix Investment | 3948722 | 2776 days ago | IN | 0 ETH | 0.00121476 | ||||
Fix Investment | 3948709 | 2776 days ago | IN | 0 ETH | 0.002835 | ||||
Fix Investment | 3948701 | 2776 days ago | IN | 0 ETH | 0.00168525 | ||||
Fix Investment | 3948696 | 2776 days ago | IN | 0 ETH | 0.002835 | ||||
Fix Investment | 3948687 | 2776 days ago | IN | 0 ETH | 0.002835 | ||||
Fix Investment | 3948676 | 2776 days ago | IN | 0 ETH | 0.00215775 | ||||
Fix Investment | 3948670 | 2776 days ago | IN | 0 ETH | 0.002835 | ||||
Fix Investment | 3948662 | 2776 days ago | IN | 0 ETH | 0.002835 | ||||
Fix Investment | 3948597 | 2776 days ago | IN | 0 ETH | 0.0012 | ||||
Fix Investment | 3948550 | 2776 days ago | IN | 0 ETH | 0.0012 | ||||
Fix Investment | 3942212 | 2777 days ago | IN | 0 ETH | 0.00187629 | ||||
Fix Investment | 3942212 | 2777 days ago | IN | 0 ETH | 0.00187629 | ||||
Fix Investment | 3942212 | 2777 days ago | IN | 0 ETH | 0.00187629 | ||||
Fix Investment | 3942212 | 2777 days ago | IN | 0 ETH | 0.00240092 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00240173 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00187594 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00239643 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00239867 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00187369 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00187369 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00187369 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00239994 | ||||
Fix Investment | 3942209 | 2777 days ago | IN | 0 ETH | 0.00240218 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
HumaniqICO
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-08 */ pragma solidity ^0.4.6; /** * Math operations with safety checks */ contract SafeMath { function mul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint a, uint b) internal returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; } function sub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function add(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c >= a); return c; } function assert(bool assertion) internal { if (!assertion) { throw; } } } /// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20 /// @title Abstract token contract - Functions to be implemented by token contracts. contract AbstractToken { // This is not an abstract function, because solc won't recognize generated getter functions for public variables as functions function totalSupply() constant returns (uint256 supply) {} function balanceOf(address owner) constant returns (uint256 balance); function transfer(address to, uint256 value) returns (bool success); function transferFrom(address from, address to, uint256 value) returns (bool success); function approve(address spender, uint256 value) returns (bool success); function allowance(address owner, address spender) constant returns (uint256 remaining); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event Issuance(address indexed to, uint256 value); } contract StandardToken is AbstractToken { /* * Data structures */ mapping (address => uint256) balances; mapping (address => mapping (address => uint256)) allowed; uint256 public totalSupply; /* * Read and write storage functions */ /// @dev Transfers sender's tokens to a given address. Returns success. /// @param _to Address of token receiver. /// @param _value Number of tokens to transfer. function transfer(address _to, uint256 _value) returns (bool success) { if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) { balances[msg.sender] -= _value; balances[_to] += _value; Transfer(msg.sender, _to, _value); return true; } else { return false; } } /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success. /// @param _from Address from where tokens are withdrawn. /// @param _to Address to where tokens are sent. /// @param _value Number of tokens to transfer. function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) { balances[_to] += _value; balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } else { return false; } } /// @dev Returns number of tokens owned by given address. /// @param _owner Address of token owner. function balanceOf(address _owner) constant returns (uint256 balance) { return balances[_owner]; } /// @dev Sets approved amount of tokens for spender. Returns success. /// @param _spender Address of allowed account. /// @param _value Number of approved tokens. function approve(address _spender, uint256 _value) returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /* * Read storage functions */ /// @dev Returns number of allowed tokens for given address. /// @param _owner Address of token owner. /// @param _spender Address of token spender. function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } } /// @title Token contract - Implements Standard Token Interface with HumaniQ features. /// @author Evgeny Yurtaev - <[email protected]> /// @author Alexey Bashlykov - <[email protected]> contract HumaniqToken is StandardToken, SafeMath { /* * External contracts */ address public minter; /* * Token meta data */ string constant public name = "Humaniq"; string constant public symbol = "HMQ"; uint8 constant public decimals = 8; // Address of the founder of Humaniq. address public founder = 0xc890b1f532e674977dfdb791cafaee898dfa9671; // Multisig address of the founders address public multisig = 0xa2c9a7578e2172f32a36c5c0e49d64776f9e7883; // Address where all tokens created during ICO stage initially allocated address constant public allocationAddressICO = 0x1111111111111111111111111111111111111111; // Address where all tokens created during preICO stage initially allocated address constant public allocationAddressPreICO = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; // 31 820 314 tokens were minted during preICO uint constant public preICOSupply = mul(31820314, 100000000); // 131 038 286 tokens were minted during ICO uint constant public ICOSupply = mul(131038286, 100000000); // Max number of tokens that can be minted uint public maxTotalSupply; /* * Modifiers */ modifier onlyFounder() { // Only founder is allowed to do this action. if (msg.sender != founder) { throw; } _; } modifier onlyMinter() { // Only minter is allowed to proceed. if (msg.sender != minter) { throw; } _; } /* * Contract functions */ /// @dev Crowdfunding contract issues new tokens for address. Returns success. /// @param _for Address of receiver. /// @param tokenCount Number of tokens to issue. function issueTokens(address _for, uint tokenCount) external payable onlyMinter returns (bool) { if (tokenCount == 0) { return false; } if (add(totalSupply, tokenCount) > maxTotalSupply) { throw; } totalSupply = add(totalSupply, tokenCount); balances[_for] = add(balances[_for], tokenCount); Issuance(_for, tokenCount); return true; } /// @dev Function to change address that is allowed to do emission. /// @param newAddress Address of new emission contract. function changeMinter(address newAddress) public onlyFounder returns (bool) { // Forbid previous emission contract to distribute tokens minted during ICO stage delete allowed[allocationAddressICO][minter]; minter = newAddress; // Allow emission contract to distribute tokens minted during ICO stage allowed[allocationAddressICO][minter] = balanceOf(allocationAddressICO); } /// @dev Function to change founder address. /// @param newAddress Address of new founder. function changeFounder(address newAddress) public onlyFounder returns (bool) { founder = newAddress; } /// @dev Function to change multisig address. /// @param newAddress Address of new multisig. function changeMultisig(address newAddress) public onlyFounder returns (bool) { multisig = newAddress; } /// @dev Contract constructor function sets initial token balances. function HumaniqToken(address founderAddress) { // Set founder address founder = founderAddress; // Allocate all created tokens during ICO stage to allocationAddressICO. balances[allocationAddressICO] = ICOSupply; // Allocate all created tokens during preICO stage to allocationAddressPreICO. balances[allocationAddressPreICO] = preICOSupply; // Allow founder to distribute tokens minted during preICO stage allowed[allocationAddressPreICO][founder] = preICOSupply; // Give 14 percent of all tokens to founders. balances[multisig] = div(mul(ICOSupply, 14), 86); // Set correct totalSupply and limit maximum total supply. totalSupply = add(ICOSupply, balances[multisig]); totalSupply = add(totalSupply, preICOSupply); maxTotalSupply = mul(totalSupply, 5); } } /// @title HumaniqICO contract - Takes funds from users and issues tokens. /// @author Evgeny Yurtaev - <[email protected]> /// @author Alexey Bashlykov - <[email protected]> contract HumaniqICO is SafeMath { /* * External contracts */ HumaniqToken public humaniqToken; // Address of the founder of Humaniq. address public founder = 0xc890b1f532e674977dfdb791cafaee898dfa9671; // Address where all tokens created during ICO stage initially allocated address public allocationAddress = 0x1111111111111111111111111111111111111111; // Start date of the ICO uint public startDate = 1491433200; // 2017-04-05 23:00:00 UTC // End date of the ICO uint public endDate = 1493247600; // 2017-04-26 23:00:00 UTC // Token price without discount during the ICO stage uint public baseTokenPrice = 10000000; // 0.001 ETH, considering 8 decimal places // Number of tokens distributed to investors uint public tokensDistributed = 0; /* * Modifiers */ modifier onlyFounder() { // Only founder is allowed to do this action. if (msg.sender != founder) { throw; } _; } modifier minInvestment(uint investment) { // User has to send at least the ether value of one token. if (investment < baseTokenPrice) { throw; } _; } /// @dev Returns current bonus function getCurrentBonus() public constant returns (uint) { return getBonus(now); } /// @dev Returns bonus for the specific moment /// @param timestamp Time of investment (in seconds) function getBonus(uint timestamp) public constant returns (uint) { if (timestamp > endDate) { throw; } if (startDate > timestamp) { return 1499; // 49.9% } uint icoDuration = timestamp - startDate; if (icoDuration >= 16 days) { return 1000; // 0% } else if (icoDuration >= 9 days) { return 1125; // 12.5% } else if (icoDuration >= 2 days) { return 1250; // 25% } else { return 1499; // 49.9% } } function calculateTokens(uint investment, uint timestamp) public constant returns (uint) { // calculate discountedPrice uint discountedPrice = div(mul(baseTokenPrice, 1000), getBonus(timestamp)); // Token count is rounded down. Sent ETH should be multiples of baseTokenPrice. return div(investment, discountedPrice); } /// @dev Issues tokens for users who made BTC purchases. /// @param beneficiary Address the tokens will be issued to. /// @param investment Invested amount in Wei /// @param timestamp Time of investment (in seconds) function fixInvestment(address beneficiary, uint investment, uint timestamp) external onlyFounder minInvestment(investment) returns (uint) { // Calculate number of tokens to mint uint tokenCount = calculateTokens(investment, timestamp); // Update fund's and user's balance and total supply of tokens. tokensDistributed = add(tokensDistributed, tokenCount); // Distribute tokens. if (!humaniqToken.transferFrom(allocationAddress, beneficiary, tokenCount)) { // Tokens could not be issued. throw; } return tokenCount; } /// @dev Contract constructor function HumaniqICO(address tokenAddress, address founderAddress) { // Set token address humaniqToken = HumaniqToken(tokenAddress); // Set founder address founder = founderAddress; } /// @dev Fallback function function () payable { throw; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"startDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensDistributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"baseTokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"timestamp","type":"uint256"}],"name":"getBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"founder","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCurrentBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"humaniqToken","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"investment","type":"uint256"},{"name":"timestamp","type":"uint256"}],"name":"fixInvestment","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"investment","type":"uint256"},{"name":"timestamp","type":"uint256"}],"name":"calculateTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"allocationAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"tokenAddress","type":"address"},{"name":"founderAddress","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"}]
Contract Creation Code
606060405260018054600160a060020a031990811673c890b1f532e674977dfdb791cafaee898dfa967117909155600280549091167311111111111111111111111111111111111111111790556358e576f0600355635901267060045562989680600555600060065534610000576040516040806105b48339810160405280516020909101515b60008054600160a060020a03808516600160a060020a03199283161790925560018054928416929091169190911790555b50505b6104eb806100c96000396000f300606060405236156100935763ffffffff60e060020a6000350416630b97bc8681146100a0578063152e84a7146100bf5780631da93873146100de5780634aa66b28146100fd5780634d853ee51461011f57806357e5eea5146101485780638a9fb135146101675780638f1224ce14610190578063903cc583146101c1578063c24a0f8b146101e6578063dbd6f5c114610205575b61009e5b610000565b565b005b34610000576100ad61022e565b60408051918252519081900360200190f35b34610000576100ad610234565b60408051918252519081900360200190f35b34610000576100ad61023a565b60408051918252519081900360200190f35b34610000576100ad600435610240565b60408051918252519081900360200190f35b346100005761012c6102b8565b60408051600160a060020a039092168252519081900360200190f35b34610000576100ad6102c7565b60408051918252519081900360200190f35b346100005761012c6102d8565b60408051600160a060020a039092168252519081900360200190f35b34610000576100ad600160a060020a03600435166024356044356102e7565b60408051918252519081900360200190f35b34610000576100ad6004356024356103dc565b60408051918252519081900360200190f35b34610000576100ad610415565b60408051918252519081900360200190f35b346100005761012c61041b565b60408051600160a060020a039092168252519081900360200190f35b60035481565b60065481565b60055481565b6000600060045483111561025357610000565b826003541115610267576105db91506102af565b506003548203621518008110610281576103e891506102af565b620bdd8081106102955761046591506102af565b6202a30081106102a9576104e291506102af565b6105db91505b5b5b5b50919050565b600154600160a060020a031681565b60006102d242610240565b90505b90565b600054600160a060020a031681565b600154600090819033600160a060020a0390811691161461030757610000565b8360055481101561031757610000565b61032185856103dc565b915061032f6006548361042a565b6006556000805460025460408051602090810185905281517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201528b8416602482015260448101889052915192909316936323b872dd9360648084019491939192918390030190829087803b156100005760325a03f11561000057505060405151151590506103cd57610000565b8192505b5b505b509392505050565b600060006103ff6103f16005546103e8610446565b6103fa85610240565b610472565b905061040b8482610472565b91505b5092915050565b60045481565b600254600160a060020a031681565b600082820161043b848210156104af565b8091505b5092915050565b600082820261043b841580610462575083858381156100005704145b6104af565b8091505b5092915050565b60006000610482600084116104af565b828481156100005704905061043b8385811561000057068285020185146104af565b8091505b5092915050565b8015156104bb57610000565b5b505600a165627a7a72305820b2311f26f7ed636c39772ef561acf573afdba07036340004d4f4e0d3806535d00029000000000000000000000000cbcc0f036ed4788f63fc0fee32873d6a7487b908000000000000000000000000c890b1f532e674977dfdb791cafaee898dfa9671
Deployed Bytecode
0x606060405236156100935763ffffffff60e060020a6000350416630b97bc8681146100a0578063152e84a7146100bf5780631da93873146100de5780634aa66b28146100fd5780634d853ee51461011f57806357e5eea5146101485780638a9fb135146101675780638f1224ce14610190578063903cc583146101c1578063c24a0f8b146101e6578063dbd6f5c114610205575b61009e5b610000565b565b005b34610000576100ad61022e565b60408051918252519081900360200190f35b34610000576100ad610234565b60408051918252519081900360200190f35b34610000576100ad61023a565b60408051918252519081900360200190f35b34610000576100ad600435610240565b60408051918252519081900360200190f35b346100005761012c6102b8565b60408051600160a060020a039092168252519081900360200190f35b34610000576100ad6102c7565b60408051918252519081900360200190f35b346100005761012c6102d8565b60408051600160a060020a039092168252519081900360200190f35b34610000576100ad600160a060020a03600435166024356044356102e7565b60408051918252519081900360200190f35b34610000576100ad6004356024356103dc565b60408051918252519081900360200190f35b34610000576100ad610415565b60408051918252519081900360200190f35b346100005761012c61041b565b60408051600160a060020a039092168252519081900360200190f35b60035481565b60065481565b60055481565b6000600060045483111561025357610000565b826003541115610267576105db91506102af565b506003548203621518008110610281576103e891506102af565b620bdd8081106102955761046591506102af565b6202a30081106102a9576104e291506102af565b6105db91505b5b5b5b50919050565b600154600160a060020a031681565b60006102d242610240565b90505b90565b600054600160a060020a031681565b600154600090819033600160a060020a0390811691161461030757610000565b8360055481101561031757610000565b61032185856103dc565b915061032f6006548361042a565b6006556000805460025460408051602090810185905281517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201528b8416602482015260448101889052915192909316936323b872dd9360648084019491939192918390030190829087803b156100005760325a03f11561000057505060405151151590506103cd57610000565b8192505b5b505b509392505050565b600060006103ff6103f16005546103e8610446565b6103fa85610240565b610472565b905061040b8482610472565b91505b5092915050565b60045481565b600254600160a060020a031681565b600082820161043b848210156104af565b8091505b5092915050565b600082820261043b841580610462575083858381156100005704145b6104af565b8091505b5092915050565b60006000610482600084116104af565b828481156100005704905061043b8385811561000057068285020185146104af565b8091505b5092915050565b8015156104bb57610000565b5b505600a165627a7a72305820b2311f26f7ed636c39772ef561acf573afdba07036340004d4f4e0d3806535d00029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cbcc0f036ed4788f63fc0fee32873d6a7487b908000000000000000000000000c890b1f532e674977dfdb791cafaee898dfa9671
-----Decoded View---------------
Arg [0] : tokenAddress (address): 0xcbCC0F036ED4788F63FC0fEE32873d6A7487b908
Arg [1] : founderAddress (address): 0xC890B1f532e674977DFDb791caFaee898dFA9671
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000cbcc0f036ed4788f63fc0fee32873d6a7487b908
Arg [1] : 000000000000000000000000c890b1f532e674977dfdb791cafaee898dfa9671
Swarm Source
bzzr://b2311f26f7ed636c39772ef561acf573afdba07036340004d4f4e0d3806535d0
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.