Contract 0xc7701D5c6957A1AF33cc18C95e44e73f3E0DBDeB

Contract Overview

Balance:
0 MATIC
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5d60e702de7ef1bef2e9338bb9e7936f65ebce9f49bd0bbd91e0b9ec5e9c1f7e0x60806040227868262021-12-17 18:46:20196 days 1 hr ago0x4bb7e1d5c463ec80d0b316e83a090b00f7d87d1d IN  Contract Creation0 MATIC0.1021788660
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x43D2211CcE9a21e3D4112853B41D83dB3418EBA2

Contract Name:
DPSGameSettings

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 5 : DPSGameSettings.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import "@openzeppelin/contracts/utils/Strings.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "./interfaces/DPSStructs.sol";

contract DPSGameSettings is Ownable {
  mapping(VOYAGE_TYPE => CartographerConfig) public voyageConfigPerType;
  mapping(FLAGSHIP_PART => uint16) public skillsPerFlagshipPart;
  mapping(uint8 => FLAGSHIP_PART[]) public partsForEachSkillType;
  uint16 public flagshipBaseSkills;
  uint16 public blockJumps;
  uint16 public maxPointsCap = 750;
  mapping(VOYAGE_TYPE => uint256) tmapPerVoyage;

  constructor() {
    voyageConfigPerType[VOYAGE_TYPE.EASY].minNoOfChests = 2;
    voyageConfigPerType[VOYAGE_TYPE.EASY].maxNoOfChests = 4;
    voyageConfigPerType[VOYAGE_TYPE.EASY].minNoOfStorms = 1;
    voyageConfigPerType[VOYAGE_TYPE.EASY].maxNoOfStorms = 2;
    voyageConfigPerType[VOYAGE_TYPE.EASY].minNoOfEnemies = 1;
    voyageConfigPerType[VOYAGE_TYPE.EASY].maxNoOfEnemies = 2;
    voyageConfigPerType[VOYAGE_TYPE.EASY].totalInteractions = 6;
    voyageConfigPerType[VOYAGE_TYPE.EASY].gapBetweenInteractions = 3600;

    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].minNoOfChests = 4;
    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].maxNoOfChests = 6;
    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].minNoOfStorms = 3;
    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].maxNoOfStorms = 4;
    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].minNoOfEnemies = 3;
    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].maxNoOfEnemies = 4;
    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].totalInteractions = 12;
    voyageConfigPerType[VOYAGE_TYPE.MEDIUM].gapBetweenInteractions = 3600;

    voyageConfigPerType[VOYAGE_TYPE.HARD].minNoOfChests = 6;
    voyageConfigPerType[VOYAGE_TYPE.HARD].maxNoOfChests = 8;
    voyageConfigPerType[VOYAGE_TYPE.HARD].minNoOfStorms = 5;
    voyageConfigPerType[VOYAGE_TYPE.HARD].maxNoOfStorms = 6;
    voyageConfigPerType[VOYAGE_TYPE.HARD].minNoOfEnemies = 5;
    voyageConfigPerType[VOYAGE_TYPE.HARD].maxNoOfEnemies = 6;
    voyageConfigPerType[VOYAGE_TYPE.HARD].totalInteractions = 18;
    voyageConfigPerType[VOYAGE_TYPE.HARD].gapBetweenInteractions = 3600;

    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].minNoOfChests = 8;
    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].maxNoOfChests = 12;
    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].minNoOfStorms = 7;
    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].maxNoOfStorms = 8;
    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].minNoOfEnemies = 7;
    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].maxNoOfEnemies = 8;
    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].totalInteractions = 24;
    voyageConfigPerType[VOYAGE_TYPE.LEGENDARY].gapBetweenInteractions = 3600;

    skillsPerFlagshipPart[FLAGSHIP_PART.CANNON] = 5;
    skillsPerFlagshipPart[FLAGSHIP_PART.HULL] = 5;
    skillsPerFlagshipPart[FLAGSHIP_PART.SAILS] = 5;
    skillsPerFlagshipPart[FLAGSHIP_PART.HELM] = 5;
    skillsPerFlagshipPart[FLAGSHIP_PART.FLAG] = 5;
    skillsPerFlagshipPart[FLAGSHIP_PART.FIGUREHEAD] = 5;

    flagshipBaseSkills = 250;

    partsForEachSkillType[uint8(SKILL_TYPE.LUCK)] = [FLAGSHIP_PART.FLAG, FLAGSHIP_PART.FIGUREHEAD];
    partsForEachSkillType[uint8(SKILL_TYPE.NAVIGATION)] = [FLAGSHIP_PART.SAILS, FLAGSHIP_PART.HELM];
    partsForEachSkillType[uint8(SKILL_TYPE.STRENGTH)] = [FLAGSHIP_PART.CANNON, FLAGSHIP_PART.HULL];

    tmapPerVoyage[VOYAGE_TYPE.EASY] = 1 * 1e18;
    tmapPerVoyage[VOYAGE_TYPE.MEDIUM] = 2 * 1e18;
    tmapPerVoyage[VOYAGE_TYPE.HARD] = 3 * 1e18;
    tmapPerVoyage[VOYAGE_TYPE.LEGENDARY] = 4 * 1e18;

    blockJumps = 5;
  }

  function setVoyageConfig(CartographerConfig calldata config, VOYAGE_TYPE _type) external onlyOwner {
    voyageConfigPerType[_type] = config;
  }

  function setTmapPerVoyage(VOYAGE_TYPE _type, uint256 _amount) external onlyOwner {
    tmapPerVoyage[_type] = _amount;
  }

  function setVoyageConfigPerType(VOYAGE_TYPE _type, CartographerConfig calldata _config) external onlyOwner {
    voyageConfigPerType[_type].minNoOfChests = _config.minNoOfChests;
    voyageConfigPerType[_type].maxNoOfChests = _config.maxNoOfChests;
    voyageConfigPerType[_type].minNoOfStorms = _config.minNoOfStorms;
    voyageConfigPerType[_type].maxNoOfStorms = _config.maxNoOfStorms;
    voyageConfigPerType[_type].minNoOfEnemies = _config.minNoOfEnemies;
    voyageConfigPerType[_type].maxNoOfEnemies = _config.maxNoOfEnemies;
    voyageConfigPerType[_type].totalInteractions = _config.totalInteractions;
    voyageConfigPerType[_type].gapBetweenInteractions = _config.gapBetweenInteractions;
  }

  function setSkillsPerFlagshipPart(FLAGSHIP_PART _part, uint16 _amount) external onlyOwner {
    skillsPerFlagshipPart[_part] = _amount;
  }

  function setBlockJumps(uint16 _jumps) external onlyOwner {
    blockJumps = _jumps;
  }

  function getVoyageConfig(VOYAGE_TYPE _type) external view returns (CartographerConfig memory) {
    return voyageConfigPerType[_type];
  }

  function getMaxPointsCap() external view returns (uint16) {
    return maxPointsCap;
  }

  function getBlockJumps() external view returns (uint16) {
    return blockJumps;
  }

  function getFlagshipBaseSkills() external view returns (uint16) {
    return flagshipBaseSkills;
  }

  function getSkillTypeOfEachFlagshipPart() external view returns (uint8[7] memory skillTypes) {
    for (uint8 i = 0; i < 3; i++) {
      for (uint8 j = 0; j < partsForEachSkillType[i].length; j++) {
        skillTypes[uint256(partsForEachSkillType[i][j])] = i;
      }
    }
  }

  function getTMAPPerVoyageType(VOYAGE_TYPE _type) external view returns (uint256) {
    return tmapPerVoyage[_type];
  }

  function getSkillsPerFlagshipParts() external view returns (uint16[7] memory skills) {
    skills[uint256(FLAGSHIP_PART.CANNON)] = skillsPerFlagshipPart[FLAGSHIP_PART.CANNON];
    skills[uint256(FLAGSHIP_PART.HULL)] = skillsPerFlagshipPart[FLAGSHIP_PART.HULL];
    skills[uint256(FLAGSHIP_PART.SAILS)] = skillsPerFlagshipPart[FLAGSHIP_PART.SAILS];
    skills[uint256(FLAGSHIP_PART.HELM)] = skillsPerFlagshipPart[FLAGSHIP_PART.HELM];
    skills[uint256(FLAGSHIP_PART.FLAG)] = skillsPerFlagshipPart[FLAGSHIP_PART.FLAG];
    skills[uint256(FLAGSHIP_PART.FIGUREHEAD)] = skillsPerFlagshipPart[FLAGSHIP_PART.FIGUREHEAD];
  }
}

