ETH Price: $2,019.04 (-4.73%)

Contract

0xbb08e510a14fbf81F5E4b8e3Dc9523Fda4Ff9a0F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Un Stake Tokens138462732021-12-21 4:01:271536 days ago1640059287IN
0xbb08e510...da4Ff9a0F
0 ETH0.0058545958.2969996
Un Stake Tokens130378722021-08-16 18:34:191662 days ago1629138859IN
0xbb08e510...da4Ff9a0F
0 ETH0.0046035745.85096545
Un Stake Tokens130353312021-08-16 8:58:571663 days ago1629104337IN
0xbb08e510...da4Ff9a0F
0 ETH0.0037431537.27685907
Un Stake Tokens130232532021-08-14 12:20:011665 days ago1628943601IN
0xbb08e510...da4Ff9a0F
0 ETH0.0034305534.16787072
Un Stake Tokens130074182021-08-12 1:39:281667 days ago1628732368IN
0xbb08e510...da4Ff9a0F
0 ETH0.0047987247.78325646
Un Stake Tokens129415492021-08-01 19:39:421677 days ago1627846782IN
0xbb08e510...da4Ff9a0F
0 ETH0.0055023861
Un Stake Tokens129020292021-07-26 13:15:291684 days ago1627305329IN
0xbb08e510...da4Ff9a0F
0 ETH0.0037895342
Un Stake Tokens128838382021-07-23 17:03:441686 days ago1627059824IN
0xbb08e510...da4Ff9a0F
0 ETH0.0024351527.00000145
Un Stake Tokens128135182021-07-12 16:27:581697 days ago1626107278IN
0xbb08e510...da4Ff9a0F
0 ETH0.0055918462
Un Stake Tokens128072712021-07-11 17:06:461698 days ago1626023206IN
0xbb08e510...da4Ff9a0F
0 ETH0.0010827212.00000145
Un Stake Tokens127813352021-07-07 16:16:031702 days ago1625674563IN
0xbb08e510...da4Ff9a0F
0 ETH0.0049611655
Un Stake Tokens127361972021-06-30 15:34:261709 days ago1625067266IN
0xbb08e510...da4Ff9a0F
0 ETH0.0020743923
Un Stake Tokens127269492021-06-29 4:53:351711 days ago1624942415IN
0xbb08e510...da4Ff9a0F
0 ETH0.0010730310
Un Stake Tokens126932232021-06-23 22:50:181716 days ago1624488618IN
0xbb08e510...da4Ff9a0F
0 ETH0.0012631714
Un Stake Tokens126863922021-06-22 21:13:021717 days ago1624396382IN
0xbb08e510...da4Ff9a0F
0 ETH0.0018040620
Stake Tokens126862722021-06-22 20:46:221717 days ago1624394782IN
0xbb08e510...da4Ff9a0F
0 ETH0.003764118
Un Stake Tokens126861102021-06-22 20:12:331717 days ago1624392753IN
0xbb08e510...da4Ff9a0F
0 ETH0.0027970331
Un Stake Tokens126858422021-06-22 19:17:371717 days ago1624389457IN
0xbb08e510...da4Ff9a0F
0 ETH0.0026797429.7
Stake Tokens126855692021-06-22 18:16:061717 days ago1624385766IN
0xbb08e510...da4Ff9a0F
0 ETH0.0075945134.1
Un Stake Tokens126836062021-06-22 10:57:331718 days ago1624359453IN
0xbb08e510...da4Ff9a0F
0 ETH0.0029770933
Un Stake Tokens126728502021-06-20 18:38:591719 days ago1624214339IN
0xbb08e510...da4Ff9a0F
0 ETH0.0009022710
Stake Tokens126695212021-06-20 6:01:061720 days ago1624168866IN
0xbb08e510...da4Ff9a0F
0 ETH0.0034134310
Un Stake Tokens126584992021-06-18 12:51:381722 days ago1624020698IN
0xbb08e510...da4Ff9a0F
0 ETH0.0013532215
Un Stake Tokens126530082021-06-17 16:33:541722 days ago1623947634IN
0xbb08e510...da4Ff9a0F
0 ETH0.0042395447
Stake Tokens126491352021-06-17 1:59:431723 days ago1623895183IN
0xbb08e510...da4Ff9a0F
0 ETH0.0026729613
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
XIVMain

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: XIVMain.sol
// SPDX-License-Identifier: UNLICENCED
pragma solidity >=0.6.0 <0.8.0;
pragma abicoder v2;

import "./Ownable.sol";
import "./SafeMath.sol";
import "./XIVInterface.sol";


