false
true
0

Contract Address Details

0x005685a5a1889FC7BFc3e9c11657703A67fB663B

Contract Name
CoretoStaking
Creator
0x43a358–026745 at 0x72cd07–97a8ae
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
26348986
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify. View contract in Sourcify repository
Contract name:
CoretoStaking




Optimization enabled
true
Compiler version
v0.4.26+commit.4563c3fc




Optimization runs
200
EVM Version
byzantium




Verified at
2026-04-22T03:09:29.216559Z

CoretoStaking.sol

pragma solidity ^0.4.24;

/**
 * @title SafeMath
 * @dev   Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256){
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b,"Calculation error in multiplication");
        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256){
        // Solidity only automatically asserts when dividing by 0
        require(b > 0,"Calculation error in division");
        uint256 c = a / b;
        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256){
        require(b <= a,"Calculation error in subtraction");
        uint256 c = a - b;
        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256){
        uint256 c = a + b;
        require(c >= a,"Calculation error in addition");
        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256){
        require(b != 0,"Calculation error");
        return a % b;
    }
}

/**
 * @title IToken
 * @dev   Contract interface for token contract 
 */
contract IToken {
    function totalSupply() public pure returns (uint256);
    function balanceOf(address) public pure returns (uint256);
    function allowance(address, address) public pure returns (uint256);
    function transfer(address, uint256) public pure returns (bool);
    function transferFrom(address, address, uint256) public pure returns (bool);
    function approve(address, uint256) public pure returns (bool);
 }

 /**
 * @title CoretoStaking
 * @dev   Staking Contract for token staking
 */
