More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 840 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 6264650 | 2298 days ago | IN | 0.13090246 ETH | 0.00004272 | ||||
Withdraw | 5504954 | 2429 days ago | IN | 0 ETH | 0.00009004 | ||||
Transfer | 5503882 | 2429 days ago | IN | 0.12924543 ETH | 0.00004272 | ||||
Transfer | 5433164 | 2441 days ago | IN | 0.30137034 ETH | 0.00004272 | ||||
Set Enabled | 5414747 | 2444 days ago | IN | 0 ETH | 0.00008156 | ||||
Transfer | 5414745 | 2444 days ago | IN | 0.89869875 ETH | 0.00079118 | ||||
Transfer | 5414734 | 2444 days ago | IN | 0.89838625 ETH | 0.00077623 | ||||
Transfer | 5414728 | 2444 days ago | IN | 0.8977925 ETH | 0.0007568 | ||||
Transfer | 5414725 | 2444 days ago | IN | 0.89719875 ETH | 0.00074185 | ||||
Transfer | 5414719 | 2444 days ago | IN | 0.89719875 ETH | 0.0007568 | ||||
Transfer | 5414718 | 2444 days ago | IN | 0.89688625 ETH | 0.00074185 | ||||
Transfer | 5414711 | 2444 days ago | IN | 0.89688625 ETH | 0.00077623 | ||||
Transfer | 5414703 | 2444 days ago | IN | 0.89627687 ETH | 0.0007568 | ||||
Transfer | 5414701 | 2444 days ago | IN | 0.89627687 ETH | 0.00077623 | ||||
Transfer | 5414692 | 2444 days ago | IN | 0.89596437 ETH | 0.00079118 | ||||
Transfer | 5414336 | 2444 days ago | IN | 0.44790406 ETH | 0.00129741 | ||||
Transfer | 5414074 | 2444 days ago | IN | 0.44782593 ETH | 0.00125256 | ||||
Transfer | 5413947 | 2444 days ago | IN | 0.89533937 ETH | 0.00077623 | ||||
Transfer | 5413680 | 2444 days ago | IN | 0.89502687 ETH | 0.00082118 | ||||
Transfer | 5413218 | 2444 days ago | IN | 0.89471437 ETH | 0.00164236 | ||||
Transfer | 5412741 | 2444 days ago | IN | 0.04473493 ETH | 0.00096695 | ||||
Transfer | 5412376 | 2444 days ago | IN | 0.04473415 ETH | 0.00027956 | ||||
Transfer | 5412317 | 2444 days ago | IN | 0.04473337 ETH | 0.00009318 | ||||
Transfer | 5412275 | 2444 days ago | IN | 0.04473259 ETH | 0.00009318 | ||||
Transfer | 5412066 | 2445 days ago | IN | 0.13419075 ETH | 0.00016193 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5504954 | 2429 days ago | 155.3122415 ETH | ||||
5414745 | 2444 days ago | 0.00007812 ETH | ||||
5414734 | 2444 days ago | 0.00007812 ETH | ||||
5414728 | 2444 days ago | 0.04468181 ETH | ||||
5414725 | 2444 days ago | 0.04437009 ETH | ||||
5414719 | 2444 days ago | 0.04465212 ETH | ||||
5414718 | 2444 days ago | 0.04462165 ETH | ||||
5414711 | 2444 days ago | 0.00007812 ETH | ||||
5414703 | 2444 days ago | 0.04459118 ETH | ||||
5414701 | 2444 days ago | 0.00007812 ETH | ||||
5414692 | 2444 days ago | 0.00007812 ETH | ||||
5414336 | 2444 days ago | 0.00003906 ETH | ||||
5414074 | 2444 days ago | 0.00003906 ETH | ||||
5413947 | 2444 days ago | 0.00007812 ETH | ||||
5413680 | 2444 days ago | 0.00007812 ETH | ||||
5413218 | 2444 days ago | 0.00007812 ETH | ||||
5412741 | 2444 days ago | 0.0000039 ETH | ||||
5412376 | 2444 days ago | 0.0000039 ETH | ||||
5412317 | 2444 days ago | 0.0000039 ETH | ||||
5412275 | 2444 days ago | 0.0000039 ETH | ||||
5412066 | 2445 days ago | 0.00001171 ETH | ||||
5411729 | 2445 days ago | 0.03077843 ETH | ||||
5411580 | 2445 days ago | 0.03356193 ETH | ||||
5411580 | 2445 days ago | 0.04195625 ETH | ||||
5411580 | 2445 days ago | 0.0337424 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
ETCharPresale_v2
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-29 */ pragma solidity ^0.4.21; // SafeMath is a part of Zeppelin Solidity library // licensed under MIT License // https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/LICENSE /** * @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; } } // https://github.com/OpenZeppelin/zeppelin-solidity /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { 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); } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev Protection from short address attack */ modifier onlyPayloadSize(uint size) { assert(msg.data.length == size + 4); _; } /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); _postTransferHook(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } /** * @dev Hook for custom actions to be executed after transfer has completed * @param _from Transferred from * @param _to Transferred to * @param _value Value transferred */ function _postTransferHook(address _from, address _to, uint256 _value) internal; } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); _postTransferHook(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract Owned { address owner; modifier onlyOwner { require(msg.sender == owner); _; } /// @dev Contract constructor function Owned() public { owner = msg.sender; } } contract AcceptsTokens { ETToken public tokenContract; function AcceptsTokens(address _tokenContract) public { tokenContract = ETToken(_tokenContract); } modifier onlyTokenContract { require(msg.sender == address(tokenContract)); _; } function acceptTokens(address _from, uint256 _value, uint256 param1, uint256 param2, uint256 param3) external; } contract ETToken is Owned, StandardToken { using SafeMath for uint; string public name = "ETH.TOWN Token"; string public symbol = "ETIT"; uint8 public decimals = 18; address public beneficiary; address public oracle; address public heroContract; modifier onlyOracle { require(msg.sender == oracle); _; } mapping (uint32 => address) public floorContracts; mapping (address => bool) public canAcceptTokens; mapping (address => bool) public isMinter; modifier onlyMinters { require(msg.sender == owner || isMinter[msg.sender]); _; } event Dividend(uint256 value); event Withdrawal(address indexed to, uint256 value); event Burn(address indexed from, uint256 value); function ETToken() public { oracle = owner; beneficiary = owner; totalSupply_ = 0; } function setOracle(address _oracle) external onlyOwner { oracle = _oracle; } function setBeneficiary(address _beneficiary) external onlyOwner { beneficiary = _beneficiary; } function setHeroContract(address _heroContract) external onlyOwner { heroContract = _heroContract; } function _mintTokens(address _user, uint256 _amount) private { require(_user != 0x0); balances[_user] = balances[_user].add(_amount); totalSupply_ = totalSupply_.add(_amount); emit Transfer(address(this), _user, _amount); } function authorizeFloor(uint32 _index, address _floorContract) external onlyOwner { floorContracts[_index] = _floorContract; } function _acceptDividends(uint256 _value) internal { uint256 beneficiaryShare = _value / 5; uint256 poolShare = _value.sub(beneficiaryShare); beneficiary.transfer(beneficiaryShare); emit Dividend(poolShare); } function acceptDividends(uint256 _value, uint32 _floorIndex) external { require(floorContracts[_floorIndex] == msg.sender); _acceptDividends(_value); } function rewardTokensFloor(address _user, uint256 _tokens, uint32 _floorIndex) external { require(floorContracts[_floorIndex] == msg.sender); _mintTokens(_user, _tokens); } function rewardTokens(address _user, uint256 _tokens) external onlyMinters { _mintTokens(_user, _tokens); } function() payable public { // Intentionally left empty, for use by floors } function payoutDividends(address _user, uint256 _value) external onlyOracle { _user.transfer(_value); emit Withdrawal(_user, _value); } function accountAuth(uint256 /*_challenge*/) external { // Does nothing by design } function burn(uint256 _amount) external { require(balances[msg.sender] >= _amount); balances[msg.sender] = balances[msg.sender].sub(_amount); totalSupply_ = totalSupply_.sub(_amount); emit Burn(msg.sender, _amount); } function setCanAcceptTokens(address _address, bool _value) external onlyOwner { canAcceptTokens[_address] = _value; } function setIsMinter(address _address, bool _value) external onlyOwner { isMinter[_address] = _value; } function _invokeTokenRecipient(address _from, address _to, uint256 _value, uint256 _param1, uint256 _param2, uint256 _param3) internal { if (!canAcceptTokens[_to]) { return; } AcceptsTokens recipient = AcceptsTokens(_to); recipient.acceptTokens(_from, _value, _param1, _param2, _param3); } /** * @dev transfer token for a specified address and forward the parameters to token recipient if any * @param _to The address to transfer to. * @param _value The amount to be transferred. * @param _param1 Parameter 1 for the token recipient * @param _param2 Parameter 2 for the token recipient * @param _param3 Parameter 3 for the token recipient */ function transferWithParams(address _to, uint256 _value, uint256 _param1, uint256 _param2, uint256 _param3) onlyPayloadSize(5 * 32) external returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); _invokeTokenRecipient(msg.sender, _to, _value, _param1, _param2, _param3); return true; } /** * @dev Hook for custom actions to be executed after transfer has completed * @param _from Transferred from * @param _to Transferred to * @param _value Value transferred */ function _postTransferHook(address _from, address _to, uint256 _value) internal { _invokeTokenRecipient(_from, _to, _value, 0, 0, 0); } } contract PresaleContract is Owned { ETToken public tokenContract; /// @dev Contract constructor function PresaleContract(address _tokenContract) public { tokenContract = ETToken(_tokenContract); } } contract ETCharPresale_v2 is PresaleContract { using SafeMath for uint; bool public enabled = true; uint32 public maxCharId = 10000; uint32 public currentCharId = 2000; uint256 public currentPrice = 0.02 ether; mapping (uint32 => address) public owners; mapping (address => uint32[]) public characters; bool public awardTokens = true; event Purchase(address from, uint32 charId, uint256 amount); function ETCharPresale_v2(address _presaleToken) PresaleContract(_presaleToken) public { } function _isContract(address _user) internal view returns (bool) { uint size; assembly { size := extcodesize(_user) } return size > 0; } function _provideChars(address _address, uint32 _number) internal { for (uint32 i = 0; i < _number; i++) { owners[currentCharId + i] = _address; characters[_address].push(currentCharId + i); emit Purchase(_address, currentCharId + i, currentPrice); } currentCharId += _number; currentPrice += priceIncrease() * _number; } function priceIncrease() public view returns (uint256) { uint256 _currentPrice = currentPrice; if (_currentPrice > 0.0425 ether) { return 0.00078125 finney; } else { return 0.028 finney; } } function() public payable { require(enabled); require(!_isContract(msg.sender)); require(msg.value >= currentPrice); uint32 chars = uint32(msg.value.div(currentPrice)); require(chars <= 100); if (chars > 50) { chars = 50; } require(currentCharId + chars - 1 <= maxCharId); uint256 purchaseValue = currentPrice.mul(chars); uint256 change = msg.value.sub(purchaseValue); _provideChars(msg.sender, chars); if (awardTokens) { tokenContract.rewardTokens(msg.sender, purchaseValue * 200); } if (currentCharId > maxCharId) { enabled = false; } if (change > 0) { msg.sender.transfer(change); } } function setEnabled(bool _enabled) public onlyOwner { enabled = _enabled; } function setMaxCharId(uint32 _maxCharId) public onlyOwner { maxCharId = _maxCharId; } function setCurrentPrice(uint256 _currentPrice) public onlyOwner { currentPrice = _currentPrice; } function setAwardTokens(bool _awardTokens) public onlyOwner { awardTokens = _awardTokens; } function withdraw() public onlyOwner { owner.transfer(address(this).balance); } function charactersOf(address _user) public view returns (uint32[]) { return characters[_user]; } function charactersCountOf(address _user) public view returns (uint256) { return characters[_user].length; } function getCharacter(address _user, uint256 _index) public view returns (uint32) { return characters[_user][_index]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"maxCharId","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_currentPrice","type":"uint256"}],"name":"setCurrentPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"enabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxCharId","type":"uint32"}],"name":"setMaxCharId","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_awardTokens","type":"bool"}],"name":"setAwardTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"awardTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"charactersOf","outputs":[{"name":"","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"characters","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"charactersCountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentCharId","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"},{"name":"_index","type":"uint256"}],"name":"getCharacter","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceIncrease","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_presaleToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"charId","type":"uint32"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Purchase","type":"event"}]
Contract Creation Code
6060604052600180547401000000000000000000000000000000000000000060a060020a60ff02199091161760a860020a63ffffffff0219167627100000000000000000000000000000000000000000001760c860020a63ffffffff0219167a07d00000000000000000000000000000000000000000000000000017815566470de4df8200006002556005805460ff1916909117905534156100a057600080fd5b604051602080610c5e8339810160405280805160008054600160a060020a03338116600160a060020a031992831617909255600180549290931691161790555050610b6e806100f06000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630558171d8114610302578063180dc3181461032e57806318b2007114610366578063238dafe01461037e578063328d8f72146103a55780633c7097a3146103bd5780633ccfd60b146103d957806355a373d6146103ec5780636779da43146103ff57806370d07575146104175780639d1b464a1461042a578063a0a76eb01461044f578063b1c8ffd1146104c1578063d214becb146104e3578063dced2f1a14610502578063e4cb30ad14610515578063f8c3405014610537575b6000806000600160149054906101000a900460ff16151561011057600080fd5b6101193361054a565b1561012357600080fd5b60025434101561013257600080fd5b60025461014690349063ffffffff61055216565b9250606463ffffffff8416111561015c57600080fd5b60328363ffffffff16111561017057603292505b6001547501000000000000000000000000000000000000000000810463ffffffff90811660c860020a90920481168501600019011611156101b057600080fd5b6002546101c69063ffffffff8086169061056e16565b91506101d8348363ffffffff6105a016565b90506101e433846105b2565b60055460ff161561027257600154600160a060020a03166381a4af153360c885026040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561026157600080fd5b5af1151561026e57600080fd5b5050505b60015463ffffffff75010000000000000000000000000000000000000000008204811660c860020a9092041611156102c3576001805474ff0000000000000000000000000000000000000000191690555b60008111156102fd57600160a060020a03331681156108fc0282604051600060405180830381858888f1935050505015156102fd57600080fd5b505050005b341561030d57600080fd5b610315610750565b60405163ffffffff909116815260200160405180910390f35b341561033957600080fd5b61034a63ffffffff60043516610775565b604051600160a060020a03909116815260200160405180910390f35b341561037157600080fd5b61037c600435610790565b005b341561038957600080fd5b6103916107b0565b604051901515815260200160405180910390f35b34156103b057600080fd5b61037c60043515156107d1565b34156103c857600080fd5b61037c63ffffffff6004351661082c565b34156103e457600080fd5b61037c610891565b34156103f757600080fd5b61034a6108e7565b341561040a57600080fd5b61037c60043515156108f6565b341561042257600080fd5b610391610924565b341561043557600080fd5b61043d61092d565b60405190815260200160405180910390f35b341561045a57600080fd5b61046e600160a060020a0360043516610933565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156104ad578082015183820152602001610495565b505050509050019250505060405180910390f35b34156104cc57600080fd5b610315600160a060020a03600435166024356109e2565b34156104ee57600080fd5b61043d600160a060020a0360043516610a2a565b341561050d57600080fd5b610315610a45565b341561052057600080fd5b610315600160a060020a0360043516602435610a58565b341561054257600080fd5b61043d610aaa565b6000903b1190565b600080828481151561056057fe5b0490508091505b5092915050565b6000808315156105815760009150610567565b5082820282848281151561059157fe5b041461059957fe5b9392505050565b6000828211156105ac57fe5b50900390565b60005b8163ffffffff168163ffffffff1610156106f3576001805460c860020a900463ffffffff9081168301166000908152600360209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389169081179091558352600490915290208054909181016106328382610ada565b916000526020600020906008918282040191900660040283600160199054906101000a900463ffffffff1601909190916101000a81548163ffffffff021916908363ffffffff160217905550507f4c029ee41a1d640ba5061f322b09a545f4926fa4337e418b63eca082ee3b5e318382600160199054906101000a900463ffffffff1601600254604051600160a060020a03909316835263ffffffff90911660208301526040808301919091526060909101905180910390a16001016105b5565b6001805463ffffffff60c860020a808304821686018216027fffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffff909216919091179091558216610740610aaa565b6002805491909202019055505050565b6001547501000000000000000000000000000000000000000000900463ffffffff1681565b600360205260009081526040902054600160a060020a031681565b60005433600160a060020a039081169116146107ab57600080fd5b600255565b60015474010000000000000000000000000000000000000000900460ff1681565b60005433600160a060020a039081169116146107ec57600080fd5b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a0390811691161461084757600080fd5b6001805463ffffffff90921675010000000000000000000000000000000000000000000278ffffffff00000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a039081169116146108ac57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156108e557600080fd5b565b600154600160a060020a031681565b60005433600160a060020a0390811691161461091157600080fd5b6005805460ff1916911515919091179055565b60055460ff1681565b60025481565b61093b610b13565b6004600083600160a060020a0316600160a060020a031681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156109d657602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116109995790505b50505050509050919050565b6004602052816000526040600020818154811015156109fd57fe5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b600160a060020a031660009081526004602052604090205490565b60015460c860020a900463ffffffff1681565b600160a060020a0382166000908152600460205260408120805483908110610a7c57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905092915050565b6002546000906696fd865af44000811115610acc5764b5e620f4809150610ad6565b651977420dc00091505b5090565b815481835581811511610b0e576007016008900481600701600890048360005260206000209182019101610b0e9190610b25565b505050565b60206040519081016040526000815290565b610b3f91905b80821115610ad65760008155600101610b2b565b905600a165627a7a7230582018935d36a547ffbeafbd04bb7202d7a42cd926019754fa1635f423cf5647921900290000000000000000000000008fe19c447821b4cdcdd5012bca1b5469ca96d80d
Deployed Bytecode
0x6060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630558171d8114610302578063180dc3181461032e57806318b2007114610366578063238dafe01461037e578063328d8f72146103a55780633c7097a3146103bd5780633ccfd60b146103d957806355a373d6146103ec5780636779da43146103ff57806370d07575146104175780639d1b464a1461042a578063a0a76eb01461044f578063b1c8ffd1146104c1578063d214becb146104e3578063dced2f1a14610502578063e4cb30ad14610515578063f8c3405014610537575b6000806000600160149054906101000a900460ff16151561011057600080fd5b6101193361054a565b1561012357600080fd5b60025434101561013257600080fd5b60025461014690349063ffffffff61055216565b9250606463ffffffff8416111561015c57600080fd5b60328363ffffffff16111561017057603292505b6001547501000000000000000000000000000000000000000000810463ffffffff90811660c860020a90920481168501600019011611156101b057600080fd5b6002546101c69063ffffffff8086169061056e16565b91506101d8348363ffffffff6105a016565b90506101e433846105b2565b60055460ff161561027257600154600160a060020a03166381a4af153360c885026040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561026157600080fd5b5af1151561026e57600080fd5b5050505b60015463ffffffff75010000000000000000000000000000000000000000008204811660c860020a9092041611156102c3576001805474ff0000000000000000000000000000000000000000191690555b60008111156102fd57600160a060020a03331681156108fc0282604051600060405180830381858888f1935050505015156102fd57600080fd5b505050005b341561030d57600080fd5b610315610750565b60405163ffffffff909116815260200160405180910390f35b341561033957600080fd5b61034a63ffffffff60043516610775565b604051600160a060020a03909116815260200160405180910390f35b341561037157600080fd5b61037c600435610790565b005b341561038957600080fd5b6103916107b0565b604051901515815260200160405180910390f35b34156103b057600080fd5b61037c60043515156107d1565b34156103c857600080fd5b61037c63ffffffff6004351661082c565b34156103e457600080fd5b61037c610891565b34156103f757600080fd5b61034a6108e7565b341561040a57600080fd5b61037c60043515156108f6565b341561042257600080fd5b610391610924565b341561043557600080fd5b61043d61092d565b60405190815260200160405180910390f35b341561045a57600080fd5b61046e600160a060020a0360043516610933565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156104ad578082015183820152602001610495565b505050509050019250505060405180910390f35b34156104cc57600080fd5b610315600160a060020a03600435166024356109e2565b34156104ee57600080fd5b61043d600160a060020a0360043516610a2a565b341561050d57600080fd5b610315610a45565b341561052057600080fd5b610315600160a060020a0360043516602435610a58565b341561054257600080fd5b61043d610aaa565b6000903b1190565b600080828481151561056057fe5b0490508091505b5092915050565b6000808315156105815760009150610567565b5082820282848281151561059157fe5b041461059957fe5b9392505050565b6000828211156105ac57fe5b50900390565b60005b8163ffffffff168163ffffffff1610156106f3576001805460c860020a900463ffffffff9081168301166000908152600360209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389169081179091558352600490915290208054909181016106328382610ada565b916000526020600020906008918282040191900660040283600160199054906101000a900463ffffffff1601909190916101000a81548163ffffffff021916908363ffffffff160217905550507f4c029ee41a1d640ba5061f322b09a545f4926fa4337e418b63eca082ee3b5e318382600160199054906101000a900463ffffffff1601600254604051600160a060020a03909316835263ffffffff90911660208301526040808301919091526060909101905180910390a16001016105b5565b6001805463ffffffff60c860020a808304821686018216027fffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffff909216919091179091558216610740610aaa565b6002805491909202019055505050565b6001547501000000000000000000000000000000000000000000900463ffffffff1681565b600360205260009081526040902054600160a060020a031681565b60005433600160a060020a039081169116146107ab57600080fd5b600255565b60015474010000000000000000000000000000000000000000900460ff1681565b60005433600160a060020a039081169116146107ec57600080fd5b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a0390811691161461084757600080fd5b6001805463ffffffff90921675010000000000000000000000000000000000000000000278ffffffff00000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a039081169116146108ac57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156108e557600080fd5b565b600154600160a060020a031681565b60005433600160a060020a0390811691161461091157600080fd5b6005805460ff1916911515919091179055565b60055460ff1681565b60025481565b61093b610b13565b6004600083600160a060020a0316600160a060020a031681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156109d657602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116109995790505b50505050509050919050565b6004602052816000526040600020818154811015156109fd57fe5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b600160a060020a031660009081526004602052604090205490565b60015460c860020a900463ffffffff1681565b600160a060020a0382166000908152600460205260408120805483908110610a7c57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905092915050565b6002546000906696fd865af44000811115610acc5764b5e620f4809150610ad6565b651977420dc00091505b5090565b815481835581811511610b0e576007016008900481600701600890048360005260206000209182019101610b0e9190610b25565b505050565b60206040519081016040526000815290565b610b3f91905b80821115610ad65760008155600101610b2b565b905600a165627a7a7230582018935d36a547ffbeafbd04bb7202d7a42cd926019754fa1635f423cf564792190029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008fe19c447821b4cdcdd5012bca1b5469ca96d80d
-----Decoded View---------------
Arg [0] : _presaleToken (address): 0x8fe19C447821B4cdCdd5012BCa1B5469cA96d80D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008fe19c447821b4cdcdd5012bca1b5469ca96d80d
Swarm Source
bzzr://18935d36a547ffbeafbd04bb7202d7a42cd926019754fa1635f423cf56479219
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.