ETH Price: $3,354.15 (-2.77%)
Gas: 2 Gwei

Contract

0xda579367c6ca7854009133D1B3739020ba350C23
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer197976912024-05-04 15:39:5959 days ago1714837199IN
CocktailBar: MOJITO Token
0 ETH0.000191967.90949373
Approve185374312023-11-09 22:40:35236 days ago1699569635IN
CocktailBar: MOJITO Token
0 ETH0.0023251550.11980274
Approve175576202023-06-25 16:15:59373 days ago1687709759IN
CocktailBar: MOJITO Token
0 ETH0.0006482913.97432315
Transfer167279342023-02-28 16:46:11490 days ago1677602771IN
CocktailBar: MOJITO Token
0 ETH0.0016979628.25324343
Approve166426572023-02-16 17:03:23502 days ago1676567003IN
CocktailBar: MOJITO Token
0 ETH0.0025583855.14712111
Approve165230262023-01-30 23:48:23519 days ago1675122503IN
CocktailBar: MOJITO Token
0 ETH0.0007971917.1839194
Approve165069252023-01-28 17:51:47521 days ago1674928307IN
CocktailBar: MOJITO Token
0 ETH0.0007432916.02203801
Approve162838792022-12-28 14:34:35552 days ago1672238075IN
CocktailBar: MOJITO Token
0 ETH0.0005430620.4529746
Approve162838792022-12-28 14:34:35552 days ago1672238075IN
CocktailBar: MOJITO Token
0 ETH0.0009500820.4529746
Approve161258992022-12-06 12:57:35574 days ago1670331455IN
CocktailBar: MOJITO Token
0 ETH0.0006558314.11855389
Approve159692642022-11-14 15:47:11596 days ago1668440831IN
CocktailBar: MOJITO Token
0 ETH0.0009717520.91949777
Approve157317632022-10-12 11:34:11629 days ago1665574451IN
CocktailBar: MOJITO Token
0 ETH0.0010081621.7033608
Approve155584922022-09-18 5:56:47653 days ago1663480607IN
CocktailBar: MOJITO Token
0 ETH0.000145876.03572371
Transfer155185742022-09-12 3:12:52660 days ago1662952372IN
CocktailBar: MOJITO Token
0 ETH0.000498118.29005757
Approve154619072022-09-02 23:03:01669 days ago1662159781IN
CocktailBar: MOJITO Token
0 ETH0.0006092913.11658748
Approve154105432022-08-25 18:03:02677 days ago1661450582IN
CocktailBar: MOJITO Token
0 ETH0.0008802518.94971787
Approve153681362022-08-19 0:17:38684 days ago1660868258IN
CocktailBar: MOJITO Token
0 ETH0.0013904729.93364804
Approve153661572022-08-18 16:54:12684 days ago1660841652IN
CocktailBar: MOJITO Token
0 ETH0.0014041530.22806558
Approve153585012022-08-17 11:36:53685 days ago1660736213IN
CocktailBar: MOJITO Token
0 ETH0.000339437.30718567
Approve153582732022-08-17 10:43:39685 days ago1660733019IN
CocktailBar: MOJITO Token
0 ETH0.0005109711
Approve153581302022-08-17 10:13:59685 days ago1660731239IN
CocktailBar: MOJITO Token
0 ETH0.00025815.55629363
Transfer153184482022-08-11 3:52:20692 days ago1660189940IN
CocktailBar: MOJITO Token
0 ETH0.0010024316.68006659
Approve149352622022-06-09 23:32:25754 days ago1654817545IN
CocktailBar: MOJITO Token
0 ETH0.0025423654.73093749
Approve149352292022-06-09 23:24:40754 days ago1654817080IN
CocktailBar: MOJITO Token
0 ETH0.0015150762.68946511
Approve149351782022-06-09 23:11:45754 days ago1654816305IN
CocktailBar: MOJITO Token
0 ETH0.004116488.61625283
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Stake

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-25
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.6;

// ----------------------------------------------------------------------------
// 'HAPPYHOUR' Staking smart contract
//
// Enter our universe : cocktailbar.finance
//
// Come join the disscussion: https://t.me/cocktailbar_discussion
//
//                                          Sincerely, Mr. Martini
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// SafeMath library
// ----------------------------------------------------------------------------

/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
   /**
    * @dev Returns the addition of two unsigned integers, reverting on
    * overflow.
    *
    * Counterpart to Solidity's `+` operator.
    *
    * Requirements:
    *
    * - Addition cannot overflow.
    */
   function add(uint256 a, uint256 b) internal pure returns (uint256) {
       uint256 c = a + b;
       require(c >= a, "SafeMath: addition overflow");

       return c;
   }

   /**
    * @dev Returns the subtraction of two unsigned integers, reverting on
    * overflow (when the result is negative).
    *
    * Counterpart to Solidity's `-` operator.
    *
    * Requirements:
    *
    * - Subtraction cannot overflow.
    */
   function sub(uint256 a, uint256 b) internal pure returns (uint256) {
       return sub(a, b, "SafeMath: subtraction overflow");
   }

   /**
    * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
    * overflow (when the result is negative).
    *
    * Counterpart to Solidity's `-` operator.
    *
    * Requirements:
    *
    * - Subtraction cannot overflow.
    */
   function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
       require(b <= a, errorMessage);
       uint256 c = a - b;

       return c;
   }

   /**
    * @dev Returns the multiplication of two unsigned integers, reverting on
    * overflow.
    *
    * Counterpart to Solidity's `*` operator.
    *
    * Requirements:
    *
    * - Multiplication cannot overflow.
    */
   function mul(uint256 a, uint256 b) internal pure returns (uint256) {
       // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
       // benefit is lost if 'b' is also tested.
       // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
       if (a == 0) {
           return 0;
       }

       uint256 c = a * b;
       require(c / a == b, "SafeMath: multiplication overflow");

       return c;
   }


   /**
    * @dev Returns the integer division of two unsigned integers. Reverts on
    * division by zero. The result is rounded towards zero.
    *
    * Counterpart to Solidity's `/` operator. Note: this function uses a
    * `revert` opcode (which leaves remaining gas untouched) while Solidity
    * uses an invalid opcode to revert (consuming all remaining gas).
    *
    * Requirements:
    *
    * - The divisor cannot be zero.
    */
   function div(uint256 a, uint256 b) internal pure returns (uint256) {
       return div(a, b, "SafeMath: division by zero");
   }

   /**
    * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
    * division by zero. The result is rounded towards zero.
    *
    * Counterpart to Solidity's `/` operator. Note: this function uses a
    * `revert` opcode (which leaves remaining gas untouched) while Solidity
    * uses an invalid opcode to revert (consuming all remaining gas).
    *
    * Requirements:
    *
    * - The divisor cannot be zero.
    */
   function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
       require(b > 0, errorMessage);
       uint256 c = a / b;
       // assert(a == b * c + a % b); // There is no case in which this doesn't hold

       return c;
   }

   /**
    * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
    * Reverts when dividing by zero.
    *
    * Counterpart to Solidity's `%` operator. This function uses a `revert`
    * opcode (which leaves remaining gas untouched) while Solidity uses an
    * invalid opcode to revert (consuming all remaining gas).
    *
    * Requirements:
    *
    * - The divisor cannot be zero.
    */
   function mod(uint256 a, uint256 b) internal pure returns (uint256) {
       return mod(a, b, "SafeMath: modulo by zero");
   }

   /**
    * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
    * Reverts with custom message when dividing by zero.
    *
    * Counterpart to Solidity's `%` operator. This function uses a `revert`
    * opcode (which leaves remaining gas untouched) while Solidity uses an
    * invalid opcode to revert (consuming all remaining gas).
    *
    * Requirements:
    *
    * - The divisor cannot be zero.
    */
   function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
       require(b != 0, errorMessage);
       return a % b;
   }

   function ceil(uint a, uint m) internal pure returns (uint r) {
       return (a + m - 1) / m * m;
   }

}