contract XIVMain is Ownable{
    
    using SafeMath for uint256;
    address[] tempArray;
    
    address public databaseContractAddress=0x18464e4584759A50CE9FC58eA5997F8B0D1EA1d8;
    
    XIVDatabaseLib.IndexCoin[] tempObjectArray;
    
    function stakeTokens(uint256 amount) external{
        DatabaseContract dContract=DatabaseContract(databaseContractAddress);
        Token tokenObj = Token(dContract.getXIVTokenContractAddress());
        require(amount>=dContract.getMinLPvalue(),"Please enter more amount.");
        //check if user has balance
        require(tokenObj.balanceOf(msg.sender) >= amount, "You don't have enough XIV balance");
        //check if user has provided allowance
        require(tokenObj.allowance(msg.sender,databaseContractAddress) >= amount, 
        "Please allow smart contract to spend on your behalf");
        dContract.transferFromTokens(dContract.getXIVTokenContractAddress(),msg.sender,databaseContractAddress,amount);
        
        uint256 currentTimeStamp=block.timestamp;
        XIVDatabaseLib.StakingInfo memory sInfo= XIVDatabaseLib.StakingInfo({
            investmentId:dContract.getInvestmentId(),
            stakeAmount:amount
        });
        dContract.updateStakingInfoMapping(msg.sender,sInfo);
        dContract.updateInvestmentId(dContract.getInvestmentId().add(1));
        if(!dContract.getIsStakeMapping(msg.sender)){
            dContract.updateUserStakedAddress(msg.sender);
            dContract.updateIsStakeMapping(msg.sender,true);
        }
        dContract.updateTokensStaked(msg.sender,dContract.getTokensStaked(msg.sender).add(amount));
        dContract.updateActualAmountStakedByUser(msg.sender,dContract.getActualAmountStakedByUser(msg.sender).add(amount));
        dContract.updateTokenStakedAmount(dContract.getTokenStakedAmount().add(amount));
        dContract.updateTotalTransactions(dContract.getTotalTransactions().add(amount));
        if(dContract.getLockingPeriodForLPMapping(msg.sender).lockedTimeStamp>currentTimeStamp){
            dContract.updateLockingPeriodForLPMapping(msg.sender,(dContract.getLockingPeriodForLPMapping(msg.sender).amountLocked).add(amount),
                                                        dContract.getLockingPeriodForLPMapping(msg.sender).lockedTimeStamp);
        }else{
            dContract.updateLockingPeriodForLPMapping(msg.sender,amount,currentTimeStamp.add(30 days));
        }
        dContract.emitLPEvent(0,msg.sender,amount,currentTimeStamp);
    }
     function unStakeTokens(uint256 amount) external{
        DatabaseContract dContract=DatabaseContract(databaseContractAddress);
        uint256 currentTimeStamp=block.timestamp;
        if(dContract.getLockingPeriodForLPMapping(msg.sender).lockedTimeStamp>currentTimeStamp){
            require(dContract.getTokensStaked(msg.sender).sub(dContract.getLockingPeriodForLPMapping(msg.sender).amountLocked) >= amount, "You can not retrive LP token with this amount");
        }else{
            require(dContract.getTokensStaked(msg.sender)>=amount, "You can not retrive LP token with this amount");
        }
        dContract.transferTokens(dContract.getXIVTokenContractAddress(),msg.sender,amount);
        dContract.updateTokensStaked(msg.sender,dContract.getTokensStaked(msg.sender).sub(amount));
        if(amount>dContract.getActualAmountStakedByUser(msg.sender)){
            dContract.updateActualAmountStakedByUser(msg.sender,0);
        }else{
            dContract.updateActualAmountStakedByUser(msg.sender,dContract.getActualAmountStakedByUser(msg.sender).sub(amount));
        }
        dContract.updateTokenStakedAmount(dContract.getTokenStakedAmount().sub(amount));
        dContract.emitLPEvent(1,msg.sender,amount,currentTimeStamp);
    }
    
    function updateDatabaseAddress(address _databaseContractAddress) external onlyOwner{
        databaseContractAddress=_databaseContractAddress;
    }
    
}

File 2 of 5: Ownable.sol
// SPDX-License-Identifier: UNLICENCED
pragma solidity >=0.6.0 <0.8.0;

contract Ownable {

    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor(){
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}




File 3 of 5: SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @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;
    }
}


File 4 of 5: XIVDatabaseLib.sol
// SPDX-License-Identifier: UNLICENCED
pragma solidity >=0.6.0 <0.8.0;
pragma abicoder v2;

library XIVDatabaseLib{
    // deficoin struct for deficoinmappings..
    struct DefiCoin{
        uint16 oracleType;
        string currencySymbol;
        bool status;
    }
    struct TimePeriod{
        uint256 _days;
        bool status;
    }
     struct FlexibleInfo{
        uint256 id;
        uint16 upDownPercentage; //10**2
        uint16 riskFactor;       //10**2
        uint16 rewardFactor;     //10**2
        bool status;
    }
    struct FixedInfo{
        uint256 id;
        uint256 daysCount;// integer value
        uint16 upDownPercentage; //10**2
        uint16 riskFactor;       //10**2
        uint16 rewardFactor;     //10**2
        bool status;
    }
    struct IndexCoin{
        uint16 oracleType;
        string currencySymbol;
        address contractAddress;
        bool status;
        uint256 contributionPercentage; //10**2
    }
    struct BetPriceHistory{
        uint256 baseIndexValue;
        uint256 actualIndexValue;
    }
    struct LPLockedInfo{
        uint256 lockedTimeStamp;
        uint256 amountLocked;
    }
    struct StakingInfo{
        uint256 investmentId;
        uint256 stakeAmount;
    }
    struct IncentiveInfo{
        uint256 tillInvestmentId;
        uint256 incentiveAmount;
        uint256 totalAmountStakedAtIncentiveTime;
    }
    struct BetInfo{
        uint256 id;
        uint256 principalAmount;
        uint256 amount;
        address userAddress;
        address contractAddress;
        uint256 betType; //
        uint256 currentPrice;
        uint256 timestamp;
        uint256 betTimePeriod;
        uint16 checkpointPercent;
        uint16 rewardFactor;
        uint16 riskFactor;
        uint256 adminCommissionFee;
        uint16 status; // 0->bet active, 1->bet won, 2->bet lost, 3-> withdraw before result
    }
}

File 5 of 5: XIVInterface.sol
// SPDX-License-Identifier: UNLICENCED
pragma solidity >=0.6.0 <0.8.0;
pragma abicoder v2;

import "./XIVDatabaseLib.sol";

interface Token{
    function decimals() external view returns(uint256);
    function symbol() external view returns(string memory);
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
}


interface OracleWrapper{
    function getPrice(string calldata currencySymbol,uint256 oracleType) external view returns (uint256);
}
interface DatabaseContract{
    function transferTokens(address contractAddress,address userAddress,uint256 amount) external;
    function transferFromTokens(address contractAddress,address fromAddress, address toAddress,uint256 amount) external;
    function getTokensStaked(address userAddress) external view returns(uint256);
    function updateTokensStaked(address userAddress, uint256 amount) external;
    function getTokenStakedAmount() external view returns(uint256);
    function updateTokenStakedAmount(uint256 _tokenStakedAmount) external;
    function getBetId() external view returns(uint256);
    function updateBetId(uint256 _userBetId) external;
    function updateBetArray(XIVDatabaseLib.BetInfo memory bObject) external;
    function getBetArray() external view returns(XIVDatabaseLib.BetInfo[] memory);
    function getFindBetInArrayUsingBetIdMapping(uint256 _betid) external view returns(uint256);
    function updateFindBetInArrayUsingBetIdMapping(uint256 _betid, uint256 value) external;
    function updateUserStakedAddress(address _address) external;
    function updateUserStakedAddress(address[] memory _userStakedAddress) external;
    function getUserStakedAddress() external view returns(address[] memory);
    function getDefiCoinsFixedMapping(address _betContractAddress,bool isFlashVault) external view returns(XIVDatabaseLib.DefiCoin memory);
    function getDefiCoinsFlexibleMapping(address _betContractAddress) external view returns(XIVDatabaseLib.DefiCoin memory);
    function getFlexibleDefiCoinArray() external view returns(XIVDatabaseLib.FlexibleInfo[] memory);
    function getFlexibleIndexArray() external view returns(XIVDatabaseLib.FlexibleInfo[] memory);
    function updateBetArrayIndex(XIVDatabaseLib.BetInfo memory bObject, uint256 index) external;
    function updateBetIndexForFixedArray(uint256 _betId, XIVDatabaseLib.IndexCoin memory iCArray) external;
    function updateBetBaseIndexValue(uint256 _betBaseIndexValueFixed) external;
    function getBetBaseIndexValue() external view returns(uint256);
    function updateBetPriceHistoryFixedMapping(uint256 _betId, XIVDatabaseLib.BetPriceHistory memory bPHObj) external;
    function updateBetActualIndexValue(uint256 _betActualIndexValueFixed) external;
    function getBetActualIndexValue() external view returns(uint256);
    function getBetIndexForFixedArray(uint256 _betId) external view returns(XIVDatabaseLib.IndexCoin[] memory);
    function getBetPriceHistoryFixedMapping(uint256 _betId) external view returns(XIVDatabaseLib.BetPriceHistory memory);
    function getXIVTokenContractAddress() external view returns(address);
    function getAllIndexContractAddressArray() external view returns(address[] memory);
    function getDefiCoinIndexMapping(address _ContractAddress) external view returns(XIVDatabaseLib.IndexCoin memory);
    