File 2 of 5 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

File 3 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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);
    }
}

File 4 of 5 : DPSStructs.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

enum VOYAGE_TYPE {
  EASY,
  MEDIUM,
  HARD,
  LEGENDARY
}

enum SUPPORT_SHIP_TYPE {
  SLOOP_STRENGTH,
  SLOOP_LUCK,
  SLOOP_NAVIGATION,
  CARAVEL_STRENGTH,
  CARAVEL_LUCK,
  CARAVEL_NAVIGATION,
  GALLEON_STRENGTH,
  GALLEON_LUCK,
  GALLEON_NAVIGATION
}

enum INTERACTION {
  NONE,
  CHEST,
  STORM,
  ENEMY
}

enum FLAGSHIP_PART {
  HEALTH,
  CANNON,
  HULL,
  SAILS,
  HELM,
  FLAG,
  FIGUREHEAD
}

enum SKILL_TYPE {
  LUCK,
  STRENGTH,
  NAVIGATION
}

struct VoyageConfig {
  VOYAGE_TYPE typeOfVoyage;
  uint8 noOfInteractions;
  uint16 noOfBlockJumps;
  // 1 - Chest 2 - Storm 3 - Enemy
  uint8[] sequence;
  uint256 boughtAt;
  uint256 gapBetweenInteractions;
}