contract ReentrancyGuard {
   bool private _notEntered;

   constructor () {
       // Storing an initial non-zero value makes deployment a bit more
       // expensive, but in exchange the refund on every call to nonReentrant
       // will be lower in amount. Since refunds are capped to a percetange of
       // the total transaction's gas, it is best to keep them low in cases
       // like this one, to increase the likelihood of the full refund coming
       // into effect.
       _notEntered = true;
   }

   /**
    * @dev Prevents a contract from calling itself, directly or indirectly.
    * Calling a `nonReentrant` function from another `nonReentrant`
    * function is not supported. It is possible to prevent this from happening
    * by making the `nonReentrant` function external, and make it call a
    * `private` function that does the actual work.
    */
   modifier nonReentrant() {
       // On the first call to nonReentrant, _notEntered will be true
       require(_notEntered, "ReentrancyGuard: reentrant call");

       // Any calls to nonReentrant after this point will fail
       _notEntered = false;

       _;

       // By storing the original value once again, a refund is triggered (see
       // https://eips.ethereum.org/EIPS/eip-2200)
       _notEntered = true;
   }
}

// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------

contract Owned {
   modifier onlyOwner() virtual{
       require(msg.sender==owner);
       _;
   }
   address payable owner;
   address payable newOwner;
   function changeOwner(address payable _newOwner) external onlyOwner {
       require(_newOwner!=address(0));
       newOwner = _newOwner;
   }
   function acceptOwnership() external {
       if (msg.sender==newOwner) {
           owner = newOwner;
       }
   }
}

