ERC-20
Overview
Max Total Supply
10,000,000,000 TBT
Holders
155
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
16,666.6 TBTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TimeBankToken
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-06-01 */ pragma solidity ^0.4.21; contract EIP20Interface { function name() public view returns (string); function symbol() public view returns (string); function decimals() public view returns (uint8); function totalSupply() public view returns (uint256); /// @param _owner The address from which the balance will be retrieved /// @return The balance function balanceOf(address _owner) public view returns (uint256 balance); /// @notice send `_value` token to `_to` from `msg.sender` /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transfer(address _to, uint256 _value) public returns (bool success); /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` /// @param _from The address of the sender /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); /// @notice `msg.sender` approves `_spender` to spend `_value` tokens /// @param _spender The address of the account able to transfer the tokens /// @param _value The amount of tokens to be approved for transfer /// @return Whether the approval was successful or not function approve(address _spender, uint256 _value) public returns (bool success); /// @param _owner The address of the account owning tokens /// @param _spender The address of the account able to transfer the tokens /// @return Amount of remaining tokens allowed to spent function allowance(address _owner, address _spender) public view returns (uint256 remaining); // solhint-disable-next-line no-simple-event-func-name event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } contract EIP20 is EIP20Interface { uint256 constant private MAX_UINT256 = 2**256 - 1; mapping (address => uint256) public balances; mapping (address => mapping (address => uint256)) public allowed; /* NOTE: The following variables are OPTIONAL vanities. One does not have to include them. They allow one to customise the token contract & in no way influences the core functionality. Some wallets/interfaces might not even bother to look at this information. */ string public tokenName; //fancy name: eg Simon Bucks uint8 public tokenDecimals; //How many decimals to show. string public tokenSymbol; //An identifier: eg SBX uint256 public tokenTotalSupply; constructor( uint256 _initialAmount, string _tokenName, uint8 _decimalUnits, string _tokenSymbol ) public { balances[msg.sender] = _initialAmount; // Give the creator all initial tokens tokenTotalSupply = _initialAmount; // Update total supply tokenName = _tokenName; // Set the name for display purposes tokenDecimals = _decimalUnits; // Amount of decimals for display purposes tokenSymbol = _tokenSymbol; // Set the symbol for display purposes } function name() public view returns (string) { return tokenName; } function symbol() public view returns (string) { return tokenSymbol; } function decimals() public view returns (uint8) { return tokenDecimals; } function totalSupply() public view returns (uint256) { return tokenTotalSupply; } function transfer(address _to, uint256 _value) public returns (bool success) { require(balances[msg.sender] >= _value); balances[msg.sender] -= _value; balances[_to] += _value; emit Transfer(msg.sender, _to, _value); //solhint-disable-line indent, no-unused-vars return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { uint256 allowance = allowed[_from][msg.sender]; require(balances[_from] >= _value && allowance >= _value); balances[_to] += _value; balances[_from] -= _value; if (allowance < MAX_UINT256) { allowed[_from][msg.sender] -= _value; } emit Transfer(_from, _to, _value); //solhint-disable-line indent, no-unused-vars return true; } function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } function approve(address _spender, uint256 _value) public returns (bool success) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); //solhint-disable-line indent, no-unused-vars return true; } function allowance(address _owner, address _spender) public view returns (uint256 remaining) { return allowed[_owner][_spender]; } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ 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 a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } contract TimeBankToken is EIP20 { using SafeMath for uint; struct Vesting { uint256 startTime; // vesting start time uint256 initReleaseAmount; uint256 amount; uint256 interval; // release N% of amount each interval. uint256 periods; // count of periods uint256 withdrawed; // already used amount of released part } mapping (address => Vesting[]) vestings; address[] managerList; mapping (address => bool) managers; mapping (bytes32 => mapping (address => bool)) confirms; /* at least <threshold> confirmations */ uint majorityThreshold; uint managementThreshold; address coinbase; address master; bool public paused; function checkAddress(address _addr) internal pure returns (bool) { return _addr != address(0); } // 1 with 28 zeros constructor(address _master, address[] _managers, uint _majorityThreshold, uint _managementThreshold) EIP20(10000000000000000000000000000, "Time Bank Token", 18, "TBT") public { require(checkAddress(_master)); require(_managers.length >= _majorityThreshold); require(_managers.length >= _managementThreshold); paused = false; master = _master; coinbase = msg.sender; majorityThreshold = _majorityThreshold; managementThreshold = _managementThreshold; for (uint i=0; i<_managers.length; i++) { require(checkAddress(_managers[i])); managers[_managers[i]] = true; } managerList = _managers; // initial batch operations // internalPresaleVesting(0x0095F9DffeE386B650230eD3eC28891c1053aBE0, 10000, 60, 120, 240); // internalPresaleVesting(0x00D4fC2CC18B96c44D9755afB6D4e6804cF827ee, 20000, 60, 120, 240); // internalPresale(0x0092E41D42E834705fd07c9136Fd0b1028226bE3, 30000); } function pause() public isMaster isNotPaused { require(isEnoughConfirmed(msg.data, 1)); paused = true; } function resume() public isMaster isPaused { require(isEnoughConfirmed(msg.data, 1)); paused = false; } modifier isPaused { require(paused == true); _; } modifier isNotPaused { require(paused == false); _; } modifier isManager { require(managers[msg.sender]); _; } modifier isMaster { require(msg.sender == master); _; } modifier isNotCoinbase { require(msg.sender != coinbase); _; } function managersCount() public view returns (uint) { return managerList.length; } function isAddressManager(address _to) public view returns (bool) { return managers[_to]; } function getMajorityThreshold() public view returns (uint) { return majorityThreshold; } event MajorityThresholdChanged(uint oldThreshold, uint newThreshold); event ReplaceManager(address oldAddr, address newAddr); event RemoveManager(address manager); event AddManager(address manager); function setMajorityThreshold(uint _threshold) public isMaster isNotPaused { require(_threshold > 0); require(isEnoughConfirmed(msg.data, managementThreshold)); uint oldThreshold = majorityThreshold; majorityThreshold = _threshold; removeConfirm(msg.data); emit MajorityThresholdChanged(oldThreshold, majorityThreshold); } function replaceManager(address _old, address _new) public isMaster isNotPaused { require(checkAddress(_old)); require(checkAddress(_new)); require(isEnoughConfirmed(msg.data, managementThreshold)); internalRemoveManager(_old); internalAddManager(_new); rebuildManagerList(); removeConfirm(msg.data); emit ReplaceManager(_old, _new); } function removeManager(address _manager) public isMaster isNotPaused { require(checkAddress(_manager)); require(isEnoughConfirmed(msg.data, managementThreshold)); require(managerList.length > managementThreshold); internalRemoveManager(_manager); rebuildManagerList(); removeConfirm(msg.data); emit RemoveManager(_manager); } function internalRemoveManager(address _manager) internal { require(checkAddress(_manager)); managers[_manager] = false; } function addManager(address _manager) public isMaster isNotPaused { require(checkAddress(_manager)); require(isEnoughConfirmed(msg.data, managementThreshold)); internalAddManager(_manager); rebuildManagerList(); removeConfirm(msg.data); emit AddManager(_manager); } function internalAddManager(address _manager) internal { require(checkAddress(_manager)); managers[_manager] = true; managerList.push(_manager); } mapping (address => bool) checked; function rebuildManagerList() internal { address[] memory res = new address[](managerList.length); for (uint k=0; k<managerList.length; k++) { checked[managerList[k]] = false; } uint j=0; for (uint i=0; i<managerList.length; i++) { address manager = managerList[i]; if (managers[manager] && checked[manager] == false) { res[j] = manager; checked[manager] = true; j++; } } managerList = res; managerList.length = j; } function checkData(bytes data) internal pure returns (bool) { return data.length != 0; } event Confirm(address manager, bytes data); event Revoke(address manager, bytes data); /* manager use this function to confirm a operation confirm will not be call inside other functions, so it can be external to save some gas @param {bytes} data is the transaction's raw input */ function confirm(bytes data) external isManager { checkData(data); bytes32 op = keccak256(data); if (confirms[op][msg.sender] == false) { confirms[op][msg.sender] = true; } emit Confirm(msg.sender, data); } /* manager use this function to revoke a confirm of the operation revoke will not be call inside other functions, so it can be external to save some gas @param {bytes} data is the transaction's raw input */ function revoke(bytes data) external isManager { checkData(data); bytes32 op = keccak256(data); if (confirms[op][msg.sender] == true) { confirms[op][msg.sender] = false; } emit Revoke(msg.sender, data); } /* check a operation is confirmed or not */ function isConfirmed(bytes data) public view isManager returns (bool) { bytes32 op = keccak256(data); return confirms[op][msg.sender]; } function isConfirmedBy(bytes data, address manager) public view returns (bool) { bytes32 op = keccak256(data); return confirms[op][manager]; } function isMajorityConfirmed(bytes data) public view returns (bool) { return isEnoughConfirmed(data, majorityThreshold); } function isEnoughConfirmed(bytes data, uint count) internal view returns (bool) { bytes32 op = keccak256(data); uint confirmsCount = 0; for (uint i=0; i<managerList.length; i++) { if (confirms[op][managerList[i]] == true) { confirmsCount = confirmsCount.add(1); } } return confirmsCount >= count; } /* once the operation is executed, the confirm of the operation should be removed */ function removeConfirm(bytes data) internal { bytes32 op = keccak256(data); for (uint i=0; i<managerList.length; i++) { confirms[op][managerList[i]] = false; } } /* sale coin with time locking only the manager can call this function and this operation should be confirmed */ function presaleVesting(address _to, uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) public isManager isNotPaused { checkAddress(_to); require(isMajorityConfirmed(msg.data)); internalPresaleVesting(_to, _startTime, _initReleaseAmount, _amount, _interval, _periods); removeConfirm(msg.data); } function batchPresaleVesting(address[] _to, uint256[] _startTime, uint256[] _initReleaseAmount, uint256[] _amount, uint256[] _interval, uint256[] _periods) public isManager isNotPaused { require(isMajorityConfirmed(msg.data)); for (uint i=0; i<_to.length; i++) { internalPresaleVesting(_to[i], _startTime[i], _initReleaseAmount[i], _amount[i], _interval[i], _periods[i]); } removeConfirm(msg.data); } function internalPresaleVesting(address _to, uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) internal { require(balances[coinbase] >= _amount); require(_initReleaseAmount <= _amount); require(checkAddress(_to)); vestings[_to].push(Vesting( _startTime, _initReleaseAmount, _amount, _interval, _periods, 0 )); balances[coinbase] = balances[coinbase].sub(_amount); emit PresaleVesting(_to, _startTime, _amount, _interval, _periods); } /* sale coin without time locking only the manager can call this function and this operation should be confirmed */ function presale(address _to, uint256 _value) public isManager isNotPaused { require(isMajorityConfirmed(msg.data)); internalPresale(_to, _value); removeConfirm(msg.data); } function batchPresale(address[] _to, uint256[] _amount) public isManager isNotPaused { require(isMajorityConfirmed(msg.data)); for (uint i=0; i<_to.length; i++) { internalPresale(_to[i], _amount[i]); } removeConfirm(msg.data); } function internalPresale(address _to, uint256 _value) internal { require(balances[coinbase] >= _value); require(checkAddress(_to)); balances[_to] = balances[_to].add(_value); balances[coinbase] = balances[coinbase].sub(_value); emit Presale(_to, _value); } /* events */ event Presale(address indexed to, uint256 value); event PresaleVesting(address indexed to, uint256 startTime, uint256 amount, uint256 interval, uint256 periods); /* math function used to calculate vesting curve */ function vestingFunc(uint256 _currentTime, uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) public pure returns (uint256) { if (_currentTime < _startTime) { return 0; } uint256 t = _currentTime.sub(_startTime); uint256 end = _periods.mul(_interval); if (t >= end) { return _amount; } uint256 i_amount = _amount.sub(_initReleaseAmount).div(_periods); uint256 i = t.div(_interval); return i_amount.mul(i).add(_initReleaseAmount); } function queryWithdrawed(uint _idx) public view returns (uint256) { return vestings[msg.sender][_idx].withdrawed; } function queryVestingRemain(uint256 _currentTime, uint _idx) public view returns (uint256) { uint256 released = vestingFunc( _currentTime, vestings[msg.sender][_idx].startTime, vestings[msg.sender][_idx].initReleaseAmount, vestings[msg.sender][_idx].amount, vestings[msg.sender][_idx].interval, vestings[msg.sender][_idx].periods ); return released.sub(vestings[msg.sender][_idx].withdrawed); } /* calculate the released amount of vesting coin it cannot be view, because this function relays on 'now' */ function vestingReleased(uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) internal view returns (uint256) { return vestingFunc(now, _startTime, _initReleaseAmount, _amount, _interval, _periods); } /* withdraw all released vesting coin to balance */ function withdrawVestings(address _to) internal { uint256 sum = 0; for (uint i=0; i<vestings[_to].length; i++) { if (vestings[_to][i].amount == vestings[_to][i].withdrawed) { continue; } uint256 released = vestingReleased( vestings[_to][i].startTime, vestings[_to][i].initReleaseAmount, vestings[_to][i].amount, vestings[_to][i].interval, vestings[_to][i].periods ); uint256 remain = released.sub(vestings[_to][i].withdrawed); if (remain >= 0) { vestings[_to][i].withdrawed = released; sum = sum.add(remain); } } balances[_to] = balances[_to].add(sum); } /* sum of all vestings balance (regardless of released or not) each vesting is amount - withdrawed */ function vestingsBalance(address _to) public view returns (uint256) { uint256 sum = 0; for (uint i=0; i<vestings[_to].length; i++) { sum = sum.add(vestings[_to][i].amount.sub(vestings[_to][i].withdrawed)); } return sum; } /* sum of all remaining vestings balance (only the released part) released - withdrawed */ function vestingsReleasedRemain(address _to) internal view returns (uint256) { uint256 sum = 0; for (uint i=0; i<vestings[_to].length; i++) { uint256 released = vestingReleased( vestings[_to][i].startTime, vestings[_to][i].initReleaseAmount, vestings[_to][i].amount, vestings[_to][i].interval, vestings[_to][i].periods ); sum = sum.add(released.sub(vestings[_to][i].withdrawed)); } return sum; } /* total balance sum of vestings balance (includes not released part) and unlocking coin balance */ function balanceOf(address _to) public view returns (uint256) { uint256 vbalance = vestingsBalance(_to); return vbalance.add(super.balanceOf(_to)); } /* sum of vestings balance and unlocking coin balance */ function vestingsRemainBalance(address _to) internal view returns (uint256) { return vestingsReleasedRemain(_to).add(super.balanceOf(_to)); } /* transfer <_value> coin from <msg.sender> to <_to> address 1. check remain balance 2. withdraw all vesting coin to balance 3. call original ERC20 transafer function */ function transfer(address _to, uint256 _value) public isNotCoinbase isNotPaused returns (bool) { checkAddress(_to); uint256 remain = vestingsRemainBalance(msg.sender); require(remain >= _value); withdrawVestings(msg.sender); return super.transfer(_to, _value); } /* transferFrom <_value> coin from <_from> to <_to> address 1. check remain balance 2. withdraw all vesting coin to balance 3. call original ERC20 transafer function */ function transferFrom(address _from, address _to, uint256 _value) public isNotPaused returns (bool) { checkAddress(_from); checkAddress(_to); uint256 remain = vestingsRemainBalance(_from); require(remain >= _value); withdrawVestings(_from); return super.transferFrom(_from, _to, _value); } /* approve <_value> coin from <_from> to <_to> address 1. check remain balance 2. withdraw all vesting coin to balance 3. call original ERC20 transafer function */ function approve(address _spender, uint256 _value) public isNotCoinbase isNotPaused returns (bool) { checkAddress(_spender); uint256 remain = vestingsRemainBalance(msg.sender); require(remain >= _value); withdrawVestings(msg.sender); return super.approve(_spender, _value); } function allowance(address _owner, address _spender) public view returns (uint256) { return super.allowance(_owner, _spender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_old","type":"address"},{"name":"_new","type":"address"}],"name":"replaceManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_currentTime","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_initReleaseAmount","type":"uint256"},{"name":"_amount","type":"uint256"},{"name":"_interval","type":"uint256"},{"name":"_periods","type":"uint256"}],"name":"vestingFunc","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"addManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenDecimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_threshold","type":"uint256"}],"name":"setMajorityThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_amount","type":"uint256[]"}],"name":"batchPresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_idx","type":"uint256"}],"name":"queryWithdrawed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"managersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_startTime","type":"uint256[]"},{"name":"_initReleaseAmount","type":"uint256[]"},{"name":"_amount","type":"uint256[]"},{"name":"_interval","type":"uint256[]"},{"name":"_periods","type":"uint256[]"}],"name":"batchPresaleVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSymbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"}],"name":"isAddressManager","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_startTime","type":"uint256"},{"name":"_initReleaseAmount","type":"uint256"},{"name":"_amount","type":"uint256"},{"name":"_interval","type":"uint256"},{"name":"_periods","type":"uint256"}],"name":"presaleVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"}],"name":"vestingsBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"data","type":"bytes"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"removeManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMajorityThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"data","type":"bytes"}],"name":"isMajorityConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_currentTime","type":"uint256"},{"name":"_idx","type":"uint256"}],"name":"queryVestingRemain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"confirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"presale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"data","type":"bytes"},{"name":"manager","type":"address"}],"name":"isConfirmedBy","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_master","type":"address"},{"name":"_managers","type":"address[]"},{"name":"_majorityThreshold","type":"uint256"},{"name":"_managementThreshold","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldThreshold","type":"uint256"},{"indexed":false,"name":"newThreshold","type":"uint256"}],"name":"MajorityThresholdChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldAddr","type":"address"},{"indexed":false,"name":"newAddr","type":"address"}],"name":"ReplaceManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"}],"name":"RemoveManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"}],"name":"AddManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Confirm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Revoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Presale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"startTime","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"interval","type":"uint256"},{"indexed":false,"name":"periods","type":"uint256"}],"name":"PresaleVesting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162002f2d38038062002f2d83398101604081815282516020808501518386015160608701518587018652600f87527f54696d652042616e6b20546f6b656e000000000000000000000000000000000084880190815286518088018852600381527f544254000000000000000000000000000000000000000000000000000000000081870152336000908152958690529685206b204fce5e3e250261100000009081905560058190558851969994909401979296919560129291620000dd91600291906200024f565b506003805460ff191660ff84161790558051620001029060049060208401906200024f565b5050505050620001218562000241640100000000026401000000009004565b15156200012d57600080fd5b83518311156200013c57600080fd5b83518211156200014b57600080fd5b50600d8054600160a060020a038616600160a860020a0319909116179055600c8054600160a060020a03191633179055600a829055600b81905560005b83518110156200022057620001c48482815181101515620001a557fe5b9060200190602002015162000241640100000000026401000000009004565b1515620001d057600080fd5b6001600860008684815181101515620001e557fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560010162000188565b835162000235906007906020870190620002d4565b50505050505062000381565b600160a060020a0316151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029257805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c2578251825591602001919060010190620002a5565b50620002d09291506200033a565b5090565b8280548282559060005260206000209081019282156200032c579160200282015b828111156200032c5782518254600160a060020a031916600160a060020a03909116178255602090920191600190910190620002f5565b50620002d09291506200035a565b6200035791905b80821115620002d0576000815560010162000341565b90565b6200035791905b80821115620002d0578054600160a060020a031916815560010162000361565b612b9c80620003916000396000f3006080604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301d8715f81146101dc578063046f7da21461020557806306fdde031461021a578063095ea7b3146102a45780630b467b9b146102dc57806318160ddd146102fc57806323b872dd14610323578063246275471461034d57806327e235e3146103745780632d06177a14610395578063313ce567146103b65780633b97e856146103e15780633d4ba37a146103f65780635a778cf91461040e5780635bfdab261461049c5780635c658165146104b45780635c975abb146104db5780636308ae65146104f05780636b5396dc146105055780636c02a9311461067757806370a082311461068c5780637b61c320146106ad5780637c2b606a146106c25780638456cb59146106e35780638d012295146106f857806395d89b4114610728578063a4bad0ae1461073d578063a9059cbb1461075e578063aa95484514610782578063ac18de43146107db578063b43716a0146107fc578063cb1e438914610811578063dd62ed3e1461086a578063eb1fa69014610891578063f2ddc772146108ac578063f7abab9e146108cc578063f8a34b26146108e1578063fafd6bcb14610905575b600080fd5b3480156101e857600080fd5b50610203600160a060020a0360043581169060243516610969565b005b34801561021157600080fd5b50610203610aa5565b34801561022657600080fd5b5061022f610b3f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610269578181015183820152602001610251565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b057600080fd5b506102c8600160a060020a0360043516602435610bd3565b604080519115158252519081900360200190f35b3480156102e857600080fd5b506102036004803560248101910135610c44565b34801561030857600080fd5b50610311610d65565b60408051918252519081900360200190f35b34801561032f57600080fd5b506102c8600160a060020a0360043581169060243516604435610d6b565b34801561035957600080fd5b5061031160043560243560443560643560843560a435610dd0565b34801561038057600080fd5b50610311600160a060020a0360043516610e81565b3480156103a157600080fd5b50610203600160a060020a0360043516610e93565b3480156103c257600080fd5b506103cb610fa8565b6040805160ff9092168252519081900360200190f35b3480156103ed57600080fd5b506103cb610fb1565b34801561040257600080fd5b50610203600435610fba565b34801561041a57600080fd5b506040805160206004803580820135838102808601850190965280855261020395369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506110c39650505050505050565b3480156104a857600080fd5b506103116004356111c9565b3480156104c057600080fd5b50610311600160a060020a03600435811690602435166111fd565b3480156104e757600080fd5b506102c861121a565b3480156104fc57600080fd5b5061031161122a565b34801561051157600080fd5b506040805160206004803580820135838102808601850190965280855261020395369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506112309650505050505050565b34801561068357600080fd5b5061022f61139a565b34801561069857600080fd5b50610311600160a060020a0360043516611425565b3480156106b957600080fd5b5061022f611453565b3480156106ce57600080fd5b506102c8600160a060020a03600435166114ae565b3480156106ef57600080fd5b506102036114cc565b34801561070457600080fd5b50610203600160a060020a036004351660243560443560643560843560a435611568565b34801561073457600080fd5b5061022f61163c565b34801561074957600080fd5b50610311600160a060020a036004351661169d565b34801561076a57600080fd5b506102c8600160a060020a0360043516602435611760565b34801561078e57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102c89436949293602493928401919081908401838280828437509497506117c99650505050505050565b3480156107e757600080fd5b50610203600160a060020a0360043516611865565b34801561080857600080fd5b5061031161198a565b34801561081d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102c89436949293602493928401919081908401838280828437509497506119909650505050505050565b34801561087657600080fd5b50610311600160a060020a03600435811690602435166119a4565b34801561089d57600080fd5b506103116004356024356119b0565b3480156108b857600080fd5b506102036004803560248101910135611ad7565b3480156108d857600080fd5b50610311611bf7565b3480156108ed57600080fd5b50610203600160a060020a0360043516602435611bfd565b34801561091157600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102c894369492936024939284019190819084018382808284375094975050509235600160a060020a03169350611cbf92505050565b600d54600160a060020a0316331461098057600080fd5b600d5460a060020a900460ff161561099757600080fd5b6109a082611d48565b15156109ab57600080fd5b6109b481611d48565b15156109bf57600080fd5b6109fd6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b1515610a0857600080fd5b610a1182611e48565b610a1a81611e7d565b610a22611f04565b610a5c6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b60408051600160a060020a0380851682528316602082015281517fd220e07888d0f77e9de72a8091a24508f2e353caeb84535ef03a5d51369ee93e929181900390910190a15050565b600d54600160a060020a03163314610abc57600080fd5b600d5460a060020a900460ff161515600114610ad757600080fd5b610b146000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375060019450611d569350505050565b1515610b1f57600080fd5b600d805474ff000000000000000000000000000000000000000019169055565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610bc85780601f10610b9d57610100808354040283529160200191610bc8565b820191906000526020600020905b815481529060010190602001808311610bab57829003601f168201915b505050505090505b90565b600c546000908190600160a060020a0316331415610bf057600080fd5b600d5460a060020a900460ff1615610c0757600080fd5b610c1084611d48565b50610c1a3361215c565b905082811015610c2957600080fd5b610c3233612173565b610c3c8484612416565b949350505050565b3360009081526008602052604081205460ff161515610c6257600080fd5b610c9b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375061247c945050505050565b5082826040518083838082843760408051919093018190039020600081815260096020908152848220338352905292909220549195505060ff161515600114159250610d069150505760008181526009602090815260408083203384529091529020805460ff191690555b6040805133808252602082018381529282018590527f29bae56ce9ae5ab0e825fdf15a46c9741be5c31407c09950829f7d12f73564ad9290918691869190606082018484808284376040519201829003965090945050505050a1505050565b60055490565b600d54600090819060a060020a900460ff1615610d8757600080fd5b610d9085611d48565b50610d9a84611d48565b50610da48561215c565b905082811015610db357600080fd5b610dbc85612173565b610dc7858585612482565b95945050505050565b6000806000806000898b1015610de95760009450610e73565b610df98b8b63ffffffff61258516565b9350610e0b868863ffffffff61259716565b9250828410610e1c57879450610e73565b610e3c86610e308a8c63ffffffff61258516565b9063ffffffff6125c016565b9150610e4e848863ffffffff6125c016565b9050610e7089610e64848463ffffffff61259716565b9063ffffffff6125d516565b94505b505050509695505050505050565b60006020819052908152604090205481565b600d54600160a060020a03163314610eaa57600080fd5b600d5460a060020a900460ff1615610ec157600080fd5b610eca81611d48565b1515610ed557600080fd5b610f136000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b1515610f1e57600080fd5b610f2781611e7d565b610f2f611f04565b610f696000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b60408051600160a060020a038316815290517f3630096a7f9a158ab9fae41e86bfe31fd2202585a26a9668242672566dae028d9181900360200190a150565b60035460ff1690565b60035460ff1681565b600d54600090600160a060020a03163314610fd457600080fd5b600d5460a060020a900460ff1615610feb57600080fd5b60008211610ff857600080fd5b6110366000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b151561104157600080fd5b50600a80549082905560408051602036601f8101829004820283018201909352828252611081926000918190840183828082843750612090945050505050565b600a5460408051838152602081019290925280517f54f7348cdd7784993530bea78eaac4850e302c25150d79711738c4b926161dda9281900390910190a15050565b3360009081526008602052604081205460ff1615156110e157600080fd5b600d5460a060020a900460ff16156110f857600080fd5b6111326000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b151561113d57600080fd5b5060005b825181101561118a57611182838281518110151561115b57fe5b90602001906020020151838381518110151561117357fe5b906020019060200201516125e2565b600101611141565b6111c46000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b505050565b3360009081526006602052604081208054839081106111e457fe5b9060005260206000209060060201600501549050919050565b600160209081526000928352604080842090915290825290205481565b600d5460a060020a900460ff1681565b60075490565b3360009081526008602052604081205460ff16151561124e57600080fd5b600d5460a060020a900460ff161561126557600080fd5b61129f6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b15156112aa57600080fd5b5060005b86518110156113575761134f87828151811015156112c857fe5b9060200190602002015187838151811015156112e057fe5b9060200190602002015187848151811015156112f857fe5b90602001906020020151878581518110151561131057fe5b90602001906020020151878681518110151561132857fe5b90602001906020020151878781518110151561134057fe5b906020019060200201516126d8565b6001016112ae565b6113916000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b50505050505050565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561141d5780601f106113f25761010080835404028352916020019161141d565b820191906000526020600020905b81548152906001019060200180831161140057829003601f168201915b505050505081565b6000806114318361169d565b905061144c61143f84612838565b829063ffffffff6125d516565b9392505050565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561141d5780601f106113f25761010080835404028352916020019161141d565b600160a060020a031660009081526008602052604090205460ff1690565b600d54600160a060020a031633146114e357600080fd5b600d5460a060020a900460ff16156114fa57600080fd5b6115376000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375060019450611d569350505050565b151561154257600080fd5b600d805474ff0000000000000000000000000000000000000000191660a060020a179055565b3360009081526008602052604090205460ff16151561158657600080fd5b600d5460a060020a900460ff161561159d57600080fd5b6115a686611d48565b506115e16000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b15156115ec57600080fd5b6115fa8686868686866126d8565b6116346000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b505050505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bc85780601f10610b9d57610100808354040283529160200191610bc8565b600080805b600160a060020a03841660009081526006602052604090205481101561175957600160a060020a0384166000908152600660205260409020805461174f9161174291849081106116ee57fe5b6000918252602080832060069283020160050154600160a060020a038a168452919052604090912080548590811061172257fe5b90600052602060002090600602016002015461258590919063ffffffff16565b839063ffffffff6125d516565b91506001016116a2565b5092915050565b600c546000908190600160a060020a031633141561177d57600080fd5b600d5460a060020a900460ff161561179457600080fd5b61179d84611d48565b506117a73361215c565b9050828110156117b657600080fd5b6117bf33612173565b610c3c8484612853565b33600090815260086020526040812054819060ff1615156117e957600080fd5b826040518082805190602001908083835b602083106118195780518252601f1990920191602091820191016117fa565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600090815260098252838120338252909152919091205460ff169695505050505050565b600d54600160a060020a0316331461187c57600080fd5b600d5460a060020a900460ff161561189357600080fd5b61189c81611d48565b15156118a757600080fd5b6118e56000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b15156118f057600080fd5b600b546007541161190057600080fd5b61190981611e48565b611911611f04565b61194b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b60408051600160a060020a038316815290517f1e25ed4cabec84d314dc176241019653f237da01f2bdd3a10cb0f38b33da67639181900360200190a150565b600a5490565b600061199e82600a54611d56565b92915050565b600061144c83836128db565b33600090815260066020526040812080548291611a9491869190869081106119d457fe5b600091825260208083206006928302015433845291905260409091208054879081106119fc57fe5b60009182526020808320600692830201600101543384529190526040909120805488908110611a2757fe5b60009182526020808320600692830201600201543384529190526040909120805489908110611a5257fe5b6000918252602080832060069283020160030154338452919052604090912080548a908110611a7d57fe5b906000526020600020906006020160040154610dd0565b3360009081526006602052604090208054919250610c3c9185908110611ab657fe5b9060005260206000209060060201600501548261258590919063ffffffff16565b3360009081526008602052604081205460ff161515611af557600080fd5b611b2e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375061247c945050505050565b5082826040518083838082843760408051919093018190039020600081815260096020908152848220338352905292909220549195505060ff1615159250611b989150505760008181526009602090815260408083203384529091529020805460ff191660011790555b6040805133808252602082018381529282018590527f38c05f29d828729711b9543dbd38ccdca2ad37ac7051ea119b9403c1dccb7fec9290918691869190606082018484808284376040519201829003965090945050505050a1505050565b60055481565b3360009081526008602052604090205460ff161515611c1b57600080fd5b600d5460a060020a900460ff1615611c3257600080fd5b611c6c6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b1515611c7757600080fd5b611c8182826125e2565b611cbb6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b5050565b600080836040518082805190602001908083835b60208310611cf25780518252601f199092019160209182019101611cd3565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600090815260098252838120600160a060020a03999099168152979052509094205460ff1695945050505050565b600160a060020a0316151590565b600080600080856040518082805190602001908083835b60208310611d8c5780518252601f199092019160209182019101611d6d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925060009150600090505b600754811015611e3b5760008381526009602052604081206007805491929184908110611ded57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16151560011415611e3357611e3082600163ffffffff6125d516565b91505b600101611dc4565b5092909210159392505050565b611e5181611d48565b1515611e5c57600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b611e8681611d48565b1515611e9157600080fd5b600160a060020a03166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b6060600080600080600780549050604051908082528060200260200182016040528015611f3b578160200160208202803883390190505b509450600093505b600754841015611fa2576000600e6000600787815481101515611f6257fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff191691151591909117905560019390930192611f43565b60009250600091505b600754821015612070576007805483908110611fc357fe5b6000918252602080832090910154600160a060020a0316808352600890915260409091205490915060ff1680156120135750600160a060020a0381166000908152600e602052604090205460ff16155b156120655780858481518110151561202757fe5b600160a060020a0392831660209182029092018101919091529082166000908152600e90915260409020805460ff1916600190811790915592909201915b600190910190611fab565b8451612083906007906020880190612a8f565b5082611634600782612b01565b600080826040518082805190602001908083835b602083106120c35780518252601f1990920191602091820191016120a4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b6007548110156111c4576000828152600960205260408120600780548391908590811061212057fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556001016120f7565b600061199e61216a83612838565b610e6484612906565b60008080805b600160a060020a0385166000908152600660205260409020548310156123ca57600160a060020a03851660009081526006602052604090208054849081106121bd57fe5b6000918252602080832060069283020160050154600160a060020a038916845291905260409091208054859081106121f157fe5b906000526020600020906006020160020154141561220e576123bf565b600160a060020a0385166000908152600660205260409020805461231b91908590811061223757fe5b6000918252602080832060069283020154600160a060020a038a168452919052604090912080548690811061226857fe5b6000918252602080832060069283020160010154600160a060020a038b168452919052604090912080548790811061229c57fe5b6000918252602080832060069283020160020154600160a060020a038c16845291905260409091208054889081106122d057fe5b6000918252602080832060069283020160030154600160a060020a038d168452919052604090912080548990811061230457fe5b906000526020600020906006020160040154612a75565b600160a060020a03861660009081526006602052604090208054919350612367918590811061234657fe5b9060005260206000209060060201600501548361258590919063ffffffff16565b9050600081106123bf57600160a060020a038516600090815260066020526040902080548391908590811061239857fe5b60009182526020909120600560069092020101556123bc848263ffffffff6125d516565b93505b600190920191612179565b600160a060020a0385166000908152602081905260409020546123f3908563ffffffff6125d516565b600160a060020a0390951660009081526020819052604090209490945550505050565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b51151590565b600160a060020a03831660008181526001602090815260408083203384528252808320549383529082905281205490919083118015906124c25750828110155b15156124cd57600080fd5b600160a060020a038085166000908152602081905260408082208054870190559187168152208054849003905560001981101561252f57600160a060020a03851660009081526001602090815260408083203384529091529020805484900390555b83600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b60008282111561259157fe5b50900390565b60008215156125a85750600061199e565b508181028183828115156125b857fe5b041461199e57fe5b600081838115156125cd57fe5b049392505050565b8181018281101561199e57fe5b600c54600160a060020a031660009081526020819052604090205481111561260957600080fd5b61261282611d48565b151561261d57600080fd5b600160a060020a038216600090815260208190526040902054612646908263ffffffff6125d516565b600160a060020a0380841660009081526020819052604080822093909355600c549091168152205461267e908263ffffffff61258516565b600c54600160a060020a03908116600090815260208181526040918290209390935580518481529051918516927f10fcc92ce3ae296b6d2813de054ab2cf2d6dd59a1eed235681bc8bf6c36a5cb792918290030190a25050565b600c54600160a060020a03166000908152602081905260409020548311156126ff57600080fd5b8284111561270c57600080fd5b61271586611d48565b151561272057600080fd5b600160a060020a038087166000908152600660208181526040808420815160c0810183528b81528084018b81528184018b8152606083018b8152608084018b815260a085018a8152865460018181018955978c52898c2096519a02909501988955925194880194909455516002870155915160038601559051600485015551600590930192909255600c5490931682529181905220546127c6908463ffffffff61258516565b600c54600160a060020a03908116600090815260208181526040918290209390935580518881529283018690528281018590526060830184905251908816917f2d4afe38387afa0f5d58486162a04c4e854134e75bf89e68f2a4ad38894dedac919081900360800190a2505050505050565b600160a060020a031660009081526020819052604090205490565b3360009081526020819052604081205482111561286f57600080fd5b3360008181526020818152604080832080548790039055600160a060020a03871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60008080805b600160a060020a038516600090815260066020526040902054821015612a6c57600160a060020a03851660009081526006602052604090208054612a2291908490811061295557fe5b6000918252602080832060069283020154600160a060020a038a168452919052604090912080548590811061298657fe5b6000918252602080832060069283020160010154600160a060020a038b16845291905260409091208054869081106129ba57fe5b6000918252602080832060069283020160020154600160a060020a038c16845291905260409091208054879081106129ee57fe5b6000918252602080832060069283020160030154600160a060020a038d168452919052604090912080548890811061230457fe5b600160a060020a03861660009081526006602052604090208054919250612a5f91612a5291908590811061234657fe5b849063ffffffff6125d516565b925060019091019061290c565b50909392505050565b6000612a85428787878787610dd0565b9695505050505050565b828054828255906000526020600020908101928215612af1579160200282015b82811115612af1578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909116178255602090920191600190910190612aaf565b50612afd929150612b25565b5090565b8154818355818111156111c4576000838152602090206111c4918101908301612b56565b610bd091905b80821115612afd57805473ffffffffffffffffffffffffffffffffffffffff19168155600101612b2b565b610bd091905b80821115612afd5760008155600101612b5c5600a165627a7a72305820f5c9c277aa2e9e5056ad7f187a7c516ffafff2e69be67bdb32c08cba0ecfc2b80029000000000000000000000000a5ae2048af02cde6720b30b7ac17c9cb26092eb20000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b6e44f6e5551718d1fd2adaf8a210fc4fd8e74f0000000000000000000000000b8da7ec01033007ab396d27b45253882484f93fa000000000000000000000000f28f8eb05252bc1e2a689cb8db9ee7aff5c8310c0000000000000000000000009fec6f021616e4fddd65d03faa6da1bbde9029c5
Deployed Bytecode
0x6080604052600436106101d75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301d8715f81146101dc578063046f7da21461020557806306fdde031461021a578063095ea7b3146102a45780630b467b9b146102dc57806318160ddd146102fc57806323b872dd14610323578063246275471461034d57806327e235e3146103745780632d06177a14610395578063313ce567146103b65780633b97e856146103e15780633d4ba37a146103f65780635a778cf91461040e5780635bfdab261461049c5780635c658165146104b45780635c975abb146104db5780636308ae65146104f05780636b5396dc146105055780636c02a9311461067757806370a082311461068c5780637b61c320146106ad5780637c2b606a146106c25780638456cb59146106e35780638d012295146106f857806395d89b4114610728578063a4bad0ae1461073d578063a9059cbb1461075e578063aa95484514610782578063ac18de43146107db578063b43716a0146107fc578063cb1e438914610811578063dd62ed3e1461086a578063eb1fa69014610891578063f2ddc772146108ac578063f7abab9e146108cc578063f8a34b26146108e1578063fafd6bcb14610905575b600080fd5b3480156101e857600080fd5b50610203600160a060020a0360043581169060243516610969565b005b34801561021157600080fd5b50610203610aa5565b34801561022657600080fd5b5061022f610b3f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610269578181015183820152602001610251565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b057600080fd5b506102c8600160a060020a0360043516602435610bd3565b604080519115158252519081900360200190f35b3480156102e857600080fd5b506102036004803560248101910135610c44565b34801561030857600080fd5b50610311610d65565b60408051918252519081900360200190f35b34801561032f57600080fd5b506102c8600160a060020a0360043581169060243516604435610d6b565b34801561035957600080fd5b5061031160043560243560443560643560843560a435610dd0565b34801561038057600080fd5b50610311600160a060020a0360043516610e81565b3480156103a157600080fd5b50610203600160a060020a0360043516610e93565b3480156103c257600080fd5b506103cb610fa8565b6040805160ff9092168252519081900360200190f35b3480156103ed57600080fd5b506103cb610fb1565b34801561040257600080fd5b50610203600435610fba565b34801561041a57600080fd5b506040805160206004803580820135838102808601850190965280855261020395369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506110c39650505050505050565b3480156104a857600080fd5b506103116004356111c9565b3480156104c057600080fd5b50610311600160a060020a03600435811690602435166111fd565b3480156104e757600080fd5b506102c861121a565b3480156104fc57600080fd5b5061031161122a565b34801561051157600080fd5b506040805160206004803580820135838102808601850190965280855261020395369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506112309650505050505050565b34801561068357600080fd5b5061022f61139a565b34801561069857600080fd5b50610311600160a060020a0360043516611425565b3480156106b957600080fd5b5061022f611453565b3480156106ce57600080fd5b506102c8600160a060020a03600435166114ae565b3480156106ef57600080fd5b506102036114cc565b34801561070457600080fd5b50610203600160a060020a036004351660243560443560643560843560a435611568565b34801561073457600080fd5b5061022f61163c565b34801561074957600080fd5b50610311600160a060020a036004351661169d565b34801561076a57600080fd5b506102c8600160a060020a0360043516602435611760565b34801561078e57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102c89436949293602493928401919081908401838280828437509497506117c99650505050505050565b3480156107e757600080fd5b50610203600160a060020a0360043516611865565b34801561080857600080fd5b5061031161198a565b34801561081d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102c89436949293602493928401919081908401838280828437509497506119909650505050505050565b34801561087657600080fd5b50610311600160a060020a03600435811690602435166119a4565b34801561089d57600080fd5b506103116004356024356119b0565b3480156108b857600080fd5b506102036004803560248101910135611ad7565b3480156108d857600080fd5b50610311611bf7565b3480156108ed57600080fd5b50610203600160a060020a0360043516602435611bfd565b34801561091157600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102c894369492936024939284019190819084018382808284375094975050509235600160a060020a03169350611cbf92505050565b600d54600160a060020a0316331461098057600080fd5b600d5460a060020a900460ff161561099757600080fd5b6109a082611d48565b15156109ab57600080fd5b6109b481611d48565b15156109bf57600080fd5b6109fd6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b1515610a0857600080fd5b610a1182611e48565b610a1a81611e7d565b610a22611f04565b610a5c6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b60408051600160a060020a0380851682528316602082015281517fd220e07888d0f77e9de72a8091a24508f2e353caeb84535ef03a5d51369ee93e929181900390910190a15050565b600d54600160a060020a03163314610abc57600080fd5b600d5460a060020a900460ff161515600114610ad757600080fd5b610b146000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375060019450611d569350505050565b1515610b1f57600080fd5b600d805474ff000000000000000000000000000000000000000019169055565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610bc85780601f10610b9d57610100808354040283529160200191610bc8565b820191906000526020600020905b815481529060010190602001808311610bab57829003601f168201915b505050505090505b90565b600c546000908190600160a060020a0316331415610bf057600080fd5b600d5460a060020a900460ff1615610c0757600080fd5b610c1084611d48565b50610c1a3361215c565b905082811015610c2957600080fd5b610c3233612173565b610c3c8484612416565b949350505050565b3360009081526008602052604081205460ff161515610c6257600080fd5b610c9b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375061247c945050505050565b5082826040518083838082843760408051919093018190039020600081815260096020908152848220338352905292909220549195505060ff161515600114159250610d069150505760008181526009602090815260408083203384529091529020805460ff191690555b6040805133808252602082018381529282018590527f29bae56ce9ae5ab0e825fdf15a46c9741be5c31407c09950829f7d12f73564ad9290918691869190606082018484808284376040519201829003965090945050505050a1505050565b60055490565b600d54600090819060a060020a900460ff1615610d8757600080fd5b610d9085611d48565b50610d9a84611d48565b50610da48561215c565b905082811015610db357600080fd5b610dbc85612173565b610dc7858585612482565b95945050505050565b6000806000806000898b1015610de95760009450610e73565b610df98b8b63ffffffff61258516565b9350610e0b868863ffffffff61259716565b9250828410610e1c57879450610e73565b610e3c86610e308a8c63ffffffff61258516565b9063ffffffff6125c016565b9150610e4e848863ffffffff6125c016565b9050610e7089610e64848463ffffffff61259716565b9063ffffffff6125d516565b94505b505050509695505050505050565b60006020819052908152604090205481565b600d54600160a060020a03163314610eaa57600080fd5b600d5460a060020a900460ff1615610ec157600080fd5b610eca81611d48565b1515610ed557600080fd5b610f136000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b1515610f1e57600080fd5b610f2781611e7d565b610f2f611f04565b610f696000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b60408051600160a060020a038316815290517f3630096a7f9a158ab9fae41e86bfe31fd2202585a26a9668242672566dae028d9181900360200190a150565b60035460ff1690565b60035460ff1681565b600d54600090600160a060020a03163314610fd457600080fd5b600d5460a060020a900460ff1615610feb57600080fd5b60008211610ff857600080fd5b6110366000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b151561104157600080fd5b50600a80549082905560408051602036601f8101829004820283018201909352828252611081926000918190840183828082843750612090945050505050565b600a5460408051838152602081019290925280517f54f7348cdd7784993530bea78eaac4850e302c25150d79711738c4b926161dda9281900390910190a15050565b3360009081526008602052604081205460ff1615156110e157600080fd5b600d5460a060020a900460ff16156110f857600080fd5b6111326000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b151561113d57600080fd5b5060005b825181101561118a57611182838281518110151561115b57fe5b90602001906020020151838381518110151561117357fe5b906020019060200201516125e2565b600101611141565b6111c46000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b505050565b3360009081526006602052604081208054839081106111e457fe5b9060005260206000209060060201600501549050919050565b600160209081526000928352604080842090915290825290205481565b600d5460a060020a900460ff1681565b60075490565b3360009081526008602052604081205460ff16151561124e57600080fd5b600d5460a060020a900460ff161561126557600080fd5b61129f6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b15156112aa57600080fd5b5060005b86518110156113575761134f87828151811015156112c857fe5b9060200190602002015187838151811015156112e057fe5b9060200190602002015187848151811015156112f857fe5b90602001906020020151878581518110151561131057fe5b90602001906020020151878681518110151561132857fe5b90602001906020020151878781518110151561134057fe5b906020019060200201516126d8565b6001016112ae565b6113916000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b50505050505050565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561141d5780601f106113f25761010080835404028352916020019161141d565b820191906000526020600020905b81548152906001019060200180831161140057829003601f168201915b505050505081565b6000806114318361169d565b905061144c61143f84612838565b829063ffffffff6125d516565b9392505050565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561141d5780601f106113f25761010080835404028352916020019161141d565b600160a060020a031660009081526008602052604090205460ff1690565b600d54600160a060020a031633146114e357600080fd5b600d5460a060020a900460ff16156114fa57600080fd5b6115376000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375060019450611d569350505050565b151561154257600080fd5b600d805474ff0000000000000000000000000000000000000000191660a060020a179055565b3360009081526008602052604090205460ff16151561158657600080fd5b600d5460a060020a900460ff161561159d57600080fd5b6115a686611d48565b506115e16000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b15156115ec57600080fd5b6115fa8686868686866126d8565b6116346000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b505050505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bc85780601f10610b9d57610100808354040283529160200191610bc8565b600080805b600160a060020a03841660009081526006602052604090205481101561175957600160a060020a0384166000908152600660205260409020805461174f9161174291849081106116ee57fe5b6000918252602080832060069283020160050154600160a060020a038a168452919052604090912080548590811061172257fe5b90600052602060002090600602016002015461258590919063ffffffff16565b839063ffffffff6125d516565b91506001016116a2565b5092915050565b600c546000908190600160a060020a031633141561177d57600080fd5b600d5460a060020a900460ff161561179457600080fd5b61179d84611d48565b506117a73361215c565b9050828110156117b657600080fd5b6117bf33612173565b610c3c8484612853565b33600090815260086020526040812054819060ff1615156117e957600080fd5b826040518082805190602001908083835b602083106118195780518252601f1990920191602091820191016117fa565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600090815260098252838120338252909152919091205460ff169695505050505050565b600d54600160a060020a0316331461187c57600080fd5b600d5460a060020a900460ff161561189357600080fd5b61189c81611d48565b15156118a757600080fd5b6118e56000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600b549350611d5692505050565b15156118f057600080fd5b600b546007541161190057600080fd5b61190981611e48565b611911611f04565b61194b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b60408051600160a060020a038316815290517f1e25ed4cabec84d314dc176241019653f237da01f2bdd3a10cb0f38b33da67639181900360200190a150565b600a5490565b600061199e82600a54611d56565b92915050565b600061144c83836128db565b33600090815260066020526040812080548291611a9491869190869081106119d457fe5b600091825260208083206006928302015433845291905260409091208054879081106119fc57fe5b60009182526020808320600692830201600101543384529190526040909120805488908110611a2757fe5b60009182526020808320600692830201600201543384529190526040909120805489908110611a5257fe5b6000918252602080832060069283020160030154338452919052604090912080548a908110611a7d57fe5b906000526020600020906006020160040154610dd0565b3360009081526006602052604090208054919250610c3c9185908110611ab657fe5b9060005260206000209060060201600501548261258590919063ffffffff16565b3360009081526008602052604081205460ff161515611af557600080fd5b611b2e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375061247c945050505050565b5082826040518083838082843760408051919093018190039020600081815260096020908152848220338352905292909220549195505060ff1615159250611b989150505760008181526009602090815260408083203384529091529020805460ff191660011790555b6040805133808252602082018381529282018590527f38c05f29d828729711b9543dbd38ccdca2ad37ac7051ea119b9403c1dccb7fec9290918691869190606082018484808284376040519201829003965090945050505050a1505050565b60055481565b3360009081526008602052604090205460ff161515611c1b57600080fd5b600d5460a060020a900460ff1615611c3257600080fd5b611c6c6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750611990945050505050565b1515611c7757600080fd5b611c8182826125e2565b611cbb6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750612090945050505050565b5050565b600080836040518082805190602001908083835b60208310611cf25780518252601f199092019160209182019101611cd3565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600090815260098252838120600160a060020a03999099168152979052509094205460ff1695945050505050565b600160a060020a0316151590565b600080600080856040518082805190602001908083835b60208310611d8c5780518252601f199092019160209182019101611d6d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925060009150600090505b600754811015611e3b5760008381526009602052604081206007805491929184908110611ded57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16151560011415611e3357611e3082600163ffffffff6125d516565b91505b600101611dc4565b5092909210159392505050565b611e5181611d48565b1515611e5c57600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b611e8681611d48565b1515611e9157600080fd5b600160a060020a03166000818152600860205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b6060600080600080600780549050604051908082528060200260200182016040528015611f3b578160200160208202803883390190505b509450600093505b600754841015611fa2576000600e6000600787815481101515611f6257fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff191691151591909117905560019390930192611f43565b60009250600091505b600754821015612070576007805483908110611fc357fe5b6000918252602080832090910154600160a060020a0316808352600890915260409091205490915060ff1680156120135750600160a060020a0381166000908152600e602052604090205460ff16155b156120655780858481518110151561202757fe5b600160a060020a0392831660209182029092018101919091529082166000908152600e90915260409020805460ff1916600190811790915592909201915b600190910190611fab565b8451612083906007906020880190612a8f565b5082611634600782612b01565b600080826040518082805190602001908083835b602083106120c35780518252601f1990920191602091820191016120a4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b6007548110156111c4576000828152600960205260408120600780548391908590811061212057fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556001016120f7565b600061199e61216a83612838565b610e6484612906565b60008080805b600160a060020a0385166000908152600660205260409020548310156123ca57600160a060020a03851660009081526006602052604090208054849081106121bd57fe5b6000918252602080832060069283020160050154600160a060020a038916845291905260409091208054859081106121f157fe5b906000526020600020906006020160020154141561220e576123bf565b600160a060020a0385166000908152600660205260409020805461231b91908590811061223757fe5b6000918252602080832060069283020154600160a060020a038a168452919052604090912080548690811061226857fe5b6000918252602080832060069283020160010154600160a060020a038b168452919052604090912080548790811061229c57fe5b6000918252602080832060069283020160020154600160a060020a038c16845291905260409091208054889081106122d057fe5b6000918252602080832060069283020160030154600160a060020a038d168452919052604090912080548990811061230457fe5b906000526020600020906006020160040154612a75565b600160a060020a03861660009081526006602052604090208054919350612367918590811061234657fe5b9060005260206000209060060201600501548361258590919063ffffffff16565b9050600081106123bf57600160a060020a038516600090815260066020526040902080548391908590811061239857fe5b60009182526020909120600560069092020101556123bc848263ffffffff6125d516565b93505b600190920191612179565b600160a060020a0385166000908152602081905260409020546123f3908563ffffffff6125d516565b600160a060020a0390951660009081526020819052604090209490945550505050565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b51151590565b600160a060020a03831660008181526001602090815260408083203384528252808320549383529082905281205490919083118015906124c25750828110155b15156124cd57600080fd5b600160a060020a038085166000908152602081905260408082208054870190559187168152208054849003905560001981101561252f57600160a060020a03851660009081526001602090815260408083203384529091529020805484900390555b83600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b60008282111561259157fe5b50900390565b60008215156125a85750600061199e565b508181028183828115156125b857fe5b041461199e57fe5b600081838115156125cd57fe5b049392505050565b8181018281101561199e57fe5b600c54600160a060020a031660009081526020819052604090205481111561260957600080fd5b61261282611d48565b151561261d57600080fd5b600160a060020a038216600090815260208190526040902054612646908263ffffffff6125d516565b600160a060020a0380841660009081526020819052604080822093909355600c549091168152205461267e908263ffffffff61258516565b600c54600160a060020a03908116600090815260208181526040918290209390935580518481529051918516927f10fcc92ce3ae296b6d2813de054ab2cf2d6dd59a1eed235681bc8bf6c36a5cb792918290030190a25050565b600c54600160a060020a03166000908152602081905260409020548311156126ff57600080fd5b8284111561270c57600080fd5b61271586611d48565b151561272057600080fd5b600160a060020a038087166000908152600660208181526040808420815160c0810183528b81528084018b81528184018b8152606083018b8152608084018b815260a085018a8152865460018181018955978c52898c2096519a02909501988955925194880194909455516002870155915160038601559051600485015551600590930192909255600c5490931682529181905220546127c6908463ffffffff61258516565b600c54600160a060020a03908116600090815260208181526040918290209390935580518881529283018690528281018590526060830184905251908816917f2d4afe38387afa0f5d58486162a04c4e854134e75bf89e68f2a4ad38894dedac919081900360800190a2505050505050565b600160a060020a031660009081526020819052604090205490565b3360009081526020819052604081205482111561286f57600080fd5b3360008181526020818152604080832080548790039055600160a060020a03871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60008080805b600160a060020a038516600090815260066020526040902054821015612a6c57600160a060020a03851660009081526006602052604090208054612a2291908490811061295557fe5b6000918252602080832060069283020154600160a060020a038a168452919052604090912080548590811061298657fe5b6000918252602080832060069283020160010154600160a060020a038b16845291905260409091208054869081106129ba57fe5b6000918252602080832060069283020160020154600160a060020a038c16845291905260409091208054879081106129ee57fe5b6000918252602080832060069283020160030154600160a060020a038d168452919052604090912080548890811061230457fe5b600160a060020a03861660009081526006602052604090208054919250612a5f91612a5291908590811061234657fe5b849063ffffffff6125d516565b925060019091019061290c565b50909392505050565b6000612a85428787878787610dd0565b9695505050505050565b828054828255906000526020600020908101928215612af1579160200282015b82811115612af1578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909116178255602090920191600190910190612aaf565b50612afd929150612b25565b5090565b8154818355818111156111c4576000838152602090206111c4918101908301612b56565b610bd091905b80821115612afd57805473ffffffffffffffffffffffffffffffffffffffff19168155600101612b2b565b610bd091905b80821115612afd5760008155600101612b5c5600a165627a7a72305820f5c9c277aa2e9e5056ad7f187a7c516ffafff2e69be67bdb32c08cba0ecfc2b80029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a5ae2048af02cde6720b30b7ac17c9cb26092eb20000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b6e44f6e5551718d1fd2adaf8a210fc4fd8e74f0000000000000000000000000b8da7ec01033007ab396d27b45253882484f93fa000000000000000000000000f28f8eb05252bc1e2a689cb8db9ee7aff5c8310c0000000000000000000000009fec6f021616e4fddd65d03faa6da1bbde9029c5
-----Decoded View---------------
Arg [0] : _master (address): 0xa5aE2048Af02CDE6720b30B7aC17C9cb26092eB2
Arg [1] : _managers (address[]): 0xB6e44f6E5551718D1fd2AdAf8a210Fc4Fd8E74F0,0xB8DA7ec01033007ab396d27b45253882484F93fa,0xF28f8EB05252bc1E2A689CB8dB9eE7AFf5c8310c,0x9fEc6F021616e4FDDd65d03fAA6da1BBde9029C5
Arg [2] : _majorityThreshold (uint256): 3
Arg [3] : _managementThreshold (uint256): 1
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 000000000000000000000000a5ae2048af02cde6720b30b7ac17c9cb26092eb2
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 000000000000000000000000b6e44f6e5551718d1fd2adaf8a210fc4fd8e74f0
Arg [6] : 000000000000000000000000b8da7ec01033007ab396d27b45253882484f93fa
Arg [7] : 000000000000000000000000f28f8eb05252bc1e2a689cb8db9ee7aff5c8310c
Arg [8] : 0000000000000000000000009fec6f021616e4fddd65d03faa6da1bbde9029c5
Swarm Source
bzzr://f5c9c277aa2e9e5056ad7f187a7c516ffafff2e69be67bdb32c08cba0ecfc2b8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.