More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 908 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 6021830 | 2181 days ago | IN | 1.0117 ETH | 0.0008719 | ||||
Transfer | 5897917 | 2202 days ago | IN | 0.1 ETH | 0.0031899 | ||||
Transfer | 5897879 | 2202 days ago | IN | 0.04 ETH | 0.00317865 | ||||
Transfer | 5897834 | 2202 days ago | IN | 0.0699 ETH | 0.00317865 | ||||
Transfer | 5828581 | 2214 days ago | IN | 1 ETH | 0.00085064 | ||||
Transfer | 5828573 | 2214 days ago | IN | 1 ETH | 0.00085064 | ||||
Transfer | 5828569 | 2214 days ago | IN | 1 ETH | 0.00085064 | ||||
Transfer | 5828558 | 2214 days ago | IN | 1 ETH | 0.00084 | ||||
Transfer | 5786397 | 2221 days ago | IN | 0.2 ETH | 0.000861 | ||||
Transfer | 5711516 | 2234 days ago | IN | 8.876137 ETH | 0.00031899 | ||||
Transfer | 5711117 | 2234 days ago | IN | 0.19785423 ETH | 0.00021266 | ||||
Transfer | 5710788 | 2234 days ago | IN | 0.19778816 ETH | 0.00023392 | ||||
Transfer | 5701862 | 2236 days ago | IN | 1.5 ETH | 0.00042 | ||||
Transfer | 5697019 | 2237 days ago | IN | 1 ETH | 0.000861 | ||||
Transfer | 5683564 | 2239 days ago | IN | 0.99 ETH | 0.00006379 | ||||
Transfer | 5656963 | 2244 days ago | IN | 1.9973 ETH | 0.00025519 | ||||
Transfer | 5621884 | 2250 days ago | IN | 1 ETH | 0.00017012 | ||||
Transfer | 5617541 | 2251 days ago | IN | 0.1 ETH | 0.00021266 | ||||
Transfer | 5552373 | 2262 days ago | IN | 0.0086 ETH | 0.00006357 | ||||
Transfer | 5538354 | 2264 days ago | IN | 0.37 ETH | 0.00387073 | ||||
Transfer | 5538352 | 2264 days ago | IN | 1 ETH | 0.00013471 | ||||
Transfer | 5538352 | 2264 days ago | IN | 29 ETH | 0.00023574 | ||||
Transfer | 5538350 | 2264 days ago | IN | 0.2 ETH | 0.00027537 | ||||
Transfer | 5538340 | 2264 days ago | IN | 0.097 ETH | 0.00007085 | ||||
Transfer | 5538337 | 2264 days ago | IN | 1.5 ETH | 0.00022522 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5538354 | 2264 days ago | 0.37 ETH | ||||
5538352 | 2264 days ago | 1 ETH | ||||
5538352 | 2264 days ago | 29 ETH | ||||
5538350 | 2264 days ago | 0.2 ETH | ||||
5538337 | 2264 days ago | 1.5 ETH | ||||
5538329 | 2264 days ago | 0.23 ETH | ||||
5538321 | 2264 days ago | 15.99950664 ETH | ||||
5538320 | 2264 days ago | 1.19924 ETH | ||||
5538295 | 2264 days ago | 1.09918 ETH | ||||
5538293 | 2264 days ago | 0.44317058 ETH | ||||
5538269 | 2264 days ago | 1 ETH | ||||
5538264 | 2264 days ago | 2 ETH | ||||
5538259 | 2264 days ago | 0.65 ETH | ||||
5538249 | 2264 days ago | 12.98967058 ETH | ||||
5538242 | 2264 days ago | 1 ETH | ||||
5538233 | 2264 days ago | 6.0181 ETH | ||||
5538199 | 2264 days ago | 1.99973058 ETH | ||||
5538183 | 2264 days ago | 0.303 ETH | ||||
5538174 | 2264 days ago | 5 ETH | ||||
5538159 | 2264 days ago | 0.10945293 ETH | ||||
5538157 | 2264 days ago | 0.39967058 ETH | ||||
5538125 | 2265 days ago | 0.199 ETH | ||||
5538048 | 2265 days ago | 10.48889688 ETH | ||||
5538032 | 2265 days ago | 11.181 ETH | ||||
5538019 | 2265 days ago | 1.5 ETH |
Loading...
Loading
Contract Name:
MplusCrowdsaleA
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-18 */ /** * Crowdsale for m+plus coin phase 1 * * Based on OpenZeppelin framework. * https://openzeppelin.org **/ pragma solidity ^0.4.18; /** * Safe Math library from OpenZeppelin framework * https://openzeppelin.org * * @title SafeMath * @dev Math operations with safety checks that throw on error */ 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; } } // ERC20 interface contract ERC20 { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); 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); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title Crowdsale for m+plus coin phase 1 */ contract MplusCrowdsaleA { using SafeMath for uint256; // Number of stages uint256 internal constant NUM_STAGES = 4; // 02/20/2018 - 03/16/2018 uint256 internal constant ICO_START1 = 1519056000; // 03/17/2018 - 04/01/2018 uint256 internal constant ICO_START2 = 1521216000; // 04/02/2018 - 04/16/2018 uint256 internal constant ICO_START3 = 1522598400; // 04/17/2018 - 05/01/2018 uint256 internal constant ICO_START4 = 1523894400; // 05/01/2018 uint256 internal constant ICO_END = 1525190399; // Exchange rate for each term periods uint256 internal constant ICO_RATE1 = 20000; uint256 internal constant ICO_RATE2 = 18000; uint256 internal constant ICO_RATE3 = 17000; uint256 internal constant ICO_RATE4 = 16000; // Funding goal and soft cap in Token //uint256 internal constant HARD_CAP = 2000000000 * (10 ** 18); // Cap for each term periods in ETH // Exchange rate for each term periods uint256 internal constant ICO_CAP1 = 14000 * (10 ** 18); uint256 internal constant ICO_CAP2 = 21000 * (10 ** 18); uint256 internal constant ICO_CAP3 = 28000 * (10 ** 18); uint256 internal constant ICO_CAP4 = 35000 * (10 ** 18); // Caps per a purchase uint256 internal constant MIN_CAP = (10 ** 17); uint256 internal constant MAX_CAP = 1000 * (10 ** 18); // Owner of this contract address internal owner; // The token being sold ERC20 public tokenReward; // Tokens will be transfered from this address address internal tokenOwner; // Address where funds are collected address internal wallet; // Stage of ICO uint256 public stage = 0; // Amount of tokens sold uint256 public tokensSold = 0; // Amount of raised money in wei uint256 public weiRaised = 0; // Event for token purchase logging event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); event IcoStageStarted(uint256 stage); event IcoEnded(); /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } function MplusCrowdsaleA(address _tokenAddress, address _wallet) public { require(_tokenAddress != address(0)); require(_wallet != address(0)); owner = msg.sender; tokenOwner = msg.sender; wallet = _wallet; tokenReward = ERC20(_tokenAddress); } // Fallback function can be used to buy tokens function () external payable { buyTokens(msg.sender); } // Low level token purchase function function buyTokens(address _beneficiary) public payable { require(_beneficiary != address(0)); require(msg.value >= MIN_CAP); require(msg.value <= MAX_CAP); require(now >= ICO_START1); require(now <= ICO_END); require(stage <= NUM_STAGES); determineCurrentStage(); uint256 weiAmount = msg.value; // calculate token amount to be created uint256 tokens = getTokenAmount(weiAmount); require(tokens > 0); // Update totals weiRaised = weiRaised.add(weiAmount); tokensSold = tokensSold.add(tokens); checkCap(); TokenPurchase(msg.sender, _beneficiary, weiAmount, tokens); require(tokenReward.transferFrom(tokenOwner, _beneficiary, tokens)); forwardFunds(); } // Send ether to the fund collection wallet function forwardFunds() internal { wallet.transfer(msg.value); } // Determine the current stage by term period function determineCurrentStage() internal { if (stage < 4 && now >= ICO_START4) { stage = 4; IcoStageStarted(4); } else if (stage < 3 && now >= ICO_START3) { stage = 3; IcoStageStarted(3); } else if (stage < 2 && now >= ICO_START2) { stage = 2; IcoStageStarted(2); } else if (stage < 1 && now >= ICO_START1) { stage = 1; IcoStageStarted(1); } } // Check cap and change the stage function checkCap() internal { if (weiRaised >= ICO_CAP4) { stage = 5; IcoEnded(); } else if (stage < 4 && weiRaised >= ICO_CAP3) { stage = 4; IcoStageStarted(4); } else if (stage < 3 && weiRaised >= ICO_CAP2) { stage = 3; IcoStageStarted(3); } else if (stage < 2 && weiRaised >= ICO_CAP1) { stage = 2; IcoStageStarted(2); } } // Get ammount of tokens function getTokenAmount(uint256 _weiAmount) internal view returns (uint256) { uint256 rate = 0; if (stage == 1) { rate = ICO_RATE1; } else if (stage == 2) { rate = ICO_RATE2; } else if (stage == 3) { rate = ICO_RATE3; } else if (stage == 4) { rate = ICO_RATE4; } return rate.mul(_weiAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenReward","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stage","type":"uint256"}],"name":"IcoStageStarted","type":"event"},{"anonymous":false,"inputs":[],"name":"IcoEnded","type":"event"}]
Contract Creation Code
6060604052600060045560006005556000600655341561001e57600080fd5b6040516040806107398339810160405280805191906020018051915050600160a060020a038216151561005057600080fd5b600160a060020a038116151561006557600080fd5b60008054600160a060020a03338116600160a060020a031992831681179093556002805483169093179092556003805493831693821693909317909255600180549390911692909116919091179055610676806100c36000396000f30060606040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634042b66f8114610077578063518ab2a81461009c5780636e66f6e9146100af578063c040e6b8146100de578063ec8ac4d8146100f1575b61007533610101565b005b341561008257600080fd5b61008a6102d9565b60405190815260200160405180910390f35b34156100a757600080fd5b61008a6102df565b34156100ba57600080fd5b6100c26102e5565b604051600160a060020a03909116815260200160405180910390f35b34156100e957600080fd5b61008a6102f4565b610075600160a060020a03600435165b600080600160a060020a038316151561011957600080fd5b67016345785d8a000034101561012e57600080fd5b683635c9adc5dea0000034111561014457600080fd5b635a8af48042101561015557600080fd5b635ae88eff42111561016657600080fd5b60048054111561017557600080fd5b61017d6102fa565b34915061018982610415565b90506000811161019857600080fd5b6006546101ab908363ffffffff61047d16565b6006556005546101c1908263ffffffff61047d16565b6005556101cc610497565b82600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3600154600254600160a060020a03918216916323b872dd911685846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156102a657600080fd5b6102c65a03f115156102b757600080fd5b5050506040518051905015156102cc57600080fd5b6102d46105cb565b505050565b60065481565b60055481565b600154600160a060020a031681565b60045481565b6004805410801561030f5750635ad4c8804210155b1561033f57600480805560008051602061062b8339815191529060405190815260200160405180910390a1610413565b60036004541080156103555750635ac102004210155b15610387576003600481905560008051602061062b8339815191529060405190815260200160405180910390a1610413565b600260045410801561039d5750635aabea004210155b156103cf576002600481905560008051602061062b8339815191529060405190815260200160405180910390a1610413565b60016004541080156103e55750635a8af4804210155b15610413576001600481905560008051602061062b8339815191529060405190815260200160405180910390a15b565b60045460009081906001141561042e5750614e20610466565b600454600214156104425750614650610466565b600454600314156104565750614268610466565b600454600414156104665750613e805b610476818463ffffffff6105ff16565b9392505050565b60008282018381101561048c57fe5b8091505b5092915050565b6006546907695a92c20d6fe0000090106104e15760056004557f236b5488d7d568eed00b6315077bce0d53f4bb657dc95e05c71325a26ce1cc7760405160405180910390a1610413565b600480541080156104fe57506905ede20f01a45980000060065410155b1561052e57600480805560008051602061062b8339815191529060405190815260200160405180910390a1610413565b600360045410801561054c5750690472698b413b4320000060065410155b1561057e576003600481905560008051602061062b8339815191529060405190815260200160405180910390a1610413565b600260045410801561059c57506902f6f10780d22cc0000060065410155b15610413576002600481905560008051602061062b8339815191529060405190815260200160405180910390a1565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561041357600080fd5b6000808315156106125760009150610490565b5082820282848281151561062257fe5b041461048c57fe0009d46057e87e33dc8d8bde243f9dea18b7589e0828b2194afc1bc49893eafd39a165627a7a72305820d65723efab7f9fb95c35ee049f4c9e135e5427c3722fb683d85ac668f062f5cc0029000000000000000000000000218f1de2ea9ae3e9fdea347b6e707ebfda2d6233000000000000000000000000c2b0177ece66854b7c92300bb5d0cec49401a5b3
Deployed Bytecode
0x60606040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634042b66f8114610077578063518ab2a81461009c5780636e66f6e9146100af578063c040e6b8146100de578063ec8ac4d8146100f1575b61007533610101565b005b341561008257600080fd5b61008a6102d9565b60405190815260200160405180910390f35b34156100a757600080fd5b61008a6102df565b34156100ba57600080fd5b6100c26102e5565b604051600160a060020a03909116815260200160405180910390f35b34156100e957600080fd5b61008a6102f4565b610075600160a060020a03600435165b600080600160a060020a038316151561011957600080fd5b67016345785d8a000034101561012e57600080fd5b683635c9adc5dea0000034111561014457600080fd5b635a8af48042101561015557600080fd5b635ae88eff42111561016657600080fd5b60048054111561017557600080fd5b61017d6102fa565b34915061018982610415565b90506000811161019857600080fd5b6006546101ab908363ffffffff61047d16565b6006556005546101c1908263ffffffff61047d16565b6005556101cc610497565b82600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3600154600254600160a060020a03918216916323b872dd911685846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156102a657600080fd5b6102c65a03f115156102b757600080fd5b5050506040518051905015156102cc57600080fd5b6102d46105cb565b505050565b60065481565b60055481565b600154600160a060020a031681565b60045481565b6004805410801561030f5750635ad4c8804210155b1561033f57600480805560008051602061062b8339815191529060405190815260200160405180910390a1610413565b60036004541080156103555750635ac102004210155b15610387576003600481905560008051602061062b8339815191529060405190815260200160405180910390a1610413565b600260045410801561039d5750635aabea004210155b156103cf576002600481905560008051602061062b8339815191529060405190815260200160405180910390a1610413565b60016004541080156103e55750635a8af4804210155b15610413576001600481905560008051602061062b8339815191529060405190815260200160405180910390a15b565b60045460009081906001141561042e5750614e20610466565b600454600214156104425750614650610466565b600454600314156104565750614268610466565b600454600414156104665750613e805b610476818463ffffffff6105ff16565b9392505050565b60008282018381101561048c57fe5b8091505b5092915050565b6006546907695a92c20d6fe0000090106104e15760056004557f236b5488d7d568eed00b6315077bce0d53f4bb657dc95e05c71325a26ce1cc7760405160405180910390a1610413565b600480541080156104fe57506905ede20f01a45980000060065410155b1561052e57600480805560008051602061062b8339815191529060405190815260200160405180910390a1610413565b600360045410801561054c5750690472698b413b4320000060065410155b1561057e576003600481905560008051602061062b8339815191529060405190815260200160405180910390a1610413565b600260045410801561059c57506902f6f10780d22cc0000060065410155b15610413576002600481905560008051602061062b8339815191529060405190815260200160405180910390a1565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561041357600080fd5b6000808315156106125760009150610490565b5082820282848281151561062257fe5b041461048c57fe0009d46057e87e33dc8d8bde243f9dea18b7589e0828b2194afc1bc49893eafd39a165627a7a72305820d65723efab7f9fb95c35ee049f4c9e135e5427c3722fb683d85ac668f062f5cc0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000218f1de2ea9ae3e9fdea347b6e707ebfda2d6233000000000000000000000000c2b0177ece66854b7c92300bb5d0cec49401a5b3
-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0x218f1De2Ea9AE3e9FDEa347b6E707EbfdA2D6233
Arg [1] : _wallet (address): 0xc2B0177eCe66854B7c92300BB5D0CeC49401a5B3
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000218f1de2ea9ae3e9fdea347b6e707ebfda2d6233
Arg [1] : 000000000000000000000000c2b0177ece66854b7c92300bb5d0cec49401a5b3
Swarm Source
bzzr://d65723efab7f9fb95c35ee049f4c9e135e5427c3722fb683d85ac668f062f5cc
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.