struct CartographerConfig {
  uint8 minNoOfChests;
  uint8 maxNoOfChests;
  uint8 minNoOfStorms;
  uint8 maxNoOfStorms;
  uint8 minNoOfEnemies;
  uint8 maxNoOfEnemies;
  uint8 totalInteractions;
  uint256 gapBetweenInteractions;
}

struct RandomInteractions {
  uint256 randomNoOfChests;
  uint256 randomNoOfStorms;
  uint256 randomNoOfEnemies;
  uint8 generatedChests;
  uint8 generatedStorms;
  uint8 generatedEnemies;
  uint256[] positionsForGeneratingInteractions;
}

struct CausalityParams {
  address _address;
  uint256[] _blockNumber;
  bytes32[] _hash1;
  bytes32[] _hash2;
  uint256[] _timestamp;
  bytes[] _signature;
}

File 5 of 5 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (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;
    }
}

Settings
{
  "metadata": {
    "bytecodeHash": "none",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"blockJumps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flagshipBaseSkills","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockJumps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFlagshipBaseSkills","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxPointsCap","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSkillTypeOfEachFlagshipPart","outputs":[{"internalType":"uint8[7]","name":"skillTypes","type":"uint8[7]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSkillsPerFlagshipParts","outputs":[{"internalType":"uint16[7]","name":"skills","type":"uint16[7]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum VOYAGE_TYPE","name":"_type","type":"uint8"}],"name":"getTMAPPerVoyageType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum VOYAGE_TYPE","name":"_type","type":"uint8"}],"name":"getVoyageConfig","outputs":[{"components":[{"internalType":"uint8","name":"minNoOfChests","type":"uint8"},{"internalType":"uint8","name":"maxNoOfChests","type":"uint8"},{"internalType":"uint8","name":"minNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"maxNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"minNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"maxNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"totalInteractions","type":"uint8"},{"internalType":"uint256","name":"gapBetweenInteractions","type":"uint256"}],"internalType":"struct CartographerConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPointsCap","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"partsForEachSkillType","outputs":[{"internalType":"enum FLAGSHIP_PART","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_jumps","type":"uint16"}],"name":"setBlockJumps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum FLAGSHIP_PART","name":"_part","type":"uint8"},{"internalType":"uint16","name":"_amount","type":"uint16"}],"name":"setSkillsPerFlagshipPart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum VOYAGE_TYPE","name":"_type","type":"uint8"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setTmapPerVoyage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"minNoOfChests","type":"uint8"},{"internalType":"uint8","name":"maxNoOfChests","type":"uint8"},{"internalType":"uint8","name":"minNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"maxNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"minNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"maxNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"totalInteractions","type":"uint8"},{"internalType":"uint256","name":"gapBetweenInteractions","type":"uint256"}],"internalType":"struct CartographerConfig","name":"config","type":"tuple"},{"internalType":"enum VOYAGE_TYPE","name":"_type","type":"uint8"}],"name":"setVoyageConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum VOYAGE_TYPE","name":"_type","type":"uint8"},{"components":[{"internalType":"uint8","name":"minNoOfChests","type":"uint8"},{"internalType":"uint8","name":"maxNoOfChests","type":"uint8"},{"internalType":"uint8","name":"minNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"maxNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"minNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"maxNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"totalInteractions","type":"uint8"},{"internalType":"uint256","name":"gapBetweenInteractions","type":"uint256"}],"internalType":"struct CartographerConfig","name":"_config","type":"tuple"}],"name":"setVoyageConfigPerType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum FLAGSHIP_PART","name":"","type":"uint8"}],"name":"skillsPerFlagshipPart","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum VOYAGE_TYPE","name":"","type":"uint8"}],"name":"voyageConfigPerType","outputs":[{"internalType":"uint8","name":"minNoOfChests","type":"uint8"},{"internalType":"uint8","name":"maxNoOfChests","type":"uint8"},{"internalType":"uint8","name":"minNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"maxNoOfStorms","type":"uint8"},{"internalType":"uint8","name":"minNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"maxNoOfEnemies","type":"uint8"},{"internalType":"uint8","name":"totalInteractions","type":"uint8"},{"internalType":"uint256","name":"gapBetweenInteractions","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526004805461ffff60201b19166502ee000000001790553480156200002757600080fd5b50620000333362000b35565b600160208190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805466ffffffffffffff19166606020102010402179055610e107fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4a5560008181527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f805462ffffff19166203060417905560049190816003811115620000e557620000e562000c5a565b815260200190815260200160002060000160036101000a81548160ff021916908360ff160217905550600360016000600160038111156200012a576200012a62000c5a565b60038111156200013e576200013e62000c5a565b815260200190815260200160002060000160046101000a81548160ff021916908360ff1602179055506004600160006001600381111562000183576200018362000c5a565b600381111562000197576200019762000c5a565b815260200190815260200160002060000160056101000a81548160ff021916908360ff160217905550600c6001600060016003811115620001dc57620001dc62000c5a565b6003811115620001f057620001f062000c5a565b815260200190815260200160002060000160066101000a81548160ff021916908360ff160217905550610e10600160006001600381111562000236576200023662000c5a565b60038111156200024a576200024a62000c5a565b815260200190815260200160002060010181905550600660016000600260038111156200027b576200027b62000c5a565b60038111156200028f576200028f62000c5a565b81526020808201929092526040016000908120805460ff191660ff949094169390931790925560028083526001918290527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f805461ff00191661080017905560059290600381111562000306576200030662000c5a565b815260200190815260200160002060000160026101000a81548160ff021916908360ff160217905550600660016000600260038111156200034b576200034b62000c5a565b60038111156200035f576200035f62000c5a565b815260200190815260200160002060000160036101000a81548160ff021916908360ff16021790555060056001600060026003811115620003a457620003a462000c5a565b6003811115620003b857620003b862000c5a565b815260200190815260200160002060000160046101000a81548160ff021916908360ff16021790555060066001600060026003811115620003fd57620003fd62000c5a565b600381111562000411576200041162000c5a565b815260200190815260200160002060000160056101000a81548160ff021916908360ff1602179055506012600160006002600381111562000456576200045662000c5a565b60038111156200046a576200046a62000c5a565b815260200190815260200160002060000160066101000a81548160ff021916908360ff160217905550610e106001600060026003811115620004b057620004b062000c5a565b6003811115620004c457620004c462000c5a565b815260200190815260200160002060010181905550600860016000600380811115620004f457620004f462000c5a565b600381111562000508576200050862000c5a565b81526020808201929092526040016000908120805460ff191660ff949094169390931790925560038083526001918290527f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b805461ff001916610c001790556007929060038111156200057f576200057f62000c5a565b815260200190815260200160002060000160026101000a81548160ff021916908360ff160217905550600860016000600380811115620005c357620005c362000c5a565b6003811115620005d757620005d762000c5a565b815260200190815260200160002060000160036101000a81548160ff021916908360ff1602179055506007600160006003808111156200061b576200061b62000c5a565b60038111156200062f576200062f62000c5a565b815260200190815260200160002060000160046101000a81548160ff021916908360ff16021790555060086001600060038081111562000673576200067362000c5a565b600381111562000687576200068762000c5a565b815260200190815260200160002060000160056101000a81548160ff021916908360ff160217905550601860016000600380811115620006cb57620006cb62000c5a565b6003811115620006df57620006df62000c5a565b815260200190815260200160002060000160066101000a81548160ff021916908360ff160217905550610e106001600060038081111562000724576200072462000c5a565b600381111562000738576200073862000c5a565b8152602001908152602001600020600101819055506005600260006001600681111562000769576200076962000c5a565b60068111156200077d576200077d62000c5a565b815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555060056002600060026006811115620007c157620007c162000c5a565b6006811115620007d557620007d562000c5a565b815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506005600260006003600681111562000819576200081962000c5a565b60068111156200082d576200082d62000c5a565b815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506005600260006004600681111562000871576200087162000c5a565b600681111562000885576200088562000c5a565b815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555060056002600060056006811115620008c957620008c962000c5a565b6006811115620008dd57620008dd62000c5a565b815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555060056002600060068081111562000920576200092062000c5a565b600681111562000934576200093462000c5a565b815260208101919091526040908101600020805461ffff9390931661ffff199384161790556004805490921660fa179091558051808201909152806005600681111562000985576200098562000c5a565b815260200160069052600080526003602052620009c6907f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff90600262000b85565b506040805180820190915280600381526020016004905260026000819052600360205262000a16917fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d9162000b85565b50604080518082019091528060018152602001600290526001600052600360205262000a66907fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c90600262000b85565b506005602052670de0b6b3a76400007f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc55671bc16d674ec800007f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b556729a2241af62c00007f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a556003600052673782dace9d9000007fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc0556004805463ffff000019166205000017905562000c70565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090601f0160209004810192821562000c315791602002820160005b8382111562000c0057835183826101000a81548160ff0219169083600681111562000bde5762000bde62000c5a565b0217905550926020019260010160208160000104928301926001030262000baf565b801562000c2f5782816101000a81549060ff021916905560010160208160000104928301926001030262000c00565b505b5062000c3f92915062000c43565b5090565b5b8082111562000c3f576000815560010162000c44565b634e487b7160e01b600052602160045260246000fd5b6111c58062000c806000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063bdd1e0801161007c578063bdd1e08014610333578063bf4eb04a14610348578063c2ff79d51461036c578063e4d3aa2e1461037f578063ec94f78314610395578063f2fde38b146103a857600080fd5b80638da5cb5b146102d0578063904b33d3146102eb578063975be45714610300578063a70ec4631461030c578063b76ea8521461032057600080fd5b80633ac08cab116100ff5780633ac08cab1461026557806367fa631914610285578063715018a6146102a65780638601b229146102ae57806389dbb576146102bc57600080fd5b80630285c2f41461013c5780630bcac487146101515780630cd6be871461017757806320faadee1461019757806325fcefb7146101aa575b600080fd5b61014f61014a366004610d4f565b6103bb565b005b60045462010000900461ffff165b60405161ffff90911681526020015b60405180910390f35b61018a610185366004610d91565b610442565b60405161016e9190610db3565b61014f6101a5366004610e3d565b61053a565b6102186101b8366004610d91565b6001602081905260009182526040909120805491015460ff80831692610100810482169262010000820483169263010000008304811692640100000000810482169265010000000000820483169266010000000000009092049091169088565b6040805160ff998a16815297891660208901529588169587019590955292861660608601529085166080850152841660a084015290921660c082015260e08101919091526101000161016e565b610278610273366004610e79565b6105ac565b60405161016e9190610ebb565b610298610293366004610d91565b6105ef565b60405190815260200161016e565b61014f61062e565b60045461015f9061ffff1681565b600454640100000000900461ffff1661015f565b6000546040516001600160a01b03909116815260200161016e565b6102f3610664565b60405161016e9190610ee3565b60045461ffff1661015f565b60045461015f9062010000900461ffff1681565b61014f61032e366004610f17565b610741565b61033b610a5e565b60405161016e9190610f43565b61015f610356366004610f6f565b60026020526000908152604090205461ffff1681565b61014f61037a366004610f8a565b610b6f565b60045461015f90640100000000900461ffff1681565b61014f6103a3366004610fa5565b610bb9565b61014f6103b6366004610fc1565b610c20565b6000546001600160a01b031633146103ee5760405162461bcd60e51b81526004016103e590610fea565b60405180910390fd5b806002600084600681111561040557610405610ea5565b600681111561041657610416610ea5565b815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055505050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091526001600083600381111561049957610499610ea5565b60038111156104aa576104aa610ea5565b8152602080820192909252604090810160002081516101008082018452825460ff80821684529181048216958301959095526201000085048116938201939093526301000000840483166060820152640100000000840483166080820152650100000000008404831660a0820152660100000000000090930490911660c08301526001015460e082015292915050565b6000546001600160a01b031633146105645760405162461bcd60e51b81526004016103e590610fea565b816001600083600381111561057b5761057b610ea5565b600381111561058c5761058c610ea5565b815260200190815260200160002081816105a69190611032565b50505050565b600360205281600052604060002081815481106105c857600080fd5b9060005260206000209060209182820401919006915091509054906101000a900460ff1681565b60006005600083600381111561060757610607610ea5565b600381111561061857610618610ea5565b8152602001908152602001600020549050919050565b6000546001600160a01b031633146106585760405162461bcd60e51b81526004016103e590610fea565b6106626000610cbb565b565b61066c610d0b565b60005b60038160ff16101561073d5760005b60ff808316600090815260036020526040902054908216101561072a578183600360008560ff1660ff1681526020019081526020016000208360ff16815481106106ca576106ca611157565b90600052602060002090602091828204019190069054906101000a900460ff1660068111156106fb576106fb610ea5565b6007811061070b5761070b611157565b60ff9092166020929092020152806107228161116d565b91505061067e565b50806107358161116d565b91505061066f565b5090565b6000546001600160a01b0316331461076b5760405162461bcd60e51b81526004016103e590610fea565b610778602082018261119b565b6001600084600381111561078e5761078e610ea5565b600381111561079f5761079f610ea5565b81526020808201929092526040908101600020805460ff191660ff94909416939093179092556107d391830190830161119b565b600160008460038111156107e9576107e9610ea5565b60038111156107fa576107fa610ea5565b815260200190815260200160002060000160016101000a81548160ff021916908360ff160217905550806040016020810190610836919061119b565b6001600084600381111561084c5761084c610ea5565b600381111561085d5761085d610ea5565b81526020810191909152604001600020805460ff92909216620100000262ff000019909216919091179055610898608082016060830161119b565b600160008460038111156108ae576108ae610ea5565b60038111156108bf576108bf610ea5565b81526020810191909152604001600020805460ff9290921663010000000263ff000000199092169190911790556108fc60a082016080830161119b565b6001600084600381111561091257610912610ea5565b600381111561092357610923610ea5565b81526020810191909152604001600020805460ff929092166401000000000264ff000000001990921691909117905561096260c0820160a0830161119b565b6001600084600381111561097857610978610ea5565b600381111561098957610989610ea5565b81526020810191909152604001600020805460ff92909216650100000000000265ff0000000000199092169190911790556109ca60e0820160c0830161119b565b600160008460038111156109e0576109e0610ea5565b60038111156109f1576109f1610ea5565b815260200190815260200160002060000160066101000a81548160ff021916908360ff1602179055508060e0013560016000846003811115610a3557610a35610ea5565b6003811115610a4657610a46610ea5565b81526020810191909152604001600020600101555050565b610a66610d0b565b7fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e05461ffff9081166020838101919091527f679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c54821660408401527f88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c354821660608401527fee60d0579bcffd98e668647d59fec1ff86a7fb340ce572e844f234ae73a6918f54821660808401527fb98b78633099fa36ed8b8680c4f8092689e1e04080eb9cbb077ca38a14d7e38454821660a08401526006600052600290527f59dd4b18488d12f51eda69757a0ed42a2010c14b564330cc74a06895e60c077b541660c082015290565b6000546001600160a01b03163314610b995760405162461bcd60e51b81526004016103e590610fea565b6004805461ffff909216620100000263ffff000019909216919091179055565b6000546001600160a01b03163314610be35760405162461bcd60e51b81526004016103e590610fea565b8060056000846003811115610bfa57610bfa610ea5565b6003811115610c0b57610c0b610ea5565b81526020810191909152604001600020555050565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b81526004016103e590610fea565b6001600160a01b038116610caf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103e5565b610cb881610cbb565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040518060e001604052806007906020820280368337509192915050565b803560078110610d3857600080fd5b919050565b803561ffff81168114610d3857600080fd5b60008060408385031215610d6257600080fd5b610d6b83610d29565b9150610d7960208401610d3d565b90509250929050565b803560048110610d3857600080fd5b600060208284031215610da357600080fd5b610dac82610d82565b9392505050565b60006101008201905060ff8084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525060c0830151610e1560c084018260ff169052565b5060e092830151919092015290565b60006101008284031215610e3757600080fd5b50919050565b6000806101208385031215610e5157600080fd5b610e5b8484610e24565b9150610d796101008401610d82565b60ff81168114610cb857600080fd5b60008060408385031215610e8c57600080fd5b8235610e9781610e6a565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6020810160078310610edd57634e487b7160e01b600052602160045260246000fd5b91905290565b60e08101818360005b6007811015610f0e57815160ff16835260209283019290910190600101610eec565b50505092915050565b6000806101208385031215610f2b57600080fd5b610f3483610d82565b9150610d798460208501610e24565b60e08101818360005b6007811015610f0e57815161ffff16835260209283019290910190600101610f4c565b600060208284031215610f8157600080fd5b610dac82610d29565b600060208284031215610f9c57600080fd5b610dac82610d3d565b60008060408385031215610fb857600080fd5b610e9783610d82565b600060208284031215610fd357600080fd5b81356001600160a01b0381168114610dac57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000813561102c81610e6a565b92915050565b813561103d81610e6a565b60ff8116905081548160ff198216178355602084013561105c81610e6a565b61ff008160081b168361ffff198416171784555050506110996110816040840161101f565b825462ff0000191660109190911b62ff000016178255565b6110c26110a86060840161101f565b825463ff000000191660189190911b63ff00000016178255565b6110ed6110d16080840161101f565b825464ff00000000191660209190911b64ff0000000016178255565b61111a6110fc60a0840161101f565b825465ff0000000000191660289190911b65ff000000000016178255565b61114961112960c0840161101f565b825466ff000000000000191660309190911b66ff00000000000016178255565b60e082013560018201555050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81141561119257634e487b7160e01b600052601160045260246000fd5b60010192915050565b6000602082840312156111ad57600080fd5b8135610dac81610e6a56fea164736f6c6343000809000a

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading