ETH Price: $2,168.02 (+3.40%)

Contract

0xf1886e6c9727DbCcF3E01cc768d15f0DC47452de
 

Overview

ETH Balance

0.211125258611918016 ETH

Eth Value

$457.72 (@ $2,168.02/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Share193962412024-03-09 8:07:11736 days ago1709971631IN
0xf1886e6c...DC47452de
0 ETH0.0018992946.35942639
Claim Share192760302024-02-21 12:27:47753 days ago1708518467IN
0xf1886e6c...DC47452de
0 ETH0.0012251633.84712831
Claim Share190842272024-01-25 14:28:35780 days ago1706192915IN
0xf1886e6c...DC47452de
0 ETH0.0012307230.04030634
Claim Share190420372024-01-19 16:14:47786 days ago1705680887IN
0xf1886e6c...DC47452de
0 ETH0.0018551345.28140139
Claim Share190125022024-01-15 13:12:47790 days ago1705324367IN
0xf1886e6c...DC47452de
0 ETH0.0010908630.13679849
Claim Share190075212024-01-14 20:30:59791 days ago1705264259IN
0xf1886e6c...DC47452de
0 ETH0.0009097525.13333827
Claim Share190054302024-01-14 13:29:59791 days ago1705238999IN
0xf1886e6c...DC47452de
0 ETH0.001933747.19921195
Claim Share190018812024-01-14 1:35:47791 days ago1705196147IN
0xf1886e6c...DC47452de
0 ETH0.0006057716.73547298
Claim Share189939642024-01-12 23:01:59793 days ago1705100519IN
0xf1886e6c...DC47452de
0 ETH0.0011951229.17152578
Claim Share189910472024-01-12 13:14:35793 days ago1705065275IN
0xf1886e6c...DC47452de
0 ETH0.0008617121.03340439
Claim Share189884462024-01-12 4:30:35793 days ago1705033835IN
0xf1886e6c...DC47452de
0 ETH0.00070917.30580407
Claim Share189857382024-01-11 19:23:11794 days ago1705000991IN
0xf1886e6c...DC47452de
0 ETH0.0011134127.17697589
Claim Share189849152024-01-11 16:37:47794 days ago1704991067IN
0xf1886e6c...DC47452de
0 ETH0.0020865350.92949932
Claim Share189840312024-01-11 13:38:23794 days ago1704980303IN
0xf1886e6c...DC47452de
0 ETH0.0014829936.20853226
Claim Share189838152024-01-11 12:54:47794 days ago1704977687IN
0xf1886e6c...DC47452de
0 ETH0.0011219427.38519322
Claim Share189837282024-01-11 12:37:23794 days ago1704976643IN
0xf1886e6c...DC47452de
0 ETH0.0013475632.90189947
Claim Share189836622024-01-11 12:24:11794 days ago1704975851IN
0xf1886e6c...DC47452de
0 ETH0.0009058925.02690305
Claim Share189836602024-01-11 12:23:47794 days ago1704975827IN
0xf1886e6c...DC47452de
0 ETH0.000809426.18825153
Claim Share189836592024-01-11 12:23:35794 days ago1704975815IN
0xf1886e6c...DC47452de
0 ETH0.0011130227.16738462
Claim Share189829432024-01-11 9:58:35794 days ago1704967115IN
0xf1886e6c...DC47452de
0 ETH0.0007400620.44545198
Claim Share189828672024-01-11 9:43:23794 days ago1704966203IN
0xf1886e6c...DC47452de
0 ETH0.0007546624.41731859
Claim Share189828672024-01-11 9:43:23794 days ago1704966203IN
0xf1886e6c...DC47452de
0 ETH0.0007546624.41731859
Claim Share189828662024-01-11 9:43:11794 days ago1704966191IN
0xf1886e6c...DC47452de
0 ETH0.0007209523.32671312
Claim Share189828662024-01-11 9:43:11794 days ago1704966191IN
0xf1886e6c...DC47452de
0 ETH0.0007209523.32671312
Claim Share189828662024-01-11 9:43:11794 days ago1704966191IN
0xf1886e6c...DC47452de
0 ETH0.0009556723.32671312
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer193962412024-03-09 8:07:11736 days ago1709971631
0xf1886e6c...DC47452de
0.00007305 ETH
Transfer190842272024-01-25 14:28:35780 days ago1706192915
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer190420372024-01-19 16:14:47786 days ago1705680887
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer190054302024-01-14 13:29:59791 days ago1705238999
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer189939642024-01-12 23:01:59793 days ago1705100519
0xf1886e6c...DC47452de
0.03652686 ETH
Transfer189910472024-01-12 13:14:35793 days ago1705065275
0xf1886e6c...DC47452de
0.00730537 ETH
Transfer189884462024-01-12 4:30:35793 days ago1705033835
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer189857382024-01-11 19:23:11794 days ago1705000991
0xf1886e6c...DC47452de
0.01461074 ETH
Transfer189849152024-01-11 16:37:47794 days ago1704991067
0xf1886e6c...DC47452de
0.02191611 ETH
Transfer189840312024-01-11 13:38:23794 days ago1704980303
0xf1886e6c...DC47452de
0.00365268 ETH
Transfer189838152024-01-11 12:54:47794 days ago1704977687
0xf1886e6c...DC47452de
0.03652686 ETH
Transfer189837282024-01-11 12:37:23794 days ago1704976643
0xf1886e6c...DC47452de
0.00073053 ETH
Transfer189836592024-01-11 12:23:35794 days ago1704975815
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer189828662024-01-11 9:43:11794 days ago1704966191
0xf1886e6c...DC47452de
0.02922148 ETH
Transfer189827272024-01-11 9:15:11794 days ago1704964511
0xf1886e6c...DC47452de
0.22646654 ETH
Transfer189826402024-01-11 8:57:23794 days ago1704963443
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer189824852024-01-11 8:25:35794 days ago1704961535
0xf1886e6c...DC47452de
0.1826343 ETH
Transfer189824572024-01-11 8:19:47794 days ago1704961187
0xf1886e6c...DC47452de
0.07312677 ETH
Transfer189823942024-01-11 8:07:11794 days ago1704960431
0xf1886e6c...DC47452de
0.02922148 ETH
Transfer189822902024-01-11 7:46:11794 days ago1704959171
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer189822702024-01-11 7:42:11794 days ago1704958931
0xf1886e6c...DC47452de
0.01461074 ETH
Transfer189822692024-01-11 7:41:59794 days ago1704958919
0xf1886e6c...DC47452de
0.02191611 ETH
Transfer189817442024-01-11 5:55:23794 days ago1704952523
0xf1886e6c...DC47452de
0.00292214 ETH
Transfer189816802024-01-11 5:42:35794 days ago1704951755
0xf1886e6c...DC47452de
0.07305372 ETH
Transfer189816602024-01-11 5:38:35794 days ago1704951515
0xf1886e6c...DC47452de
0.21916116 ETH
View All Internal Transactions
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:
EtfBet

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : EtfBet.sol
/**
 *Submitted for verification at basescan.org on 2023-08-10
*/

// File: contracts/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// File: contracts/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}



pragma solidity >=0.8.2 <0.9.0;


// TODO: Events, final pricing model, 

contract EtfBet is Ownable {

    uint256 public constant CREATOR_PREMINT = 1 ether; // 1e18

    address public protocolFeeDestination = 0x03DCc8d126045a8c8B1E3c11DC442c4b229f1c77; //0x6FC7f47Ec1c3181Ec8027f6C8cd9b0367f07Db26;
    address public rageModeFeeDestination = 0xC754e76233F1324D6B345740798DaB26FaACc0b7; //0x52E52BF832D77d8be17920C0bCa7C01A21F3DD8b;
    address public nextBonusDestination = 0x62861C2678173f9F9E4F564081Bee1Ad63fF4c29; //0x0f2Cc9aACEa541862CD67E50E8Fb93d6863f4Adb;
    uint256 public protocolFeePercent = 80000000000000000;
    uint256 public rageModeFeePercent = 20000000000000000;
    uint256 public nextBonusFeePercent = 100000000000000000;

    uint256 public longShareSupply;
    mapping(address => uint256) public longShareBalance;

    uint256 public shortShareSupply;
    mapping(address => uint256) public shortShareBalance;

    bool public rageModeEnable;

    bool public gameOverEnable;

    uint256 public eftApproveResult;// 1 pass 2 reject

    bool public eftHasPublish;

    bool public nextBonusClaimed;

    uint256 public selftBalance;

    uint256 public longEtherValue;

    uint256 public shortEtherValue;

    modifier volidEtfResultor(uint256 result) {
        require(result == 1 || result == 2);
        _;
    }

    event LongTrade(address trader, bool isBuy, uint256 shareAmount, uint256 ethAmount, uint256 protocolEthAmount, uint256 rageModeEthAmount, uint256 supply);

    event ShortTrade(address trader, bool isBuy, uint256 shareAmount, uint256 ethAmount, uint256 protocolEthAmount, uint256 rageModeEthAmount, uint256 supply);


    constructor() {
        longShareBalance[msg.sender] = CREATOR_PREMINT;
        shortShareBalance[msg.sender] = CREATOR_PREMINT;
        longShareSupply = CREATOR_PREMINT;
        shortShareSupply = CREATOR_PREMINT;
    }
    function setProtocolFeeDestination(address _feeDestination) public onlyOwner {
        protocolFeeDestination = _feeDestination;
    }

    function setRageModeFeeDestination(address _feeDestination) public onlyOwner {
        rageModeFeeDestination = _feeDestination;
    }

    function setNextBonusDestination(address destination) public onlyOwner {
        nextBonusDestination = destination;
    }

    function setProtocolFeePercent(uint256 _feePercent) public onlyOwner {
        protocolFeePercent = _feePercent;
    }

    function setRageModeFeePercent(uint256 _feePercent) public onlyOwner {
        rageModeFeePercent = _feePercent;
    }

    function setNextBonusFeePercent(uint256 _feePercent) public onlyOwner {
        nextBonusFeePercent = _feePercent;
    }

    function setRageModeEnable(bool enable) public onlyOwner {
        rageModeEnable = enable;
    }

    function setGameOverEnable(bool enable) public onlyOwner {
        gameOverEnable = enable;
    }

    function publishEtfResult(uint256 result) public onlyOwner volidEtfResultor(result) {
        require(!eftHasPublish, "has publish");
        require(gameOverEnable, "Gaming");
        require(result == 1 || result == 2, "invalid result");
        eftApproveResult = result;
        eftHasPublish = true;
    }

    function _curve(uint256 x) private pure returns (uint256) {
        return x <= CREATOR_PREMINT ? 0 : ((x - CREATOR_PREMINT) * (x - CREATOR_PREMINT) * (x - CREATOR_PREMINT));
    }

    function getPrice(uint256 supply, uint256 amount) public pure returns (uint256) {
        return (_curve(supply + amount) - _curve(supply)) / 1 ether / 1 ether / 50_000 / 3;
    }

    // function getLongBuyPrice(uint256 amount) public view returns (uint256) {
    //     return getPrice(longShareSupply, amount);
    // }

    // function getPrice(uint256 supply, uint256 amount) public pure returns (uint256) {
    //     uint256 sum1 = supply == 0 ? 0 : (supply - 1 )* (supply) * (2 * (supply - 1) + 1) / 6;
    //     uint256 sum2 = supply == 0 && amount == 1 ? 0 : (supply - 1 + amount) * (supply + amount) * (2 * (supply - 1 + amount) + 1) / 6;
    //     uint256 summation = sum2 - sum1;
    //     return summation * 1 ether / 50000000;
    // }

    function getBuyLongPrice(uint256 amount) public view returns (uint256) {
        return getPrice(longShareSupply, amount);
    }

    function getSellLongPrice(uint256 amount) public view returns (uint256) {
        return getPrice(longShareSupply - amount, amount);
    }

    function getBuyLongPriceAfterFee(uint256 amount) public view returns (uint256) {
        uint256 price = getBuyLongPrice(amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        return price + protocolFee + rageModeFee;
    }

    function getSellLongPriceAfterFee(uint256 amount) public view returns (uint256) {
        uint256 price = getSellLongPrice(amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        return price - protocolFee - rageModeFee;
    }

    function buyLongShares(uint256 amount) public payable {
        require(!gameOverEnable, "Game Over");
        uint256 supply = longShareSupply;
        uint256 price = getPrice(supply, amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        require(msg.value >= price + protocolFee + rageModeFee, "Insufficient payment");
        longShareBalance[msg.sender] = longShareBalance[msg.sender] + amount;
        longShareSupply = supply + amount;
        emit LongTrade(msg.sender, true, amount, price, protocolFee, rageModeFee, supply + amount);
        (bool success1, ) = protocolFeeDestination.call{value: protocolFee}("");
        (bool success2, ) = rageModeFeeDestination.call{value: rageModeFee}("");
        selftBalance = selftBalance + msg.value - protocolFee - rageModeFee;
        longEtherValue = longEtherValue + msg.value - protocolFee - rageModeFee;
        require(success1 && success2, "Unable to send funds");
    }

    function sellLongShares(uint256 amount) public payable {
        require(!gameOverEnable, "Game Over");
        require(!rageModeEnable, "Rage Mode");
        uint256 supply = longShareSupply;
        require(supply > amount, "Cannot sell the last share");
        uint256 price = getPrice(supply - amount, amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        require(longShareBalance[msg.sender] >= amount, "Insufficient shares");
        longShareBalance[msg.sender] = longShareBalance[msg.sender] - amount;
        longShareSupply = supply - amount;
        emit LongTrade(msg.sender, false, amount, price, protocolFee, rageModeFee, supply - amount);
        (bool success1, ) = msg.sender.call{value: price - protocolFee - rageModeFee}("");
        (bool success2, ) = protocolFeeDestination.call{value: protocolFee}("");
        (bool success3, ) = rageModeFeeDestination.call{value: rageModeFee}("");
        selftBalance = selftBalance - price;
        longEtherValue = longEtherValue - price;
        require(success1 && success2 && success3, "Unable to send funds");
    }

    function getBuyShortPrice(uint256 amount) public view returns (uint256) {
        return getPrice(shortShareSupply, amount);
    }

    function getSellShortPrice(uint256 amount) public view returns (uint256) {
        return getPrice(shortShareSupply - amount, amount);
    }

    function getBuyShortPriceAfterFee(uint256 amount) public view returns (uint256) {
        uint256 price = getBuyShortPrice(amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        return price + protocolFee + rageModeFee;
    }

    function getSellShortPriceAfterFee(uint256 amount) public view returns (uint256) {
        uint256 price = getSellShortPrice(amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        return price - protocolFee - rageModeFee;
    }

    function buyShortShares(uint256 amount) public payable {
        require(!gameOverEnable, "Game Over");
        uint256 supply = shortShareSupply;
        uint256 price = getPrice(supply, amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        require(msg.value >= price + protocolFee + rageModeFee, "Insufficient payment");
        shortShareBalance[msg.sender] = shortShareBalance[msg.sender] + amount;
        shortShareSupply = supply + amount;
        emit ShortTrade(msg.sender, true, amount, price, protocolFee, rageModeFee, supply + amount);
        (bool success1, ) = protocolFeeDestination.call{value: protocolFee}("");
        (bool success2, ) = rageModeFeeDestination.call{value: rageModeFee}("");
        selftBalance = selftBalance + msg.value - protocolFee - rageModeFee;
        shortEtherValue = shortEtherValue + msg.value - protocolFee - rageModeFee;
        require(success1 && success2, "Unable to send funds");
    }

    function sellShortShares(uint256 amount) public payable {
        require(!gameOverEnable, "Game Over");
        require(!rageModeEnable, "Rage Mode");
        uint256 supply = shortShareSupply;
        require(supply > amount, "Cannot sell the last share");
        uint256 price = getPrice(supply - amount, amount);
        uint256 protocolFee = price * protocolFeePercent / 1 ether;
        uint256 rageModeFee = price * rageModeFeePercent / 1 ether;
        require(shortShareBalance[msg.sender] >= amount, "Insufficient shares");
        shortShareBalance[msg.sender] = shortShareBalance[msg.sender] - amount;
        shortShareSupply = supply - amount;
        emit ShortTrade(msg.sender, false, amount, price, protocolFee, rageModeFee, supply - amount);
        (bool success1, ) = msg.sender.call{value: price - protocolFee - rageModeFee}("");
        (bool success2, ) = protocolFeeDestination.call{value: protocolFee}("");
        (bool success3, ) = rageModeFeeDestination.call{value: rageModeFee}("");
        selftBalance = selftBalance - price;
        shortEtherValue = shortEtherValue - price;
        require(success1 && success2 && success3, "Unable to send funds");
    }

    function claimShare(uint256 amount) public payable {
        require(gameOverEnable, "Gaming");
        require(nextBonusClaimed, "next bonus unclaim");
        require(eftApproveResult == 1 || eftApproveResult == 2, "invalid result");
        if (eftApproveResult == 1) {
            require(longShareBalance[msg.sender] >= amount, "Insufficient shares");
            longShareBalance[msg.sender] = longShareBalance[msg.sender] - amount;
            uint256 sendValue = selftBalance * amount / longShareSupply;
            (bool success, ) = msg.sender.call{value: sendValue}("");
            require(success, "Unable to send funds");
        } else {
            require(shortShareBalance[msg.sender] >= amount, "Insufficient shares");
            shortShareBalance[msg.sender] = shortShareBalance[msg.sender] - amount;
            uint256 sendValue = selftBalance * amount / shortShareSupply;
            (bool success, ) = msg.sender.call{value: sendValue}("");
            require(success, "Unable to send funds");
        }
    }

    function claimNextBonus() public onlyOwner {
        require(gameOverEnable, "Gaming");
        require(!nextBonusClaimed, "next bonus claimed");
        require(eftApproveResult == 1 || eftApproveResult == 2, "invalid result");
        if (eftApproveResult == 1) {
            uint256 nextBonusFee = shortEtherValue * nextBonusFeePercent / 1 ether;
            require(selftBalance > nextBonusFee, "Insufficient selftBalance");
            selftBalance = selftBalance - nextBonusFee;
            (bool success, ) = nextBonusDestination.call{value: nextBonusFee}("");
            nextBonusClaimed = true;
            require(success, "Unable to send funds");
        } else {
            uint256 nextBonusFee = longEtherValue * nextBonusFeePercent / 1 ether;
            require(selftBalance > nextBonusFee, "Insufficient selftBalance");
            selftBalance = selftBalance - nextBonusFee;
            (bool success, ) = nextBonusDestination.call{value: nextBonusFee}("");
            nextBonusClaimed = true;
            require(success, "Unable to send funds");
        }
        
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"bool","name":"isBuy","type":"bool"},{"indexed":false,"internalType":"uint256","name":"shareAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolEthAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rageModeEthAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"LongTrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"bool","name":"isBuy","type":"bool"},{"indexed":false,"internalType":"uint256","name":"shareAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolEthAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rageModeEthAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"ShortTrade","type":"event"},{"inputs":[],"name":"CREATOR_PREMINT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyLongShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyShortShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimNextBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimShare","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"eftApproveResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eftHasPublish","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameOverEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyLongPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyLongPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyShortPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyShortPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellLongPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellLongPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellShortPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellShortPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"longEtherValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"longShareBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"longShareSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextBonusClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextBonusDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextBonusFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"name":"publishEtfResult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rageModeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rageModeFeeDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rageModeFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"selftBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellLongShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellShortShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setGameOverEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"}],"name":"setNextBonusDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"}],"name":"setNextBonusFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeDestination","type":"address"}],"name":"setProtocolFeeDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"}],"name":"setProtocolFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setRageModeEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeDestination","type":"address"}],"name":"setRageModeFeeDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"}],"name":"setRageModeFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shortEtherValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shortShareBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shortShareSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040527303dcc8d126045a8c8b1e3c11dc442c4b229f1c77600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c754e76233f1324d6b345740798dab26faacc0b7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507362861c2678173f9f9e4f564081bee1ad63ff4c29600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067011c37937e08000060045566470de4df82000060055567016345785d8a00006006553480156200013357600080fd5b5062000154620001486200021060201b60201c565b6200021860201b60201c565b670de0b6b3a7640000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550670de0b6b3a7640000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550670de0b6b3a7640000600781905550670de0b6b3a7640000600981905550620002dc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61379980620002ec6000396000f3fe60806040526004361061027d5760003560e01c8063707dd89c1161014f578063a4983421116100c1578063cd91c83a1161007a578063cd91c83a1461098c578063d6e6eb9f146109a3578063e644787b146109ce578063f1079c52146109ea578063f2fde38b14610a15578063fe2909c614610a3e5761027d565b8063a498342114610874578063a7b83fbd1461089d578063aa359591146108da578063b1ebf92514610917578063b70e162214610933578063c86ba442146109705761027d565b806384f86cd21161011357806384f86cd2146107625780638a2662c91461078d5780638da5cb5b146107ca57806398d40fce146107f55780639c62192a14610820578063a10786b01461084b5761027d565b8063707dd89c1461068d578063715018a6146106b85780637792858a146106cf5780637ffb25ac146106fa57806381e6bcb1146107255761027d565b8063437a10fe116101f3578063500099ea116101ac578063500099ea1461055b5780635216050214610584578063587233a4146105c15780635cf4ee91146105ea5780635f4a5d0214610627578063616b2331146106645761027d565b8063437a10fe1461045d578063484ee4671461048657806349be8b0d146104b15780634ce7957c146104dc5780634dbd954a146105075780634e3f5408146105325761027d565b80631cef068b116102455780631cef068b146103465780631e048639146103625780632f75d81e1461038d57806332f77c64146103b85780633422339b146103f557806341ba9c08146104325761027d565b8063042569a914610282578063080b95e2146102ad5780630cc03e7a146102d657806313ebc6e2146102f257806315e786ad1461031b575b600080fd5b34801561028e57600080fd5b50610297610a7b565b6040516102a49190612d59565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612db1565b610a81565b005b6102f060048036038101906102eb9190612e0a565b610aa6565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612e0a565b610f63565b005b34801561032757600080fd5b50610330611097565b60405161033d9190612d59565b60405180910390f35b610360600480360381019061035b9190612e0a565b61109d565b005b34801561036e57600080fd5b5061037761157c565b6040516103849190612d59565b60405180910390f35b34801561039957600080fd5b506103a2611582565b6040516103af9190612e78565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612e0a565b6115a8565b6040516103ec9190612d59565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612e0a565b611621565b6040516104299190612d59565b60405180910390f35b34801561043e57600080fd5b50610447611636565b6040516104549190612ea2565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190612e0a565b611649565b005b34801561049257600080fd5b5061049b61165b565b6040516104a89190612ea2565b60405180910390f35b3480156104bd57600080fd5b506104c661166e565b6040516104d39190612e78565b60405180910390f35b3480156104e857600080fd5b506104f1611694565b6040516104fe9190612e78565b60405180910390f35b34801561051357600080fd5b5061051c6116ba565b6040516105299190612ea2565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190612db1565b6116cd565b005b34801561056757600080fd5b50610582600480360381019061057d9190612e0a565b6116f2565b005b34801561059057600080fd5b506105ab60048036038101906105a69190612e0a565b611704565b6040516105b89190612d59565b60405180910390f35b3480156105cd57600080fd5b506105e860048036038101906105e39190612ee9565b611724565b005b3480156105f657600080fd5b50610611600480360381019061060c9190612f16565b611770565b60405161061e9190612d59565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190612e0a565b6117d8565b60405161065b9190612d59565b60405180910390f35b34801561067057600080fd5b5061068b60048036038101906106869190612ee9565b611851565b005b34801561069957600080fd5b506106a261189d565b6040516106af9190612d59565b60405180910390f35b3480156106c457600080fd5b506106cd6118a3565b005b3480156106db57600080fd5b506106e46118b7565b6040516106f19190612d59565b60405180910390f35b34801561070657600080fd5b5061070f6118bd565b60405161071c9190612d59565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190612e0a565b6118c9565b6040516107599190612d59565b60405180910390f35b34801561076e57600080fd5b50610777611942565b6040516107849190612d59565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190612e0a565b611948565b6040516107c19190612d59565b60405180910390f35b3480156107d657600080fd5b506107df61195d565b6040516107ec9190612e78565b60405180910390f35b34801561080157600080fd5b5061080a611986565b6040516108179190612d59565b60405180910390f35b34801561082c57600080fd5b5061083561198c565b6040516108429190612ea2565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d9190612ee9565b61199f565b005b34801561088057600080fd5b5061089b60048036038101906108969190612e0a565b6119eb565b005b3480156108a957600080fd5b506108c460048036038101906108bf9190612e0a565b6119fd565b6040516108d19190612d59565b60405180910390f35b3480156108e657600080fd5b5061090160048036038101906108fc9190612e0a565b611a76565b60405161090e9190612d59565b60405180910390f35b610931600480360381019061092c9190612e0a565b611a96565b005b34801561093f57600080fd5b5061095a60048036038101906109559190612ee9565b611e4f565b6040516109679190612d59565b60405180910390f35b61098a60048036038101906109859190612e0a565b611e67565b005b34801561099857600080fd5b506109a1612346565b005b3480156109af57600080fd5b506109b8612725565b6040516109c59190612d59565b60405180910390f35b6109e860048036038101906109e39190612e0a565b61272b565b005b3480156109f657600080fd5b506109ff612ae4565b604051610a0c9190612d59565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a379190612ee9565b612aea565b005b348015610a4a57600080fd5b50610a656004803603810190610a609190612ee9565b612b6d565b604051610a729190612d59565b60405180910390f35b60065481565b610a89612b85565b80600b60006101000a81548160ff02191690831515021790555050565b600b60019054906101000a900460ff16610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90612fb3565b60405180910390fd5b600d60019054906101000a900460ff16610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b9061301f565b60405180910390fd5b6001600c541480610b5757506002600c54145b610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d9061308b565b60405180910390fd5b6001600c5403610d825780600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c19906130f7565b60405180910390fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6d9190613146565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060075482600e54610cc3919061317a565b610ccd91906131eb565b905060003373ffffffffffffffffffffffffffffffffffffffff1682604051610cf59061324d565b60006040518083038185875af1925050503d8060008114610d32576040519150601f19603f3d011682016040523d82523d6000602084013e610d37565b606091505b5050905080610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d72906132ae565b60405180910390fd5b5050610f60565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906130f7565b60405180910390fd5b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e4f9190613146565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060095482600e54610ea5919061317a565b610eaf91906131eb565b905060003373ffffffffffffffffffffffffffffffffffffffff1682604051610ed79061324d565b60006040518083038185875af1925050503d8060008114610f14576040519150601f19603f3d011682016040523d82523d6000602084013e610f19565b606091505b5050905080610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906132ae565b60405180910390fd5b50505b50565b610f6b612b85565b806001811480610f7b5750600281145b610f8457600080fd5b600d60009054906101000a900460ff1615610fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcb9061331a565b60405180910390fd5b600b60019054906101000a900460ff16611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90612fb3565b60405180910390fd5b60018214806110325750600282145b611071576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110689061308b565b60405180910390fd5b81600c819055506001600d60006101000a81548160ff0219169083151502179055505050565b60055481565b600b60019054906101000a900460ff16156110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490613386565b60405180910390fd5b600b60009054906101000a900460ff161561113d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611134906133f2565b60405180910390fd5b60006007549050818111611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061345e565b60405180910390fd5b600061119d83836111979190613146565b84611770565b90506000670de0b6b3a7640000600454836111b8919061317a565b6111c291906131eb565b90506000670de0b6b3a7640000600554846111dd919061317a565b6111e791906131eb565b905084600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561126b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611262906130f7565b60405180910390fd5b84600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b69190613146565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084846113059190613146565b6007819055507f50d60398263f0b8253c56e7f3098584296bd15c3c7fedcecfcaee645d403027b336000878686868b8b61133f9190613146565b604051611352979695949392919061347e565b60405180910390a160003373ffffffffffffffffffffffffffffffffffffffff168284866113809190613146565b61138a9190613146565b6040516113969061324d565b60006040518083038185875af1925050503d80600081146113d3576040519150601f19603f3d011682016040523d82523d6000602084013e6113d8565b606091505b505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516114249061324d565b60006040518083038185875af1925050503d8060008114611461576040519150601f19603f3d011682016040523d82523d6000602084013e611466565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516114b29061324d565b60006040518083038185875af1925050503d80600081146114ef576040519150601f19603f3d011682016040523d82523d6000602084013e6114f4565b606091505b5050905085600e546115069190613146565b600e8190555085600f5461151a9190613146565b600f8190555082801561152a5750815b80156115335750805b611572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611569906132ae565b60405180910390fd5b5050505050505050565b600e5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806115b483611704565b90506000670de0b6b3a7640000600454836115cf919061317a565b6115d991906131eb565b90506000670de0b6b3a7640000600554846115f4919061317a565b6115fe91906131eb565b905080828461160d9190613146565b6116179190613146565b9350505050919050565b600061162f60095483611770565b9050919050565b600b60009054906101000a900460ff1681565b611651612b85565b8060068190555050565b600b60019054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6116d5612b85565b80600b60016101000a81548160ff02191690831515021790555050565b6116fa612b85565b8060058190555050565b600061171d826009546117179190613146565b83611770565b9050919050565b61172c612b85565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600361c350670de0b6b3a76400008061178a87612c03565b61179e878961179991906134ed565b612c03565b6117a89190613146565b6117b291906131eb565b6117bc91906131eb565b6117c691906131eb565b6117d091906131eb565b905092915050565b6000806117e483611948565b90506000670de0b6b3a7640000600454836117ff919061317a565b61180991906131eb565b90506000670de0b6b3a764000060055484611824919061317a565b61182e91906131eb565b905080828461183d91906134ed565b61184791906134ed565b9350505050919050565b611859612b85565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6118ab612b85565b6118b56000612c74565b565b60105481565b670de0b6b3a764000081565b6000806118d583611a76565b90506000670de0b6b3a7640000600454836118f0919061317a565b6118fa91906131eb565b90506000670de0b6b3a764000060055484611915919061317a565b61191f91906131eb565b905080828461192e9190613146565b6119389190613146565b9350505050919050565b600f5481565b600061195660075483611770565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b600d60019054906101000a900460ff1681565b6119a7612b85565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119f3612b85565b8060048190555050565b600080611a0983611621565b90506000670de0b6b3a764000060045483611a24919061317a565b611a2e91906131eb565b90506000670de0b6b3a764000060055484611a49919061317a565b611a5391906131eb565b9050808284611a6291906134ed565b611a6c91906134ed565b9350505050919050565b6000611a8f82600754611a899190613146565b83611770565b9050919050565b600b60019054906101000a900460ff1615611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add90613386565b60405180910390fd5b600060075490506000611af98284611770565b90506000670de0b6b3a764000060045483611b14919061317a565b611b1e91906131eb565b90506000670de0b6b3a764000060055484611b39919061317a565b611b4391906131eb565b9050808284611b5291906134ed565b611b5c91906134ed565b341015611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b959061356d565b60405180910390fd5b84600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be991906134ed565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508484611c3891906134ed565b6007819055507f50d60398263f0b8253c56e7f3098584296bd15c3c7fedcecfcaee645d403027b336001878686868b8b611c7291906134ed565b604051611c85979695949392919061347e565b60405180910390a16000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611cd59061324d565b60006040518083038185875af1925050503d8060008114611d12576040519150601f19603f3d011682016040523d82523d6000602084013e611d17565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611d639061324d565b60006040518083038185875af1925050503d8060008114611da0576040519150601f19603f3d011682016040523d82523d6000602084013e611da5565b606091505b50509050828434600e54611db991906134ed565b611dc39190613146565b611dcd9190613146565b600e81905550828434600f54611de391906134ed565b611ded9190613146565b611df79190613146565b600f81905550818015611e075750805b611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d906132ae565b60405180910390fd5b50505050505050565b600a6020528060005260406000206000915090505481565b600b60019054906101000a900460ff1615611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90613386565b60405180910390fd5b600b60009054906101000a900460ff1615611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe906133f2565b60405180910390fd5b60006009549050818111611f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f479061345e565b60405180910390fd5b6000611f678383611f619190613146565b84611770565b90506000670de0b6b3a764000060045483611f82919061317a565b611f8c91906131eb565b90506000670de0b6b3a764000060055484611fa7919061317a565b611fb191906131eb565b905084600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c906130f7565b60405180910390fd5b84600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120809190613146565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084846120cf9190613146565b6009819055507fb0c5ecf77be2fe1053eb203023bbf03a951cffabc89d6d923852336cc245d728336000878686868b8b6121099190613146565b60405161211c979695949392919061347e565b60405180910390a160003373ffffffffffffffffffffffffffffffffffffffff1682848661214a9190613146565b6121549190613146565b6040516121609061324d565b60006040518083038185875af1925050503d806000811461219d576040519150601f19603f3d011682016040523d82523d6000602084013e6121a2565b606091505b505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516121ee9061324d565b60006040518083038185875af1925050503d806000811461222b576040519150601f19603f3d011682016040523d82523d6000602084013e612230565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161227c9061324d565b60006040518083038185875af1925050503d80600081146122b9576040519150601f19603f3d011682016040523d82523d6000602084013e6122be565b606091505b5050905085600e546122d09190613146565b600e81905550856010546122e49190613146565b6010819055508280156122f45750815b80156122fd5750805b61233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612333906132ae565b60405180910390fd5b5050505050505050565b61234e612b85565b600b60019054906101000a900460ff1661239d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239490612fb3565b60405180910390fd5b600d60019054906101000a900460ff16156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906135d9565b60405180910390fd5b6001600c54148061240057506002600c54145b61243f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124369061308b565b60405180910390fd5b6001600c54036125b8576000670de0b6b3a7640000600654601054612464919061317a565b61246e91906131eb565b905080600e54116124b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ab90613645565b60405180910390fd5b80600e546124c29190613146565b600e819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516125109061324d565b60006040518083038185875af1925050503d806000811461254d576040519150601f19603f3d011682016040523d82523d6000602084013e612552565b606091505b505090506001600d60016101000a81548160ff021916908315150217905550806125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a8906132ae565b60405180910390fd5b5050612723565b6000670de0b6b3a7640000600654600f546125d3919061317a565b6125dd91906131eb565b905080600e5411612623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261a90613645565b60405180910390fd5b80600e546126319190613146565b600e819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161267f9061324d565b60006040518083038185875af1925050503d80600081146126bc576040519150601f19603f3d011682016040523d82523d6000602084013e6126c1565b606091505b505090506001600d60016101000a81548160ff02191690831515021790555080612720576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612717906132ae565b60405180910390fd5b50505b565b60045481565b600b60019054906101000a900460ff161561277b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277290613386565b60405180910390fd5b60006009549050600061278e8284611770565b90506000670de0b6b3a7640000600454836127a9919061317a565b6127b391906131eb565b90506000670de0b6b3a7640000600554846127ce919061317a565b6127d891906131eb565b90508082846127e791906134ed565b6127f191906134ed565b341015612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a9061356d565b60405180910390fd5b84600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e91906134ed565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084846128cd91906134ed565b6009819055507fb0c5ecf77be2fe1053eb203023bbf03a951cffabc89d6d923852336cc245d728336001878686868b8b61290791906134ed565b60405161291a979695949392919061347e565b60405180910390a16000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161296a9061324d565b60006040518083038185875af1925050503d80600081146129a7576040519150601f19603f3d011682016040523d82523d6000602084013e6129ac565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516129f89061324d565b60006040518083038185875af1925050503d8060008114612a35576040519150601f19603f3d011682016040523d82523d6000602084013e612a3a565b606091505b50509050828434600e54612a4e91906134ed565b612a589190613146565b612a629190613146565b600e81905550828434601054612a7891906134ed565b612a829190613146565b612a8c9190613146565b601081905550818015612a9c5750805b612adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad2906132ae565b60405180910390fd5b50505050505050565b60095481565b612af2612b85565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b58906136d7565b60405180910390fd5b612b6a81612c74565b50565b60086020528060005260406000206000915090505481565b612b8d612d38565b73ffffffffffffffffffffffffffffffffffffffff16612bab61195d565b73ffffffffffffffffffffffffffffffffffffffff1614612c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf890613743565b60405180910390fd5b565b6000670de0b6b3a7640000821115612c6a57670de0b6b3a764000082612c299190613146565b670de0b6b3a764000083612c3d9190613146565b670de0b6b3a764000084612c519190613146565b612c5b919061317a565b612c65919061317a565b612c6d565b60005b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000819050919050565b612d5381612d40565b82525050565b6000602082019050612d6e6000830184612d4a565b92915050565b600080fd5b60008115159050919050565b612d8e81612d79565b8114612d9957600080fd5b50565b600081359050612dab81612d85565b92915050565b600060208284031215612dc757612dc6612d74565b5b6000612dd584828501612d9c565b91505092915050565b612de781612d40565b8114612df257600080fd5b50565b600081359050612e0481612dde565b92915050565b600060208284031215612e2057612e1f612d74565b5b6000612e2e84828501612df5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6282612e37565b9050919050565b612e7281612e57565b82525050565b6000602082019050612e8d6000830184612e69565b92915050565b612e9c81612d79565b82525050565b6000602082019050612eb76000830184612e93565b92915050565b612ec681612e57565b8114612ed157600080fd5b50565b600081359050612ee381612ebd565b92915050565b600060208284031215612eff57612efe612d74565b5b6000612f0d84828501612ed4565b91505092915050565b60008060408385031215612f2d57612f2c612d74565b5b6000612f3b85828601612df5565b9250506020612f4c85828601612df5565b9150509250929050565b600082825260208201905092915050565b7f47616d696e670000000000000000000000000000000000000000000000000000600082015250565b6000612f9d600683612f56565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f6e65787420626f6e757320756e636c61696d0000000000000000000000000000600082015250565b6000613009601283612f56565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f696e76616c696420726573756c74000000000000000000000000000000000000600082015250565b6000613075600e83612f56565b91506130808261303f565b602082019050919050565b600060208201905081810360008301526130a481613068565b9050919050565b7f496e73756666696369656e742073686172657300000000000000000000000000600082015250565b60006130e1601383612f56565b91506130ec826130ab565b602082019050919050565b60006020820190508181036000830152613110816130d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061315182612d40565b915061315c83612d40565b925082820390508181111561317457613173613117565b5b92915050565b600061318582612d40565b915061319083612d40565b925082820261319e81612d40565b915082820484148315176131b5576131b4613117565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131f682612d40565b915061320183612d40565b925082613211576132106131bc565b5b828204905092915050565b600081905092915050565b50565b600061323760008361321c565b915061324282613227565b600082019050919050565b60006132588261322a565b9150819050919050565b7f556e61626c6520746f2073656e642066756e6473000000000000000000000000600082015250565b6000613298601483612f56565b91506132a382613262565b602082019050919050565b600060208201905081810360008301526132c78161328b565b9050919050565b7f686173207075626c697368000000000000000000000000000000000000000000600082015250565b6000613304600b83612f56565b915061330f826132ce565b602082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b7f47616d65204f7665720000000000000000000000000000000000000000000000600082015250565b6000613370600983612f56565b915061337b8261333a565b602082019050919050565b6000602082019050818103600083015261339f81613363565b9050919050565b7f52616765204d6f64650000000000000000000000000000000000000000000000600082015250565b60006133dc600983612f56565b91506133e7826133a6565b602082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f43616e6e6f742073656c6c20746865206c617374207368617265000000000000600082015250565b6000613448601a83612f56565b915061345382613412565b602082019050919050565b600060208201905081810360008301526134778161343b565b9050919050565b600060e082019050613493600083018a612e69565b6134a06020830189612e93565b6134ad6040830188612d4a565b6134ba6060830187612d4a565b6134c76080830186612d4a565b6134d460a0830185612d4a565b6134e160c0830184612d4a565b98975050505050505050565b60006134f882612d40565b915061350383612d40565b925082820190508082111561351b5761351a613117565b5b92915050565b7f496e73756666696369656e74207061796d656e74000000000000000000000000600082015250565b6000613557601483612f56565b915061356282613521565b602082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b7f6e65787420626f6e757320636c61696d65640000000000000000000000000000600082015250565b60006135c3601283612f56565b91506135ce8261358d565b602082019050919050565b600060208201905081810360008301526135f2816135b6565b9050919050565b7f496e73756666696369656e742073656c667442616c616e636500000000000000600082015250565b600061362f601983612f56565b915061363a826135f9565b602082019050919050565b6000602082019050818103600083015261365e81613622565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136c1602683612f56565b91506136cc82613665565b604082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061372d602083612f56565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b905091905056fea26469706673582212203d2904d0bb109a1fedfdc2f96f4f3a3b9cc15d1c588c76928b2a441cec3b946c64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061027d5760003560e01c8063707dd89c1161014f578063a4983421116100c1578063cd91c83a1161007a578063cd91c83a1461098c578063d6e6eb9f146109a3578063e644787b146109ce578063f1079c52146109ea578063f2fde38b14610a15578063fe2909c614610a3e5761027d565b8063a498342114610874578063a7b83fbd1461089d578063aa359591146108da578063b1ebf92514610917578063b70e162214610933578063c86ba442146109705761027d565b806384f86cd21161011357806384f86cd2146107625780638a2662c91461078d5780638da5cb5b146107ca57806398d40fce146107f55780639c62192a14610820578063a10786b01461084b5761027d565b8063707dd89c1461068d578063715018a6146106b85780637792858a146106cf5780637ffb25ac146106fa57806381e6bcb1146107255761027d565b8063437a10fe116101f3578063500099ea116101ac578063500099ea1461055b5780635216050214610584578063587233a4146105c15780635cf4ee91146105ea5780635f4a5d0214610627578063616b2331146106645761027d565b8063437a10fe1461045d578063484ee4671461048657806349be8b0d146104b15780634ce7957c146104dc5780634dbd954a146105075780634e3f5408146105325761027d565b80631cef068b116102455780631cef068b146103465780631e048639146103625780632f75d81e1461038d57806332f77c64146103b85780633422339b146103f557806341ba9c08146104325761027d565b8063042569a914610282578063080b95e2146102ad5780630cc03e7a146102d657806313ebc6e2146102f257806315e786ad1461031b575b600080fd5b34801561028e57600080fd5b50610297610a7b565b6040516102a49190612d59565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612db1565b610a81565b005b6102f060048036038101906102eb9190612e0a565b610aa6565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612e0a565b610f63565b005b34801561032757600080fd5b50610330611097565b60405161033d9190612d59565b60405180910390f35b610360600480360381019061035b9190612e0a565b61109d565b005b34801561036e57600080fd5b5061037761157c565b6040516103849190612d59565b60405180910390f35b34801561039957600080fd5b506103a2611582565b6040516103af9190612e78565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612e0a565b6115a8565b6040516103ec9190612d59565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612e0a565b611621565b6040516104299190612d59565b60405180910390f35b34801561043e57600080fd5b50610447611636565b6040516104549190612ea2565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190612e0a565b611649565b005b34801561049257600080fd5b5061049b61165b565b6040516104a89190612ea2565b60405180910390f35b3480156104bd57600080fd5b506104c661166e565b6040516104d39190612e78565b60405180910390f35b3480156104e857600080fd5b506104f1611694565b6040516104fe9190612e78565b60405180910390f35b34801561051357600080fd5b5061051c6116ba565b6040516105299190612ea2565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190612db1565b6116cd565b005b34801561056757600080fd5b50610582600480360381019061057d9190612e0a565b6116f2565b005b34801561059057600080fd5b506105ab60048036038101906105a69190612e0a565b611704565b6040516105b89190612d59565b60405180910390f35b3480156105cd57600080fd5b506105e860048036038101906105e39190612ee9565b611724565b005b3480156105f657600080fd5b50610611600480360381019061060c9190612f16565b611770565b60405161061e9190612d59565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190612e0a565b6117d8565b60405161065b9190612d59565b60405180910390f35b34801561067057600080fd5b5061068b60048036038101906106869190612ee9565b611851565b005b34801561069957600080fd5b506106a261189d565b6040516106af9190612d59565b60405180910390f35b3480156106c457600080fd5b506106cd6118a3565b005b3480156106db57600080fd5b506106e46118b7565b6040516106f19190612d59565b60405180910390f35b34801561070657600080fd5b5061070f6118bd565b60405161071c9190612d59565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190612e0a565b6118c9565b6040516107599190612d59565b60405180910390f35b34801561076e57600080fd5b50610777611942565b6040516107849190612d59565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190612e0a565b611948565b6040516107c19190612d59565b60405180910390f35b3480156107d657600080fd5b506107df61195d565b6040516107ec9190612e78565b60405180910390f35b34801561080157600080fd5b5061080a611986565b6040516108179190612d59565b60405180910390f35b34801561082c57600080fd5b5061083561198c565b6040516108429190612ea2565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d9190612ee9565b61199f565b005b34801561088057600080fd5b5061089b60048036038101906108969190612e0a565b6119eb565b005b3480156108a957600080fd5b506108c460048036038101906108bf9190612e0a565b6119fd565b6040516108d19190612d59565b60405180910390f35b3480156108e657600080fd5b5061090160048036038101906108fc9190612e0a565b611a76565b60405161090e9190612d59565b60405180910390f35b610931600480360381019061092c9190612e0a565b611a96565b005b34801561093f57600080fd5b5061095a60048036038101906109559190612ee9565b611e4f565b6040516109679190612d59565b60405180910390f35b61098a60048036038101906109859190612e0a565b611e67565b005b34801561099857600080fd5b506109a1612346565b005b3480156109af57600080fd5b506109b8612725565b6040516109c59190612d59565b60405180910390f35b6109e860048036038101906109e39190612e0a565b61272b565b005b3480156109f657600080fd5b506109ff612ae4565b604051610a0c9190612d59565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a379190612ee9565b612aea565b005b348015610a4a57600080fd5b50610a656004803603810190610a609190612ee9565b612b6d565b604051610a729190612d59565b60405180910390f35b60065481565b610a89612b85565b80600b60006101000a81548160ff02191690831515021790555050565b600b60019054906101000a900460ff16610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90612fb3565b60405180910390fd5b600d60019054906101000a900460ff16610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b9061301f565b60405180910390fd5b6001600c541480610b5757506002600c54145b610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d9061308b565b60405180910390fd5b6001600c5403610d825780600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c19906130f7565b60405180910390fd5b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6d9190613146565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060075482600e54610cc3919061317a565b610ccd91906131eb565b905060003373ffffffffffffffffffffffffffffffffffffffff1682604051610cf59061324d565b60006040518083038185875af1925050503d8060008114610d32576040519150601f19603f3d011682016040523d82523d6000602084013e610d37565b606091505b5050905080610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d72906132ae565b60405180910390fd5b5050610f60565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906130f7565b60405180910390fd5b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e4f9190613146565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060095482600e54610ea5919061317a565b610eaf91906131eb565b905060003373ffffffffffffffffffffffffffffffffffffffff1682604051610ed79061324d565b60006040518083038185875af1925050503d8060008114610f14576040519150601f19603f3d011682016040523d82523d6000602084013e610f19565b606091505b5050905080610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906132ae565b60405180910390fd5b50505b50565b610f6b612b85565b806001811480610f7b5750600281145b610f8457600080fd5b600d60009054906101000a900460ff1615610fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcb9061331a565b60405180910390fd5b600b60019054906101000a900460ff16611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90612fb3565b60405180910390fd5b60018214806110325750600282145b611071576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110689061308b565b60405180910390fd5b81600c819055506001600d60006101000a81548160ff0219169083151502179055505050565b60055481565b600b60019054906101000a900460ff16156110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490613386565b60405180910390fd5b600b60009054906101000a900460ff161561113d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611134906133f2565b60405180910390fd5b60006007549050818111611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d9061345e565b60405180910390fd5b600061119d83836111979190613146565b84611770565b90506000670de0b6b3a7640000600454836111b8919061317a565b6111c291906131eb565b90506000670de0b6b3a7640000600554846111dd919061317a565b6111e791906131eb565b905084600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561126b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611262906130f7565b60405180910390fd5b84600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b69190613146565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084846113059190613146565b6007819055507f50d60398263f0b8253c56e7f3098584296bd15c3c7fedcecfcaee645d403027b336000878686868b8b61133f9190613146565b604051611352979695949392919061347e565b60405180910390a160003373ffffffffffffffffffffffffffffffffffffffff168284866113809190613146565b61138a9190613146565b6040516113969061324d565b60006040518083038185875af1925050503d80600081146113d3576040519150601f19603f3d011682016040523d82523d6000602084013e6113d8565b606091505b505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516114249061324d565b60006040518083038185875af1925050503d8060008114611461576040519150601f19603f3d011682016040523d82523d6000602084013e611466565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516114b29061324d565b60006040518083038185875af1925050503d80600081146114ef576040519150601f19603f3d011682016040523d82523d6000602084013e6114f4565b606091505b5050905085600e546115069190613146565b600e8190555085600f5461151a9190613146565b600f8190555082801561152a5750815b80156115335750805b611572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611569906132ae565b60405180910390fd5b5050505050505050565b600e5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806115b483611704565b90506000670de0b6b3a7640000600454836115cf919061317a565b6115d991906131eb565b90506000670de0b6b3a7640000600554846115f4919061317a565b6115fe91906131eb565b905080828461160d9190613146565b6116179190613146565b9350505050919050565b600061162f60095483611770565b9050919050565b600b60009054906101000a900460ff1681565b611651612b85565b8060068190555050565b600b60019054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6116d5612b85565b80600b60016101000a81548160ff02191690831515021790555050565b6116fa612b85565b8060058190555050565b600061171d826009546117179190613146565b83611770565b9050919050565b61172c612b85565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600361c350670de0b6b3a76400008061178a87612c03565b61179e878961179991906134ed565b612c03565b6117a89190613146565b6117b291906131eb565b6117bc91906131eb565b6117c691906131eb565b6117d091906131eb565b905092915050565b6000806117e483611948565b90506000670de0b6b3a7640000600454836117ff919061317a565b61180991906131eb565b90506000670de0b6b3a764000060055484611824919061317a565b61182e91906131eb565b905080828461183d91906134ed565b61184791906134ed565b9350505050919050565b611859612b85565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6118ab612b85565b6118b56000612c74565b565b60105481565b670de0b6b3a764000081565b6000806118d583611a76565b90506000670de0b6b3a7640000600454836118f0919061317a565b6118fa91906131eb565b90506000670de0b6b3a764000060055484611915919061317a565b61191f91906131eb565b905080828461192e9190613146565b6119389190613146565b9350505050919050565b600f5481565b600061195660075483611770565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b600d60019054906101000a900460ff1681565b6119a7612b85565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119f3612b85565b8060048190555050565b600080611a0983611621565b90506000670de0b6b3a764000060045483611a24919061317a565b611a2e91906131eb565b90506000670de0b6b3a764000060055484611a49919061317a565b611a5391906131eb565b9050808284611a6291906134ed565b611a6c91906134ed565b9350505050919050565b6000611a8f82600754611a899190613146565b83611770565b9050919050565b600b60019054906101000a900460ff1615611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add90613386565b60405180910390fd5b600060075490506000611af98284611770565b90506000670de0b6b3a764000060045483611b14919061317a565b611b1e91906131eb565b90506000670de0b6b3a764000060055484611b39919061317a565b611b4391906131eb565b9050808284611b5291906134ed565b611b5c91906134ed565b341015611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b959061356d565b60405180910390fd5b84600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be991906134ed565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508484611c3891906134ed565b6007819055507f50d60398263f0b8253c56e7f3098584296bd15c3c7fedcecfcaee645d403027b336001878686868b8b611c7291906134ed565b604051611c85979695949392919061347e565b60405180910390a16000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611cd59061324d565b60006040518083038185875af1925050503d8060008114611d12576040519150601f19603f3d011682016040523d82523d6000602084013e611d17565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611d639061324d565b60006040518083038185875af1925050503d8060008114611da0576040519150601f19603f3d011682016040523d82523d6000602084013e611da5565b606091505b50509050828434600e54611db991906134ed565b611dc39190613146565b611dcd9190613146565b600e81905550828434600f54611de391906134ed565b611ded9190613146565b611df79190613146565b600f81905550818015611e075750805b611e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3d906132ae565b60405180910390fd5b50505050505050565b600a6020528060005260406000206000915090505481565b600b60019054906101000a900460ff1615611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90613386565b60405180910390fd5b600b60009054906101000a900460ff1615611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe906133f2565b60405180910390fd5b60006009549050818111611f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f479061345e565b60405180910390fd5b6000611f678383611f619190613146565b84611770565b90506000670de0b6b3a764000060045483611f82919061317a565b611f8c91906131eb565b90506000670de0b6b3a764000060055484611fa7919061317a565b611fb191906131eb565b905084600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c906130f7565b60405180910390fd5b84600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120809190613146565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084846120cf9190613146565b6009819055507fb0c5ecf77be2fe1053eb203023bbf03a951cffabc89d6d923852336cc245d728336000878686868b8b6121099190613146565b60405161211c979695949392919061347e565b60405180910390a160003373ffffffffffffffffffffffffffffffffffffffff1682848661214a9190613146565b6121549190613146565b6040516121609061324d565b60006040518083038185875af1925050503d806000811461219d576040519150601f19603f3d011682016040523d82523d6000602084013e6121a2565b606091505b505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516121ee9061324d565b60006040518083038185875af1925050503d806000811461222b576040519150601f19603f3d011682016040523d82523d6000602084013e612230565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161227c9061324d565b60006040518083038185875af1925050503d80600081146122b9576040519150601f19603f3d011682016040523d82523d6000602084013e6122be565b606091505b5050905085600e546122d09190613146565b600e81905550856010546122e49190613146565b6010819055508280156122f45750815b80156122fd5750805b61233c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612333906132ae565b60405180910390fd5b5050505050505050565b61234e612b85565b600b60019054906101000a900460ff1661239d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239490612fb3565b60405180910390fd5b600d60019054906101000a900460ff16156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906135d9565b60405180910390fd5b6001600c54148061240057506002600c54145b61243f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124369061308b565b60405180910390fd5b6001600c54036125b8576000670de0b6b3a7640000600654601054612464919061317a565b61246e91906131eb565b905080600e54116124b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ab90613645565b60405180910390fd5b80600e546124c29190613146565b600e819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516125109061324d565b60006040518083038185875af1925050503d806000811461254d576040519150601f19603f3d011682016040523d82523d6000602084013e612552565b606091505b505090506001600d60016101000a81548160ff021916908315150217905550806125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a8906132ae565b60405180910390fd5b5050612723565b6000670de0b6b3a7640000600654600f546125d3919061317a565b6125dd91906131eb565b905080600e5411612623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261a90613645565b60405180910390fd5b80600e546126319190613146565b600e819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161267f9061324d565b60006040518083038185875af1925050503d80600081146126bc576040519150601f19603f3d011682016040523d82523d6000602084013e6126c1565b606091505b505090506001600d60016101000a81548160ff02191690831515021790555080612720576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612717906132ae565b60405180910390fd5b50505b565b60045481565b600b60019054906101000a900460ff161561277b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277290613386565b60405180910390fd5b60006009549050600061278e8284611770565b90506000670de0b6b3a7640000600454836127a9919061317a565b6127b391906131eb565b90506000670de0b6b3a7640000600554846127ce919061317a565b6127d891906131eb565b90508082846127e791906134ed565b6127f191906134ed565b341015612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a9061356d565b60405180910390fd5b84600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e91906134ed565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084846128cd91906134ed565b6009819055507fb0c5ecf77be2fe1053eb203023bbf03a951cffabc89d6d923852336cc245d728336001878686868b8b61290791906134ed565b60405161291a979695949392919061347e565b60405180910390a16000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161296a9061324d565b60006040518083038185875af1925050503d80600081146129a7576040519150601f19603f3d011682016040523d82523d6000602084013e6129ac565b606091505b505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516129f89061324d565b60006040518083038185875af1925050503d8060008114612a35576040519150601f19603f3d011682016040523d82523d6000602084013e612a3a565b606091505b50509050828434600e54612a4e91906134ed565b612a589190613146565b612a629190613146565b600e81905550828434601054612a7891906134ed565b612a829190613146565b612a8c9190613146565b601081905550818015612a9c5750805b612adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad2906132ae565b60405180910390fd5b50505050505050565b60095481565b612af2612b85565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b58906136d7565b60405180910390fd5b612b6a81612c74565b50565b60086020528060005260406000206000915090505481565b612b8d612d38565b73ffffffffffffffffffffffffffffffffffffffff16612bab61195d565b73ffffffffffffffffffffffffffffffffffffffff1614612c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf890613743565b60405180910390fd5b565b6000670de0b6b3a7640000821115612c6a57670de0b6b3a764000082612c299190613146565b670de0b6b3a764000083612c3d9190613146565b670de0b6b3a764000084612c519190613146565b612c5b919061317a565b612c65919061317a565b612c6d565b60005b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000819050919050565b612d5381612d40565b82525050565b6000602082019050612d6e6000830184612d4a565b92915050565b600080fd5b60008115159050919050565b612d8e81612d79565b8114612d9957600080fd5b50565b600081359050612dab81612d85565b92915050565b600060208284031215612dc757612dc6612d74565b5b6000612dd584828501612d9c565b91505092915050565b612de781612d40565b8114612df257600080fd5b50565b600081359050612e0481612dde565b92915050565b600060208284031215612e2057612e1f612d74565b5b6000612e2e84828501612df5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6282612e37565b9050919050565b612e7281612e57565b82525050565b6000602082019050612e8d6000830184612e69565b92915050565b612e9c81612d79565b82525050565b6000602082019050612eb76000830184612e93565b92915050565b612ec681612e57565b8114612ed157600080fd5b50565b600081359050612ee381612ebd565b92915050565b600060208284031215612eff57612efe612d74565b5b6000612f0d84828501612ed4565b91505092915050565b60008060408385031215612f2d57612f2c612d74565b5b6000612f3b85828601612df5565b9250506020612f4c85828601612df5565b9150509250929050565b600082825260208201905092915050565b7f47616d696e670000000000000000000000000000000000000000000000000000600082015250565b6000612f9d600683612f56565b9150612fa882612f67565b602082019050919050565b60006020820190508181036000830152612fcc81612f90565b9050919050565b7f6e65787420626f6e757320756e636c61696d0000000000000000000000000000600082015250565b6000613009601283612f56565b915061301482612fd3565b602082019050919050565b6000602082019050818103600083015261303881612ffc565b9050919050565b7f696e76616c696420726573756c74000000000000000000000000000000000000600082015250565b6000613075600e83612f56565b91506130808261303f565b602082019050919050565b600060208201905081810360008301526130a481613068565b9050919050565b7f496e73756666696369656e742073686172657300000000000000000000000000600082015250565b60006130e1601383612f56565b91506130ec826130ab565b602082019050919050565b60006020820190508181036000830152613110816130d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061315182612d40565b915061315c83612d40565b925082820390508181111561317457613173613117565b5b92915050565b600061318582612d40565b915061319083612d40565b925082820261319e81612d40565b915082820484148315176131b5576131b4613117565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131f682612d40565b915061320183612d40565b925082613211576132106131bc565b5b828204905092915050565b600081905092915050565b50565b600061323760008361321c565b915061324282613227565b600082019050919050565b60006132588261322a565b9150819050919050565b7f556e61626c6520746f2073656e642066756e6473000000000000000000000000600082015250565b6000613298601483612f56565b91506132a382613262565b602082019050919050565b600060208201905081810360008301526132c78161328b565b9050919050565b7f686173207075626c697368000000000000000000000000000000000000000000600082015250565b6000613304600b83612f56565b915061330f826132ce565b602082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b7f47616d65204f7665720000000000000000000000000000000000000000000000600082015250565b6000613370600983612f56565b915061337b8261333a565b602082019050919050565b6000602082019050818103600083015261339f81613363565b9050919050565b7f52616765204d6f64650000000000000000000000000000000000000000000000600082015250565b60006133dc600983612f56565b91506133e7826133a6565b602082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f43616e6e6f742073656c6c20746865206c617374207368617265000000000000600082015250565b6000613448601a83612f56565b915061345382613412565b602082019050919050565b600060208201905081810360008301526134778161343b565b9050919050565b600060e082019050613493600083018a612e69565b6134a06020830189612e93565b6134ad6040830188612d4a565b6134ba6060830187612d4a565b6134c76080830186612d4a565b6134d460a0830185612d4a565b6134e160c0830184612d4a565b98975050505050505050565b60006134f882612d40565b915061350383612d40565b925082820190508082111561351b5761351a613117565b5b92915050565b7f496e73756666696369656e74207061796d656e74000000000000000000000000600082015250565b6000613557601483612f56565b915061356282613521565b602082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b7f6e65787420626f6e757320636c61696d65640000000000000000000000000000600082015250565b60006135c3601283612f56565b91506135ce8261358d565b602082019050919050565b600060208201905081810360008301526135f2816135b6565b9050919050565b7f496e73756666696369656e742073656c667442616c616e636500000000000000600082015250565b600061362f601983612f56565b915061363a826135f9565b602082019050919050565b6000602082019050818103600083015261365e81613622565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136c1602683612f56565b91506136cc82613665565b604082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061372d602083612f56565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b905091905056fea26469706673582212203d2904d0bb109a1fedfdc2f96f4f3a3b9cc15d1c588c76928b2a441cec3b946c64736f6c63430008130033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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