    function updateBetIndexForFlexibleArray(uint256 _betId, XIVDatabaseLib.IndexCoin memory iCArray) external;
    function getBetIndexForFlexibleArray(uint256 _betId) external view returns(XIVDatabaseLib.IndexCoin[] memory);
    function updateBetPriceHistoryFlexibleMapping(uint256 _betId, XIVDatabaseLib.BetPriceHistory memory bPHObj) external;
    function getBetPriceHistoryFlexibleMapping(uint256 _betId) external view returns(XIVDatabaseLib.BetPriceHistory memory);
    
    function getOracleWrapperContractAddress() external view returns(address);
    function getPlentyOneDayPercentage() external view returns(uint256);
    function getPlentyThreeDayPercentage(uint256 _days) external view returns(uint256);
    function getPlentySevenDayPercentage(uint256 _days) external view returns(uint256);
    function getBetsAccordingToUserAddress(address userAddress) external view returns(uint256[] memory);
    function updateBetAddressesArray(address userAddress, uint256 _betId) external;
    function getRewardGeneratedAmount() external view returns(uint256);
    function updateRewardGeneratedAmount(uint256 _rewardGeneratedAmount) external;
    function addUserAddressUsedForBetting(address userAddress) external;
    function getUserAddressUsedForBetting() external view returns(address[] memory);
    function getFixedDefiCoinArray() external view returns(XIVDatabaseLib.FixedInfo[] memory);
    function getFixedDefiIndexArray() external view returns(XIVDatabaseLib.FixedInfo[] memory);
    function getMaxStakeXIVAmount() external view returns(uint256);
    function getMinStakeXIVAmount() external view returns(uint256);
    function getBetFactorLP() external view returns(uint256);
    function updateActualAmountStakedByUser(address userAddress, uint256 amount) external;
    function getActualAmountStakedByUser(address userAddress) external view returns(uint256);
    function isDaysAvailable(uint256 _days) external view returns(bool);
    function updateExistingBetCheckMapping(address _userAddress,uint256 _betType, address _BetContractAddress,bool status) external;
    function getExistingBetCheckMapping(address _userAddress,uint256 _betType, address _BetContractAddress) external view returns(bool);
    function updateTotalTransactions(uint256 _totalTransactions) external;
    function getTotalTransactions() external view returns(uint256);
    function getFlexibleDefiCoinTimePeriodArray() external view returns(XIVDatabaseLib.TimePeriod[] memory);
    function getFlexibleIndexTimePeriodArray() external view returns(XIVDatabaseLib.TimePeriod[] memory);
    function getMinLPvalue() external view returns(uint256);
    function getLockingPeriodForLPMapping(address userAddress) external view returns(XIVDatabaseLib.LPLockedInfo memory);
    function updateLockingPeriodForLPMapping(address userAddress, uint256 _amountLocked, uint256 _lockedTimeStamp) external;
    function getStakingInfoMapping(address userAddress) external view returns(XIVDatabaseLib.StakingInfo[] memory);
    function updateStakingInfoMapping(address userAddress, XIVDatabaseLib.StakingInfo memory sInfo) external;
    function getInvestmentId() external view returns(uint256);
    function updateInvestmentId(uint256 _investmentId) external;
    function getSlotExecutionId() external view returns(uint256);
    function updateSlotExecutionId(uint256 _slotExecutionId) external;
    function getSlotId() external view returns(uint256);
    function updateSlotId(uint256 _slotId) external;
    function updateIncentiveMapping(uint256 _slotId, XIVDatabaseLib.IncentiveInfo memory iInfo) external;
    function getIncentiveMapping(uint256 _slotId) external view returns(XIVDatabaseLib.IncentiveInfo[] memory);
    function emitBetDetails(uint256  betId, uint256  status, uint256  betEndTime) external;
    function emitLPEvent(uint256 typeOfLP, address userAddress, uint256 amount, uint256 timestamp) external ;
    function updateIsStakeMapping(address userAddress,bool isStake) external;
    function getIsStakeMapping(address userAddress) external view returns(bool);
    
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"databaseContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unStakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_databaseContractAddress","type":"address"}],"name":"updateDatabaseAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600280546001600160a01b0319167318464e4584759a50ce9fc58ea5997f8b0d1ea1d817905534801561003657600080fd5b50600080546001600160a01b031916331790556117f3806100586000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632a7be99a14610067578063742768661461007c5780637547c7a31461008f578063779afa35146100a25780638da5cb5b146100c0578063f2fde38b146100c8575b600080fd5b61007a61007536600461149e565b6100db565b005b61007a61008a36600461153d565b610114565b61007a61009d36600461153d565b61074b565b6100aa6112c3565b6040516100b7919061156d565b60405180910390f35b6100aa6112d2565b61007a6100d636600461149e565b6112e1565b6000546001600160a01b031633146100f257600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546040516326a98ff960e21b81526001600160a01b0390911690429081908390639aa63fe49061014a90339060040161156d565b604080518083038186803b15801561016157600080fd5b505afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019991906114f6565b5111156102d157826102a5836001600160a01b0316639aa63fe4336040518263ffffffff1660e01b81526004016101d0919061156d565b604080518083038186803b1580156101e757600080fd5b505afa1580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f91906114f6565b60200151604051632975bbcb60e11b81526001600160a01b038616906352eb77969061024f90339060040161156d565b60206040518083038186803b15801561026757600080fd5b505afa15801561027b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029f9190611555565b90611366565b10156102cc5760405162461bcd60e51b81526004016102c39061174f565b60405180910390fd5b61036d565b604051632975bbcb60e11b815283906001600160a01b038416906352eb7796906102ff90339060040161156d565b60206040518083038186803b15801561031757600080fd5b505afa15801561032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034f9190611555565b101561036d5760405162461bcd60e51b81526004016102c39061174f565b816001600160a01b031663a64b6e5f836001600160a01b031663113e6ecd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b557600080fd5b505afa1580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906114ba565b33866040518463ffffffff1660e01b815260040161040d93929190611640565b600060405180830381600087803b15801561042757600080fd5b505af115801561043b573d6000803e3d6000fd5b50505050816001600160a01b03166308d6707d3361047f86866001600160a01b03166352eb7796336040518263ffffffff1660e01b815260040161024f919061156d565b6040518363ffffffff1660e01b815260040161049c9291906115b6565b600060405180830381600087803b1580156104b657600080fd5b505af11580156104ca573d6000803e3d6000fd5b50506040516343504d3b60e01b81526001600160a01b03851692506343504d3b91506104fa90339060040161156d565b60206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190611555565b8311156105b75760405163f091bf5f60e01b81526001600160a01b0383169063f091bf5f906105809033906000906004016115b6565b600060405180830381600087803b15801561059a57600080fd5b505af11580156105ae573d6000803e3d6000fd5b50505050610647565b816001600160a01b031663f091bf5f336105f786866001600160a01b03166343504d3b336040518263ffffffff1660e01b815260040161024f919061156d565b6040518363ffffffff1660e01b81526004016106149291906115b6565b600060405180830381600087803b15801561062e57600080fd5b505af1158015610642573d6000803e3d6000fd5b505050505b816001600160a01b0316636908fd4d61069385856001600160a01b0316636e3721436040518163ffffffff1660e01b815260040160206040518083038186803b15801561026757600080fd5b6040518263ffffffff1660e01b81526004016106af919061179c565b600060405180830381600087803b1580156106c957600080fd5b505af11580156106dd573d6000803e3d6000fd5b5050604051634a5fc61b60e01b81526001600160a01b0385169250634a5fc61b915061071490600190339088908790600401611664565b600060405180830381600087803b15801561072e57600080fd5b505af1158015610742573d6000803e3d6000fd5b50505050505050565b6002546040805163113e6ecd60e01b815290516001600160a01b0390921691600091839163113e6ecd91600480820192602092909190829003018186803b15801561079557600080fd5b505afa1580156107a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd91906114ba565b9050816001600160a01b031663b0f2f3b06040518163ffffffff1660e01b815260040160206040518083038186803b15801561080857600080fd5b505afa15801561081c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108409190611555565b83101561085f5760405162461bcd60e51b81526004016102c390611688565b6040516370a0823160e01b815283906001600160a01b038316906370a082319061088d90339060040161156d565b60206040518083038186803b1580156108a557600080fd5b505afa1580156108b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dd9190611555565b10156108fb5760405162461bcd60e51b81526004016102c3906116bb565b600254604051636eb1769f60e11b815284916001600160a01b038085169263dd62ed3e92610930923392911690600401611581565b60206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109809190611555565b101561099e5760405162461bcd60e51b81526004016102c3906116fc565b816001600160a01b031663811b789d836001600160a01b031663113e6ecd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e91906114ba565b6002546040516001600160e01b031960e085901b168152610a52929133916001600160a01b03909116908990600401611616565b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050600042905060006040518060400160405280856001600160a01b031663df6965f46040518163ffffffff1660e01b815260040160206040518083038186803b158015610acf57600080fd5b505afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b079190611555565b8152602001869052604051634d18462760e01b81529091506001600160a01b03851690634d18462790610b4090339085906004016115cf565b600060405180830381600087803b158015610b5a57600080fd5b505af1158015610b6e573d6000803e3d6000fd5b50505050836001600160a01b0316636abfe439610bfd6001876001600160a01b031663df6965f46040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b505afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf79190611555565b906113af565b6040518263ffffffff1660e01b8152600401610c19919061179c565b600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b505060405163341658f360e01b81526001600160a01b038716925063341658f39150610c7790339060040161156d565b60206040518083038186803b158015610c8f57600080fd5b505afa158015610ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc791906114d6565b610d8b576040516314c8af8360e01b81526001600160a01b038516906314c8af8390610cf790339060040161156d565b600060405180830381600087803b158015610d1157600080fd5b505af1158015610d25573d6000803e3d6000fd5b50506040516352d5d4b360e01b81526001600160a01b03871692506352d5d4b39150610d5890339060019060040161159b565b600060405180830381600087803b158015610d7257600080fd5b505af1158015610d86573d6000803e3d6000fd5b505050505b836001600160a01b03166308d6707d33610de388886001600160a01b03166352eb7796336040518263ffffffff1660e01b8152600401610dcb919061156d565b60206040518083038186803b158015610bbf57600080fd5b6040518363ffffffff1660e01b8152600401610e009291906115b6565b600060405180830381600087803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050836001600160a01b031663f091bf5f33610e7288886001600160a01b03166343504d3b336040518263ffffffff1660e01b8152600401610dcb919061156d565b6040518363ffffffff1660e01b8152600401610e8f9291906115b6565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050836001600160a01b0316636908fd4d610f0d87876001600160a01b0316636e3721436040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b6040518263ffffffff1660e01b8152600401610f29919061179c565b600060405180830381600087803b158015610f4357600080fd5b505af1158015610f57573d6000803e3d6000fd5b50505050836001600160a01b0316635522378f610fa787876001600160a01b031663b5c604ff6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b6040518263ffffffff1660e01b8152600401610fc3919061179c565b600060405180830381600087803b158015610fdd57600080fd5b505af1158015610ff1573d6000803e3d6000fd5b50506040516326a98ff960e21b81528492506001600160a01b0387169150639aa63fe49061102390339060040161156d565b604080518083038186803b15801561103a57600080fd5b505afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107291906114f6565b5111156111e857836001600160a01b0316638286cdd53361111288886001600160a01b0316639aa63fe4336040518263ffffffff1660e01b81526004016110b9919061156d565b604080518083038186803b1580156110d057600080fd5b505afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110891906114f6565b60200151906113af565b6040516326a98ff960e21b81526001600160a01b03891690639aa63fe49061113e90339060040161156d565b604080518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d91906114f6565b516040516001600160e01b031960e086901b1681526111b1939291906004016115f5565b600060405180830381600087803b1580156111cb57600080fd5b505af11580156111df573d6000803e3d6000fd5b50505050611257565b6001600160a01b038416638286cdd533876112068662278d006113af565b6040518463ffffffff1660e01b8152600401611224939291906115f5565b600060405180830381600087803b15801561123e57600080fd5b505af1158015611252573d6000803e3d6000fd5b505050505b604051634a5fc61b60e01b81526001600160a01b03851690634a5fc61b9061128a9060009033908a908890600401611664565b600060405180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031681565b6000546001600160a01b031633146112f857600080fd5b6001600160a01b03811661130b57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006113a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611407565b9392505050565b6000828201838110156113a8576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b600081848411156114965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561145b578181015183820152602001611443565b50505050905090810190601f1680156114885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000602082840312156114af578081fd5b81356113a8816117a5565b6000602082840312156114cb578081fd5b81516113a8816117a5565b6000602082840312156114e7578081fd5b815180151581146113a8578182fd5b600060408284031215611507578081fd5b604080519081016001600160401b038111828210171561152357fe5b604052825181526020928301519281019290925250919050565b60006020828403121561154e578081fd5b5035919050565b600060208284031215611566578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039290921682521515602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392909216825280516020808401919091520151604082015260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b602080825260199082015278283632b0b9b29032b73a32b91036b7b9329030b6b7bab73a1760391b604082015260600190565b60208082526021908201527f596f7520646f6e2774206861766520656e6f756768205849562062616c616e636040820152606560f81b606082015260800190565b60208082526033908201527f506c6561736520616c6c6f7720736d61727420636f6e747261637420746f20736040820152723832b7321037b7103cb7bab9103132b430b63360691b606082015260800190565b6020808252602d908201527f596f752063616e206e6f742072657472697665204c5020746f6b656e2077697460408201526c1a081d1a1a5cc8185b5bdd5b9d609a1b606082015260800190565b90815260200190565b6001600160a01b03811681146117ba57600080fd5b5056fea264697066735822122055378dd91541cd0faf55229956410467340b0b69f5d7babf91216671957bcbd864736f6c63430007060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100625760003560e01c80632a7be99a14610067578063742768661461007c5780637547c7a31461008f578063779afa35146100a25780638da5cb5b146100c0578063f2fde38b146100c8575b600080fd5b61007a61007536600461149e565b6100db565b005b61007a61008a36600461153d565b610114565b61007a61009d36600461153d565b61074b565b6100aa6112c3565b6040516100b7919061156d565b60405180910390f35b6100aa6112d2565b61007a6100d636600461149e565b6112e1565b6000546001600160a01b031633146100f257600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546040516326a98ff960e21b81526001600160a01b0390911690429081908390639aa63fe49061014a90339060040161156d565b604080518083038186803b15801561016157600080fd5b505afa158015610175573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019991906114f6565b5111156102d157826102a5836001600160a01b0316639aa63fe4336040518263ffffffff1660e01b81526004016101d0919061156d565b604080518083038186803b1580156101e757600080fd5b505afa1580156101fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021f91906114f6565b60200151604051632975bbcb60e11b81526001600160a01b038616906352eb77969061024f90339060040161156d565b60206040518083038186803b15801561026757600080fd5b505afa15801561027b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029f9190611555565b90611366565b10156102cc5760405162461bcd60e51b81526004016102c39061174f565b60405180910390fd5b61036d565b604051632975bbcb60e11b815283906001600160a01b038416906352eb7796906102ff90339060040161156d565b60206040518083038186803b15801561031757600080fd5b505afa15801561032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034f9190611555565b101561036d5760405162461bcd60e51b81526004016102c39061174f565b816001600160a01b031663a64b6e5f836001600160a01b031663113e6ecd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b557600080fd5b505afa1580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906114ba565b33866040518463ffffffff1660e01b815260040161040d93929190611640565b600060405180830381600087803b15801561042757600080fd5b505af115801561043b573d6000803e3d6000fd5b50505050816001600160a01b03166308d6707d3361047f86866001600160a01b03166352eb7796336040518263ffffffff1660e01b815260040161024f919061156d565b6040518363ffffffff1660e01b815260040161049c9291906115b6565b600060405180830381600087803b1580156104b657600080fd5b505af11580156104ca573d6000803e3d6000fd5b50506040516343504d3b60e01b81526001600160a01b03851692506343504d3b91506104fa90339060040161156d565b60206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190611555565b8311156105b75760405163f091bf5f60e01b81526001600160a01b0383169063f091bf5f906105809033906000906004016115b6565b600060405180830381600087803b15801561059a57600080fd5b505af11580156105ae573d6000803e3d6000fd5b50505050610647565b816001600160a01b031663f091bf5f336105f786866001600160a01b03166343504d3b336040518263ffffffff1660e01b815260040161024f919061156d565b6040518363ffffffff1660e01b81526004016106149291906115b6565b600060405180830381600087803b15801561062e57600080fd5b505af1158015610642573d6000803e3d6000fd5b505050505b816001600160a01b0316636908fd4d61069385856001600160a01b0316636e3721436040518163ffffffff1660e01b815260040160206040518083038186803b15801561026757600080fd5b6040518263ffffffff1660e01b81526004016106af919061179c565b600060405180830381600087803b1580156106c957600080fd5b505af11580156106dd573d6000803e3d6000fd5b5050604051634a5fc61b60e01b81526001600160a01b0385169250634a5fc61b915061071490600190339088908790600401611664565b600060405180830381600087803b15801561072e57600080fd5b505af1158015610742573d6000803e3d6000fd5b50505050505050565b6002546040805163113e6ecd60e01b815290516001600160a01b0390921691600091839163113e6ecd91600480820192602092909190829003018186803b15801561079557600080fd5b505afa1580156107a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cd91906114ba565b9050816001600160a01b031663b0f2f3b06040518163ffffffff1660e01b815260040160206040518083038186803b15801561080857600080fd5b505afa15801561081c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108409190611555565b83101561085f5760405162461bcd60e51b81526004016102c390611688565b6040516370a0823160e01b815283906001600160a01b038316906370a082319061088d90339060040161156d565b60206040518083038186803b1580156108a557600080fd5b505afa1580156108b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dd9190611555565b10156108fb5760405162461bcd60e51b81526004016102c3906116bb565b600254604051636eb1769f60e11b815284916001600160a01b038085169263dd62ed3e92610930923392911690600401611581565b60206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109809190611555565b101561099e5760405162461bcd60e51b81526004016102c3906116fc565b816001600160a01b031663811b789d836001600160a01b031663113e6ecd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e91906114ba565b6002546040516001600160e01b031960e085901b168152610a52929133916001600160a01b03909116908990600401611616565b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050600042905060006040518060400160405280856001600160a01b031663df6965f46040518163ffffffff1660e01b815260040160206040518083038186803b158015610acf57600080fd5b505afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b079190611555565b8152602001869052604051634d18462760e01b81529091506001600160a01b03851690634d18462790610b4090339085906004016115cf565b600060405180830381600087803b158015610b5a57600080fd5b505af1158015610b6e573d6000803e3d6000fd5b50505050836001600160a01b0316636abfe439610bfd6001876001600160a01b031663df6965f46040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b505afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf79190611555565b906113af565b6040518263ffffffff1660e01b8152600401610c19919061179c565b600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b505060405163341658f360e01b81526001600160a01b038716925063341658f39150610c7790339060040161156d565b60206040518083038186803b158015610c8f57600080fd5b505afa158015610ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc791906114d6565b610d8b576040516314c8af8360e01b81526001600160a01b038516906314c8af8390610cf790339060040161156d565b600060405180830381600087803b158015610d1157600080fd5b505af1158015610d25573d6000803e3d6000fd5b50506040516352d5d4b360e01b81526001600160a01b03871692506352d5d4b39150610d5890339060019060040161159b565b600060405180830381600087803b158015610d7257600080fd5b505af1158015610d86573d6000803e3d6000fd5b505050505b836001600160a01b03166308d6707d33610de388886001600160a01b03166352eb7796336040518263ffffffff1660e01b8152600401610dcb919061156d565b60206040518083038186803b158015610bbf57600080fd5b6040518363ffffffff1660e01b8152600401610e009291906115b6565b600060405180830381600087803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050836001600160a01b031663f091bf5f33610e7288886001600160a01b03166343504d3b336040518263ffffffff1660e01b8152600401610dcb919061156d565b6040518363ffffffff1660e01b8152600401610e8f9291906115b6565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b50505050836001600160a01b0316636908fd4d610f0d87876001600160a01b0316636e3721436040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b6040518263ffffffff1660e01b8152600401610f29919061179c565b600060405180830381600087803b158015610f4357600080fd5b505af1158015610f57573d6000803e3d6000fd5b50505050836001600160a01b0316635522378f610fa787876001600160a01b031663b5c604ff6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b6040518263ffffffff1660e01b8152600401610fc3919061179c565b600060405180830381600087803b158015610fdd57600080fd5b505af1158015610ff1573d6000803e3d6000fd5b50506040516326a98ff960e21b81528492506001600160a01b0387169150639aa63fe49061102390339060040161156d565b604080518083038186803b15801561103a57600080fd5b505afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107291906114f6565b5111156111e857836001600160a01b0316638286cdd53361111288886001600160a01b0316639aa63fe4336040518263ffffffff1660e01b81526004016110b9919061156d565b604080518083038186803b1580156110d057600080fd5b505afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110891906114f6565b60200151906113af565b6040516326a98ff960e21b81526001600160a01b03891690639aa63fe49061113e90339060040161156d565b604080518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d91906114f6565b516040516001600160e01b031960e086901b1681526111b1939291906004016115f5565b600060405180830381600087803b1580156111cb57600080fd5b505af11580156111df573d6000803e3d6000fd5b50505050611257565b6001600160a01b038416638286cdd533876112068662278d006113af565b6040518463ffffffff1660e01b8152600401611224939291906115f5565b600060405180830381600087803b15801561123e57600080fd5b505af1158015611252573d6000803e3d6000fd5b505050505b604051634a5fc61b60e01b81526001600160a01b03851690634a5fc61b9061128a9060009033908a908890600401611664565b600060405180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031681565b6000546001600160a01b031633146112f857600080fd5b6001600160a01b03811661130b57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006113a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611407565b9392505050565b6000828201838110156113a8576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b600081848411156114965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561145b578181015183820152602001611443565b50505050905090810190601f1680156114885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000602082840312156114af578081fd5b81356113a8816117a5565b6000602082840312156114cb578081fd5b81516113a8816117a5565b6000602082840312156114e7578081fd5b815180151581146113a8578182fd5b600060408284031215611507578081fd5b604080519081016001600160401b038111828210171561152357fe5b604052825181526020928301519281019290925250919050565b60006020828403121561154e578081fd5b5035919050565b600060208284031215611566578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039290921682521515602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392909216825280516020808401919091520151604082015260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b602080825260199082015278283632b0b9b29032b73a32b91036b7b9329030b6b7bab73a1760391b604082015260600190565b60208082526021908201527f596f7520646f6e2774206861766520656e6f756768205849562062616c616e636040820152606560f81b606082015260800190565b60208082526033908201527f506c6561736520616c6c6f7720736d61727420636f6e747261637420746f20736040820152723832b7321037b7103cb7bab9103132b430b63360691b606082015260800190565b6020808252602d908201527f596f752063616e206e6f742072657472697665204c5020746f6b656e2077697460408201526c1a081d1a1a5cc8185b5bdd5b9d609a1b606082015260800190565b90815260200190565b6001600160a01b03811681146117ba57600080fd5b5056fea264697066735822122055378dd91541cd0faf55229956410467340b0b69f5d7babf91216671957bcbd864736f6c63430007060033