interface ERC20 {
   function balanceOf(address _owner) view external  returns (uint256 balance);
   function transfer(address _to, uint256 _value) external  returns (bool success);
   function transferFrom(address _from, address _to, uint256 _value) external  returns (bool success);
   function approve(address _spender, uint256 _value) external returns (bool success);
   function allowance(address _owner, address _spender) view external  returns (uint256 remaining);
   event Transfer(address indexed _from, address indexed _to, uint256 _value);
   event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// ----------------------------------------------------------------------------
contract Token is Owned, ERC20 {
   using SafeMath for uint256;
   uint256 public totalSupply;
   string public symbol;
   string public name;
   uint8 public decimals;
   mapping (address=>uint256) balances;
   mapping (address=>mapping (address=>uint256)) allowed;
   uint256 public rewardfee;

   event TransferFee(address indexed _from, address indexed _to, uint256 _value);

   function balanceOf(address _owner) view public override   returns (uint256 balance) {return balances[_owner];}

   function transfer(address _to, uint256 _amount) public override  returns (bool success) {
       require (balances[msg.sender]>=_amount&&_amount>0&&balances[_to]+_amount>balances[_to]);
       balances[msg.sender]-=_amount;


       uint256 fee = onehalfPercent(_amount);
       uint256 amountto = _amount.sub(fee);
       rewardfee = rewardfee.add(fee);

       balances[address(this)]+=fee;
       balances[_to]+=amountto;


       emit Transfer(msg.sender,_to,amountto);
       emit TransferFee(msg.sender,address(this),fee);
       return true;
   }



   function transferFrom(address _from,address _to,uint256 _amount) public override  returns (bool success) {
       require (balances[_from]>=_amount&&allowed[_from][msg.sender]>=_amount&&_amount>0&&balances[_to]+_amount>balances[_to]);
       balances[_from]-=_amount;
       allowed[_from][msg.sender]-=_amount;

       uint256 fee = onehalfPercent(_amount);
       uint256 amountto = _amount.sub(fee);


       rewardfee = rewardfee.add(fee);
       balances[address(this)]+=fee;
       balances[_to]+=amountto;


       emit Transfer(msg.sender,_to,amountto);
       emit TransferFee(msg.sender,address(this),fee);
       return true;
   }

   function approve(address _spender, uint256 _amount) public override  returns (bool success) {
       allowed[msg.sender][_spender]=_amount;
       emit Approval(msg.sender, _spender, _amount);
       return true;
   }

   function allowance(address _owner, address _spender) view public override  returns (uint256 remaining) {
     return allowed[_owner][_spender];
   }

       function onehalfPercent(uint256 _tokens) private pure returns (uint256){
       uint256 roundValue = _tokens.ceil(100);
       uint onehalfofTokens = roundValue.mul(100).div(100 * 10**uint(2));
       return onehalfofTokens;
   }

}


contract Mojito is Token{
   using SafeMath for uint256;
   constructor() {
       symbol = "MOJITO";
       name = "Mojito";
       decimals = 18;
       totalSupply = 5000000000000000000000;
       owner = msg.sender;
       balances[owner] = totalSupply;

   }

   receive () payable external {
       require(msg.value>0);
       owner.transfer(msg.value);
   }

}

interface REWARDTOKEN {
   function balanceOf(address _owner) view external  returns (uint256 balance);
   function allowance(address _owner, address _spender) view external  returns (uint256 remaining);
   event Transfer(address indexed _from, address indexed _to, uint256 _value);
   event Approval(address indexed _owner, address indexed _spender, uint256 _value);
   function transfer(address _to, uint256 _amount) external  returns (bool success);
   function transferFrom(address _from,address _to,uint256 _amount) external  returns (bool success);
   function approve(address _to, uint256 _amount) external  returns (bool success);
   function _mint(address account, uint256 amount) external ;

}



// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and assisted
// token transfers
// ----------------------------------------------------------------------------
contract Stake is Mojito, ReentrancyGuard {
   using SafeMath for uint256;
   address public rewtkn= 0x39FB7AF42ef12D92A0d577ca44cd54a0f24c4915;
   uint256 public totalStakes = 0;
   uint256 stakingFee = 10; // 1%
   uint256 unstakingFee = 30; // 3%
   uint256 public prevreward = 0;
   REWARD  public reward;


   struct REWARD
   {
       uint256 rewardstart;
       uint256 rewardend;
       uint256 totalreward;
   }

   struct USER{
       uint256 stakedTokens;
       uint256 remainder;
       uint256 creationTime;
       uint256 lastClaim;
       uint256 totalEarned;
   }

   mapping(address => USER) public stakers;


   event STAKED(address staker, uint256 tokens, uint256 stakingFee);
   event UNSTAKED(address staker, uint256 tokens, uint256 unstakingFee);

   event CLAIMEDREWARD(address staker, uint256 reward);

     constructor() {
       owner=msg.sender;
       reward = REWARD(block.timestamp,block.timestamp + 24 hours,0);

   }
      modifier onlyOwner() override{
       require(msg.sender==owner,"only owner can run this");
       _;
   }


   // ------------------------------------------------------------------------
   // Token holders can stake their tokens using this function
   // @param tokens number of tokens to stake
   // ------------------------------------------------------------------------
   function STAKE(uint256 tokens) external nonReentrant {
       require(REWARDTOKEN(rewtkn).transferFrom(msg.sender, address(this), tokens), "Tokens cannot be transferred from user account");
       uint256 _stakingFee = (onePercent(tokens).mul(stakingFee)).div(10);
       reward.totalreward = (reward.totalreward).add(stakingFee);
       stakers[msg.sender].stakedTokens = (tokens.sub(_stakingFee)).add(stakers[msg.sender].stakedTokens);
       stakers[msg.sender].creationTime = block.timestamp;
       totalStakes = totalStakes.add(tokens.sub(_stakingFee));
       emit STAKED(msg.sender, tokens.sub(_stakingFee), _stakingFee);
   }


   // ------------------------------------------------------------------------
   // Stakers can claim their pending rewards using this function
   // ------------------------------------------------------------------------
   // ------------------------------------------------------------------------
   // Stakers can unstake the staked tokens using this function
   // @param tokens the number of tokens to withdraw
   // ------------------------------------------------------------------------
   function WITHDRAW(uint256 tokens) external nonReentrant {

       require(stakers[msg.sender].stakedTokens >= tokens && tokens > 0, "Invalid token amount to withdraw");

       uint256 _unstakingFee = (onePercent(tokens).mul(unstakingFee)).div(10);

       // add pending rewards to remainder to be claimed by user later, if there is any existing stake


       reward.totalreward = (reward.totalreward).add(_unstakingFee);
       require(REWARDTOKEN(rewtkn).transfer(msg.sender, tokens.sub(_unstakingFee)), "Error in un-staking tokens");

       stakers[msg.sender].stakedTokens = stakers[msg.sender].stakedTokens.sub(tokens);

       if (stakers[msg.sender].stakedTokens == 0)
       {
           stakers[msg.sender].creationTime = block.timestamp ;
       }
       totalStakes = totalStakes.sub(tokens);
       emit UNSTAKED(msg.sender, tokens.sub(_unstakingFee), _unstakingFee);


   }

   // ------------------------------------------------------------------------
   // Private function to calculate 1% percentage
   // ------------------------------------------------------------------------
   function onePercent(uint256 _tokens) private pure returns (uint256){
       uint256 roundValue = _tokens.ceil(100);
       uint onePercentofTokens = roundValue.mul(100).div(100 * 10**uint(2));
       return onePercentofTokens;
   }

   // ------------------------------------------------------------------------
   // Get the number of tokens staked by a staker
   // @param _staker the address of the staker
   // ------------------------------------------------------------------------
   function yourStakedREWARDTOKEN(address staker) external view returns(uint256 stakedTOKEN){
       return stakers[staker].stakedTokens;
   }

   // ------------------------------------------------------------------------
   // Get the TOKEN balance of the token holder
   // @param user the address of the token holder
   // ------------------------------------------------------------------------
   function yourREWARDTOKENBalance(address user) external view returns(uint256 TOKENBalance){
       return REWARDTOKEN(rewtkn).balanceOf(user);
   }

   function CurrEsstematedRew(address user) external view returns (uint256 MojitoReward)
   {

       if(stakers[user].stakedTokens >0)
       {

          uint256 time = block.timestamp - reward.rewardstart;
          uint256 hour=time.div(3600);
          uint256 newrewardstarttime=reward.rewardstart;

       while(hour >= 24) //alligning days with outer clock
       {
           newrewardstarttime = newrewardstarttime.add(24 hours) ;
           time = block.timestamp - newrewardstarttime;
           hour=time.div(3600);

       }

         if(stakers[user].lastClaim == newrewardstarttime)
         {
             return 0;
         }else{

           uint256 prevrewards=0;
            if(prevreward == 0 )
           {
               prevrewards = rewardfee;
           }

           uint256 Cstaked = (stakers[user].stakedTokens).mul(10000000000);
           uint256 CTS = totalStakes.mul(10000000000);
           uint256 percent = (Cstaked.mul(prevrewards));
           uint256 rewardcal =  percent.div(CTS);


            if(newrewardstarttime < stakers[user].creationTime) //how mch difference
            {

           time =  stakers[user].creationTime - newrewardstarttime;
           uint256 stketime = time.div(3600);

            if(stketime < 20)
           {
            uint256 a = (stketime.mul(10**uint(2))).div(20);
            uint256 finalreward =  (a.mul(rewardcal)).div(10**uint(2));

            if(rewardfee >= rewardcal)
            {

                return finalreward;
            }else{
                return 0;
            }


           }else
           {
               if(rewardfee >= rewardcal )
               {
                    return rewardcal;
               }
               else
               {
                   return 0;
               }

           }


            }else{
                  if(rewardfee >= rewardcal )
               {
                    return rewardcal;
               }else
               {
                   return 0;
               }

            }




         }






       }else
       {
           return 0;
       }

   }



   function CLAIMREWARD() external  {


       uint256 time = block.timestamp - reward.rewardstart;
       uint256 hour=time.div(3600);



       if(hour >= 24)
       {
           prevreward = 0;
       }
       while(hour >= 24) //alligning days with outer clock
       {
           reward.rewardstart = reward.rewardstart.add(24 hours) ;
           time = block.timestamp - reward.rewardstart;
           hour=time.div(3600);

       }

       require(stakers[msg.sender].lastClaim != reward.rewardstart,"You have Already Claimed");
       {

       //this line is basically  checking which hour is currently user trying to claim (can only claim at hour 20 - 24 )
       time  = (block.timestamp).sub(reward.rewardstart) ;  //now can be greater than rewardend
       uint256 rewhour = time.div(3600);
       if((rewhour < 24) && (rewhour >= 20))  // checking if person is illigebal for reward
       {

           if(prevreward == 0 )
           {
               prevreward = rewardfee;
           }


           //calculating percent of staked tokens user has in the total pool
           uint256 Cstaked = (stakers[msg.sender].stakedTokens).mul(10000000000);
           uint256 CTS = totalStakes.mul(10000000000);
           uint256 percent = (Cstaked.mul(prevreward));
           uint256 rewardcal =  percent.div(CTS);


            if(reward.rewardstart < stakers[msg.sender].creationTime) //how mch difference
            {

           time =  stakers[msg.sender].creationTime - reward.rewardstart;
           uint256 stketime = time.div(3600);

           //checking what was the stake time of the user. User should not get all amount if his stake time is less than 20 hours
           //will change wif we go with starttime

           //checktime
           if(stketime < 20)
           {
            uint256 a = (stketime.mul(10**uint(2))).div(20);
            uint256 finalreward =  (a.mul(rewardcal)).div(10**uint(2));

            if(rewardfee >= rewardcal)
            {
              Mojito(address(this)).transfer(msg.sender,finalreward);
             rewardfee = rewardfee.sub(finalreward);
             stakers[msg.sender].lastClaim = reward.rewardstart;
             stakers[msg.sender].totalEarned = (stakers[msg.sender].totalEarned).add(finalreward);
             emit CLAIMEDREWARD(msg.sender,finalreward);
            }


           }else
           {
               if(rewardfee >= rewardcal )
               {
                    Mojito(address(this)).transfer(msg.sender,rewardcal);
                      rewardfee = rewardfee.sub(rewardcal);
                       stakers[msg.sender].lastClaim = reward.rewardstart;
                        stakers[msg.sender].totalEarned = (stakers[msg.sender].totalEarned).add(rewardcal);
                      emit CLAIMEDREWARD(msg.sender,rewardcal);

               }

           }


            }else{
                  if(rewardfee >= rewardcal )
               {
                    Mojito(address(this)).transfer(msg.sender,rewardcal);
                      rewardfee = rewardfee.sub(rewardcal);
                        stakers[msg.sender].lastClaim = reward.rewardstart ;
                           stakers[msg.sender].totalEarned = (stakers[msg.sender].totalEarned).add(rewardcal);
                     emit CLAIMEDREWARD(msg.sender,rewardcal);

               }

            }



       }

       }

       reward.rewardend = reward.rewardstart + 24 hours;

   }








   function WatchClaimTime() public  view  returns (uint ClaimTimeHours)
   {



       uint256 time  = block.timestamp - reward.rewardstart;
       uint rewhour = time.div(3600);
       return rewhour;


   }



    function WatchClaimTimeMins() public view returns (uint ClaimTimeHours)
   {

           uint256 time  = block.timestamp - reward.rewardstart;
           uint rewhour = time.div(1);
           return rewhour;


   }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"CLAIMEDREWARD","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakingFee","type":"uint256"}],"name":"STAKED","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"TransferFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unstakingFee","type":"uint256"}],"name":"UNSTAKED","type":"event"},{"inputs":[],"name":"CLAIMREWARD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"CurrEsstematedRew","outputs":[{"internalType":"uint256","name":"MojitoReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"STAKE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"WITHDRAW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WatchClaimTime","outputs":[{"internalType":"uint256","name":"ClaimTimeHours","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WatchClaimTimeMins","outputs":[{"internalType":"uint256","name":"ClaimTimeHours","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevreward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"rewardstart","type":"uint256"},{"internalType":"uint256","name":"rewardend","type":"uint256"},{"internalType":"uint256","name":"totalreward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewtkn","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakers","outputs":[{"internalType":"uint256","name":"stakedTokens","type":"uint256"},{"internalType":"uint256","name":"remainder","type":"uint256"},{"internalType":"uint256","name":"creationTime","type":"uint256"},{"internalType":"uint256","name":"lastClaim","type":"uint256"},{"internalType":"uint256","name":"totalEarned","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"yourREWARDTOKENBalance","outputs":[{"internalType":"uint256","name":"TOKENBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"yourStakedREWARDTOKEN","outputs":[{"internalType":"uint256","name":"stakedTOKEN","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040527339fb7af42ef12d92a0d577ca44cd54a0f24c4915600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a55600a600b55601e600c556000600d553480156200007a57600080fd5b506040518060400160405280600681526020017f4d4f4a49544f000000000000000000000000000000000000000000000000000081525060039080519060200190620000c892919062000290565b506040518060400160405280600681526020017f4d6f6a69746f0000000000000000000000000000000000000000000000000000815250600490805190602001906200011692919062000290565b506012600560006101000a81548160ff021916908360ff16021790555069010f0cf064dd59200000600281905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600254600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960006101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528042815260200162015180420181526020016000815250600e60008201518160000155602082015181600101556040820151816002015590505062000346565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620002c8576000855562000314565b82601f10620002e357805160ff191683800117855562000314565b8280016001018555821562000314579182015b8281111562000313578251825591602001919060010190620002f6565b5b50905062000323919062000327565b5090565b5b808211156200034257600081600090555060010162000328565b5090565b6131f580620003566000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063a6f9dae11161008a578063bf9befb111610064578063bf9befb1146108a0578063ca84d591146108cb578063dd62ed3e14610906578063f7370e8b1461098b576101e5565b8063a6f9dae1146107b3578063a8420b0f14610804578063a9059cbb1461082f576101e5565b806370a082311461058057806379ba5097146105e5578063875d787a146105fc5780639168ae721461066157806395d89b41146106e2578063a2087b4614610772576101e5565b806323b872dd1161012357806323b872dd14610419578063299492f3146104aa5780632c75bcda146104d5578063313ce567146105105780633cfaf1e61461053e5780634baf782e14610569576101e5565b806306fdde03146101ea578063095ea7b31461027a578063169fb2dd146102eb57806318160ddd14610350578063228cb7331461037b57806323272506146103b4576101e5565b366101e5576000341161017c57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156101e2573d6000803e3d6000fd5b50005b600080fd5b3480156101f657600080fd5b506101ff6109b6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023f578082015181840152602081019050610224565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028657600080fd5b506102d36004803603604081101561029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a54565b60405180821515815260200191505060405180910390f35b3480156102f757600080fd5b5061033a6004803603602081101561030e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b46565b6040518082815260200191505060405180910390f35b34801561035c57600080fd5b50610365610c13565b6040518082815260200191505060405180910390f35b34801561038757600080fd5b50610390610c19565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c057600080fd5b50610403600480360360208110156103d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c31565b6040518082815260200191505060405180910390f35b34801561042557600080fd5b506104926004803603606081101561043c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f9e565b60405180821515815260200191505060405180910390f35b3480156104b657600080fd5b506104bf611392565b6040518082815260200191505060405180910390f35b3480156104e157600080fd5b5061050e600480360360208110156104f857600080fd5b8101908080359060200190929190505050611398565b005b34801561051c57600080fd5b50610525611877565b604051808260ff16815260200191505060405180910390f35b34801561054a57600080fd5b5061055361188a565b6040518082815260200191505060405180910390f35b34801561057557600080fd5b5061057e6118b7565b005b34801561058c57600080fd5b506105cf600480360360208110156105a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612276565b6040518082815260200191505060405180910390f35b3480156105f157600080fd5b506105fa6122bf565b005b34801561060857600080fd5b5061064b6004803603602081101561061f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061237a565b6040518082815260200191505060405180910390f35b34801561066d57600080fd5b506106b06004803603602081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123c6565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156106ee57600080fd5b506106f76123fc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073757808201518184015260208101905061071c565b50505050905090810190601f1680156107645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077e57600080fd5b5061078761249a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107bf57600080fd5b50610802600480360360208110156107d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124c0565b005b34801561081057600080fd5b506108196125ff565b6040518082815260200191505060405180910390f35b34801561083b57600080fd5b506108886004803603604081101561085257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061262d565b60405180821515815260200191505060405180910390f35b3480156108ac57600080fd5b506108b561290e565b6040518082815260200191505060405180910390f35b3480156108d757600080fd5b50610904600480360360208110156108ee57600080fd5b8101908080359060200190929190505050612914565b005b34801561091257600080fd5b506109756004803603604081101561092957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cf8565b6040518082815260200191505060405180910390f35b34801561099757600080fd5b506109a0612d7f565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bd157600080fd5b505afa158015610be5573d6000803e3d6000fd5b505050506040513d6020811015610bfb57600080fd5b81019080805190602001909291905050509050919050565b60025481565b600e8060000154908060010154908060020154905083565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610f94576000600e60000154420390506000610ca0610e1083612d8590919063ffffffff16565b90506000600e6000015490505b60188210610cee57610ccb6201518082612dcf90919063ffffffff16565b90508042039250610ce7610e1084612d8590919063ffffffff16565b9150610cad565b80601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541415610d445760009350505050610f99565b600080600d541415610d565760085490505b6000610db26402540be400601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612e5790919063ffffffff16565b90506000610dd06402540be400600a54612e5790919063ffffffff16565b90506000610de78484612e5790919063ffffffff16565b90506000610dfe8383612d8590919063ffffffff16565b9050601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154861015610f6a5785601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201540397506000610ea8610e108a612d8590919063ffffffff16565b90506014811015610f3e576000610edf6014610ed16002600a0a85612e5790919063ffffffff16565b612d8590919063ffffffff16565b90506000610f0c6002600a0a610efe8685612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508360085410610f2a57809b505050505050505050505050610f99565b60009b505050505050505050505050610f99565b8160085410610f5857819950505050505050505050610f99565b60009950505050505050505050610f99565b8060085410610f83578098505050505050505050610f99565b600098505050505050505050610f99565b600090505b919050565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561106b575081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156110775750600082115b80156111025750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b61110b57600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006111ed83612edd565b905060006112048285612f3190919063ffffffff16565b905061121b82600854612dcf90919063ffffffff16565b60088190555081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe85e14b969bb775b4056348e1a8b33b3329738b1fbf3455091825f3370efd8a8846040518082815260200191505060405180910390a36001925050509392505050565b600d5481565b600960009054906101000a900460ff1661141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6000600960006101000a81548160ff02191690831515021790555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154101580156114875750600081115b6114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e76616c696420746f6b656e20616d6f756e7420746f20776974686472617781525060200191505060405180910390fd5b600061152b600a61151d600c5461150f86612f7b565b612e5790919063ffffffff16565b612d8590919063ffffffff16565b905061154581600e60020154612dcf90919063ffffffff16565b600e60020181905550600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336115a08486612f3190919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156115f357600080fd5b505af1158015611607573d6000803e3d6000fd5b505050506040513d602081101561161d57600080fd5b81019080805190602001909291905050506116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4572726f7220696e20756e2d7374616b696e6720746f6b656e7300000000000081525060200191505060405180910390fd5b6116f582601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612f3190919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156117ce5742601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b6117e382600a54612f3190919063ffffffff16565b600a819055507faeb913af138cc126643912346d844a49a83761eb58fcfc9e571fc99e1b3d9fa23361181e8385612f3190919063ffffffff16565b83604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1506001600960006101000a81548160ff02191690831515021790555050565b600560009054906101000a900460ff1681565b600080600e600001544203905060006118ad600183612d8590919063ffffffff16565b9050809250505090565b6000600e600001544203905060006118da610e1083612d8590919063ffffffff16565b9050601881106118ed576000600d819055505b5b601881106119405761191162015180600e60000154612dcf90919063ffffffff16565b600e60000181905550600e6000015442039150611939610e1083612d8590919063ffffffff16565b90506118ee565b600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75206861766520416c726561647920436c61696d6564000000000000000081525060200191505060405180910390fd5b611a15600e6000015442612f3190919063ffffffff16565b91506000611a2e610e1084612d8590919063ffffffff16565b9050601881108015611a41575060148110155b1561225d576000600d541415611a5b57600854600d819055505b6000611ab76402540be400601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612e5790919063ffffffff16565b90506000611ad56402540be400600a54612e5790919063ffffffff16565b90506000611aee600d5484612e5790919063ffffffff16565b90506000611b058383612d8590919063ffffffff16565b9050601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600e60000154101561204957600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201540396506000611bb9610e1089612d8590919063ffffffff16565b90506014811015611e34576000611bf06014611be26002600a0a85612e5790919063ffffffff16565b612d8590919063ffffffff16565b90506000611c1d6002600a0a611c0f8685612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508360085410611e2d573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b505050506040513d6020811015611cc357600080fd5b810190808051906020019092919050505050611cea81600854612f3190919063ffffffff16565b600881905550600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611d9181601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055507f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050612043565b8160085410612042573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611eae57600080fd5b505af1158015611ec2573d6000803e3d6000fd5b505050506040513d6020811015611ed857600080fd5b810190808051906020019092919050505050611eff82600854612f3190919063ffffffff16565b600881905550600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611fa682601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055507f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e3383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b50612258565b8060085410612257573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156120c357600080fd5b505af11580156120d7573d6000803e3d6000fd5b505050506040513d60208110156120ed57600080fd5b81019080805190602001909291905050505061211481600854612f3190919063ffffffff16565b600881905550600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506121bb81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055507f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b505050505b5062015180600e6000015401600e600101819055505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561237857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124925780601f1061246757610100808354040283529160200191612492565b820191906000526020600020905b81548152906001019060200180831161247557829003601f168201915b505050505081565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612581576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c79206f776e65722063616e2072756e207468697300000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125bb57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600e60000154420390506000612623610e1083612d8590919063ffffffff16565b9050809250505090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561267e5750600082115b80156127095750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b61271257600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600061276a83612edd565b905060006127818285612f3190919063ffffffff16565b905061279882600854612dcf90919063ffffffff16565b60088190555081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe85e14b969bb775b4056348e1a8b33b3329738b1fbf3455091825f3370efd8a8846040518082815260200191505060405180910390a360019250505092915050565b600a5481565b600960009054906101000a900460ff16612996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6000600960006101000a81548160ff021916908315150217905550600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612a6257600080fd5b505af1158015612a76573d6000803e3d6000fd5b505050506040513d6020811015612a8c57600080fd5b8101908080519060200190929190505050612af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613192602e913960400191505060405180910390fd5b6000612b24600a612b16600b54612b0886612f7b565b612e5790919063ffffffff16565b612d8590919063ffffffff16565b9050612b40600b54600e60020154612dcf90919063ffffffff16565b600e60020181905550612bb0601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ba28385612f3190919063ffffffff16565b612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550612c64612c538284612f3190919063ffffffff16565b600a54612dcf90919063ffffffff16565b600a819055507f99b6f4b247a06a3dbcda8d2244b818e254005608c2455221a00383939a119e7c33612c9f8385612f3190919063ffffffff16565b83604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1506001600960006101000a81548160ff02191690831515021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6000612dc783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fcf565b905092915050565b600080828401905083811015612e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612e6a5760009050612ed7565b6000828402905082848281612e7b57fe5b0414612ed2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131716021913960400191505060405180910390fd5b809150505b92915050565b600080612ef460648461309590919063ffffffff16565b90506000612f256002600a0a606402612f17606485612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508092505050919050565b6000612f7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130b0565b905092915050565b600080612f9260648461309590919063ffffffff16565b90506000612fc36002600a0a606402612fb5606485612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508092505050919050565b6000808311829061307b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613040578082015181840152602081019050613025565b50505050905090810190601f16801561306d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161308757fe5b049050809150509392505050565b60008182600184860103816130a657fe5b0402905092915050565b600083831115829061315d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613122578082015181840152602081019050613107565b50505050905090810190601f16801561314f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2075736572206163636f756e74a26469706673582212206ca75905dd6a63cb654e5c58e9e9659912d79066a7b8c1b9c3b3c7c41a4c67b364736f6c63430007060033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063a6f9dae11161008a578063bf9befb111610064578063bf9befb1146108a0578063ca84d591146108cb578063dd62ed3e14610906578063f7370e8b1461098b576101e5565b8063a6f9dae1146107b3578063a8420b0f14610804578063a9059cbb1461082f576101e5565b806370a082311461058057806379ba5097146105e5578063875d787a146105fc5780639168ae721461066157806395d89b41146106e2578063a2087b4614610772576101e5565b806323b872dd1161012357806323b872dd14610419578063299492f3146104aa5780632c75bcda146104d5578063313ce567146105105780633cfaf1e61461053e5780634baf782e14610569576101e5565b806306fdde03146101ea578063095ea7b31461027a578063169fb2dd146102eb57806318160ddd14610350578063228cb7331461037b57806323272506146103b4576101e5565b366101e5576000341161017c57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156101e2573d6000803e3d6000fd5b50005b600080fd5b3480156101f657600080fd5b506101ff6109b6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023f578082015181840152602081019050610224565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028657600080fd5b506102d36004803603604081101561029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a54565b60405180821515815260200191505060405180910390f35b3480156102f757600080fd5b5061033a6004803603602081101561030e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b46565b6040518082815260200191505060405180910390f35b34801561035c57600080fd5b50610365610c13565b6040518082815260200191505060405180910390f35b34801561038757600080fd5b50610390610c19565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c057600080fd5b50610403600480360360208110156103d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c31565b6040518082815260200191505060405180910390f35b34801561042557600080fd5b506104926004803603606081101561043c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f9e565b60405180821515815260200191505060405180910390f35b3480156104b657600080fd5b506104bf611392565b6040518082815260200191505060405180910390f35b3480156104e157600080fd5b5061050e600480360360208110156104f857600080fd5b8101908080359060200190929190505050611398565b005b34801561051c57600080fd5b50610525611877565b604051808260ff16815260200191505060405180910390f35b34801561054a57600080fd5b5061055361188a565b6040518082815260200191505060405180910390f35b34801561057557600080fd5b5061057e6118b7565b005b34801561058c57600080fd5b506105cf600480360360208110156105a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612276565b6040518082815260200191505060405180910390f35b3480156105f157600080fd5b506105fa6122bf565b005b34801561060857600080fd5b5061064b6004803603602081101561061f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061237a565b6040518082815260200191505060405180910390f35b34801561066d57600080fd5b506106b06004803603602081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123c6565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156106ee57600080fd5b506106f76123fc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073757808201518184015260208101905061071c565b50505050905090810190601f1680156107645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077e57600080fd5b5061078761249a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107bf57600080fd5b50610802600480360360208110156107d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124c0565b005b34801561081057600080fd5b506108196125ff565b6040518082815260200191505060405180910390f35b34801561083b57600080fd5b506108886004803603604081101561085257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061262d565b60405180821515815260200191505060405180910390f35b3480156108ac57600080fd5b506108b561290e565b6040518082815260200191505060405180910390f35b3480156108d757600080fd5b50610904600480360360208110156108ee57600080fd5b8101908080359060200190929190505050612914565b005b34801561091257600080fd5b506109756004803603604081101561092957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cf8565b6040518082815260200191505060405180910390f35b34801561099757600080fd5b506109a0612d7f565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bd157600080fd5b505afa158015610be5573d6000803e3d6000fd5b505050506040513d6020811015610bfb57600080fd5b81019080805190602001909291905050509050919050565b60025481565b600e8060000154908060010154908060020154905083565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610f94576000600e60000154420390506000610ca0610e1083612d8590919063ffffffff16565b90506000600e6000015490505b60188210610cee57610ccb6201518082612dcf90919063ffffffff16565b90508042039250610ce7610e1084612d8590919063ffffffff16565b9150610cad565b80601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541415610d445760009350505050610f99565b600080600d541415610d565760085490505b6000610db26402540be400601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612e5790919063ffffffff16565b90506000610dd06402540be400600a54612e5790919063ffffffff16565b90506000610de78484612e5790919063ffffffff16565b90506000610dfe8383612d8590919063ffffffff16565b9050601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154861015610f6a5785601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201540397506000610ea8610e108a612d8590919063ffffffff16565b90506014811015610f3e576000610edf6014610ed16002600a0a85612e5790919063ffffffff16565b612d8590919063ffffffff16565b90506000610f0c6002600a0a610efe8685612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508360085410610f2a57809b505050505050505050505050610f99565b60009b505050505050505050505050610f99565b8160085410610f5857819950505050505050505050610f99565b60009950505050505050505050610f99565b8060085410610f83578098505050505050505050610f99565b600098505050505050505050610f99565b600090505b919050565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561106b575081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156110775750600082115b80156111025750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b61110b57600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006111ed83612edd565b905060006112048285612f3190919063ffffffff16565b905061121b82600854612dcf90919063ffffffff16565b60088190555081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe85e14b969bb775b4056348e1a8b33b3329738b1fbf3455091825f3370efd8a8846040518082815260200191505060405180910390a36001925050509392505050565b600d5481565b600960009054906101000a900460ff1661141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6000600960006101000a81548160ff02191690831515021790555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154101580156114875750600081115b6114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e76616c696420746f6b656e20616d6f756e7420746f20776974686472617781525060200191505060405180910390fd5b600061152b600a61151d600c5461150f86612f7b565b612e5790919063ffffffff16565b612d8590919063ffffffff16565b905061154581600e60020154612dcf90919063ffffffff16565b600e60020181905550600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336115a08486612f3190919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156115f357600080fd5b505af1158015611607573d6000803e3d6000fd5b505050506040513d602081101561161d57600080fd5b81019080805190602001909291905050506116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4572726f7220696e20756e2d7374616b696e6720746f6b656e7300000000000081525060200191505060405180910390fd5b6116f582601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612f3190919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156117ce5742601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b6117e382600a54612f3190919063ffffffff16565b600a819055507faeb913af138cc126643912346d844a49a83761eb58fcfc9e571fc99e1b3d9fa23361181e8385612f3190919063ffffffff16565b83604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1506001600960006101000a81548160ff02191690831515021790555050565b600560009054906101000a900460ff1681565b600080600e600001544203905060006118ad600183612d8590919063ffffffff16565b9050809250505090565b6000600e600001544203905060006118da610e1083612d8590919063ffffffff16565b9050601881106118ed576000600d819055505b5b601881106119405761191162015180600e60000154612dcf90919063ffffffff16565b600e60000181905550600e6000015442039150611939610e1083612d8590919063ffffffff16565b90506118ee565b600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75206861766520416c726561647920436c61696d6564000000000000000081525060200191505060405180910390fd5b611a15600e6000015442612f3190919063ffffffff16565b91506000611a2e610e1084612d8590919063ffffffff16565b9050601881108015611a41575060148110155b1561225d576000600d541415611a5b57600854600d819055505b6000611ab76402540be400601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612e5790919063ffffffff16565b90506000611ad56402540be400600a54612e5790919063ffffffff16565b90506000611aee600d5484612e5790919063ffffffff16565b90506000611b058383612d8590919063ffffffff16565b9050601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600e60000154101561204957600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201540396506000611bb9610e1089612d8590919063ffffffff16565b90506014811015611e34576000611bf06014611be26002600a0a85612e5790919063ffffffff16565b612d8590919063ffffffff16565b90506000611c1d6002600a0a611c0f8685612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508360085410611e2d573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b505050506040513d6020811015611cc357600080fd5b810190808051906020019092919050505050611cea81600854612f3190919063ffffffff16565b600881905550600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611d9181601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055507f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050612043565b8160085410612042573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611eae57600080fd5b505af1158015611ec2573d6000803e3d6000fd5b505050506040513d6020811015611ed857600080fd5b810190808051906020019092919050505050611eff82600854612f3190919063ffffffff16565b600881905550600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611fa682601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055507f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e3383604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b50612258565b8060085410612257573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156120c357600080fd5b505af11580156120d7573d6000803e3d6000fd5b505050506040513d60208110156120ed57600080fd5b81019080805190602001909291905050505061211481600854612f3190919063ffffffff16565b600881905550600e60000154601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506121bb81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055507f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b505050505b5062015180600e6000015401600e600101819055505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561237857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124925780601f1061246757610100808354040283529160200191612492565b820191906000526020600020905b81548152906001019060200180831161247557829003601f168201915b505050505081565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612581576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c79206f776e65722063616e2072756e207468697300000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125bb57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600e60000154420390506000612623610e1083612d8590919063ffffffff16565b9050809250505090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561267e5750600082115b80156127095750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b61271257600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600061276a83612edd565b905060006127818285612f3190919063ffffffff16565b905061279882600854612dcf90919063ffffffff16565b60088190555081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe85e14b969bb775b4056348e1a8b33b3329738b1fbf3455091825f3370efd8a8846040518082815260200191505060405180910390a360019250505092915050565b600a5481565b600960009054906101000a900460ff16612996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6000600960006101000a81548160ff021916908315150217905550600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612a6257600080fd5b505af1158015612a76573d6000803e3d6000fd5b505050506040513d6020811015612a8c57600080fd5b8101908080519060200190929190505050612af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613192602e913960400191505060405180910390fd5b6000612b24600a612b16600b54612b0886612f7b565b612e5790919063ffffffff16565b612d8590919063ffffffff16565b9050612b40600b54600e60020154612dcf90919063ffffffff16565b600e60020181905550612bb0601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ba28385612f3190919063ffffffff16565b612dcf90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550612c64612c538284612f3190919063ffffffff16565b600a54612dcf90919063ffffffff16565b600a819055507f99b6f4b247a06a3dbcda8d2244b818e254005608c2455221a00383939a119e7c33612c9f8385612f3190919063ffffffff16565b83604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1506001600960006101000a81548160ff02191690831515021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6000612dc783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fcf565b905092915050565b600080828401905083811015612e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612e6a5760009050612ed7565b6000828402905082848281612e7b57fe5b0414612ed2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131716021913960400191505060405180910390fd5b809150505b92915050565b600080612ef460648461309590919063ffffffff16565b90506000612f256002600a0a606402612f17606485612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508092505050919050565b6000612f7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130b0565b905092915050565b600080612f9260648461309590919063ffffffff16565b90506000612fc36002600a0a606402612fb5606485612e5790919063ffffffff16565b612d8590919063ffffffff16565b90508092505050919050565b6000808311829061307b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613040578082015181840152602081019050613025565b50505050905090810190601f16801561306d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161308757fe5b049050809150509392505050565b60008182600184860103816130a657fe5b0402905092915050565b600083831115829061315d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613122578082015181840152602081019050613107565b50505050905090810190601f16801561314f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2075736572206163636f756e74a26469706673582212206ca75905dd6a63cb654e5c58e9e9659912d79066a7b8c1b9c3b3c7c41a4c67b364736f6c63430007060033

Deployed Bytecode Sourcemap

12493:10960:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11460:1;11450:9;:11;11442:20;;;;;;11472:5;;;;;;;;;;:14;;:25;11487:9;11472:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12493:10960;;;;;8861:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10491:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17071:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8803:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12787:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17226:2200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9826:658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12752:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15033:911;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8885:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23223:223;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19437:3537;;;;;;;;;;;;;:::i;:::-;;9129:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7762:119;;;;;;;;;;;;;:::i;:::-;;16663:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8835:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12573:65;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7613:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22995:216;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9246:569;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12644:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13876:642;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10719:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9012:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8861:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10491:221::-;10569:12;10623:7;10593;:19;10601:10;10593:19;;;;;;;;;;;;;;;:29;10613:8;10593:29;;;;;;;;;;;;;;;:37;;;;10666:8;10645:39;;10654:10;10645:39;;;10676:7;10645:39;;;;;;;;;;;;;;;;;;10701:4;10694:11;;10491:221;;;;:::o;17071:148::-;17139:20;17189:6;;;;;;;;;;;17177:29;;;17207:4;17177:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17170:42;;17071:148;;;:::o;8803:26::-;;;;:::o;12787:21::-;;;;;;;;;;;;;;;;;;;:::o;17226:2200::-;17290:20;17359:1;17331:7;:13;17339:4;17331:13;;;;;;;;;;;;;;;:26;;;:29;17328:2090;;;17385:12;17418:6;:18;;;17400:15;:36;17385:51;;17449:12;17462:14;17471:4;17462;:8;;:14;;;;:::i;:::-;17449:27;;17489:26;17516:6;:18;;;17489:45;;17546:231;17560:2;17552:4;:10;17546:231;;17641:32;17664:8;17641:18;:22;;:32;;;;:::i;:::-;17620:53;;17713:18;17695:15;:36;17688:43;;17750:14;17759:4;17750;:8;;:14;;;;:::i;:::-;17745:19;;17546:231;;;17820:18;17793:7;:13;17801:4;17793:13;;;;;;;;;;;;;;;:23;;;:45;17790:1560;;;17873:1;17866:8;;;;;;;17790:1560;17907:19;17960:1;17946:10;;:15;17943:89;;;18008:9;;17994:23;;17943:89;18047:15;18065:45;18098:11;18066:7;:13;18074:4;18066:13;;;;;;;;;;;;;;;:26;;;18065:32;;:45;;;;:::i;:::-;18047:63;;18124:11;18138:28;18154:11;18138;;:15;;:28;;;;:::i;:::-;18124:42;;18180:15;18199:24;18211:11;18199:7;:11;;:24;;;;:::i;:::-;18180:44;;18238:17;18259:16;18271:3;18259:7;:11;;:16;;;;:::i;:::-;18238:37;;18318:7;:13;18326:4;18318:13;;;;;;;;;;;;;;;:26;;;18297:18;:47;18294:1036;;;18433:18;18404:7;:13;18412:4;18404:13;;;;;;;;;;;;;;;:26;;;:47;18396:55;;18465:16;18484:14;18493:4;18484;:8;;:14;;;;:::i;:::-;18465:33;;18529:2;18518:8;:13;18515:582;;;18560:9;18572:35;18604:2;18573:25;18595:1;18586:2;:11;18573:8;:12;;:25;;;;:::i;:::-;18572:31;;:35;;;;:::i;:::-;18560:47;;18622:19;18645:35;18677:1;18668:2;:11;18646:16;18652:9;18646:1;:5;;:16;;;;:::i;:::-;18645:22;;:35;;;;:::i;:::-;18622:58;;18713:9;18700;;:22;18697:142;;18765:11;18758:18;;;;;;;;;;;;;;;18697:142;18822:1;18815:8;;;;;;;;;;;;;;;18515:582;18908:9;18895;;:22;18892:189;;18966:9;18959:16;;;;;;;;;;;;;18892:189;19061:1;19054:8;;;;;;;;;;;;;18294:1036;19157:9;19144;;:22;19141:172;;19215:9;19208:16;;;;;;;;;;;;19141:172;19293:1;19286:8;;;;;;;;;;;;17328:2090;19406:1;19399:8;;17226:2200;;;;:::o;9826:658::-;9917:12;9967:7;9950:8;:15;9959:5;9950:15;;;;;;;;;;;;;;;;:24;;:61;;;;;10004:7;9976;:14;9984:5;9976:14;;;;;;;;;;;;;;;:26;9991:10;9976:26;;;;;;;;;;;;;;;;:35;;9950:61;:72;;;;;10021:1;10013:7;:9;9950:72;:109;;;;;10046:8;:13;10055:3;10046:13;;;;;;;;;;;;;;;;10038:7;10024:8;:13;10033:3;10024:13;;;;;;;;;;;;;;;;:21;:35;9950:109;9941:119;;;;;;10087:7;10070:8;:15;10079:5;10070:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;10132:7;10104;:14;10112:5;10104:14;;;;;;;;;;;;;;;:26;10119:10;10104:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;10151:11;10165:23;10180:7;10165:14;:23::i;:::-;10151:37;;10198:16;10217;10229:3;10217:7;:11;;:16;;;;:::i;:::-;10198:35;;10259:18;10273:3;10259:9;;:13;;:18;;;;:::i;:::-;10247:9;:30;;;;10312:3;10287:8;:23;10304:4;10287:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;10340:8;10325;:13;10334:3;10325:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10387:3;10367:33;;10376:10;10367:33;;;10391:8;10367:33;;;;;;;;;;;;;;;;;;10446:4;10415:41;;10427:10;10415:41;;;10452:3;10415:41;;;;;;;;;;;;;;;;;;10473:4;10466:11;;;;9826:658;;;;;:::o;12752:29::-;;;;:::o;15033:911::-;6934:11;;;;;;;;;;;6926:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7071:5;7057:11;;:19;;;;;;;;;;;;;;;;;;15145:6:::1;15109:7;:19;15117:10;15109:19;;;;;;;;;;;;;;;:32;;;:42;;:56;;;;;15164:1;15155:6;:10;15109:56;15101:101;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15214:21;15238:46;15281:2;15239:36;15262:12;;15239:18;15250:6;15239:10;:18::i;:::-;:22;;:36;;;;:::i;:::-;15238:42;;:46;;;;:::i;:::-;15214:70;;15425:39;15450:13;15426:6;:18;;;15425:24;;:39;;;;:::i;:::-;15404:6;:18;;:60;;;;15494:6;;;;;;;;;;;15482:28;;;15511:10;15523:25;15534:13;15523:6;:10;;:25;;;;:::i;:::-;15482:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;15474:106;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15627:44;15664:6;15627:7;:19;15635:10;15627:19;;;;;;;;;;;;;;;:32;;;:36;;:44;;;;:::i;:::-;15592:7;:19;15600:10;15592:19;;;;;;;;;;;;;;;:32;;:79;;;;15723:1;15687:7;:19;15695:10;15687:19;;;;;;;;;;;;;;;:32;;;:37;15683:127;;;15783:15;15748:7;:19;15756:10;15748:19;;;;;;;;;;;;;;;:32;;:50;;;;15683:127;15833:23;15849:6;15833:11;;:15;;:23;;;;:::i;:::-;15819:11;:37;;;;15871:62;15880:10;15892:25;15903:13;15892:6;:10;;:25;;;;:::i;:::-;15919:13;15871:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7088:1;7247:4:::0;7233:11;;:18;;;;;;;;;;;;;;;;;;15033:911;:::o;8885:21::-;;;;;;;;;;;;;:::o;23223:223::-;23274:19;23315:12;23349:6;:18;;;23331:15;:36;23315:52;;23381:12;23396:11;23405:1;23396:4;:8;;:11;;;;:::i;:::-;23381:26;;23428:7;23421:14;;;;23223:223;:::o;19437:3537::-;19484:12;19517:6;:18;;;19499:15;:36;19484:51;;19545:12;19558:14;19567:4;19558;:8;;:14;;;;:::i;:::-;19545:27;;19599:2;19591:4;:10;19588:62;;19638:1;19625:10;:14;;;;19588:62;19659:231;19673:2;19665:4;:10;19659:231;;19754:32;19777:8;19754:6;:18;;;:22;;:32;;;;:::i;:::-;19733:6;:18;;:53;;;;19826:6;:18;;;19808:15;:36;19801:43;;19863:14;19872:4;19863;:8;;:14;;;;:::i;:::-;19858:19;;19659:231;;;19942:6;:18;;;19909:7;:19;19917:10;19909:19;;;;;;;;;;;;;;;:29;;;:51;;19901:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20140:41;20162:6;:18;;;20141:15;20140:21;;:41;;;;:::i;:::-;20132:49;;20229:15;20247:14;20256:4;20247;:8;;:14;;;;:::i;:::-;20229:32;;20285:2;20275:7;:12;20274:33;;;;;20304:2;20293:7;:13;;20274:33;20271:2623;;;20397:1;20383:10;;:15;20380:88;;;20444:9;;20431:10;:22;;;;20380:88;20563:15;20581:51;20620:11;20582:7;:19;20590:10;20582:19;;;;;;;;;;;;;;;:32;;;20581:38;;:51;;;;:::i;:::-;20563:69;;20646:11;20660:28;20676:11;20660;;:15;;:28;;;;:::i;:::-;20646:42;;20702:15;20721:23;20733:10;;20721:7;:11;;:23;;;;:::i;:::-;20702:43;;20759:17;20780:16;20792:3;20780:7;:11;;:16;;;;:::i;:::-;20759:37;;20839:7;:19;20847:10;20839:19;;;;;;;;;;;;;;;:32;;;20818:6;:18;;;:53;20815:2063;;;20966:6;:18;;;20931:7;:19;20939:10;20931:19;;;;;;;;;;;;;;;:32;;;:53;20923:61;;20998:16;21017:14;21026:4;21017;:8;;:14;;;;:::i;:::-;20998:33;;21269:2;21258:8;:13;21255:1107;;;21300:9;21312:35;21344:2;21313:25;21335:1;21326:2;:11;21313:8;:12;;:25;;;;:::i;:::-;21312:31;;:35;;;;:::i;:::-;21300:47;;21362:19;21385:35;21417:1;21408:2;:11;21386:16;21392:9;21386:1;:5;;:16;;;;:::i;:::-;21385:22;;:35;;;;:::i;:::-;21362:58;;21453:9;21440;;:22;21437:405;;21509:4;21494:30;;;21525:10;21536:11;21494:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21576:26;21590:11;21576:9;;:13;;:26;;;;:::i;:::-;21564:9;:38;;;;21650:6;:18;;;21618:7;:19;21626:10;21618:19;;;;;;;;;;;;;;;:29;;:50;;;;21718;21756:11;21719:7;:19;21727:10;21719:19;;;;;;;;;;;;;;;:31;;;21718:37;;:50;;;;:::i;:::-;21684:7;:19;21692:10;21684:19;;;;;;;;;;;;;;;:31;;:84;;;;21789:37;21803:10;21814:11;21789:37;;;;;;;;;;;;;;;;;;;;;;;;;;21437:405;21255:1107;;;;;21911:9;21898;;:22;21895:451;;21977:4;21962:30;;;21993:10;22004:9;21962:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22051:24;22065:9;22051;;:13;;:24;;;;:::i;:::-;22039:9;:36;;;;22133:6;:18;;;22101:7;:19;22109:10;22101:19;;;;;;;;;;;;;;;:29;;:50;;;;22212:48;22250:9;22213:7;:19;22221:10;22213:19;;;;;;;;;;;;;;;:31;;;22212:37;;:48;;;;:::i;:::-;22178:7;:19;22186:10;22178:19;;;;;;;;;;;;;;;:31;;:82;;;;22290:35;22304:10;22315:9;22290:35;;;;;;;;;;;;;;;;;;;;;;;;;;21895:451;21255:1107;20815:2063;;;;22422:9;22409;;:22;22406:455;;22488:4;22473:30;;;22504:10;22515:9;22473:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22562:24;22576:9;22562;;:13;;:24;;;;:::i;:::-;22550:9;:36;;;;22645:6;:18;;;22613:7;:19;22621:10;22613:19;;;;;;;;;;;;;;;:29;;:50;;;;22728:48;22766:9;22729:7;:19;22737:10;22729:19;;;;;;;;;;;;;;;:31;;;22728:37;;:48;;;;:::i;:::-;22694:7;:19;22702:10;22694:19;;;;;;;;;;;;;;;:31;;:82;;;;22805:35;22819:10;22830:9;22805:35;;;;;;;;;;;;;;;;;;;;;;;;;;22406:455;20815:2063;20271:2623;;;;;19437:3537;22957:8;22936:6;:18;;;:29;22917:6;:16;;:48;;;;19437:3537;;:::o;9129:110::-;9196:15;9221:8;:16;9230:6;9221:16;;;;;;;;;;;;;;;;9214:23;;9129:110;;;:::o;7762:119::-;7824:8;;;;;;;;;;;7812:20;;:10;:20;;;7808:67;;;7856:8;;;;;;;;;;;7848:5;;:16;;;;;;;;;;;;;;;;;;7808:67;7762:119::o;16663:141::-;16732:19;16769:7;:15;16777:6;16769:15;;;;;;;;;;;;;;;:28;;;16762:35;;16663:141;;;:::o;13103:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8835:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12573:65::-;;;;;;;;;;;;;:::o;7613:144::-;13546:5;;;;;;;;;;13534:17;;:10;:17;;;13526:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7717:1:::1;7698:21;;:9;:21;;;;7690:30;;;::::0;::::1;;7741:9;7730:8;;:20;;;;;;;;;;;;;;;;;;7613:144:::0;:::o;22995:216::-;23044:19;23085:12;23119:6;:18;;;23101:15;:36;23085:52;;23147:12;23162:14;23171:4;23162;:8;;:14;;;;:::i;:::-;23147:29;;23193:7;23186:14;;;;22995:216;:::o;9246:569::-;9320:12;9375:7;9353:8;:20;9362:10;9353:20;;;;;;;;;;;;;;;;:29;;:40;;;;;9392:1;9384:7;:9;9353:40;:77;;;;;9417:8;:13;9426:3;9417:13;;;;;;;;;;;;;;;;9409:7;9395:8;:13;9404:3;9395:13;;;;;;;;;;;;;;;;:21;:35;9353:77;9344:87;;;;;;9463:7;9441:8;:20;9450:10;9441:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;9484:11;9498:23;9513:7;9498:14;:23::i;:::-;9484:37;;9531:16;9550;9562:3;9550:7;:11;;:16;;;;:::i;:::-;9531:35;;9588:18;9602:3;9588:9;;:13;;:18;;;;:::i;:::-;9576:9;:30;;;;9643:3;9618:8;:23;9635:4;9618:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;9671:8;9656;:13;9665:3;9656:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;9718:3;9698:33;;9707:10;9698:33;;;9722:8;9698:33;;;;;;;;;;;;;;;;;;9777:4;9746:41;;9758:10;9746:41;;;9783:3;9746:41;;;;;;;;;;;;;;;;;;9804:4;9797:11;;;;9246:569;;;;:::o;12644:30::-;;;;:::o;13876:642::-;6934:11;;;;;;;;;;;6926:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7071:5;7057:11;;:19;;;;;;;;;;;;;;;;;;13959:6:::1;;;;;;;;;;;13947:32;;;13980:10;14000:4;14007:6;13947:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;13939:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14075:19;14097:44;14138:2;14098:34;14121:10;;14098:18;14109:6;14098:10;:18::i;:::-;:22;;:34;;;;:::i;:::-;14097:40;;:44;;;;:::i;:::-;14075:66;;14172:36;14197:10;;14173:6;:18;;;14172:24;;:36;;;;:::i;:::-;14151:6;:18;;:57;;;;14253:63;14283:7;:19;14291:10;14283:19;;;;;;;;;;;;;;;:32;;;14254:23;14265:11;14254:6;:10;;:23;;;;:::i;:::-;14253:29;;:63;;;;:::i;:::-;14218:7;:19;14226:10;14218:19;;;;;;;;;;;;;;;:32;;:98;;;;14361:15;14326:7;:19;14334:10;14326:19;;;;;;;;;;;;;;;:32;;:50;;;;14400:40;14416:23;14427:11;14416:6;:10;;:23;;;;:::i;:::-;14400:11;;:15;;:40;;;;:::i;:::-;14386:11;:54;;;;14455:56;14462:10;14474:23;14485:11;14474:6;:10;;:23;;;;:::i;:::-;14499:11;14455:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7088:1;7247:4:::0;7233:11;;:18;;;;;;;;;;;;;;;;;;13876:642;:::o;10719:150::-;10803:17;10837:7;:15;10845:6;10837:15;;;;;;;;;;;;;;;:25;10853:8;10837:25;;;;;;;;;;;;;;;;10830:32;;10719:150;;;;:::o;9012:24::-;;;;:::o;3699:130::-;3757:7;3783:39;3787:1;3790;3783:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3776:46;;3699:130;;;;:::o;1462:177::-;1520:7;1539:9;1555:1;1551;:5;1539:17;;1579:1;1574;:6;;1566:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1624:8;;;1462:177;;;;:::o;2773:461::-;2831:7;3077:1;3072;:6;3068:45;;;3101:1;3094:8;;;;3068:45;3124:9;3140:1;3136;:5;3124:17;;3168:1;3163;3159;:5;;;;;;:10;3151:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3226:1;3219:8;;;2773:461;;;;;:::o;10880:233::-;10943:7;10961:18;10982:17;10995:3;10982:7;:12;;:17;;;;:::i;:::-;10961:38;;11009:20;11032:42;11071:1;11062:2;:11;11056:3;:17;11032:19;11047:3;11032:10;:14;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;11009:65;;11091:15;11084:22;;;;10880:233;;;:::o;1911:134::-;1969:7;1995:43;1999:1;2002;1995:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1988:50;;1911:134;;;;:::o;16162:235::-;16221:7;16239:18;16260:17;16273:3;16260:7;:12;;:17;;;;:::i;:::-;16239:38;;16287:23;16313:42;16352:1;16343:2;:11;16337:3;:17;16313:19;16328:3;16313:10;:14;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;16287:68;;16372:18;16365:25;;;;16162:235;;;:::o;4312:273::-;4398:7;4429:1;4425;:5;4432:12;4417:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4455:9;4471:1;4467;:5;;;;;;4455:17;;4577:1;4570:8;;;4312:273;;;;;:::o;5807:104::-;5860:6;5903:1;5899;5894;5890;5886;:5;:9;5885:15;;;;;;:19;5878:26;;5807:104;;;;:::o;2337:188::-;2423:7;2455:1;2450;:6;;2458:12;2442:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2481:9;2497:1;2493;:5;2481:17;;2517:1;2510:8;;;2337:188;;;;;:::o

Swarm Source

ipfs://6ca75905dd6a63cb654e5c58e9e9659912d79066a7b8c1b9c3b3c7c41a4c67b3

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

MOJITO is an ERC-20 token and the newest addition to the CocktailBar Token Ecosystem. MOJITOs will also unlock a new layer within the CocktailBar ecosystem, giving holders access to never-before-seen NFTs.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.