More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,430 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Tokens | 8047113 | 1871 days ago | IN | 0 ETH | 0.00016869 | ||||
Claim Tokens | 7329525 | 1983 days ago | IN | 0 ETH | 0.00019647 | ||||
Claim Tokens | 7329449 | 1983 days ago | IN | 0 ETH | 0.0002339 | ||||
Claim Tokens | 7324253 | 1984 days ago | IN | 0 ETH | 0.00371131 | ||||
Claim Tokens | 6702437 | 2097 days ago | IN | 0 ETH | 0.001537 | ||||
Claim Tokens | 6661295 | 2104 days ago | IN | 0 ETH | 0.00104966 | ||||
Claim Tokens | 6583116 | 2117 days ago | IN | 0 ETH | 0.001537 | ||||
Claim Tokens | 6351499 | 2155 days ago | IN | 0 ETH | 0.001537 | ||||
Claim Tokens | 6002090 | 2213 days ago | IN | 0 ETH | 0.001537 | ||||
Claim Tokens | 5992096 | 2215 days ago | IN | 0 ETH | 0.00056232 | ||||
Claim Tokens | 5951202 | 2222 days ago | IN | 0 ETH | 0.001537 | ||||
Claim Tokens | 5930024 | 2226 days ago | IN | 0 ETH | 0.00018744 | ||||
Claim Tokens | 5927883 | 2226 days ago | IN | 0 ETH | 0.00232425 | ||||
Claim Tokens | 5921058 | 2227 days ago | IN | 0 ETH | 0.0009356 | ||||
Claim Tokens | 5907444 | 2229 days ago | IN | 0 ETH | 0.00056232 | ||||
Claim Tokens | 5879470 | 2234 days ago | IN | 0 ETH | 0.00224928 | ||||
Claim Tokens | 5819978 | 2245 days ago | IN | 0 ETH | 0.00097468 | ||||
Claim Tokens | 5795328 | 2249 days ago | IN | 0 ETH | 0.00191188 | ||||
Claim Tokens | 5780586 | 2251 days ago | IN | 0 ETH | 0.00149952 | ||||
Claim Tokens | 5775016 | 2252 days ago | IN | 0 ETH | 0.0018744 | ||||
Claim Tokens | 5763663 | 2254 days ago | IN | 0 ETH | 0.00078724 | ||||
Claim Tokens | 5752612 | 2256 days ago | IN | 0 ETH | 0.00022492 | ||||
Claim Tokens | 5741755 | 2258 days ago | IN | 0 ETH | 0.00028966 | ||||
Claim Tokens | 5735083 | 2259 days ago | IN | 0 ETH | 0.00371131 | ||||
Claim Tokens | 5734843 | 2259 days ago | IN | 0 ETH | 0.00078724 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5486696 | 2303 days ago | 0.7 ETH | ||||
5486695 | 2303 days ago | 1.62 ETH | ||||
5486691 | 2303 days ago | 5 ETH | ||||
5486681 | 2303 days ago | 0.12731727 ETH | ||||
5486633 | 2303 days ago | 0.55 ETH | ||||
5486517 | 2303 days ago | 1 ETH | ||||
5485874 | 2303 days ago | 1.4 ETH | ||||
5485819 | 2303 days ago | 3 ETH | ||||
5485619 | 2303 days ago | 0.335 ETH | ||||
5485050 | 2303 days ago | 0.23 ETH | ||||
5485018 | 2303 days ago | 3 ETH | ||||
5484617 | 2303 days ago | 1.01 ETH | ||||
5483291 | 2303 days ago | 2 ETH | ||||
5482494 | 2304 days ago | 1.85 ETH | ||||
5481731 | 2304 days ago | 0.5 ETH | ||||
5481610 | 2304 days ago | 1 ETH | ||||
5481217 | 2304 days ago | 0.27854527 ETH | ||||
5480384 | 2304 days ago | 1.5 ETH | ||||
5479176 | 2304 days ago | 1 ETH | ||||
5478700 | 2304 days ago | 3 ETH | ||||
5476104 | 2305 days ago | 0.98905139 ETH | ||||
5475366 | 2305 days ago | 1 ETH | ||||
5475004 | 2305 days ago | 2 ETH | ||||
5474782 | 2305 days ago | 5 ETH | ||||
5474726 | 2305 days ago | 1 ETH |
Loading...
Loading
Contract Name:
DmlContribution
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-15 */ pragma solidity ^0.4.11; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * Math operations with safety checks */ library 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 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; } } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; /** * @dev Fix for the ERC20 short address attack. */ modifier onlyPayloadSize(uint size) { require(msg.data.length >= size + 4) ; _; } mapping(address => uint256) balances; /** * @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) public onlyPayloadSize(2 * 32) returns (bool) { require(_to != address(0)); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(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 constant returns (uint256 balance) { return balances[_owner]; } } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant 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 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 { /** * @dev Fix for the ERC20 short address attack. */ modifier onlyPayloadSize(uint size) { require(msg.data.length >= size + 4) ; _; } mapping (address => mapping (address => uint256)) 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 onlyPayloadSize(3 * 32) returns (bool) { require(_to != address(0)); uint256 _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_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; 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 constant returns (uint256 remaining) { return allowed[_owner][_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 */ function increaseApproval (address _spender, uint _addedValue) public returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; Unpause(); } } /** * @title DML Token Contract * @dev DML Token Contract * @dev inherite from StandardToken, Pasuable and Ownable by Zeppelin * @author DML team */ contract DmlToken is StandardToken, Pausable{ using SafeMath for uint; string public constant name = "DML Token"; uint8 public constant decimals = 18; string public constant symbol = 'DML'; uint public constant MAX_TOTAL_TOKEN_AMOUNT = 330000000 ether; address public minter; uint public endTime; mapping (address => uint) public lockedBalances; modifier onlyMinter { assert(msg.sender == minter); _; } modifier maxDmlTokenAmountNotReached (uint amount){ assert(totalSupply.add(amount) <= MAX_TOTAL_TOKEN_AMOUNT); _; } /** * @dev Constructor * @param _minter Contribution Smart Contract * @return _endTime End of the contribution period */ function DmlToken(address _minter, uint _endTime){ minter = _minter; endTime = _endTime; } /** * @dev Mint Token * @param receipent address owning mint tokens * @param amount amount of token */ function mintToken(address receipent, uint amount) external onlyMinter maxDmlTokenAmountNotReached(amount) returns (bool) { require(now <= endTime); lockedBalances[receipent] = lockedBalances[receipent].add(amount); totalSupply = totalSupply.add(amount); return true; } /** * @dev Unlock token for trade */ function claimTokens(address receipent) public onlyMinter { balances[receipent] = balances[receipent].add(lockedBalances[receipent]); lockedBalances[receipent] = 0; } function lockedBalanceOf(address _owner) constant returns (uint balance) { return lockedBalances[_owner]; } /** * @dev override to add validRecipient * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint _value) public validRecipient(_to) returns (bool success) { return super.transfer(_to, _value); } /** * @dev override to add validRecipient * @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 validRecipient(_spender) returns (bool) { return super.approve(_spender, _value); } /** * @dev override to add validRecipient * @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 validRecipient(_to) returns (bool) { return super.transferFrom(_from, _to, _value); } // MODIFIERS modifier validRecipient(address _recipient) { require(_recipient != address(this)); _; } } /** * @title DML Contribution Contract * @dev DML Contribution Contract * @dev inherite from StandardToken, Ownable by Zeppelin * @author DML team */ contract DmlContribution is Ownable { using SafeMath for uint; /// Constant fields /// total tokens supply uint public constant DML_TOTAL_SUPPLY = 330000000 ether; uint public constant EARLY_CONTRIBUTION_DURATION = 24 hours; uint public constant MAX_CONTRIBUTION_DURATION = 5 days; /// Exchange rates uint public constant PRICE_RATE_FIRST = 3780; uint public constant PRICE_RATE_SECOND = 4158; /// ---------------------------------------------------------------------------------------------------- /// | | | | | | /// | SALE (PRESALE + PUBLIC SALE) | ECO SYSTEM | COMMUNITY BOUNTY | OPERATION | RESERVES | /// | 36% | 9.9% | 8.3% | 30.8% | 15% | /// ---------------------------------------------------------------------------------------------------- uint public constant SALE_STAKE = 360; // 36% for open sale // Reserved stakes uint public constant ECO_SYSTEM_STAKE = 99; // 9.9% uint public constant COMMUNITY_BOUNTY_STAKE = 83; // 8.3% uint public constant OPERATION_STAKE = 308; // 30.8% uint public constant RESERVES_STAKE = 150; // 15.0% uint public constant DIVISOR_STAKE = 1000; uint public constant PRESALE_RESERVERED_AMOUNT = 56899342578812412860512236; /// Holder address address public constant ECO_SYSTEM_HOLDER = 0x2D8C705a66b2E87A9249380d4Cdfe9D80BBF826B; address public constant COMMUNITY_BOUNTY_HOLDER = 0x68500ffEfb57D88A600E2f1c63Bb5866e7107b6B; address public constant OPERATION_HOLDER = 0xC7b6DFf52014E59Cb88fAc3b371FA955D0A9249F; address public constant RESERVES_HOLDER = 0xab376b3eC2ed446444911E549c7C953fB086070f; address public constant PRESALE_HOLDER = 0xcB52583D19fd42c0f85a0c83A45DEa6C73B9EBfb; uint public MAX_PUBLIC_SOLD = DML_TOTAL_SUPPLY * SALE_STAKE / DIVISOR_STAKE - PRESALE_RESERVERED_AMOUNT; /// Fields that are only changed in constructor /// Address that storing all ETH address public dmlwallet; uint public earlyWhitelistBeginTime; uint public startTime; uint public endTime; /// Fields that can be changed by functions /// Accumulator for open sold tokens uint public openSoldTokens; /// Due to an emergency, set this to true to halt the contribution bool public halted; /// ERC20 compilant DML token contact instance DmlToken public dmlToken; mapping (address => WhitelistUser) private whitelisted; address[] private whitelistedIndex; struct WhitelistUser { uint256 quota; uint index; uint level; } /// level 1 Main Whitelist /// level 2 Early Whitelist /// level 3 Early Super Whitelist uint256 public maxBuyLimit = 68 ether; /* * EVENTS */ event NewSale(address indexed destAddress, uint ethCost, uint gotTokens); event ToFundAmount(uint ethCost); event ValidFundAmount(uint ethCost); event Debug(uint number); event UserCallBuy(); event ShowTokenAvailable(uint); event NowTime(uint, uint, uint, uint); /* * MODIFIERS */ modifier notHalted() { require(!halted); _; } modifier initialized() { require(address(dmlwallet) != 0x0); _; } modifier notEarlierThan(uint x) { require(now >= x); _; } modifier earlierThan(uint x) { require(now < x); _; } modifier ceilingNotReached() { require(openSoldTokens < MAX_PUBLIC_SOLD); _; } modifier isSaleEnded() { require(now > endTime || openSoldTokens >= MAX_PUBLIC_SOLD); _; } /** * CONSTRUCTOR * * @dev Initialize the DML contribution contract * @param _dmlwallet The escrow account address, all ethers will be sent to this address. * @param _bootTime ICO boot time */ function DmlContribution(address _dmlwallet, uint _bootTime){ require(_dmlwallet != 0x0); halted = false; dmlwallet = _dmlwallet; earlyWhitelistBeginTime = _bootTime; startTime = earlyWhitelistBeginTime + EARLY_CONTRIBUTION_DURATION; endTime = startTime + MAX_CONTRIBUTION_DURATION; openSoldTokens = 0; dmlToken = new DmlToken(this, endTime); uint stakeMultiplier = DML_TOTAL_SUPPLY / DIVISOR_STAKE; dmlToken.mintToken(ECO_SYSTEM_HOLDER, ECO_SYSTEM_STAKE * stakeMultiplier); dmlToken.mintToken(COMMUNITY_BOUNTY_HOLDER, COMMUNITY_BOUNTY_STAKE * stakeMultiplier); dmlToken.mintToken(OPERATION_HOLDER, OPERATION_STAKE * stakeMultiplier); dmlToken.mintToken(RESERVES_HOLDER, RESERVES_STAKE * stakeMultiplier); dmlToken.mintToken(PRESALE_HOLDER, PRESALE_RESERVERED_AMOUNT); } /** * Fallback function * * @dev Set it to buy Token if anyone send ETH */ function () public payable { buyDmlCoin(msg.sender); //NowTime(now, earlyWhitelistBeginTime, startTime, endTime); } /* * PUBLIC FUNCTIONS */ /// @dev Exchange msg.value ether to DML for account recepient /// @param receipient DML tokens receiver function buyDmlCoin(address receipient) public payable notHalted initialized ceilingNotReached notEarlierThan(earlyWhitelistBeginTime) earlierThan(endTime) returns (bool) { require(receipient != 0x0); require(isWhitelisted(receipient)); // Do not allow contracts to game the system require(!isContract(msg.sender)); require( tx.gasprice <= 99000000000 wei ); if( now < startTime && now >= earlyWhitelistBeginTime) { if (whitelisted[receipient].level >= 2) { require(msg.value >= 1 ether); } else { require(msg.value >= 0.5 ether); } buyEarlyWhitelist(receipient); } else { require(msg.value >= 0.1 ether); require(msg.value <= maxBuyLimit); buyRemaining(receipient); } return true; } function setMaxBuyLimit(uint256 limit) public initialized onlyOwner earlierThan(endTime) { maxBuyLimit = limit; } /// @dev batch set quota for early user quota function addWhiteListUsers(address[] userAddresses, uint256[] quota, uint[] level) public onlyOwner earlierThan(endTime) { for( uint i = 0; i < userAddresses.length; i++) { addWhiteListUser(userAddresses[i], quota[i], level[i]); } } function addWhiteListUser(address userAddress, uint256 quota, uint level) public onlyOwner earlierThan(endTime) { if (!isWhitelisted(userAddress)) { whitelisted[userAddress].quota = quota; whitelisted[userAddress].level = level; whitelisted[userAddress].index = whitelistedIndex.push(userAddress) - 1; } } /** * @dev Get a user's whitelisted state * @param userAddress address the wallet address of the user * @return bool true if the user is in the whitelist */ function isWhitelisted (address userAddress) public constant returns (bool isIndeed) { if (whitelistedIndex.length == 0) return false; return (whitelistedIndex[whitelisted[userAddress].index] == userAddress); } /***** * @dev Get a whitelisted user * @param userAddress address the wallet address of the user * @return uint256 the amount pledged by the user * @return uint the index of the user */ function getWhitelistUser (address userAddress) public constant returns (uint256 quota, uint index, uint level) { require(isWhitelisted(userAddress)); return(whitelisted[userAddress].quota, whitelisted[userAddress].index, whitelisted[userAddress].level); } /// @dev Emergency situation that requires contribution period to stop. /// Contributing not possible anymore. function halt() public onlyOwner{ halted = true; } /// @dev Emergency situation resolved. /// Contributing becomes possible again withing the outlined restrictions. function unHalt() public onlyOwner{ halted = false; } /// @dev Emergency situation function changeWalletAddress(address newAddress) onlyOwner{ dmlwallet = newAddress; } /// @return true if sale not ended, false otherwise. function saleNotEnd() constant returns (bool) { return now < endTime && openSoldTokens < MAX_PUBLIC_SOLD; } /// CONSTANT METHODS /// @dev Get current exchange rate function priceRate() public constant returns (uint) { // Two price tiers if (earlyWhitelistBeginTime <= now && now < startTime) { if (whitelisted[msg.sender].level >= 2) { return PRICE_RATE_SECOND; } else { return PRICE_RATE_FIRST; } } if (startTime <= now && now < endTime) { return PRICE_RATE_FIRST; } // Should not be called before or after contribution period assert(false); } function claimTokens(address receipent) public isSaleEnded { dmlToken.claimTokens(receipent); } /* * INTERNAL FUNCTIONS */ /// @dev early_whitelist to buy token with quota function buyEarlyWhitelist(address receipient) internal { uint quotaAvailable = whitelisted[receipient].quota; require(quotaAvailable > 0); uint tokenAvailable = MAX_PUBLIC_SOLD.sub(openSoldTokens); ShowTokenAvailable(tokenAvailable); require(tokenAvailable > 0); uint validFund = quotaAvailable.min256(msg.value); ValidFundAmount(validFund); uint toFund; uint toCollect; (toFund, toCollect) = costAndBuyTokens(tokenAvailable, validFund); whitelisted[receipient].quota = whitelisted[receipient].quota.sub(toFund); buyCommon(receipient, toFund, toCollect); } /// @dev early_whitelist and main whitelist to buy token with their quota + extra quota function buyRemaining(address receipient) internal { uint tokenAvailable = MAX_PUBLIC_SOLD.sub(openSoldTokens); ShowTokenAvailable(tokenAvailable); require(tokenAvailable > 0); uint toFund; uint toCollect; (toFund, toCollect) = costAndBuyTokens(tokenAvailable, msg.value); buyCommon(receipient, toFund, toCollect); } /// @dev Utility function for buy token function buyCommon(address receipient, uint toFund, uint dmlTokenCollect) internal { require(msg.value >= toFund); // double check if(toFund > 0) { require(dmlToken.mintToken(receipient, dmlTokenCollect)); ToFundAmount(toFund); dmlwallet.transfer(toFund); openSoldTokens = openSoldTokens.add(dmlTokenCollect); NewSale(receipient, toFund, dmlTokenCollect); } uint toReturn = msg.value.sub(toFund); if(toReturn > 0) { msg.sender.transfer(toReturn); } } /// @dev Utility function for calculate available tokens and cost ethers function costAndBuyTokens(uint availableToken, uint validFund) constant internal returns (uint costValue, uint getTokens){ // all conditions has checked in the caller functions uint exchangeRate = priceRate(); getTokens = exchangeRate * validFund; if(availableToken >= getTokens){ costValue = validFund; } else { costValue = availableToken / exchangeRate; getTokens = availableToken; } } /// @dev Internal function to determine if an address is a contract /// @param _addr The address being queried /// @return True if `_addr` is a contract function isContract(address _addr) constant internal returns(bool) { uint size; assembly { size := extcodesize(_addr) } return size > 0; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"ECO_SYSTEM_HOLDER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"earlyWhitelistBeginTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ECO_SYSTEM_STAKE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"userAddress","type":"address"}],"name":"isWhitelisted","outputs":[{"name":"isIndeed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DIVISOR_STAKE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saleNotEnd","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RESERVES_STAKE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EARLY_CONTRIBUTION_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxBuyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_RESERVERED_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"limit","type":"uint256"}],"name":"setMaxBuyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dmlToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unHalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PRICE_RATE_SECOND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OPERATION_HOLDER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OPERATION_STAKE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"COMMUNITY_BOUNTY_STAKE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_PUBLIC_SOLD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"openSoldTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"userAddress","type":"address"}],"name":"getWhitelistUser","outputs":[{"name":"quota","type":"uint256"},{"name":"index","type":"uint256"},{"name":"level","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RESERVES_HOLDER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PRICE_RATE_FIRST","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dmlwallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receipient","type":"address"}],"name":"buyDmlCoin","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_HOLDER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"userAddress","type":"address"},{"name":"quota","type":"uint256"},{"name":"level","type":"uint256"}],"name":"addWhiteListUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"COMMUNITY_BOUNTY_HOLDER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receipent","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"userAddresses","type":"address[]"},{"name":"quota","type":"uint256[]"},{"name":"level","type":"uint256[]"}],"name":"addWhiteListUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_CONTRIBUTION_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"}],"name":"changeWalletAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SALE_STAKE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DML_TOTAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_dmlwallet","type":"address"},{"name":"_bootTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"destAddress","type":"address"},{"indexed":false,"name":"ethCost","type":"uint256"},{"indexed":false,"name":"gotTokens","type":"uint256"}],"name":"NewSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethCost","type":"uint256"}],"name":"ToFundAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethCost","type":"uint256"}],"name":"ValidFundAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"number","type":"uint256"}],"name":"Debug","type":"event"},{"anonymous":false,"inputs":[],"name":"UserCallBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"uint256"}],"name":"ShowTokenAvailable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"uint256"},{"indexed":false,"name":"","type":"uint256"},{"indexed":false,"name":"","type":"uint256"},{"indexed":false,"name":"","type":"uint256"}],"name":"NowTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60606040526a2f10e78ab680ac479b37ec6103e86101686b0110f837d8942a518a000000028115156200002e57fe5b04036001556803afb087b876900000600a5534156200004c57600080fd5b6040516040806200418f833981016040528080519060200190919080519060200190919050506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008373ffffffffffffffffffffffffffffffffffffffff1614151515620000db57600080fd5b6000600760006101000a81548160ff02191690831515021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816003819055506201518060035401600481905550620697806004540160058190555060006006819055503060055462000170620006fc565b808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051809103906000f0801515620001c457600080fd5b600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86b0110f837d8942a518a0000008115156200021e57fe5b049050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379c65068732d8c705a66b2e87a9249380d4cdfe9d80bbf826b836063026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515620002fd57600080fd5b5af115156200030b57600080fd5b5050506040518051905050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379c650687368500ffefb57d88a600e2f1c63bb5866e7107b6b836053026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515620003f257600080fd5b5af115156200040057600080fd5b5050506040518051905050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379c6506873c7b6dff52014e59cb88fac3b371fa955d0a9249f83610134026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515620004e857600080fd5b5af11515620004f657600080fd5b5050506040518051905050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379c6506873ab376b3ec2ed446444911e549c7c953fb086070f836096026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515620005dd57600080fd5b5af11515620005eb57600080fd5b5050506040518051905050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379c6506873cb52583d19fd42c0f85a0c83a45dea6c73b9ebfb6a2f10e78ab680ac479b37ec6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515620006da57600080fd5b5af11515620006e857600080fd5b50505060405180519050505050506200070d565b604051611c79806200251683390190565b611df9806200071d6000396000f3006060604052600436106101ee576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063211f390e146101fa57806325d911251461024f5780632fb22cfa146102785780633197cbb6146102a15780633af32abf146102ca5780633f423afe1461031b5780634f93995d146103445780635a018e01146103715780635ed7ca5b1461039a57806367198207146103af5780636aa5b37f146103d857806374aa9e2c14610401578063757765f81461042a5780637591dfa01461044d57806376865eea146104a2578063773ef38e146104b757806378b290b5146104e057806378e97925146105355780638da5cb5b1461055e578063a053eb9d146105b3578063acd47bc3146105dc578063af2096ef14610605578063b2450b151461062e578063b36c14fe14610657578063b9b8af0b146106b2578063baaf4eef146106df578063bdf75a6a14610734578063bfb1fcf51461075d578063c536ed5f146107b2578063ca75b954146107f8578063ceb791d91461084d578063d46a005a14610876578063dd86f719146108c1578063df8de3e714610916578063e848aba21461094f578063e9d8d3d714610a29578063ec8edf7a14610a52578063f2fde38b14610a8b578063f98d7c7514610ac4578063fe89232714610aed575b6101f733610b16565b50005b341561020557600080fd5b61020d610cf7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561025a57600080fd5b610262610d0f565b6040518082815260200191505060405180910390f35b341561028357600080fd5b61028b610d15565b6040518082815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610d1a565b6040518082815260200191505060405180910390f35b34156102d557600080fd5b610301600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d20565b604051808215151515815260200191505060405180910390f35b341561032657600080fd5b61032e610deb565b6040518082815260200191505060405180910390f35b341561034f57600080fd5b610357610df1565b604051808215151515815260200191505060405180910390f35b341561037c57600080fd5b610384610e0c565b6040518082815260200191505060405180910390f35b34156103a557600080fd5b6103ad610e11565b005b34156103ba57600080fd5b6103c2610e89565b6040518082815260200191505060405180910390f35b34156103e357600080fd5b6103eb610e90565b6040518082815260200191505060405180910390f35b341561040c57600080fd5b610414610e96565b6040518082815260200191505060405180910390f35b341561043557600080fd5b61044b6004808035906020019091905050610ea5565b005b341561045857600080fd5b610460610f64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104ad57600080fd5b6104b5610f8a565b005b34156104c257600080fd5b6104ca611002565b6040518082815260200191505060405180910390f35b34156104eb57600080fd5b6104f3611008565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054057600080fd5b610548611020565b6040518082815260200191505060405180910390f35b341561056957600080fd5b610571611026565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105be57600080fd5b6105c661104b565b6040518082815260200191505060405180910390f35b34156105e757600080fd5b6105ef611051565b6040518082815260200191505060405180910390f35b341561061057600080fd5b610618611056565b6040518082815260200191505060405180910390f35b341561063957600080fd5b61064161105c565b6040518082815260200191505060405180910390f35b341561066257600080fd5b61068e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611062565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156106bd57600080fd5b6106c5611151565b604051808215151515815260200191505060405180910390f35b34156106ea57600080fd5b6106f2611164565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073f57600080fd5b61074761117c565b6040518082815260200191505060405180910390f35b341561076857600080fd5b610770611182565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107de600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b16565b604051808215151515815260200191505060405180910390f35b341561080357600080fd5b61080b6111a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561085857600080fd5b6108606111c0565b6040518082815260200191505060405180910390f35b341561088157600080fd5b6108bf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061126a565b005b34156108cc57600080fd5b6108d4611425565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561092157600080fd5b61094d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061143d565b005b341561095a57600080fd5b610a27600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061152b565b005b3415610a3457600080fd5b610a3c61160b565b6040518082815260200191505060405180910390f35b3415610a5d57600080fd5b610a89600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611612565b005b3415610a9657600080fd5b610ac2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116b1565b005b3415610acf57600080fd5b610ad7611806565b6040518082815260200191505060405180910390f35b3415610af857600080fd5b610b0061180c565b6040518082815260200191505060405180910390f35b6000600760009054906101000a900460ff16151515610b3457600080fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b7c57600080fd5b600154600654101515610b8e57600080fd5b600354804210151515610ba057600080fd5b6005548042101515610bb157600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff1614151515610bd757600080fd5b610be084610d20565b1515610beb57600080fd5b610bf43361181c565b151515610c0057600080fd5b64170cdc1e003a11151515610c1457600080fd5b60045442108015610c2757506003544210155b15610cba576002600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154101515610c9457670de0b6b3a76400003410151515610c8f57600080fd5b610cac565b6706f05b59d3b200003410151515610cab57600080fd5b5b610cb58461182f565b610cec565b67016345785d8a00003410151515610cd157600080fd5b600a543411151515610ce257600080fd5b610ceb846119f6565b5b600192505050919050565b732d8c705a66b2e87a9249380d4cdfe9d80bbf826b81565b60035481565b606381565b60055481565b6000806009805490501415610d385760009050610de6565b8173ffffffffffffffffffffffffffffffffffffffff166009600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154815481101515610da057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505b919050565b6103e881565b600060055442108015610e075750600154600654105b905090565b609681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6c57600080fd5b6001600760006101000a81548160ff021916908315150217905550565b6201518081565b600a5481565b6a2f10e78ab680ac479b37ec81565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610eed57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4857600080fd5b6005548042101515610f5957600080fd5b81600a819055505050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe557600080fd5b6000600760006101000a81548160ff021916908315150217905550565b61103e81565b73c7b6dff52014e59cb88fac3b371fa955d0a9249f81565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61013481565b605381565b60015481565b60065481565b600080600061107084610d20565b151561107b57600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549250925092509193909250565b600760009054906101000a900460ff1681565b73ab376b3ec2ed446444911e549c7c953fb086070f81565b610ec481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73cb52583d19fd42c0f85a0c83a45dea6c73b9ebfb81565b600042600354111580156111d5575060045442105b1561123a576002600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541015156112305761103e9050611267565b610ec49050611267565b426004541115801561124d575060055442105b1561125c57610ec49050611267565b6000151561126657fe5b5b90565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112c557600080fd5b60055480421015156112d657600080fd5b6112df84610d20565b151561141f5782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506001600980548060010182816113899190611d7c565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b50505050565b7368500ffefb57d88a600e2f1c63bb5866e7107b6b81565b600554421180611451575060015460065410155b151561145c57600080fd5b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df8de3e7826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561151857600080fd5b5af1151561152557600080fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158857600080fd5b600554804210151561159957600080fd5b600091505b8451821015611604576115f785838151811015156115b857fe5b9060200190602002015185848151811015156115d057fe5b9060200190602002015185858151811015156115e857fe5b9060200190602002015161126a565b818060010192505061159e565b5050505050565b6206978081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561166d57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561174857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61016881565b6b0110f837d8942a518a00000081565b600080823b905060008111915050919050565b6000806000806000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154945060008511151561188b57600080fd5b6118a2600654600154611a7d90919063ffffffff16565b93507fb748a9cc5aa4a3cfef03083277a7b72bafcb2585bf49cc5f82c24d23016865eb846040518082815260200191505060405180910390a16000841115156118ea57600080fd5b6118fd3486611a9690919063ffffffff16565b92507fc7c496a9180801bf1a6715b594c6d98c53f0fca5d220af22363ab356f5042d86836040518082815260200191505060405180910390a16119408484611aaf565b809250819350505061199d82600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611a7d90919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506119ee868383611aee565b505050505050565b6000806000611a12600654600154611a7d90919063ffffffff16565b92507fb748a9cc5aa4a3cfef03083277a7b72bafcb2585bf49cc5f82c24d23016865eb836040518082815260200191505060405180910390a1600083111515611a5a57600080fd5b611a648334611aaf565b8092508193505050611a77848383611aee565b50505050565b6000828211151515611a8b57fe5b818303905092915050565b6000818310611aa55781611aa7565b825b905092915050565b6000806000611abc6111c0565b905083810291508185101515611ad457839250611ae6565b8085811515611adf57fe5b0492508491505b509250929050565b6000823410151515611aff57600080fd5b6000831115611cf957600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379c6506885846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bcc57600080fd5b5af11515611bd957600080fd5b505050604051805190501515611bee57600080fd5b7f2a0fd5fe7417ee3a5f311807ed2f06290f263a11ae83023e1718b3a549ba5132836040518082815260200191505060405180910390a1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611c8757600080fd5b611c9c82600654611d5e90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff167fa3ed4207b1480804a4590a74f4b9cc310dc0fc839af8d10e2141ca3b72fd93488484604051808381526020018281526020019250505060405180910390a25b611d0c8334611a7d90919063ffffffff16565b90506000811115611d58573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d5757600080fd5b5b50505050565b6000808284019050838110151515611d7257fe5b8091505092915050565b815481835581811511611da357818360005260206000209182019101611da29190611da8565b5b505050565b611dca91905b80821115611dc6576000816000905550600101611dae565b5090565b905600a165627a7a723058208ce418510f6eda9177ef93ecd860bed8443be5d511782baef6f6e49371830e86002960606040526000600360146101000a81548160ff021916908315150217905550341561002a57600080fd5b604051604080611c798339810160405280805190602001909190805190602001909190505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806005819055505050611b90806100e96000396000f300606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630483a7f61461013857806306fdde03146101855780630754617214610213578063095ea7b31461026857806318160ddd146102c257806323b872dd146102eb578063313ce567146103645780633197cbb6146103935780633f4ba83a146103bc57806359355736146103d15780635c975abb1461041e578063661884631461044b57806370a08231146104a557806379c65068146104f25780638456cb591461054c5780638da5cb5b1461056157806395d89b41146105b6578063a89c5be014610644578063a9059cbb1461066d578063d73dd623146106c7578063dd62ed3e14610721578063df8de3e71461078d578063f2fde38b146107c6575b600080fd5b341561014357600080fd5b61016f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107ff565b6040518082815260200191505060405180910390f35b341561019057600080fd5b610198610817565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d85780820151818401526020810190506101bd565b50505050905090810190601f1680156102055780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021e57600080fd5b610226610850565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561027357600080fd5b6102a8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610876565b604051808215151515815260200191505060405180910390f35b34156102cd57600080fd5b6102d56108c7565b6040518082815260200191505060405180910390f35b34156102f657600080fd5b61034a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108cd565b604051808215151515815260200191505060405180910390f35b341561036f57600080fd5b610377610920565b604051808260ff1660ff16815260200191505060405180910390f35b341561039e57600080fd5b6103a6610925565b6040518082815260200191505060405180910390f35b34156103c757600080fd5b6103cf61092b565b005b34156103dc57600080fd5b610408600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109eb565b6040518082815260200191505060405180910390f35b341561042957600080fd5b610431610a34565b604051808215151515815260200191505060405180910390f35b341561045657600080fd5b61048b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a47565b604051808215151515815260200191505060405180910390f35b34156104b057600080fd5b6104dc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cd8565b6040518082815260200191505060405180910390f35b34156104fd57600080fd5b610532600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d21565b604051808215151515815260200191505060405180910390f35b341561055757600080fd5b61055f610e75565b005b341561056c57600080fd5b610574610f36565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105c157600080fd5b6105c9610f5c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106095780820151818401526020810190506105ee565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064f57600080fd5b610657610f95565b6040518082815260200191505060405180910390f35b341561067857600080fd5b6106ad600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fa5565b604051808215151515815260200191505060405180910390f35b34156106d257600080fd5b610707600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ff6565b604051808215151515815260200191505060405180910390f35b341561072c57600080fd5b610777600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111f2565b6040518082815260200191505060405180910390f35b341561079857600080fd5b6107c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611279565b005b34156107d157600080fd5b6107fd600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113ee565b005b60066020528060005260406000206000915090505481565b6040805190810160405280600981526020017f444d4c20546f6b656e000000000000000000000000000000000000000000000081525081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000823073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156108b457600080fd5b6108be8484611546565b91505092915050565b60005481565b6000823073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561090b57600080fd5b610916858585611638565b9150509392505050565b601281565b60055481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098757600080fd5b600360149054906101000a900460ff1615156109a257600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360149054906101000a900460ff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b58576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bec565b610b6b838261193d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d7c57fe5b816b0110f837d8942a518a000000610d9f8260005461195690919063ffffffff16565b11151515610da957fe5b6005544211151515610dba57600080fd5b610e0c83600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461195690919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e648360005461195690919063ffffffff16565b600081905550600191505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ed157600080fd5b600360149054906101000a900460ff16151515610eed57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f444d4c000000000000000000000000000000000000000000000000000000000081525081565b6b0110f837d8942a518a00000081565b6000823073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fe357600080fd5b610fed8484611974565b91505092915050565b600061108782600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461195690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112d257fe5b611363600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461195690919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561144a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561148657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060606004810160003690501015151561165357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561168f57600080fd5b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915061176084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193d90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117f584600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461195690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061184b848361193d90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b600082821115151561194b57fe5b818303905092915050565b600080828401905083811015151561196a57fe5b8091505092915050565b600060406004810160003690501015151561198e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156119ca57600080fd5b611a1c83600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193d90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ab183600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461195690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050929150505600a165627a7a72305820cc4a19b940b5662869c66f40e20548d1972d6af64a6a865ca514b020549ece2c0029000000000000000000000000bd24cef65610bea92efe6b5cc2af9758637e2200000000000000000000000000000000000000000000000000000000005ad4c880
Deployed Bytecode
0x6060604052600436106101ee576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063211f390e146101fa57806325d911251461024f5780632fb22cfa146102785780633197cbb6146102a15780633af32abf146102ca5780633f423afe1461031b5780634f93995d146103445780635a018e01146103715780635ed7ca5b1461039a57806367198207146103af5780636aa5b37f146103d857806374aa9e2c14610401578063757765f81461042a5780637591dfa01461044d57806376865eea146104a2578063773ef38e146104b757806378b290b5146104e057806378e97925146105355780638da5cb5b1461055e578063a053eb9d146105b3578063acd47bc3146105dc578063af2096ef14610605578063b2450b151461062e578063b36c14fe14610657578063b9b8af0b146106b2578063baaf4eef146106df578063bdf75a6a14610734578063bfb1fcf51461075d578063c536ed5f146107b2578063ca75b954146107f8578063ceb791d91461084d578063d46a005a14610876578063dd86f719146108c1578063df8de3e714610916578063e848aba21461094f578063e9d8d3d714610a29578063ec8edf7a14610a52578063f2fde38b14610a8b578063f98d7c7514610ac4578063fe89232714610aed575b6101f733610b16565b50005b341561020557600080fd5b61020d610cf7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561025a57600080fd5b610262610d0f565b6040518082815260200191505060405180910390f35b341561028357600080fd5b61028b610d15565b6040518082815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610d1a565b6040518082815260200191505060405180910390f35b34156102d557600080fd5b610301600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d20565b604051808215151515815260200191505060405180910390f35b341561032657600080fd5b61032e610deb565b6040518082815260200191505060405180910390f35b341561034f57600080fd5b610357610df1565b604051808215151515815260200191505060405180910390f35b341561037c57600080fd5b610384610e0c565b6040518082815260200191505060405180910390f35b34156103a557600080fd5b6103ad610e11565b005b34156103ba57600080fd5b6103c2610e89565b6040518082815260200191505060405180910390f35b34156103e357600080fd5b6103eb610e90565b6040518082815260200191505060405180910390f35b341561040c57600080fd5b610414610e96565b6040518082815260200191505060405180910390f35b341561043557600080fd5b61044b6004808035906020019091905050610ea5565b005b341561045857600080fd5b610460610f64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104ad57600080fd5b6104b5610f8a565b005b34156104c257600080fd5b6104ca611002565b6040518082815260200191505060405180910390f35b34156104eb57600080fd5b6104f3611008565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054057600080fd5b610548611020565b6040518082815260200191505060405180910390f35b341561056957600080fd5b610571611026565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105be57600080fd5b6105c661104b565b6040518082815260200191505060405180910390f35b34156105e757600080fd5b6105ef611051565b6040518082815260200191505060405180910390f35b341561061057600080fd5b610618611056565b6040518082815260200191505060405180910390f35b341561063957600080fd5b61064161105c565b6040518082815260200191505060405180910390f35b341561066257600080fd5b61068e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611062565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156106bd57600080fd5b6106c5611151565b604051808215151515815260200191505060405180910390f35b34156106ea57600080fd5b6106f2611164565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073f57600080fd5b61074761117c565b6040518082815260200191505060405180910390f35b341561076857600080fd5b610770611182565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107de600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b16565b604051808215151515815260200191505060405180910390f35b341561080357600080fd5b61080b6111a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561085857600080fd5b6108606111c0565b6040518082815260200191505060405180910390f35b341561088157600080fd5b6108bf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061126a565b005b34156108cc57600080fd5b6108d4611425565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561092157600080fd5b61094d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061143d565b005b341561095a57600080fd5b610a27600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061152b565b005b3415610a3457600080fd5b610a3c61160b565b6040518082815260200191505060405180910390f35b3415610a5d57600080fd5b610a89600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611612565b005b3415610a9657600080fd5b610ac2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116b1565b005b3415610acf57600080fd5b610ad7611806565b6040518082815260200191505060405180910390f35b3415610af857600080fd5b610b0061180c565b6040518082815260200191505060405180910390f35b6000600760009054906101000a900460ff16151515610b3457600080fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b7c57600080fd5b600154600654101515610b8e57600080fd5b600354804210151515610ba057600080fd5b6005548042101515610bb157600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff1614151515610bd757600080fd5b610be084610d20565b1515610beb57600080fd5b610bf43361181c565b151515610c0057600080fd5b64170cdc1e003a11151515610c1457600080fd5b60045442108015610c2757506003544210155b15610cba576002600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154101515610c9457670de0b6b3a76400003410151515610c8f57600080fd5b610cac565b6706f05b59d3b200003410151515610cab57600080fd5b5b610cb58461182f565b610cec565b67016345785d8a00003410151515610cd157600080fd5b600a543411151515610ce257600080fd5b610ceb846119f6565b5b600192505050919050565b732d8c705a66b2e87a9249380d4cdfe9d80bbf826b81565b60035481565b606381565b60055481565b6000806009805490501415610d385760009050610de6565b8173ffffffffffffffffffffffffffffffffffffffff166009600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154815481101515610da057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505b919050565b6103e881565b600060055442108015610e075750600154600654105b905090565b609681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6c57600080fd5b6001600760006101000a81548160ff021916908315150217905550565b6201518081565b600a5481565b6a2f10e78ab680ac479b37ec81565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610eed57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f4857600080fd5b6005548042101515610f5957600080fd5b81600a819055505050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe557600080fd5b6000600760006101000a81548160ff021916908315150217905550565b61103e81565b73c7b6dff52014e59cb88fac3b371fa955d0a9249f81565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61013481565b605381565b60015481565b60065481565b600080600061107084610d20565b151561107b57600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549250925092509193909250565b600760009054906101000a900460ff1681565b73ab376b3ec2ed446444911e549c7c953fb086070f81565b610ec481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73cb52583d19fd42c0f85a0c83a45dea6c73b9ebfb81565b600042600354111580156111d5575060045442105b1561123a576002600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541015156112305761103e9050611267565b610ec49050611267565b426004541115801561124d575060055442105b1561125c57610ec49050611267565b6000151561126657fe5b5b90565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112c557600080fd5b60055480421015156112d657600080fd5b6112df84610d20565b151561141f5782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506001600980548060010182816113899190611d7c565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b50505050565b7368500ffefb57d88a600e2f1c63bb5866e7107b6b81565b600554421180611451575060015460065410155b151561145c57600080fd5b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df8de3e7826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561151857600080fd5b5af1151561152557600080fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158857600080fd5b600554804210151561159957600080fd5b600091505b8451821015611604576115f785838151811015156115b857fe5b9060200190602002015185848151811015156115d057fe5b9060200190602002015185858151811015156115e857fe5b9060200190602002015161126a565b818060010192505061159e565b5050505050565b6206978081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561166d57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561174857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61016881565b6b0110f837d8942a518a00000081565b600080823b905060008111915050919050565b6000806000806000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154945060008511151561188b57600080fd5b6118a2600654600154611a7d90919063ffffffff16565b93507fb748a9cc5aa4a3cfef03083277a7b72bafcb2585bf49cc5f82c24d23016865eb846040518082815260200191505060405180910390a16000841115156118ea57600080fd5b6118fd3486611a9690919063ffffffff16565b92507fc7c496a9180801bf1a6715b594c6d98c53f0fca5d220af22363ab356f5042d86836040518082815260200191505060405180910390a16119408484611aaf565b809250819350505061199d82600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611a7d90919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506119ee868383611aee565b505050505050565b6000806000611a12600654600154611a7d90919063ffffffff16565b92507fb748a9cc5aa4a3cfef03083277a7b72bafcb2585bf49cc5f82c24d23016865eb836040518082815260200191505060405180910390a1600083111515611a5a57600080fd5b611a648334611aaf565b8092508193505050611a77848383611aee565b50505050565b6000828211151515611a8b57fe5b818303905092915050565b6000818310611aa55781611aa7565b825b905092915050565b6000806000611abc6111c0565b905083810291508185101515611ad457839250611ae6565b8085811515611adf57fe5b0492508491505b509250929050565b6000823410151515611aff57600080fd5b6000831115611cf957600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379c6506885846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611bcc57600080fd5b5af11515611bd957600080fd5b505050604051805190501515611bee57600080fd5b7f2a0fd5fe7417ee3a5f311807ed2f06290f263a11ae83023e1718b3a549ba5132836040518082815260200191505060405180910390a1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611c8757600080fd5b611c9c82600654611d5e90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff167fa3ed4207b1480804a4590a74f4b9cc310dc0fc839af8d10e2141ca3b72fd93488484604051808381526020018281526020019250505060405180910390a25b611d0c8334611a7d90919063ffffffff16565b90506000811115611d58573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611d5757600080fd5b5b50505050565b6000808284019050838110151515611d7257fe5b8091505092915050565b815481835581811511611da357818360005260206000209182019101611da29190611da8565b5b505050565b611dca91905b80821115611dc6576000816000905550600101611dae565b5090565b905600a165627a7a723058208ce418510f6eda9177ef93ecd860bed8443be5d511782baef6f6e49371830e860029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bd24cef65610bea92efe6b5cc2af9758637e2200000000000000000000000000000000000000000000000000000000005ad4c880
-----Decoded View---------------
Arg [0] : _dmlwallet (address): 0xbd24CEF65610bEa92EFe6B5cc2aF9758637E2200
Arg [1] : _bootTime (uint256): 1523894400
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bd24cef65610bea92efe6b5cc2af9758637e2200
Arg [1] : 000000000000000000000000000000000000000000000000000000005ad4c880
Swarm Source
bzzr://cc4a19b940b5662869c66f40e20548d1972d6af64a6a865ca514b020549ece2c
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.