contract CoretoStaking {
    
  using SafeMath for uint256;
  address private _owner;                                                      // variable for Owner of the Contract.
  uint256 private _withdrawTime;                                               // variable to manage withdraw time for token
  uint256 constant public PERIOD_SERENITY                     = 90;            // variable constant for time period management for serenity pool
  uint256 constant public PERIOD_EQUILIBRIUM                  = 180;           // variable constant for time period management for equilibrium pool
  uint256 constant public PERIOD_TRANQUILLITY                 = 270;           // variable constant for time period management for tranquillity pool
  uint256 constant public WITHDRAW_TIME_SERENITY              = 45 * 1 days;   // variable constant to manage withdraw time lock up for serenity
  uint256 constant public WITHDRAW_TIME_EQUILIBRIUM           = 90 * 1 days;   // variable constant to manage withdraw time lock up for equilibrium
  uint256 constant public WITHDRAW_TIME_TRANQUILLITY          = 135 * 1 days;  // variable constant to manage withdraw time lock up for tranquillity
  uint256 constant public TOKEN_REWARD_PERCENT_SERENITY       = 3555807;       // variable constant to manage token reward percentage for serenity
  uint256 constant public TOKEN_REWARD_PERCENT_EQUILIBRIUM    = 10905365;      // variable constant to manage token reward percentage for equilibrium
  uint256 constant public TOKEN_REWARD_PERCENT_TRANQUILLITY   = 26010053;      // variable constant to manage token reward percentage for tranquillity
  uint256 constant public TOKEN_PENALTY_PERCENT_SERENITY      = 2411368;       // variable constant to manage token penalty percentage for serenity
  uint256 constant public TOKEN_PENALTY_PERCENT_EQUILIBRIUM   = 7238052;       // variable constant to manage token penalty percentage for equilibrium
  uint256 constant public TOKEN_PENALTY_PERCENT_TRANQUILLITY  = 14692434;      // variable constant to manage token penalty percentage for tranquillity
  uint256 constant public TOKEN_POOL_CAP              = 25000000*(10**18);     // variable constant to store maximaum pool cap value
  
  // events to handle staking pause or unpause for token
  event Paused();
  event Unpaused();
  
  /*
  * ---------------------------------------------------------------------------------------------------------------------------
  * Functions for owner.
  * ---------------------------------------------------------------------------------------------------------------------------
  */

   /**
   * @dev get address of smart contract owner
   * @return address of owner
   */
   function getowner() public view returns (address) {
     return _owner;
   }

   /**
   * @dev modifier to check if the message sender is owner
   */
   modifier onlyOwner() {
     require(isOwner(),"You are not authenticate to make this transfer");
     _;
   }

   /**
   * @dev Internal function for modifier
   */
   function isOwner() internal view returns (bool) {
      return msg.sender == _owner;
   }

   /**
   * @dev Transfer ownership of the smart contract. For owner only
   * @return request status
   */
   function transferOwnership(address newOwner) public onlyOwner returns (bool){
      _owner = newOwner;
      return true;
   }
   
  /*
  * ---------------------------------------------------------------------------------------------------------------------------
  * Functionality of Constructor and Interface  
  * ---------------------------------------------------------------------------------------------------------------------------
  */
  
  // constructor to declare owner of the contract during time of deploy  
  constructor() public {
     _owner = msg.sender;
  }
  
  // Interface declaration for contract
  IToken itoken;
    
  // function to set Contract Address for Token Functions
  function setContractAddress(address tokenContractAddress) external onlyOwner returns(bool){
    itoken = IToken(tokenContractAddress);
    return true;
  }
  
   /*
  * ----------------------------------------------------------------------------------------------------------------------------
  * Owner functions of get value, set value and other Functionality
  * ----------------------------------------------------------------------------------------------------------------------------
  */
  
  // function to add token reward in contract
  function addTokenReward(uint256 token) external onlyOwner returns(bool){
    _ownerTokenAllowance = _ownerTokenAllowance.add(token);
    itoken.transferFrom(msg.sender, address(this), token);
    return true;
  }
  
  // function to withdraw added token reward in contract
  function withdrawAddedTokenReward(uint256 token) external onlyOwner returns(bool){
    require(token < _ownerTokenAllowance,"Value is not feasible, Please Try Again!!!");
    _ownerTokenAllowance = _ownerTokenAllowance.sub(token);
    itoken.transfer(msg.sender, token);
    return true;
  }
  
  // function to get token reward in contract
  function getTokenReward() public view returns(uint256){
    return _ownerTokenAllowance;
  }
  
  // function to pause Token Staking
  function pauseTokenStaking() public onlyOwner {
    tokenPaused = true;
    emit Paused();
  }

  // function to unpause Token Staking
  function unpauseTokenStaking() public onlyOwner {
    tokenPaused = false;
    emit Unpaused();
  }

  /*
  * ----------------------------------------------------------------------------------------------------------------------------
  * Variable, Mapping for Token Staking Functionality
  * ----------------------------------------------------------------------------------------------------------------------------
  */
  
  // mapping for users with id => address Staking Address
  mapping (uint256 => address) private _tokenStakingAddress;
  
  // mapping for users with address => id staking id
  mapping (address => uint256[]) private _tokenStakingId;

  // mapping for users with id => Staking Time
  mapping (uint256 => uint256) private _tokenStakingStartTime;
  
  // mapping for users with id => End Time
  mapping (uint256 => uint256) private _tokenStakingEndTime;

  // mapping for users with id => Tokens 
  mapping (uint256 => uint256) private _usersTokens;
  
  // mapping for users with id => Status
  mapping (uint256 => bool) private _TokenTransactionstatus;    
  
  // mapping to keep track of final withdraw value of staked token
  mapping(uint256=>uint256) private _finalTokenStakeWithdraw;
  
  // mapping to keep track total number of staking days
  mapping(uint256=>uint256) private _tokenTotalDays;
  
  // variable to keep count of Token Staking
  uint256 private _tokenStakingCount = 0;
  
  // variable to keep track on reward added by owner
  uint256 private _ownerTokenAllowance = 0;

  // variable for token time management
  uint256 private _tokentime;
  
  // variable for token staking pause and unpause mechanism
  bool public tokenPaused = false;
  
  // variable for total Token staked by user
  uint256 public totalStakedToken = 0;
  
  // variable for total stake token in contract
  uint256 public totalTokenStakesInContract = 0;
  
  // variable for total stake token in a pool
  uint256 public totalStakedTokenInSerenityPool = 0;
  
  // variable for total stake token in a pool
  uint256 public totalStakedTokenInEquilibriumPool = 0;
  
  // variable for total stake token in a pool
  uint256 public totalStakedTokenInTranquillityPool = 0;
  
  // modifier to check the user for staking || Re-enterance Guard
  modifier tokenStakeCheck(uint256 tokens, uint256 timePeriod){
    require(tokens > 0, "Invalid Token Amount, Please Try Again!!! ");
    require(timePeriod == PERIOD_SERENITY || timePeriod == PERIOD_EQUILIBRIUM || timePeriod == PERIOD_TRANQUILLITY, "Enter the Valid Time Period and Try Again !!!");
    _;
  }
  
  /*
  * ------------------------------------------------------------------------------------------------------------------------------
  * Functions for Token Staking Functionality
  * ------------------------------------------------------------------------------------------------------------------------------
  */

  // function to performs staking for user tokens for a specific period of time
  function stakeToken(uint256 tokens, uint256 time) public tokenStakeCheck(tokens, time) returns(bool){
    require(tokenPaused == false, "Staking is Paused, Please try after staking get unpaused!!!");
    if(time == PERIOD_SERENITY){
        require(totalStakedTokenInSerenityPool.add(tokens) <= TOKEN_POOL_CAP, "Serenity Pool Limit Reached");
        _tokentime = now + (time * 1 days);
        _tokenStakingCount = _tokenStakingCount +1;
        _tokenTotalDays[_tokenStakingCount] = time;
        _tokenStakingAddress[_tokenStakingCount] = msg.sender;
        _tokenStakingId[msg.sender].push(_tokenStakingCount);
        _tokenStakingEndTime[_tokenStakingCount] = _tokentime;
        _tokenStakingStartTime[_tokenStakingCount] = now;
        _usersTokens[_tokenStakingCount] = tokens;
        _TokenTransactionstatus[_tokenStakingCount] = false;
        totalStakedToken = totalStakedToken.add(tokens);
        totalTokenStakesInContract = totalTokenStakesInContract.add(tokens);
        totalStakedTokenInSerenityPool = totalStakedTokenInSerenityPool.add(tokens);
        itoken.transferFrom(msg.sender, address(this), tokens);
    } else if (time == PERIOD_EQUILIBRIUM) {
        require(totalStakedTokenInEquilibriumPool.add(tokens) <= TOKEN_POOL_CAP, "Equilibrium Pool Limit Reached");
        _tokentime = now + (time * 1 days);
        _tokenStakingCount = _tokenStakingCount +1;
        _tokenTotalDays[_tokenStakingCount] = time;
        _tokenStakingAddress[_tokenStakingCount] = msg.sender;
        _tokenStakingId[msg.sender].push(_tokenStakingCount);
        _tokenStakingEndTime[_tokenStakingCount] = _tokentime;
        _tokenStakingStartTime[_tokenStakingCount] = now;
        _usersTokens[_tokenStakingCount] = tokens;
        _TokenTransactionstatus[_tokenStakingCount] = false;
        totalStakedToken = totalStakedToken.add(tokens);
        totalTokenStakesInContract = totalTokenStakesInContract.add(tokens);
        totalStakedTokenInEquilibriumPool = totalStakedTokenInEquilibriumPool.add(tokens);
        itoken.transferFrom(msg.sender, address(this), tokens);
    } else if(time == PERIOD_TRANQUILLITY) {
        require(totalStakedTokenInTranquillityPool.add(tokens) <= TOKEN_POOL_CAP, "Tranquillity Pool Limit Reached");
        _tokentime = now + (time * 1 days);
        _tokenStakingCount = _tokenStakingCount +1;
        _tokenTotalDays[_tokenStakingCount] = time;
        _tokenStakingAddress[_tokenStakingCount] = msg.sender;
        _tokenStakingId[msg.sender].push(_tokenStakingCount);
        _tokenStakingEndTime[_tokenStakingCount] = _tokentime;
        _tokenStakingStartTime[_tokenStakingCount] = now;
        _usersTokens[_tokenStakingCount] = tokens;
        _TokenTransactionstatus[_tokenStakingCount] = false;
        totalStakedToken = totalStakedToken.add(tokens);
        totalTokenStakesInContract = totalTokenStakesInContract.add(tokens);
        totalStakedTokenInTranquillityPool = totalStakedTokenInTranquillityPool.add(tokens);
        itoken.transferFrom(msg.sender, address(this), tokens);
    } else {
        return false;
      }
    return true;
  }

  // function to get staking count for token
  function getTokenStakingCount() public view returns(uint256){
    return _tokenStakingCount;
  }
  
  // function to get total Staked tokens
  function getTotalStakedToken() public view returns(uint256){
    return totalStakedToken;
  }
  
  // function to calculate reward for the message sender for token
  function getTokenRewardDetailsByStakingId(uint256 id) public view returns(uint256){
    if(_tokenTotalDays[id] == PERIOD_SERENITY) {
        return (_usersTokens[id]*TOKEN_REWARD_PERCENT_SERENITY/100000000);
    } else if(_tokenTotalDays[id] == PERIOD_EQUILIBRIUM) {
               return (_usersTokens[id]*TOKEN_REWARD_PERCENT_EQUILIBRIUM/100000000);
      } else if(_tokenTotalDays[id] == PERIOD_TRANQUILLITY) { 
                 return (_usersTokens[id]*TOKEN_REWARD_PERCENT_TRANQUILLITY/100000000);
        } else{
              return 0;
          }
  }

  // function to calculate penalty for the message sender for token
  function getTokenPenaltyDetailByStakingId(uint256 id) public view returns(uint256){
    if(_tokenStakingEndTime[id] > now){
        if(_tokenTotalDays[id]==PERIOD_SERENITY){
            return (_usersTokens[id]*TOKEN_PENALTY_PERCENT_SERENITY/100000000);
        } else if(_tokenTotalDays[id] == PERIOD_EQUILIBRIUM) {
              return (_usersTokens[id]*TOKEN_PENALTY_PERCENT_EQUILIBRIUM/100000000);
          } else if(_tokenTotalDays[id] == PERIOD_TRANQUILLITY) { 
                return (_usersTokens[id]*TOKEN_PENALTY_PERCENT_TRANQUILLITY/100000000);
            } else {
                return 0;
              }
    } else{
       return 0;
     }
  }
 
  // function to withdraw staked tokens
  function withdrawStakedTokens(uint256 stakingId) public returns(bool) {
    require(_tokenStakingAddress[stakingId] == msg.sender,"No staked token found on this address and ID");
    require(_TokenTransactionstatus[stakingId] != true,"Either tokens are already withdrawn or blocked by admin");
    if(_tokenTotalDays[stakingId] == PERIOD_SERENITY){
          require(now >= _tokenStakingStartTime[stakingId] + WITHDRAW_TIME_SERENITY, "Unable to Withdraw Staked token before 45 days of staking start time, Please Try Again Later!!!");
          _TokenTransactionstatus[stakingId] = true;
          if(now >= _tokenStakingEndTime[stakingId]){
              _finalTokenStakeWithdraw[stakingId] = _usersTokens[stakingId].add(getTokenRewardDetailsByStakingId(stakingId));
              itoken.transfer(msg.sender,_finalTokenStakeWithdraw[stakingId]);
              totalTokenStakesInContract = totalTokenStakesInContract.sub(_usersTokens[stakingId]);
              totalStakedTokenInSerenityPool = totalStakedTokenInSerenityPool.sub(_usersTokens[stakingId]);
              _ownerTokenAllowance = _ownerTokenAllowance.sub(getTokenRewardDetailsByStakingId(stakingId));
          } else {
              _finalTokenStakeWithdraw[stakingId] = _usersTokens[stakingId].add(getTokenPenaltyDetailByStakingId(stakingId));
              itoken.transfer(msg.sender,_finalTokenStakeWithdraw[stakingId]);
              totalTokenStakesInContract = totalTokenStakesInContract.sub(_usersTokens[stakingId]);
              totalStakedTokenInSerenityPool = totalStakedTokenInSerenityPool.sub(_usersTokens[stakingId]);
              _ownerTokenAllowance = _ownerTokenAllowance.sub(getTokenPenaltyDetailByStakingId(stakingId));
            }
    } else if(_tokenTotalDays[stakingId] == PERIOD_EQUILIBRIUM){
          require(now >= _tokenStakingStartTime[stakingId] + WITHDRAW_TIME_EQUILIBRIUM, "Unable to Withdraw Staked token before 90 days of staking start time, Please Try Again Later!!!");
          _TokenTransactionstatus[stakingId] = true;
          if(now >= _tokenStakingEndTime[stakingId]){
              _finalTokenStakeWithdraw[stakingId] = _usersTokens[stakingId].add(getTokenRewardDetailsByStakingId(stakingId));
              itoken.transfer(msg.sender,_finalTokenStakeWithdraw[stakingId]);
              totalTokenStakesInContract = totalTokenStakesInContract.sub(_usersTokens[stakingId]);
              totalStakedTokenInEquilibriumPool = totalStakedTokenInEquilibriumPool.sub(_usersTokens[stakingId]);
              _ownerTokenAllowance = _ownerTokenAllowance.sub(getTokenRewardDetailsByStakingId(stakingId));
          } else {
              _finalTokenStakeWithdraw[stakingId] = _usersTokens[stakingId].add(getTokenPenaltyDetailByStakingId(stakingId));
              itoken.transfer(msg.sender,_finalTokenStakeWithdraw[stakingId]);
              totalTokenStakesInContract = totalTokenStakesInContract.sub(_usersTokens[stakingId]);
              totalStakedTokenInEquilibriumPool = totalStakedTokenInEquilibriumPool.sub(_usersTokens[stakingId]);
              _ownerTokenAllowance = _ownerTokenAllowance.sub(getTokenPenaltyDetailByStakingId(stakingId));
            }
    } else if(_tokenTotalDays[stakingId] == PERIOD_TRANQUILLITY){
          require(now >= _tokenStakingStartTime[stakingId] + WITHDRAW_TIME_TRANQUILLITY, "Unable to Withdraw Staked token before 135 days of staking start time, Please Try Again Later!!!");
          _TokenTransactionstatus[stakingId] = true;
          if(now >= _tokenStakingEndTime[stakingId]){
              _finalTokenStakeWithdraw[stakingId] = _usersTokens[stakingId].add(getTokenRewardDetailsByStakingId(stakingId));
              itoken.transfer(msg.sender,_finalTokenStakeWithdraw[stakingId]);
              totalTokenStakesInContract = totalTokenStakesInContract.sub(_usersTokens[stakingId]);
              totalStakedTokenInTranquillityPool = totalStakedTokenInTranquillityPool.sub(_usersTokens[stakingId]);
              _ownerTokenAllowance = _ownerTokenAllowance.sub(getTokenRewardDetailsByStakingId(stakingId));
          } else {
              _finalTokenStakeWithdraw[stakingId] = _usersTokens[stakingId].add(getTokenPenaltyDetailByStakingId(stakingId));
              itoken.transfer(msg.sender,_finalTokenStakeWithdraw[stakingId]);
              totalTokenStakesInContract = totalTokenStakesInContract.sub(_usersTokens[stakingId]);
              totalStakedTokenInTranquillityPool = totalStakedTokenInTranquillityPool.sub(_usersTokens[stakingId]);
              _ownerTokenAllowance = _ownerTokenAllowance.sub(getTokenPenaltyDetailByStakingId(stakingId));
            }
    } else {
        return false;
      }
    return true;
  }
  
  // function to get Final Withdraw Staked value for token
  function getFinalTokenStakeWithdraw(uint256 id) public view returns(uint256){
    return _finalTokenStakeWithdraw[id];
  }
  
  // function to get total token stake in contract
  function getTotalTokenStakesInContract() public view returns(uint256){
      return totalTokenStakesInContract;
  }
  
  /*
  * -------------------------------------------------------------------------------------------------------------------------------
  * Get Functions for Stake Token Functionality
  * -------------------------------------------------------------------------------------------------------------------------------
  */

  // function to get Token Staking address by id
  function getTokenStakingAddressById(uint256 id) external view returns (address){
    require(id <= _tokenStakingCount,"Unable to reterive data on specified id, Please try again!!");
    return _tokenStakingAddress[id];
  }
  
  // function to get Token staking id by address
  function getTokenStakingIdByAddress(address add) external view returns(uint256[]){
    require(add != address(0),"Invalid Address, Pleae Try Again!!!");
    return _tokenStakingId[add];
  }
  
  // function to get Token Staking Starting time by id
  function getTokenStakingStartTimeById(uint256 id) external view returns(uint256){
    require(id <= _tokenStakingCount,"Unable to reterive data on specified id, Please try again!!");
    return _tokenStakingStartTime[id];
  }
  
  // function to get Token Staking Ending time by id
  function getTokenStakingEndTimeById(uint256 id) external view returns(uint256){
    require(id <= _tokenStakingCount,"Unable to reterive data on specified id, Please try again!!");
    return _tokenStakingEndTime[id];
  }
  
  // function to get Token Staking Total Days by Id
  function getTokenStakingTotalDaysById(uint256 id) external view returns(uint256){
    require(id <= _tokenStakingCount,"Unable to reterive data on specified id, Please try again!!");
    return _tokenTotalDays[id];
  }

  // function to get Staking tokens by id
  function getStakingTokenById(uint256 id) external view returns(uint256){
    require(id <= _tokenStakingCount,"Unable to reterive data on specified id, Please try again!!");
    return _usersTokens[id];
  }

  // function to get Token lockstatus by id
  function getTokenLockStatus(uint256 id) external view returns(bool){
    require(id <= _tokenStakingCount,"Unable to reterive data on specified id, Please try again!!");
    return _TokenTransactionstatus[id];
  }

}
        

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":true},"libraries":{},"evmVersion":"byzantium","compilationTarget":{"CoretoStaking.sol":"CoretoStaking"}}
              

Contract ABI

[{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTokenStakingStartTimeById","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"withdrawStakedTokens","inputs":[{"type":"uint256","name":"stakingId"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"WITHDRAW_TIME_SERENITY","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"addTokenReward","inputs":[{"type":"uint256","name":"token"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"TOKEN_PENALTY_PERCENT_SERENITY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getStakingTokenById","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTokenStakingCount","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"TOKEN_PENALTY_PERCENT_TRANQUILLITY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTotalStakedToken","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"setContractAddress","inputs":[{"type":"address","name":"tokenContractAddress"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTotalTokenStakesInContract","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTokenStakingEndTimeById","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":""}],"name":"getTokenLockStatus","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"PERIOD_SERENITY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"WITHDRAW_TIME_EQUILIBRIUM","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"TOKEN_PENALTY_PERCENT_EQUILIBRIUM","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getFinalTokenStakeWithdraw","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalStakedTokenInTranquillityPool","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalStakedTokenInSerenityPool","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"pauseTokenStaking","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTokenPenaltyDetailByStakingId","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTokenRewardDetailsByStakingId","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":""}],"name":"tokenPaused","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"unpauseTokenStaking","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalTokenStakesInContract","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"PERIOD_TRANQUILLITY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"getTokenStakingAddressById","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalStakedTokenInEquilibriumPool","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTokenStakingTotalDaysById","inputs":[{"type":"uint256","name":"id"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"PERIOD_EQUILIBRIUM","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"TOKEN_POOL_CAP","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"withdrawAddedTokenReward","inputs":[{"type":"uint256","name":"token"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256[]","name":""}],"name":"getTokenStakingIdByAddress","inputs":[{"type":"address","name":"add"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"WITHDRAW_TIME_TRANQUILLITY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalStakedToken","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"TOKEN_REWARD_PERCENT_TRANQUILLITY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"TOKEN_REWARD_PERCENT_SERENITY","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"TOKEN_REWARD_PERCENT_EQUILIBRIUM","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"getTokenReward","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"getowner","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"stakeToken","inputs":[{"type":"uint256","name":"tokens"},{"type":"uint256","name":"time"}],"constant":false},{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[]},{"type":"event","name":"Paused","inputs":[],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[],"anonymous":false}]
              

Contract Creation Code

Verify & Publish
0x60806040526000600b819055600c819055600e805460ff19169055600f81905560108190556011819055601281905560135534801561003d57600080fd5b5060008054600160a060020a031916331790556123bc8061005f6000396000f3006080604052600436106102035763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663032f3b0981146102085780630a57336a146102325780630afd19211461025e5780632841a1431461027357806329bfd11f1461028b578063332a35d2146102a05780633e4ffb16146102b857806341521e33146102cd578063423eea07146102e2578063477bddaa146102f757806350ff92a91461031857806354439ad01461032d5780635673017a14610345578063572b42631461035d5780635d0d1f42146103725780635d5b8cab1461038757806360c2a3481461039c57806364d8c6c1146103b4578063731d2912146103c957806384698190146103de5780638586ca00146103f5578063863997b21461040d57806386c75e74146104255780638cc15d4f1461043a578063906459791461044f57806397e66ba2146104645780639d6c890d14610479578063a4cb6727146104ad578063b248c812146104c2578063b2a56b8f146104da578063b802e791146104ef578063b8c1fc3314610504578063b9f7549b1461051c578063c8a840af1461058d578063cb6d8ee6146105a2578063cc40c36d146105b7578063cf3e324c146105cc578063f2fde38b146105e1578063fa0bd08e14610602578063fa8eb78214610617578063fe0174bd1461062c578063ffab4bd914610641575b600080fd5b34801561021457600080fd5b5061022060043561065c565b60408051918252519081900360200190f35b34801561023e57600080fd5b5061024a6004356106d1565b604080519115158252519081900360200190f35b34801561026a57600080fd5b506102206110d7565b34801561027f57600080fd5b5061024a6004356110de565b34801561029757600080fd5b506102206111e7565b3480156102ac57600080fd5b506102206004356111ee565b3480156102c457600080fd5b50610220611260565b3480156102d957600080fd5b50610220611266565b3480156102ee57600080fd5b5061022061126d565b34801561030357600080fd5b5061024a600160a060020a0360043516611273565b34801561032457600080fd5b50610220611307565b34801561033957600080fd5b5061022060043561130d565b34801561035157600080fd5b5061024a60043561137f565b34801561036957600080fd5b506102206113f4565b34801561037e57600080fd5b506102206113f9565b34801561039357600080fd5b50610220611400565b3480156103a857600080fd5b50610220600435611407565b3480156103c057600080fd5b50610220611419565b3480156103d557600080fd5b5061022061141f565b3480156103ea57600080fd5b506103f3611425565b005b34801561040157600080fd5b506102206004356114bd565b34801561041957600080fd5b5061022060043561157a565b34801561043157600080fd5b5061024a61161e565b34801561044657600080fd5b506103f3611627565b34801561045b57600080fd5b506102206116bc565b34801561047057600080fd5b506102206116c2565b34801561048557600080fd5b506104916004356116c8565b60408051600160a060020a039092168252519081900360200190f35b3480156104b957600080fd5b50610220611743565b3480156104ce57600080fd5b50610220600435611749565b3480156104e657600080fd5b506102206117bb565b3480156104fb57600080fd5b506102206117c0565b34801561051057600080fd5b5061024a6004356117cf565b34801561052857600080fd5b5061053d600160a060020a036004351661191d565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610579578181015183820152602001610561565b505050509050019250505060405180910390f35b34801561059957600080fd5b50610220611a0f565b3480156105ae57600080fd5b50610220611a16565b3480156105c357600080fd5b50610220611a1c565b3480156105d857600080fd5b50610220611a24565b3480156105ed57600080fd5b5061024a600160a060020a0360043516611a2b565b34801561060e57600080fd5b50610220611abf565b34801561062357600080fd5b50610220611ac6565b34801561063857600080fd5b50610491611acc565b34801561064d57600080fd5b5061024a600435602435611adb565b600b546000908211156106bb576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b506000818152600560205260409020545b919050565b600081815260036020526040812054600160a060020a03163314610765576040805160e560020a62461bcd02815260206004820152602c60248201527f4e6f207374616b656420746f6b656e20666f756e64206f6e207468697320616460448201527f647265737320616e642049440000000000000000000000000000000000000000606482015290519081900360840190fd5b60008281526008602052604090205460ff161515600114156107f7576040805160e560020a62461bcd02815260206004820152603760248201527f45697468657220746f6b656e732061726520616c72656164792077697468647260448201527f61776e206f7220626c6f636b65642062792061646d696e000000000000000000606482015290519081900360840190fd5b6000828152600a6020526040902054605a1415610b0e57600082815260056020526040902054623b5380014210156108c5576040805160e560020a62461bcd02815260206004820152605f60248201527f556e61626c6520746f205769746864726177205374616b656420746f6b656e2060448201527f6265666f72652034352064617973206f66207374616b696e672073746172742060648201527f74696d652c20506c656173652054727920416761696e204c6174657221212100608482015290519081900360a40190fd5b6000828152600860209081526040808320805460ff1916600117905560069091529020544210610a13576109166108fb8361157a565b6000848152600760205260409020549063ffffffff61223916565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b15801561097c57600080fd5b505af1158015610990573d6000803e3d6000fd5b505050506040513d60208110156109a657600080fd5b50506000828152600760205260409020546010546109c99163ffffffff61229d16565b6010556000828152600760205260409020546011546109ed9163ffffffff61229d16565b601155610a0b6109fc8361157a565b600c549063ffffffff61229d16565b600c55610b09565b610a1f6108fb836114bd565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610a8557600080fd5b505af1158015610a99573d6000803e3d6000fd5b505050506040513d6020811015610aaf57600080fd5b5050600082815260076020526040902054601054610ad29163ffffffff61229d16565b601055600082815260076020526040902054601154610af69163ffffffff61229d16565b601155610b056109fc836114bd565b600c555b6110cf565b6000828152600a602052604090205460b41415610dea576000828152600560205260409020546276a70001421015610bdc576040805160e560020a62461bcd02815260206004820152605f60248201527f556e61626c6520746f205769746864726177205374616b656420746f6b656e2060448201527f6265666f72652039302064617973206f66207374616b696e672073746172742060648201527f74696d652c20506c656173652054727920416761696e204c6174657221212100608482015290519081900360a40190fd5b6000828152600860209081526040808320805460ff1916600117905560069091529020544210610cf857610c126108fb8361157a565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610c7857600080fd5b505af1158015610c8c573d6000803e3d6000fd5b505050506040513d6020811015610ca257600080fd5b5050600082815260076020526040902054601054610cc59163ffffffff61229d16565b601055600082815260076020526040902054601254610ce99163ffffffff61229d16565b601255610a0b6109fc8361157a565b610d046108fb836114bd565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610d6a57600080fd5b505af1158015610d7e573d6000803e3d6000fd5b505050506040513d6020811015610d9457600080fd5b5050600082815260076020526040902054601054610db79163ffffffff61229d16565b601055600082815260076020526040902054601254610ddb9163ffffffff61229d16565b601255610b056109fc836114bd565b6000828152600a602052604090205461010e14156110c75760008281526005602052604090205462b1fa8001421015610eb9576040805160e560020a62461bcd02815260206004820152606060248201527f556e61626c6520746f205769746864726177205374616b656420746f6b656e2060448201527f6265666f7265203133352064617973206f66207374616b696e6720737461727460648201527f2074696d652c20506c656173652054727920416761696e204c61746572212121608482015290519081900360a40190fd5b6000828152600860209081526040808320805460ff1916600117905560069091529020544210610fd557610eef6108fb8361157a565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610f5557600080fd5b505af1158015610f69573d6000803e3d6000fd5b505050506040513d6020811015610f7f57600080fd5b5050600082815260076020526040902054601054610fa29163ffffffff61229d16565b601055600082815260076020526040902054601354610fc69163ffffffff61229d16565b601355610a0b6109fc8361157a565b610fe16108fb836114bd565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b15801561104757600080fd5b505af115801561105b573d6000803e3d6000fd5b505050506040513d602081101561107157600080fd5b50506000828152600760205260409020546010546110949163ffffffff61229d16565b6010556000828152600760205260409020546013546110b89163ffffffff61229d16565b601355610b056109fc836114bd565b5060006106cc565b506001919050565b623b538081565b60006110e86122ff565b1515611140576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600c54611153908363ffffffff61223916565b600c556002546040805160e060020a6323b872dd028152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156111b357600080fd5b505af11580156111c7573d6000803e3d6000fd5b505050506040513d60208110156111dd57600080fd5b5060019392505050565b6224cb6881565b600b5460009082111561124d576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b5060009081526007602052604090205490565b600b5490565b62e0305281565b600f5490565b600061127d6122ff565b15156112d5576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b5060028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60105490565b600b5460009082111561136c576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b5060009081526006602052604090205490565b600b546000908211156113de576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b5060009081526008602052604090205460ff1690565b605a81565b6276a70081565b626e71a481565b60009081526009602052604090205490565b60135481565b60115481565b61142d6122ff565b1515611485576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600e805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6000818152600660205260408120544210156110c7576000828152600a6020526040902054605a141561150d576000828152600760205260409020546305f5e100906224cb68025b0490506106cc565b6000828152600a602052604090205460b41415611543576000828152600760205260409020546305f5e10090626e71a402611505565b6000828152600a602052604090205461010e14156110c7576000828152600760205260409020546305f5e1009062e0305202611505565b6000818152600a6020526040812054605a14156115b0576000828152600760205260409020546305f5e10090623641df02611505565b6000828152600a602052604090205460b414156115e6576000828152600760205260409020546305f5e1009062a6671502611505565b6000828152600a602052604090205461010e14156110c7576000828152600760205260409020546305f5e1009063018ce1c502611505565b600e5460ff1681565b61162f6122ff565b1515611687576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600e805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60105481565b61010e81565b600b54600090821115611727576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b50600090815260036020526040902054600160a060020a031690565b60125481565b600b546000908211156117a8576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b506000908152600a602052604090205490565b60b481565b6a14adf4b7320334b900000081565b60006117d96122ff565b1515611831576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600c5482106118b0576040805160e560020a62461bcd02815260206004820152602a60248201527f56616c7565206973206e6f74206665617369626c652c20506c6561736520547260448201527f7920416761696e21212100000000000000000000000000000000000000000000606482015290519081900360840190fd5b600c546118c3908363ffffffff61229d16565b600c556002546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156111b357600080fd5b6060600160a060020a03821615156119a5576040805160e560020a62461bcd02815260206004820152602360248201527f496e76616c696420416464726573732c20506c6561652054727920416761696e60448201527f2121210000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03821660009081526004602090815260409182902080548351818402810184019094528084529091830182828015611a0357602002820191906000526020600020905b8154815260200190600101908083116119ef575b50505050509050919050565b62b1fa8081565b600f5481565b63018ce1c581565b623641df81565b6000611a356122ff565b1515611a8d576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b62a6671581565b600c5490565b600054600160a060020a031690565b60008282828211611b5c576040805160e560020a62461bcd02815260206004820152602a60248201527f496e76616c696420546f6b656e20416d6f756e742c20506c656173652054727960448201527f20416761696e2121212000000000000000000000000000000000000000000000606482015290519081900360840190fd5b605a811480611b6b575060b481145b80611b77575061010e81145b1515611bf3576040805160e560020a62461bcd02815260206004820152602d60248201527f456e746572207468652056616c69642054696d6520506572696f6420616e642060448201527f54727920416761696e2021212100000000000000000000000000000000000000606482015290519081900360840190fd5b600e5460ff1615611c74576040805160e560020a62461bcd02815260206004820152603b60248201527f5374616b696e67206973205061757365642c20506c656173652074727920616660448201527f746572207374616b696e672067657420756e7061757365642121210000000000606482015290519081900360840190fd5b605a841415611e7a576011546a14adf4b7320334b900000090611c9d908763ffffffff61223916565b1115611cf3576040805160e560020a62461bcd02815260206004820152601b60248201527f536572656e69747920506f6f6c204c696d697420526561636865640000000000604482015290519081900360640190fd5b426201518085028101600d908155600b805460019081018083556000908152600a602090815260408083208b90558454835260038252808320805473ffffffffffffffffffffffffffffffffffffffff19163390811790915583526004825280832085548154958601825590845282842090940193909355935483548252600685528282205582548152600584528181209490945581548452600783528084208990559054835260089091529020805460ff19169055600f54611dbc908663ffffffff61223916565b600f55601054611dd2908663ffffffff61223916565b601055601154611de8908663ffffffff61223916565b6011556002546040805160e060020a6323b872dd028152336004820152306024820152604481018890529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611e4857600080fd5b505af1158015611e5c573d6000803e3d6000fd5b505050506040513d6020811015611e7257600080fd5b5061222c9050565b60b484141561204e576012546a14adf4b7320334b900000090611ea3908763ffffffff61223916565b1115611ef9576040805160e560020a62461bcd02815260206004820152601e60248201527f457175696c69627269756d20506f6f6c204c696d697420526561636865640000604482015290519081900360640190fd5b426201518085028101600d908155600b805460019081018083556000908152600a602090815260408083208b90558454835260038252808320805473ffffffffffffffffffffffffffffffffffffffff19163390811790915583526004825280832085548154958601825590845282842090940193909355935483548252600685528282205582548152600584528181209490945581548452600783528084208990559054835260089091529020805460ff19169055600f54611fc2908663ffffffff61223916565b600f55601054611fd8908663ffffffff61223916565b601055601254611fee908663ffffffff61223916565b6012556002546040805160e060020a6323b872dd028152336004820152306024820152604481018890529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611e4857600080fd5b61010e841415612223576013546a14adf4b7320334b900000090612078908763ffffffff61223916565b11156120ce576040805160e560020a62461bcd02815260206004820152601f60248201527f5472616e7175696c6c69747920506f6f6c204c696d6974205265616368656400604482015290519081900360640190fd5b426201518085028101600d908155600b805460019081018083556000908152600a602090815260408083208b90558454835260038252808320805473ffffffffffffffffffffffffffffffffffffffff19163390811790915583526004825280832085548154958601825590845282842090940193909355935483548252600685528282205582548152600584528181209490945581548452600783528084208990559054835260089091529020805460ff19169055600f54612197908663ffffffff61223916565b600f556010546121ad908663ffffffff61223916565b6010556013546121c3908663ffffffff61223916565b6013556002546040805160e060020a6323b872dd028152336004820152306024820152604481018890529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611e4857600080fd5b60009250612231565b600192505b505092915050565b600082820183811015612296576040805160e560020a62461bcd02815260206004820152601d60248201527f43616c63756c6174696f6e206572726f7220696e206164646974696f6e000000604482015290519081900360640190fd5b9392505050565b600080838311156122f8576040805160e560020a62461bcd02815260206004820181905260248201527f43616c63756c6174696f6e206572726f7220696e207375627472616374696f6e604482015290519081900360640190fd5b5050900390565b600054600160a060020a03163314905600556e61626c6520746f2072657465726976652064617461206f6e207370656369666965642069642c20506c656173652074727920616761696e21210000000000596f7520617265206e6f742061757468656e74696361746520746f206d616b652074686973207472616e73666572000000000000000000000000000000000000a165627a7a72305820ac4fe51b8de9da5600f2a4c4deb4cd209f8a2fdcc0fa995a26fe626fb3ab0e5d0029

Deployed ByteCode

0x6080604052600436106102035763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663032f3b0981146102085780630a57336a146102325780630afd19211461025e5780632841a1431461027357806329bfd11f1461028b578063332a35d2146102a05780633e4ffb16146102b857806341521e33146102cd578063423eea07146102e2578063477bddaa146102f757806350ff92a91461031857806354439ad01461032d5780635673017a14610345578063572b42631461035d5780635d0d1f42146103725780635d5b8cab1461038757806360c2a3481461039c57806364d8c6c1146103b4578063731d2912146103c957806384698190146103de5780638586ca00146103f5578063863997b21461040d57806386c75e74146104255780638cc15d4f1461043a578063906459791461044f57806397e66ba2146104645780639d6c890d14610479578063a4cb6727146104ad578063b248c812146104c2578063b2a56b8f146104da578063b802e791146104ef578063b8c1fc3314610504578063b9f7549b1461051c578063c8a840af1461058d578063cb6d8ee6146105a2578063cc40c36d146105b7578063cf3e324c146105cc578063f2fde38b146105e1578063fa0bd08e14610602578063fa8eb78214610617578063fe0174bd1461062c578063ffab4bd914610641575b600080fd5b34801561021457600080fd5b5061022060043561065c565b60408051918252519081900360200190f35b34801561023e57600080fd5b5061024a6004356106d1565b604080519115158252519081900360200190f35b34801561026a57600080fd5b506102206110d7565b34801561027f57600080fd5b5061024a6004356110de565b34801561029757600080fd5b506102206111e7565b3480156102ac57600080fd5b506102206004356111ee565b3480156102c457600080fd5b50610220611260565b3480156102d957600080fd5b50610220611266565b3480156102ee57600080fd5b5061022061126d565b34801561030357600080fd5b5061024a600160a060020a0360043516611273565b34801561032457600080fd5b50610220611307565b34801561033957600080fd5b5061022060043561130d565b34801561035157600080fd5b5061024a60043561137f565b34801561036957600080fd5b506102206113f4565b34801561037e57600080fd5b506102206113f9565b34801561039357600080fd5b50610220611400565b3480156103a857600080fd5b50610220600435611407565b3480156103c057600080fd5b50610220611419565b3480156103d557600080fd5b5061022061141f565b3480156103ea57600080fd5b506103f3611425565b005b34801561040157600080fd5b506102206004356114bd565b34801561041957600080fd5b5061022060043561157a565b34801561043157600080fd5b5061024a61161e565b34801561044657600080fd5b506103f3611627565b34801561045b57600080fd5b506102206116bc565b34801561047057600080fd5b506102206116c2565b34801561048557600080fd5b506104916004356116c8565b60408051600160a060020a039092168252519081900360200190f35b3480156104b957600080fd5b50610220611743565b3480156104ce57600080fd5b50610220600435611749565b3480156104e657600080fd5b506102206117bb565b3480156104fb57600080fd5b506102206117c0565b34801561051057600080fd5b5061024a6004356117cf565b34801561052857600080fd5b5061053d600160a060020a036004351661191d565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610579578181015183820152602001610561565b505050509050019250505060405180910390f35b34801561059957600080fd5b50610220611a0f565b3480156105ae57600080fd5b50610220611a16565b3480156105c357600080fd5b50610220611a1c565b3480156105d857600080fd5b50610220611a24565b3480156105ed57600080fd5b5061024a600160a060020a0360043516611a2b565b34801561060e57600080fd5b50610220611abf565b34801561062357600080fd5b50610220611ac6565b34801561063857600080fd5b50610491611acc565b34801561064d57600080fd5b5061024a600435602435611adb565b600b546000908211156106bb576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b506000818152600560205260409020545b919050565b600081815260036020526040812054600160a060020a03163314610765576040805160e560020a62461bcd02815260206004820152602c60248201527f4e6f207374616b656420746f6b656e20666f756e64206f6e207468697320616460448201527f647265737320616e642049440000000000000000000000000000000000000000606482015290519081900360840190fd5b60008281526008602052604090205460ff161515600114156107f7576040805160e560020a62461bcd02815260206004820152603760248201527f45697468657220746f6b656e732061726520616c72656164792077697468647260448201527f61776e206f7220626c6f636b65642062792061646d696e000000000000000000606482015290519081900360840190fd5b6000828152600a6020526040902054605a1415610b0e57600082815260056020526040902054623b5380014210156108c5576040805160e560020a62461bcd02815260206004820152605f60248201527f556e61626c6520746f205769746864726177205374616b656420746f6b656e2060448201527f6265666f72652034352064617973206f66207374616b696e672073746172742060648201527f74696d652c20506c656173652054727920416761696e204c6174657221212100608482015290519081900360a40190fd5b6000828152600860209081526040808320805460ff1916600117905560069091529020544210610a13576109166108fb8361157a565b6000848152600760205260409020549063ffffffff61223916565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b15801561097c57600080fd5b505af1158015610990573d6000803e3d6000fd5b505050506040513d60208110156109a657600080fd5b50506000828152600760205260409020546010546109c99163ffffffff61229d16565b6010556000828152600760205260409020546011546109ed9163ffffffff61229d16565b601155610a0b6109fc8361157a565b600c549063ffffffff61229d16565b600c55610b09565b610a1f6108fb836114bd565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610a8557600080fd5b505af1158015610a99573d6000803e3d6000fd5b505050506040513d6020811015610aaf57600080fd5b5050600082815260076020526040902054601054610ad29163ffffffff61229d16565b601055600082815260076020526040902054601154610af69163ffffffff61229d16565b601155610b056109fc836114bd565b600c555b6110cf565b6000828152600a602052604090205460b41415610dea576000828152600560205260409020546276a70001421015610bdc576040805160e560020a62461bcd02815260206004820152605f60248201527f556e61626c6520746f205769746864726177205374616b656420746f6b656e2060448201527f6265666f72652039302064617973206f66207374616b696e672073746172742060648201527f74696d652c20506c656173652054727920416761696e204c6174657221212100608482015290519081900360a40190fd5b6000828152600860209081526040808320805460ff1916600117905560069091529020544210610cf857610c126108fb8361157a565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610c7857600080fd5b505af1158015610c8c573d6000803e3d6000fd5b505050506040513d6020811015610ca257600080fd5b5050600082815260076020526040902054601054610cc59163ffffffff61229d16565b601055600082815260076020526040902054601254610ce99163ffffffff61229d16565b601255610a0b6109fc8361157a565b610d046108fb836114bd565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610d6a57600080fd5b505af1158015610d7e573d6000803e3d6000fd5b505050506040513d6020811015610d9457600080fd5b5050600082815260076020526040902054601054610db79163ffffffff61229d16565b601055600082815260076020526040902054601254610ddb9163ffffffff61229d16565b601255610b056109fc836114bd565b6000828152600a602052604090205461010e14156110c75760008281526005602052604090205462b1fa8001421015610eb9576040805160e560020a62461bcd02815260206004820152606060248201527f556e61626c6520746f205769746864726177205374616b656420746f6b656e2060448201527f6265666f7265203133352064617973206f66207374616b696e6720737461727460648201527f2074696d652c20506c656173652054727920416761696e204c61746572212121608482015290519081900360a40190fd5b6000828152600860209081526040808320805460ff1916600117905560069091529020544210610fd557610eef6108fb8361157a565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b158015610f5557600080fd5b505af1158015610f69573d6000803e3d6000fd5b505050506040513d6020811015610f7f57600080fd5b5050600082815260076020526040902054601054610fa29163ffffffff61229d16565b601055600082815260076020526040902054601354610fc69163ffffffff61229d16565b601355610a0b6109fc8361157a565b610fe16108fb836114bd565b6000838152600960209081526040808320849055600254815160e060020a63a9059cbb02815233600482015260248101959095529051600160a060020a039091169363a9059cbb9360448083019493928390030190829087803b15801561104757600080fd5b505af115801561105b573d6000803e3d6000fd5b505050506040513d602081101561107157600080fd5b50506000828152600760205260409020546010546110949163ffffffff61229d16565b6010556000828152600760205260409020546013546110b89163ffffffff61229d16565b601355610b056109fc836114bd565b5060006106cc565b506001919050565b623b538081565b60006110e86122ff565b1515611140576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600c54611153908363ffffffff61223916565b600c556002546040805160e060020a6323b872dd028152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156111b357600080fd5b505af11580156111c7573d6000803e3d6000fd5b505050506040513d60208110156111dd57600080fd5b5060019392505050565b6224cb6881565b600b5460009082111561124d576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b5060009081526007602052604090205490565b600b5490565b62e0305281565b600f5490565b600061127d6122ff565b15156112d5576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b5060028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60105490565b600b5460009082111561136c576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b5060009081526006602052604090205490565b600b546000908211156113de576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b5060009081526008602052604090205460ff1690565b605a81565b6276a70081565b626e71a481565b60009081526009602052604090205490565b60135481565b60115481565b61142d6122ff565b1515611485576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600e805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6000818152600660205260408120544210156110c7576000828152600a6020526040902054605a141561150d576000828152600760205260409020546305f5e100906224cb68025b0490506106cc565b6000828152600a602052604090205460b41415611543576000828152600760205260409020546305f5e10090626e71a402611505565b6000828152600a602052604090205461010e14156110c7576000828152600760205260409020546305f5e1009062e0305202611505565b6000818152600a6020526040812054605a14156115b0576000828152600760205260409020546305f5e10090623641df02611505565b6000828152600a602052604090205460b414156115e6576000828152600760205260409020546305f5e1009062a6671502611505565b6000828152600a602052604090205461010e14156110c7576000828152600760205260409020546305f5e1009063018ce1c502611505565b600e5460ff1681565b61162f6122ff565b1515611687576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600e805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60105481565b61010e81565b600b54600090821115611727576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b50600090815260036020526040902054600160a060020a031690565b60125481565b600b546000908211156117a8576040805160e560020a62461bcd02815260206004820152603b60248201526000805160206123118339815191526044820152600080516020612331833981519152606482015290519081900360840190fd5b506000908152600a602052604090205490565b60b481565b6a14adf4b7320334b900000081565b60006117d96122ff565b1515611831576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b600c5482106118b0576040805160e560020a62461bcd02815260206004820152602a60248201527f56616c7565206973206e6f74206665617369626c652c20506c6561736520547260448201527f7920416761696e21212100000000000000000000000000000000000000000000606482015290519081900360840190fd5b600c546118c3908363ffffffff61229d16565b600c556002546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156111b357600080fd5b6060600160a060020a03821615156119a5576040805160e560020a62461bcd02815260206004820152602360248201527f496e76616c696420416464726573732c20506c6561652054727920416761696e60448201527f2121210000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03821660009081526004602090815260409182902080548351818402810184019094528084529091830182828015611a0357602002820191906000526020600020905b8154815260200190600101908083116119ef575b50505050509050919050565b62b1fa8081565b600f5481565b63018ce1c581565b623641df81565b6000611a356122ff565b1515611a8d576040805160e560020a62461bcd02815260206004820152602e60248201526000805160206123518339815191526044820152600080516020612371833981519152606482015290519081900360840190fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b62a6671581565b600c5490565b600054600160a060020a031690565b60008282828211611b5c576040805160e560020a62461bcd02815260206004820152602a60248201527f496e76616c696420546f6b656e20416d6f756e742c20506c656173652054727960448201527f20416761696e2121212000000000000000000000000000000000000000000000606482015290519081900360840190fd5b605a811480611b6b575060b481145b80611b77575061010e81145b1515611bf3576040805160e560020a62461bcd02815260206004820152602d60248201527f456e746572207468652056616c69642054696d6520506572696f6420616e642060448201527f54727920416761696e2021212100000000000000000000000000000000000000606482015290519081900360840190fd5b600e5460ff1615611c74576040805160e560020a62461bcd02815260206004820152603b60248201527f5374616b696e67206973205061757365642c20506c656173652074727920616660448201527f746572207374616b696e672067657420756e7061757365642121210000000000606482015290519081900360840190fd5b605a841415611e7a576011546a14adf4b7320334b900000090611c9d908763ffffffff61223916565b1115611cf3576040805160e560020a62461bcd02815260206004820152601b60248201527f536572656e69747920506f6f6c204c696d697420526561636865640000000000604482015290519081900360640190fd5b426201518085028101600d908155600b805460019081018083556000908152600a602090815260408083208b90558454835260038252808320805473ffffffffffffffffffffffffffffffffffffffff19163390811790915583526004825280832085548154958601825590845282842090940193909355935483548252600685528282205582548152600584528181209490945581548452600783528084208990559054835260089091529020805460ff19169055600f54611dbc908663ffffffff61223916565b600f55601054611dd2908663ffffffff61223916565b601055601154611de8908663ffffffff61223916565b6011556002546040805160e060020a6323b872dd028152336004820152306024820152604481018890529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611e4857600080fd5b505af1158015611e5c573d6000803e3d6000fd5b505050506040513d6020811015611e7257600080fd5b5061222c9050565b60b484141561204e576012546a14adf4b7320334b900000090611ea3908763ffffffff61223916565b1115611ef9576040805160e560020a62461bcd02815260206004820152601e60248201527f457175696c69627269756d20506f6f6c204c696d697420526561636865640000604482015290519081900360640190fd5b426201518085028101600d908155600b805460019081018083556000908152600a602090815260408083208b90558454835260038252808320805473ffffffffffffffffffffffffffffffffffffffff19163390811790915583526004825280832085548154958601825590845282842090940193909355935483548252600685528282205582548152600584528181209490945581548452600783528084208990559054835260089091529020805460ff19169055600f54611fc2908663ffffffff61223916565b600f55601054611fd8908663ffffffff61223916565b601055601254611fee908663ffffffff61223916565b6012556002546040805160e060020a6323b872dd028152336004820152306024820152604481018890529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611e4857600080fd5b61010e841415612223576013546a14adf4b7320334b900000090612078908763ffffffff61223916565b11156120ce576040805160e560020a62461bcd02815260206004820152601f60248201527f5472616e7175696c6c69747920506f6f6c204c696d6974205265616368656400604482015290519081900360640190fd5b426201518085028101600d908155600b805460019081018083556000908152600a602090815260408083208b90558454835260038252808320805473ffffffffffffffffffffffffffffffffffffffff19163390811790915583526004825280832085548154958601825590845282842090940193909355935483548252600685528282205582548152600584528181209490945581548452600783528084208990559054835260089091529020805460ff19169055600f54612197908663ffffffff61223916565b600f556010546121ad908663ffffffff61223916565b6010556013546121c3908663ffffffff61223916565b6013556002546040805160e060020a6323b872dd028152336004820152306024820152604481018890529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611e4857600080fd5b60009250612231565b600192505b505092915050565b600082820183811015612296576040805160e560020a62461bcd02815260206004820152601d60248201527f43616c63756c6174696f6e206572726f7220696e206164646974696f6e000000604482015290519081900360640190fd5b9392505050565b600080838311156122f8576040805160e560020a62461bcd02815260206004820181905260248201527f43616c63756c6174696f6e206572726f7220696e207375627472616374696f6e604482015290519081900360640190fd5b5050900390565b600054600160a060020a03163314905600556e61626c6520746f2072657465726976652064617461206f6e207370656369666965642069642c20506c656173652074727920616761696e21210000000000596f7520617265206e6f742061757468656e74696361746520746f206d616b652074686973207472616e73666572000000000000000000000000000000000000a165627a7a72305820ac4fe51b8de9da5600f2a4c4deb4cd209f8a2fdcc0fa995a26fe626fb3ab0e5d0029