Deployed Bytecode Sourcemap

172:3914:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3931:148;;;;;;:::i;:::-;;:::i;:::-;;2671:1250;;;;;;:::i;:::-;;:::i;417:2248::-;;;;;;:::i;:::-;;:::i;272:81::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;96:20:0;;;:::i;721:188::-;;;;;;:::i;:::-;;:::i;3931:148:4:-;526:5:0;;-1:-1:-1;;;;;526:5:0;512:10;:19;504:28;;;;;;4024:23:4::1;:48:::0;;-1:-1:-1;;;;;;4024:48:4::1;-1:-1:-1::0;;;;;4024:48:4;;;::::1;::::0;;;::::1;::::0;;3931:148::o;2671:1250::-;2772:23;;2859:50;;-1:-1:-1;;;2859:50:4;;-1:-1:-1;;;;;2772:23:4;;;;2831:15;;;;2772:23;;2859:38;;:50;;2898:10;;2859:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;:83;2856:418;;;3075:6;2965:106;3007:9;-1:-1:-1;;;;;3007:38:4;;3046:10;3007:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;;;2965:37;;-1:-1:-1;;;2965:37:4;;-1:-1:-1;;;;;2965:25:4;;;;;:37;;2991:10;;2965:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;:106::i;:::-;:116;;2957:174;;;;-1:-1:-1;;;2957:174:4;;;;;;;:::i;:::-;;;;;;;;;2856:418;;;3168:37;;-1:-1:-1;;;3168:37:4;;3207:6;;-1:-1:-1;;;;;3168:25:4;;;;;:37;;3194:10;;3168:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;3160:103;;;;-1:-1:-1;;;3160:103:4;;;;;;;:::i;:::-;3283:9;-1:-1:-1;;;;;3283:24:4;;3308:9;-1:-1:-1;;;;;3308:36:4;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3347:10;3358:6;3283:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3375:9;-1:-1:-1;;;;;3375:28:4;;3404:10;3415:49;3457:6;3415:9;-1:-1:-1;;;;;3415:25:4;;3441:10;3415:37;;;;;;;;;;;;;;;:::i;:49::-;3375:90;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3485:49:4;;-1:-1:-1;;;3485:49:4;;-1:-1:-1;;;;;3485:37:4;;;-1:-1:-1;3485:37:4;;-1:-1:-1;3485:49:4;;3523:10;;3485:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3478:6;:56;3475:282;;;3549:54;;-1:-1:-1;;;3549:54:4;;-1:-1:-1;;;;;3549:40:4;;;;;:54;;3590:10;;3601:1;;3549:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3475:282;;;3632:9;-1:-1:-1;;;;;3632:40:4;;3673:10;3684:61;3738:6;3684:9;-1:-1:-1;;;;;3684:37:4;;3722:10;3684:49;;;;;;;;;;;;;;;:::i;:61::-;3632:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3475:282;3766:9;-1:-1:-1;;;;;3766:33:4;;3800:44;3837:6;3800:9;-1:-1:-1;;;;;3800:30:4;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:44;3766:79;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3855:59:4;;-1:-1:-1;;;3855:59:4;;-1:-1:-1;;;;;3855:21:4;;;-1:-1:-1;3855:21:4;;-1:-1:-1;3855:59:4;;3877:1;;3879:10;;3890:6;;3897:16;;3855:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2671:1250;;;:::o;417:2248::-;516:23;;573:38;;;-1:-1:-1;;;573:38:4;;;;-1:-1:-1;;;;;516:23:4;;;;472:26;;516:23;;573:36;;:38;;;;;;;;;;;;;;;516:23;573:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;550:62;;638:9;-1:-1:-1;;;;;638:23:4;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;630:6;:33;;622:70;;;;-1:-1:-1;;;622:70:4;;;;;;;:::i;:::-;746:30;;-1:-1:-1;;;746:30:4;;780:6;;-1:-1:-1;;;;;746:18:4;;;;;:30;;765:10;;746:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;738:86;;;;-1:-1:-1;;;738:86:4;;;;;;;:::i;:::-;919:23;;889:54;;-1:-1:-1;;;889:54:4;;947:6;;-1:-1:-1;;;;;889:18:4;;;;;;:54;;908:10;;919:23;;;889:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;881:137;;;;-1:-1:-1;;;881:137:4;;;;;;;:::i;:::-;1028:9;-1:-1:-1;;;;;1028:28:4;;1057:9;-1:-1:-1;;;;;1057:36:4;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1107:23;;1028:110;;-1:-1:-1;;;;;;1028:110:4;;;;;;;;;;1096:10;;-1:-1:-1;;;;;1107:23:4;;;;1131:6;;1028:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1157:24;1182:15;1157:40;;1207:39;1248:124;;;;;;;;1302:9;-1:-1:-1;;;;;1302:25:4;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1248:124;;;;;;;1382:52;;-1:-1:-1;;;1382:52:4;;1207:165;;-1:-1:-1;;;;;;1382:34:4;;;;;:52;;1417:10;;1207:165;;1382:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1444:9;-1:-1:-1;;;;;1444:28:4;;1473:34;1505:1;1473:9;-1:-1:-1;;;;;1473:25:4;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;:34::i;:::-;1444:64;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1522:39:4;;-1:-1:-1;;;1522:39:4;;-1:-1:-1;;;;;1522:27:4;;;-1:-1:-1;1522:27:4;;-1:-1:-1;1522:39:4;;1550:10;;1522:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1518:175;;1576:45;;-1:-1:-1;;;1576:45:4;;-1:-1:-1;;;;;1576:33:4;;;;;:45;;1610:10;;1576:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1635:47:4;;-1:-1:-1;;;1635:47:4;;-1:-1:-1;;;;;1635:30:4;;;-1:-1:-1;1635:30:4;;-1:-1:-1;1635:47:4;;1666:10;;1677:4;;1635:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1518:175;1702:9;-1:-1:-1;;;;;1702:28:4;;1731:10;1742:49;1784:6;1742:9;-1:-1:-1;;;;;1742:25:4;;1768:10;1742:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:49;1702:90;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1802:9;-1:-1:-1;;;;;1802:40:4;;1843:10;1854:61;1908:6;1854:9;-1:-1:-1;;;;;1854:37:4;;1892:10;1854:49;;;;;;;;;;;;;;;:::i;:61::-;1802:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1926:9;-1:-1:-1;;;;;1926:33:4;;1960:44;1997:6;1960:9;-1:-1:-1;;;;;1960:30:4;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:44;1926:79;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2015:9;-1:-1:-1;;;;;2015:33:4;;2049:44;2086:6;2049:9;-1:-1:-1;;;;;2049:30:4;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:44;2015:79;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2107:50:4;;-1:-1:-1;;;2107:50:4;;2174:16;;-1:-1:-1;;;;;;2107:38:4;;;-1:-1:-1;2107:38:4;;:50;;2146:10;;2107:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;:83;2104:486;;;2205:9;-1:-1:-1;;;;;2205:41:4;;2247:10;2258:77;2328:6;2259:9;-1:-1:-1;;;;;2259:38:4;;2298:10;2259:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;;;;2258:69;:77::i;:::-;2393:50;;-1:-1:-1;;;2393:50:4;;-1:-1:-1;;;;;2393:38:4;;;;;:50;;2432:10;;2393:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;2205:255;;-1:-1:-1;;;;;;2205:255:4;;;;;;;;;;;2393:66;2205:255;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2104:486;;;-1:-1:-1;;;;;2489:41:4;;;2531:10;2542:6;2549:29;:16;2570:7;2549:20;:29::i;:::-;2489:90;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2104:486;2599:59;;-1:-1:-1;;;2599:59:4;;-1:-1:-1;;;;;2599:21:4;;;;;:59;;2621:1;;2623:10;;2634:6;;2641:16;;2599:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:2248;;;;;:::o;272:81::-;;;-1:-1:-1;;;;;272:81:4;;:::o;96:20:0:-;;;-1:-1:-1;;;;;96:20:0;;:::o;721:188::-;526:5;;-1:-1:-1;;;;;526:5:0;512:10;:19;504:28;;;;;;-1:-1:-1;;;;;801:22:0;::::1;793:31;;;::::0;::::1;;860:5;::::0;;839:37:::1;::::0;-1:-1:-1;;;;;839:37:0;;::::1;::::0;860:5;::::1;::::0;839:37:::1;::::0;::::1;886:5;:16:::0;;-1:-1:-1;;;;;;886:16:0::1;-1:-1:-1::0;;;;;886:16:0;;;::::1;::::0;;;::::1;::::0;;721:188::o;1329:134:1:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1406:50;1329:134;-1:-1:-1;;;1329:134:1:o;882:176::-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:1;;;;;;;;;;;;-1:-1:-1;;;986:46:1;;;;;;;;;;;;;;1754:187;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:1;;;1754:187::o;14:259:5:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:297::-;;666:2;654:9;645:7;641:23;637:32;634:2;;;687:6;679;672:22;634:2;724:9;718:16;777:5;770:13;763:21;756:5;753:32;743:2;;804:6;796;789:22;848:506;;1000:2;988:9;979:7;975:23;971:32;968:2;;;1021:6;1013;1006:22;968:2;1059;1053:9;;;1089:15;;-1:-1:-1;;;;;1119:34:5;;1155:22;;;1116:62;1113:2;;;1181:9;1113:2;1208;1201:22;1247:16;;1232:32;;1318:2;1303:18;;;1297:25;1280:15;;;1273:50;;;;-1:-1:-1;1239:6:5;958:396;-1:-1:-1;958:396:5:o;1359:190::-;;1471:2;1459:9;1450:7;1446:23;1442:32;1439:2;;;1492:6;1484;1477:22;1439:2;-1:-1:-1;1520:23:5;;1429:120;-1:-1:-1;1429:120:5:o;1554:194::-;;1677:2;1665:9;1656:7;1652:23;1648:32;1645:2;;;1698:6;1690;1683:22;1645:2;-1:-1:-1;1726:16:5;;1635:113;-1:-1:-1;1635:113:5:o;1753:203::-;-1:-1:-1;;;;;1917:32:5;;;;1899:51;;1887:2;1872:18;;1854:102::o;2177:312::-;-1:-1:-1;;;;;2415:15:5;;;2397:34;;2467:15;;2462:2;2447:18;;2440:43;2347:2;2332:18;;2314:175::o;2494:292::-;-1:-1:-1;;;;;2688:32:5;;;;2670:51;;2764:14;2757:22;2752:2;2737:18;;2730:50;2658:2;2643:18;;2625:161::o;2791:290::-;-1:-1:-1;;;;;2999:32:5;;;;2981:51;;3063:2;3048:18;;3041:34;2969:2;2954:18;;2936:145::o;3086:404::-;-1:-1:-1;;;;;3342:32:5;;;;3324:51;;3411:13;;3406:2;3391:18;;;3384:41;;;;3467:15;3461:22;3456:2;3441:18;;3434:50;3312:2;3297:18;;3279:211::o;3782:353::-;-1:-1:-1;;;;;4010:32:5;;;;3992:51;;4074:2;4059:18;;4052:34;;;;4117:2;4102:18;;4095:34;3980:2;3965:18;;3947:188::o;4140:464::-;-1:-1:-1;;;;;4435:15:5;;;4417:34;;4487:15;;;4482:2;4467:18;;4460:43;4539:15;;4534:2;4519:18;;4512:43;4586:2;4571:18;;4564:34;;;;4366:3;4351:19;;4333:271::o;4609:383::-;-1:-1:-1;;;;;4875:15:5;;;4857:34;;4927:15;;;;4922:2;4907:18;;4900:43;4974:2;4959:18;;4952:34;;;;4807:2;4792:18;;4774:218::o;4997:433::-;5244:25;;;-1:-1:-1;;;;;5305:32:5;;;;5300:2;5285:18;;5278:60;5369:2;5354:18;;5347:34;5412:2;5397:18;;5390:34;5231:3;5216:19;;5198:232::o;5873:349::-;6075:2;6057:21;;;6114:2;6094:18;;;6087:30;-1:-1:-1;;;6148:2:5;6133:18;;6126:55;6213:2;6198:18;;6047:175::o;6227:397::-;6429:2;6411:21;;;6468:2;6448:18;;;6441:30;6507:34;6502:2;6487:18;;6480:62;-1:-1:-1;;;6573:2:5;6558:18;;6551:31;6614:3;6599:19;;6401:223::o;6629:415::-;6831:2;6813:21;;;6870:2;6850:18;;;6843:30;6909:34;6904:2;6889:18;;6882:62;-1:-1:-1;;;6975:2:5;6960:18;;6953:49;7034:3;7019:19;;6803:241::o;7049:409::-;7251:2;7233:21;;;7290:2;7270:18;;;7263:30;7329:34;7324:2;7309:18;;7302:62;-1:-1:-1;;;7395:2:5;7380:18;;7373:43;7448:3;7433:19;;7223:235::o;7463:177::-;7609:25;;;7597:2;7582:18;;7564:76::o;7645:133::-;-1:-1:-1;;;;;7722:31:5;;7712:42;;7702:2;;7768:1;7765;7758:12;7702:2;7692:86;:::o

Swarm Source

ipfs://55378dd91541cd0faf55229956410467340b0b69f5d7babf91216671957bcbd8

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.