ETH Price: $1,985.50 (-4.32%)

Contract

0x5F30ba2Bb352D5C8B44B2D3a2885fEdf95eF4E38
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
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:
ColorUtils

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;
import '@openzeppelin/contracts/utils/Strings.sol';

library ColorUtils {
  function getColor(bytes memory colors, uint256 colorIdx)
    public
    pure
    returns (bytes memory)
  {
    colorIdx *= 3;
    bytes memory color = abi.encodePacked(
      colors[colorIdx],
      colors[colorIdx + 1],
      colors[colorIdx + 2]
    );
    return color;
  }

  function setColor(
    bytes memory colors,
    uint256 colorIdx,
    bytes memory color
  ) public pure returns (bytes memory) {
    colorIdx *= 3;
    colors[colorIdx + 0] = color[0];
    colors[colorIdx + 1] = color[1];
    colors[colorIdx + 2] = color[2];
    return colors;
  }

  function addWrap(
    bytes memory color,
    uint8 idx,
    uint16 amt
  ) public pure returns (bytes memory) {
    unchecked {
      color[idx] = bytes1(uint8(uint16(uint8(color[idx])) + amt));
    }
    return color;
  }

  function add(
    bytes memory color,
    uint8 idx,
    uint16 amt
  ) public pure returns (bytes memory) {
    if (amt + uint16(uint8(color[idx])) >= 255) {
      color[idx] = bytes1(uint8(255));
      return color;
    }
    color[idx] = bytes1(uint8(color[idx]) + uint8(amt));
    return color;
  }

  function subWrap(
    bytes memory color,
    uint8 idx,
    uint16 amt
  ) public pure returns (bytes memory) {
    unchecked {
      color[idx] = bytes1(uint8(uint16(uint8(color[idx])) - amt));
    }
    return color;
  }

  function sub(
    bytes memory color,
    uint8 idx,
    uint16 amt
  ) public pure returns (bytes memory) {
    if (uint16(uint8(color[idx])) < amt) {
      color[idx] = bytes1(uint8(0));
      return color;
    }
    color[idx] = bytes1(uint8(uint16(uint8(color[idx])) - amt));
    return color;
  }

  function RGBtoHSV(bytes memory color) public pure returns (bytes memory) {
    return RGBtoHSV(uint8(color[0]), uint8(color[1]), uint8(color[2]));
  }

  function RGBtoHSV(
    uint8 r,
    uint8 g,
    uint8 b
  ) public pure returns (bytes memory) {
    bytes memory hsv = new bytes(3);
    uint8 min = r < g ? (r < b ? r : b) : (g < b ? g : b);
    uint8 max = r > g ? (r > b ? r : b) : (g > b ? g : b);
    hsv[2] = bytes1(max); // v

    if (max == 0) {
      hsv[0] = 0;
      hsv[1] = 0;
      return hsv;
    }

    hsv[1] = bytes1(uint8((255 * uint32(max - min)) / uint8(hsv[2])));

    if (uint8(hsv[1]) == 0) {
      hsv[0] = 0;
      return hsv;
    }

    unchecked {
      if (max == r) {
        if (g > b) {
          hsv[0] = bytes1(uint8(0 + (43 * uint32(g - b)) / uint32(max - min)));
        } else {
          hsv[0] = bytes1(uint8(0 - (43 * uint32(b - g)) / uint32(max - min)));
        }
      } else if (max == g) {
        if (b > r) {
          hsv[0] = bytes1(uint8(85 + (43 * uint32(b - r)) / uint32(max - min)));
        } else {
          hsv[0] = bytes1(uint8(85 - (43 * uint32(r - b)) / uint32(max - min)));
        }
      } else {
        if (r > g) {
          hsv[0] = bytes1(
            uint8(171 + (43 * uint32(r - g)) / uint32(max - min))
          );
        } else {
          hsv[0] = bytes1(
            uint8(171 - (43 * uint32(g - r)) / uint32(max - min))
          );
        }
      }
    }
    return hsv;
  }

  function HSVtoRGB(bytes memory color) public pure returns (bytes memory) {
    return HSVtoRGB(uint8(color[0]), uint8(color[1]), uint8(color[2]));
  }

  function HSVtoRGB(
    uint8 h,
    uint8 s,
    uint8 v
  ) public pure returns (bytes memory) {
    bytes memory rgb = new bytes(3);
    uint8 region = 0;
    uint8 remainder = 0;
    uint8 p = 0;
    uint8 q = 0;
    uint8 t = 0;

    if (s == 0) {
      rgb[0] = bytes1(v);
      rgb[1] = bytes1(v);
      rgb[2] = bytes1(v);
      return rgb;
    }

    region = h / 43;
    remainder = (h - (region * 43)) * 6;

    p = uint8((v * uint32(255 - s)) >> 8);
    q = uint8((v * (255 - ((uint32(s) * uint32(remainder)) >> 8))) >> 8);
    t = uint8((v * (255 - ((uint32(s) * uint32(255 - remainder)) >> 8))) >> 8);

    if (region == 0) {
      rgb[0] = bytes1(v);
      rgb[1] = bytes1(t);
      rgb[2] = bytes1(p);
    } else if (region == 1) {
      rgb[0] = bytes1(q);
      rgb[1] = bytes1(v);
      rgb[2] = bytes1(p);
    } else if (region == 2) {
      rgb[0] = bytes1(q);
      rgb[1] = bytes1(v);
      rgb[2] = bytes1(t);
    } else if (region == 3) {
      rgb[0] = bytes1(p);
      rgb[1] = bytes1(q);
      rgb[2] = bytes1(v);
    } else if (region == 4) {
      rgb[0] = bytes1(t);
      rgb[1] = bytes1(p);
      rgb[2] = bytes1(v);
    } else {
      rgb[0] = bytes1(v);
      rgb[1] = bytes1(p);
      rgb[2] = bytes1(q);
    }
    return rgb;
  }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)

pragma solidity ^0.8.0;

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

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

    /**
     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
     */
    function toHexString(address addr) internal pure returns (string memory) {
        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"uint8","name":"h","type":"uint8"},{"internalType":"uint8","name":"s","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"}],"name":"HSVtoRGB","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"color","type":"bytes"}],"name":"HSVtoRGB","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"r","type":"uint8"},{"internalType":"uint8","name":"g","type":"uint8"},{"internalType":"uint8","name":"b","type":"uint8"}],"name":"RGBtoHSV","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"color","type":"bytes"}],"name":"RGBtoHSV","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"color","type":"bytes"},{"internalType":"uint8","name":"idx","type":"uint8"},{"internalType":"uint16","name":"amt","type":"uint16"}],"name":"add","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"color","type":"bytes"},{"internalType":"uint8","name":"idx","type":"uint8"},{"internalType":"uint16","name":"amt","type":"uint16"}],"name":"addWrap","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"colors","type":"bytes"},{"internalType":"uint256","name":"colorIdx","type":"uint256"}],"name":"getColor","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"colors","type":"bytes"},{"internalType":"uint256","name":"colorIdx","type":"uint256"},{"internalType":"bytes","name":"color","type":"bytes"}],"name":"setColor","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"color","type":"bytes"},{"internalType":"uint8","name":"idx","type":"uint8"},{"internalType":"uint16","name":"amt","type":"uint16"}],"name":"sub","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"color","type":"bytes"},{"internalType":"uint8","name":"idx","type":"uint8"},{"internalType":"uint16","name":"amt","type":"uint16"}],"name":"subWrap","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"}]

611ed5610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063a59ded6911610070578063a59ded691461019d578063bc25c29a146101cd578063c7bc41ee146101fd578063cc3c3cb11461022d578063dcae7a3c1461025d576100a8565b806309ffe4b9146100ad57806322a9236d146100dd5780632bd3e8101461010d5780637364e4e91461013d57806397e8ec2a1461016d575b600080fd5b6100c760048036038101906100c29190611810565b61028d565b6040516100d49190611907565b60405180910390f35b6100f760048036038101906100f29190611929565b6103a0565b6040516101049190611907565b60405180910390f35b6101276004803603810190610122919061197c565b610998565b6040516101349190611907565b60405180910390f35b61015760048036038101906101529190611929565b610a0f565b6040516101649190611907565b60405180910390f35b61018760048036038101906101829190611810565b6111af565b6040516101949190611907565b60405180910390f35b6101b760048036038101906101b2919061197c565b61122c565b6040516101c49190611907565b60405180910390f35b6101e760048036038101906101e29190611810565b6112a3565b6040516101f49190611907565b60405180910390f35b61021760048036038101906102129190611810565b611320565b6040516102249190611907565b60405180910390f35b610247600480360381019061024291906119fb565b61142f565b6040516102549190611907565b60405180910390f35b61027760048036038101906102729190611a86565b611591565b6040516102849190611907565b60405180910390f35b606060ff848460ff16815181106102a7576102a6611ae2565b5b602001015160f81c60f81b60f81c60ff16836102c39190611b40565b61ffff161061031e5760ff60f81b848460ff16815181106102e7576102e6611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350839050610399565b81848460ff168151811061033557610334611ae2565b5b602001015160f81c60f81b60f81c61034d9190611b78565b60f81b848460ff168151811061036657610365611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390505b9392505050565b60606000600367ffffffffffffffff8111156103bf576103be611672565b5b6040519080825280601f01601f1916602001820160405280156103f15781602001600182028036833780820191505090505b50905060008460ff168660ff161061041d578360ff168560ff16106104165783610418565b845b610433565b8360ff168660ff16106104305783610432565b855b5b905060008560ff168760ff161161045e578460ff168660ff16116104575784610459565b855b610474565b8460ff168760ff16116104715784610473565b865b5b90508060f81b8360028151811061048e5761048d611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060008160ff16141561056457600060f81b836000815181106104e2576104e1611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060f81b8360018151811061052a57610529611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350829350505050610991565b8260028151811061057857610577611ae2565b5b602001015160f81c60f81b60f81c60ff1682826105959190611baf565b60ff1660ff6105a49190611bf3565b6105ae9190611c60565b60f81b836001815181106105c5576105c4611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060008360018151811061060a57610609611ae2565b5b602001015160f81c60f81b60f81c60ff16141561067457600060f81b8360008151811061063a57610639611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350829350505050610991565b8660ff168160ff161415610781578460ff168660ff1611156107085781810360ff1663ffffffff1685870360ff16602b0263ffffffff16816106b9576106b8611c31565b5b0460000160f81b836000815181106106d4576106d3611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061077c565b81810360ff1663ffffffff1686860360ff16602b0263ffffffff168161073157610730611c31565b5b0460000360f81b8360008151811061074c5761074b611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b61098a565b8560ff168160ff16141561088e578660ff168560ff1611156108155781810360ff1663ffffffff1687860360ff16602b0263ffffffff16816107c6576107c5611c31565b5b0460550160f81b836000815181106107e1576107e0611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610889565b81810360ff1663ffffffff1685880360ff16602b0263ffffffff168161083e5761083d611c31565b5b0460550360f81b8360008151811061085957610858611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b610989565b8560ff168760ff1611156109145781810360ff1663ffffffff1686880360ff16602b0263ffffffff16816108c5576108c4611c31565b5b0460ab0160f81b836000815181106108e0576108df611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610988565b81810360ff1663ffffffff1687870360ff16602b0263ffffffff168161093d5761093c611c31565b5b0460ab0360f81b8360008151811061095857610957611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b5b5b8293505050505b9392505050565b6060610a08826000815181106109b1576109b0611ae2565b5b602001015160f81c60f81b60f81c836001815181106109d3576109d2611ae2565b5b602001015160f81c60f81b60f81c846002815181106109f5576109f4611ae2565b5b602001015160f81c60f81b60f81c6103a0565b9050919050565b60606000600367ffffffffffffffff811115610a2e57610a2d611672565b5b6040519080825280601f01601f191660200182016040528015610a605781602001600182028036833780820191505090505b5090506000806000806000808960ff161415610b59578760f81b86600081518110610a8e57610a8d611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600181518110610ad557610ad4611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600281518110610b1c57610b1b611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508596505050505050506111a8565b602b8a610b669190611c91565b94506006602b86610b779190611cc2565b8b610b829190611baf565b610b8c9190611cc2565b935060088960ff610b9d9190611baf565b60ff168960ff16610bae9190611bf3565b63ffffffff16901c92506008808560ff168b60ff16610bcd9190611bf3565b63ffffffff16901c60ff610be19190611cfd565b8960ff16610bef9190611bf3565b63ffffffff16901c91506008808560ff610c099190611baf565b60ff168b60ff16610c1a9190611bf3565b63ffffffff16901c60ff610c2e9190611cfd565b8960ff16610c3c9190611bf3565b63ffffffff16901c905060008560ff161415610d2c578760f81b86600081518110610c6a57610c69611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060f81b86600181518110610cb157610cb0611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b86600281518110610cf857610cf7611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119e565b60018560ff161415610e12578160f81b86600081518110610d5057610d4f611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600181518110610d9757610d96611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b86600281518110610dde57610ddd611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119d565b60028560ff161415610ef8578160f81b86600081518110610e3657610e35611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600181518110610e7d57610e7c611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060f81b86600281518110610ec457610ec3611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119c565b60038560ff161415610fde578260f81b86600081518110610f1c57610f1b611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508160f81b86600181518110610f6357610f62611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600281518110610faa57610fa9611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119b565b60048560ff1614156110c4578060f81b8660008151811061100257611001611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b8660018151811061104957611048611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b866002815181106110905761108f611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119a565b8760f81b866000815181106110dc576110db611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b8660018151811061112357611122611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508160f81b8660028151811061116a57611169611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b5b5b5b5b8596505050505050505b9392505050565b606081848460ff16815181106111c8576111c7611ae2565b5b602001015160f81c60f81b60f81c60ff160160f81b848460ff16815181106111f3576111f2611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390509392505050565b606061129c8260008151811061124557611244611ae2565b5b602001015160f81c60f81b60f81c8360018151811061126757611266611ae2565b5b602001015160f81c60f81b60f81c8460028151811061128957611288611ae2565b5b602001015160f81c60f81b60f81c610a0f565b9050919050565b606081848460ff16815181106112bc576112bb611ae2565b5b602001015160f81c60f81b60f81c60ff160360f81b848460ff16815181106112e7576112e6611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390509392505050565b60608161ffff16848460ff168151811061133d5761133c611ae2565b5b602001015160f81c60f81b60f81c60ff1661ffff1610156113aa57600060f81b848460ff168151811061137357611372611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350839050611428565b81848460ff16815181106113c1576113c0611ae2565b5b602001015160f81c60f81b60f81c60ff166113dc9190611d31565b60f81b848460ff16815181106113f5576113f4611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390505b9392505050565b606060038361143e9190611d65565b92508160008151811061145457611453611ae2565b5b602001015160f81c60f81b8460008561146d9190611dbf565b8151811061147e5761147d611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350816001815181106114c1576114c0611ae2565b5b602001015160f81c60f81b846001856114da9190611dbf565b815181106114eb576114ea611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508160028151811061152e5761152d611ae2565b5b602001015160f81c60f81b846002856115479190611dbf565b8151811061155857611557611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390509392505050565b60606003826115a09190611d65565b915060008383815181106115b7576115b6611ae2565b5b602001015160f81c60f81b846001856115d09190611dbf565b815181106115e1576115e0611ae2565b5b602001015160f81c60f81b856002866115fa9190611dbf565b8151811061160b5761160a611ae2565b5b602001015160f81c60f81b60405160200161162893929190611e62565b60405160208183030381529060405290508091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6116aa82611661565b810181811067ffffffffffffffff821117156116c9576116c8611672565b5b80604052505050565b60006116dc611643565b90506116e882826116a1565b919050565b600067ffffffffffffffff82111561170857611707611672565b5b61171182611661565b9050602081019050919050565b82818337600083830152505050565b600061174061173b846116ed565b6116d2565b90508281526020810184848401111561175c5761175b61165c565b5b61176784828561171e565b509392505050565b600082601f83011261178457611783611657565b5b813561179484826020860161172d565b91505092915050565b600060ff82169050919050565b6117b38161179d565b81146117be57600080fd5b50565b6000813590506117d0816117aa565b92915050565b600061ffff82169050919050565b6117ed816117d6565b81146117f857600080fd5b50565b60008135905061180a816117e4565b92915050565b6000806000606084860312156118295761182861164d565b5b600084013567ffffffffffffffff81111561184757611846611652565b5b6118538682870161176f565b9350506020611864868287016117c1565b9250506040611875868287016117fb565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b838110156118b957808201518184015260208101905061189e565b838111156118c8576000848401525b50505050565b60006118d98261187f565b6118e3818561188a565b93506118f381856020860161189b565b6118fc81611661565b840191505092915050565b6000602082019050818103600083015261192181846118ce565b905092915050565b6000806000606084860312156119425761194161164d565b5b6000611950868287016117c1565b9350506020611961868287016117c1565b9250506040611972868287016117c1565b9150509250925092565b6000602082840312156119925761199161164d565b5b600082013567ffffffffffffffff8111156119b0576119af611652565b5b6119bc8482850161176f565b91505092915050565b6000819050919050565b6119d8816119c5565b81146119e357600080fd5b50565b6000813590506119f5816119cf565b92915050565b600080600060608486031215611a1457611a1361164d565b5b600084013567ffffffffffffffff811115611a3257611a31611652565b5b611a3e8682870161176f565b9350506020611a4f868287016119e6565b925050604084013567ffffffffffffffff811115611a7057611a6f611652565b5b611a7c8682870161176f565b9150509250925092565b60008060408385031215611a9d57611a9c61164d565b5b600083013567ffffffffffffffff811115611abb57611aba611652565b5b611ac78582860161176f565b9250506020611ad8858286016119e6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b4b826117d6565b9150611b56836117d6565b92508261ffff03821115611b6d57611b6c611b11565b5b828201905092915050565b6000611b838261179d565b9150611b8e8361179d565b92508260ff03821115611ba457611ba3611b11565b5b828201905092915050565b6000611bba8261179d565b9150611bc58361179d565b925082821015611bd857611bd7611b11565b5b828203905092915050565b600063ffffffff82169050919050565b6000611bfe82611be3565b9150611c0983611be3565b92508163ffffffff0483118215151615611c2657611c25611b11565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611c6b82611be3565b9150611c7683611be3565b925082611c8657611c85611c31565b5b828204905092915050565b6000611c9c8261179d565b9150611ca78361179d565b925082611cb757611cb6611c31565b5b828204905092915050565b6000611ccd8261179d565b9150611cd88361179d565b92508160ff0483118215151615611cf257611cf1611b11565b5b828202905092915050565b6000611d0882611be3565b9150611d1383611be3565b925082821015611d2657611d25611b11565b5b828203905092915050565b6000611d3c826117d6565b9150611d47836117d6565b925082821015611d5a57611d59611b11565b5b828203905092915050565b6000611d70826119c5565b9150611d7b836119c5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611db457611db3611b11565b5b828202905092915050565b6000611dca826119c5565b9150611dd5836119c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e0a57611e09611b11565b5b828201905092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b611e5c611e5782611e15565b611e41565b82525050565b6000611e6e8286611e4b565b600182019150611e7e8285611e4b565b600182019150611e8e8284611e4b565b60018201915081905094935050505056fea2646970667358221220ae62fc1d4ae468869d6b1c57a26cd1a170092fb3b0845911a330e18a50220a7764736f6c63430008090033

Deployed Bytecode

0x735f30ba2bb352d5c8b44b2d3a2885fedf95ef4e3830146080604052600436106100a85760003560e01c8063a59ded6911610070578063a59ded691461019d578063bc25c29a146101cd578063c7bc41ee146101fd578063cc3c3cb11461022d578063dcae7a3c1461025d576100a8565b806309ffe4b9146100ad57806322a9236d146100dd5780632bd3e8101461010d5780637364e4e91461013d57806397e8ec2a1461016d575b600080fd5b6100c760048036038101906100c29190611810565b61028d565b6040516100d49190611907565b60405180910390f35b6100f760048036038101906100f29190611929565b6103a0565b6040516101049190611907565b60405180910390f35b6101276004803603810190610122919061197c565b610998565b6040516101349190611907565b60405180910390f35b61015760048036038101906101529190611929565b610a0f565b6040516101649190611907565b60405180910390f35b61018760048036038101906101829190611810565b6111af565b6040516101949190611907565b60405180910390f35b6101b760048036038101906101b2919061197c565b61122c565b6040516101c49190611907565b60405180910390f35b6101e760048036038101906101e29190611810565b6112a3565b6040516101f49190611907565b60405180910390f35b61021760048036038101906102129190611810565b611320565b6040516102249190611907565b60405180910390f35b610247600480360381019061024291906119fb565b61142f565b6040516102549190611907565b60405180910390f35b61027760048036038101906102729190611a86565b611591565b6040516102849190611907565b60405180910390f35b606060ff848460ff16815181106102a7576102a6611ae2565b5b602001015160f81c60f81b60f81c60ff16836102c39190611b40565b61ffff161061031e5760ff60f81b848460ff16815181106102e7576102e6611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350839050610399565b81848460ff168151811061033557610334611ae2565b5b602001015160f81c60f81b60f81c61034d9190611b78565b60f81b848460ff168151811061036657610365611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390505b9392505050565b60606000600367ffffffffffffffff8111156103bf576103be611672565b5b6040519080825280601f01601f1916602001820160405280156103f15781602001600182028036833780820191505090505b50905060008460ff168660ff161061041d578360ff168560ff16106104165783610418565b845b610433565b8360ff168660ff16106104305783610432565b855b5b905060008560ff168760ff161161045e578460ff168660ff16116104575784610459565b855b610474565b8460ff168760ff16116104715784610473565b865b5b90508060f81b8360028151811061048e5761048d611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060008160ff16141561056457600060f81b836000815181106104e2576104e1611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060f81b8360018151811061052a57610529611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350829350505050610991565b8260028151811061057857610577611ae2565b5b602001015160f81c60f81b60f81c60ff1682826105959190611baf565b60ff1660ff6105a49190611bf3565b6105ae9190611c60565b60f81b836001815181106105c5576105c4611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060008360018151811061060a57610609611ae2565b5b602001015160f81c60f81b60f81c60ff16141561067457600060f81b8360008151811061063a57610639611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350829350505050610991565b8660ff168160ff161415610781578460ff168660ff1611156107085781810360ff1663ffffffff1685870360ff16602b0263ffffffff16816106b9576106b8611c31565b5b0460000160f81b836000815181106106d4576106d3611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061077c565b81810360ff1663ffffffff1686860360ff16602b0263ffffffff168161073157610730611c31565b5b0460000360f81b8360008151811061074c5761074b611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b61098a565b8560ff168160ff16141561088e578660ff168560ff1611156108155781810360ff1663ffffffff1687860360ff16602b0263ffffffff16816107c6576107c5611c31565b5b0460550160f81b836000815181106107e1576107e0611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610889565b81810360ff1663ffffffff1685880360ff16602b0263ffffffff168161083e5761083d611c31565b5b0460550360f81b8360008151811061085957610858611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b610989565b8560ff168760ff1611156109145781810360ff1663ffffffff1686880360ff16602b0263ffffffff16816108c5576108c4611c31565b5b0460ab0160f81b836000815181106108e0576108df611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610988565b81810360ff1663ffffffff1687870360ff16602b0263ffffffff168161093d5761093c611c31565b5b0460ab0360f81b8360008151811061095857610957611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b5b5b8293505050505b9392505050565b6060610a08826000815181106109b1576109b0611ae2565b5b602001015160f81c60f81b60f81c836001815181106109d3576109d2611ae2565b5b602001015160f81c60f81b60f81c846002815181106109f5576109f4611ae2565b5b602001015160f81c60f81b60f81c6103a0565b9050919050565b60606000600367ffffffffffffffff811115610a2e57610a2d611672565b5b6040519080825280601f01601f191660200182016040528015610a605781602001600182028036833780820191505090505b5090506000806000806000808960ff161415610b59578760f81b86600081518110610a8e57610a8d611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600181518110610ad557610ad4611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600281518110610b1c57610b1b611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508596505050505050506111a8565b602b8a610b669190611c91565b94506006602b86610b779190611cc2565b8b610b829190611baf565b610b8c9190611cc2565b935060088960ff610b9d9190611baf565b60ff168960ff16610bae9190611bf3565b63ffffffff16901c92506008808560ff168b60ff16610bcd9190611bf3565b63ffffffff16901c60ff610be19190611cfd565b8960ff16610bef9190611bf3565b63ffffffff16901c91506008808560ff610c099190611baf565b60ff168b60ff16610c1a9190611bf3565b63ffffffff16901c60ff610c2e9190611cfd565b8960ff16610c3c9190611bf3565b63ffffffff16901c905060008560ff161415610d2c578760f81b86600081518110610c6a57610c69611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060f81b86600181518110610cb157610cb0611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b86600281518110610cf857610cf7611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119e565b60018560ff161415610e12578160f81b86600081518110610d5057610d4f611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600181518110610d9757610d96611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b86600281518110610dde57610ddd611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119d565b60028560ff161415610ef8578160f81b86600081518110610e3657610e35611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600181518110610e7d57610e7c611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060f81b86600281518110610ec457610ec3611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119c565b60038560ff161415610fde578260f81b86600081518110610f1c57610f1b611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508160f81b86600181518110610f6357610f62611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b86600281518110610faa57610fa9611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119b565b60048560ff1614156110c4578060f81b8660008151811061100257611001611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b8660018151811061104957611048611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508760f81b866002815181106110905761108f611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061119a565b8760f81b866000815181106110dc576110db611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508260f81b8660018151811061112357611122611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508160f81b8660028151811061116a57611169611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b5b5b5b5b8596505050505050505b9392505050565b606081848460ff16815181106111c8576111c7611ae2565b5b602001015160f81c60f81b60f81c60ff160160f81b848460ff16815181106111f3576111f2611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390509392505050565b606061129c8260008151811061124557611244611ae2565b5b602001015160f81c60f81b60f81c8360018151811061126757611266611ae2565b5b602001015160f81c60f81b60f81c8460028151811061128957611288611ae2565b5b602001015160f81c60f81b60f81c610a0f565b9050919050565b606081848460ff16815181106112bc576112bb611ae2565b5b602001015160f81c60f81b60f81c60ff160360f81b848460ff16815181106112e7576112e6611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390509392505050565b60608161ffff16848460ff168151811061133d5761133c611ae2565b5b602001015160f81c60f81b60f81c60ff1661ffff1610156113aa57600060f81b848460ff168151811061137357611372611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350839050611428565b81848460ff16815181106113c1576113c0611ae2565b5b602001015160f81c60f81b60f81c60ff166113dc9190611d31565b60f81b848460ff16815181106113f5576113f4611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390505b9392505050565b606060038361143e9190611d65565b92508160008151811061145457611453611ae2565b5b602001015160f81c60f81b8460008561146d9190611dbf565b8151811061147e5761147d611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350816001815181106114c1576114c0611ae2565b5b602001015160f81c60f81b846001856114da9190611dbf565b815181106114eb576114ea611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508160028151811061152e5761152d611ae2565b5b602001015160f81c60f81b846002856115479190611dbf565b8151811061155857611557611ae2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508390509392505050565b60606003826115a09190611d65565b915060008383815181106115b7576115b6611ae2565b5b602001015160f81c60f81b846001856115d09190611dbf565b815181106115e1576115e0611ae2565b5b602001015160f81c60f81b856002866115fa9190611dbf565b8151811061160b5761160a611ae2565b5b602001015160f81c60f81b60405160200161162893929190611e62565b60405160208183030381529060405290508091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6116aa82611661565b810181811067ffffffffffffffff821117156116c9576116c8611672565b5b80604052505050565b60006116dc611643565b90506116e882826116a1565b919050565b600067ffffffffffffffff82111561170857611707611672565b5b61171182611661565b9050602081019050919050565b82818337600083830152505050565b600061174061173b846116ed565b6116d2565b90508281526020810184848401111561175c5761175b61165c565b5b61176784828561171e565b509392505050565b600082601f83011261178457611783611657565b5b813561179484826020860161172d565b91505092915050565b600060ff82169050919050565b6117b38161179d565b81146117be57600080fd5b50565b6000813590506117d0816117aa565b92915050565b600061ffff82169050919050565b6117ed816117d6565b81146117f857600080fd5b50565b60008135905061180a816117e4565b92915050565b6000806000606084860312156118295761182861164d565b5b600084013567ffffffffffffffff81111561184757611846611652565b5b6118538682870161176f565b9350506020611864868287016117c1565b9250506040611875868287016117fb565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b838110156118b957808201518184015260208101905061189e565b838111156118c8576000848401525b50505050565b60006118d98261187f565b6118e3818561188a565b93506118f381856020860161189b565b6118fc81611661565b840191505092915050565b6000602082019050818103600083015261192181846118ce565b905092915050565b6000806000606084860312156119425761194161164d565b5b6000611950868287016117c1565b9350506020611961868287016117c1565b9250506040611972868287016117c1565b9150509250925092565b6000602082840312156119925761199161164d565b5b600082013567ffffffffffffffff8111156119b0576119af611652565b5b6119bc8482850161176f565b91505092915050565b6000819050919050565b6119d8816119c5565b81146119e357600080fd5b50565b6000813590506119f5816119cf565b92915050565b600080600060608486031215611a1457611a1361164d565b5b600084013567ffffffffffffffff811115611a3257611a31611652565b5b611a3e8682870161176f565b9350506020611a4f868287016119e6565b925050604084013567ffffffffffffffff811115611a7057611a6f611652565b5b611a7c8682870161176f565b9150509250925092565b60008060408385031215611a9d57611a9c61164d565b5b600083013567ffffffffffffffff811115611abb57611aba611652565b5b611ac78582860161176f565b9250506020611ad8858286016119e6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b4b826117d6565b9150611b56836117d6565b92508261ffff03821115611b6d57611b6c611b11565b5b828201905092915050565b6000611b838261179d565b9150611b8e8361179d565b92508260ff03821115611ba457611ba3611b11565b5b828201905092915050565b6000611bba8261179d565b9150611bc58361179d565b925082821015611bd857611bd7611b11565b5b828203905092915050565b600063ffffffff82169050919050565b6000611bfe82611be3565b9150611c0983611be3565b92508163ffffffff0483118215151615611c2657611c25611b11565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611c6b82611be3565b9150611c7683611be3565b925082611c8657611c85611c31565b5b828204905092915050565b6000611c9c8261179d565b9150611ca78361179d565b925082611cb757611cb6611c31565b5b828204905092915050565b6000611ccd8261179d565b9150611cd88361179d565b92508160ff0483118215151615611cf257611cf1611b11565b5b828202905092915050565b6000611d0882611be3565b9150611d1383611be3565b925082821015611d2657611d25611b11565b5b828203905092915050565b6000611d3c826117d6565b9150611d47836117d6565b925082821015611d5a57611d59611b11565b5b828203905092915050565b6000611d70826119c5565b9150611d7b836119c5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611db457611db3611b11565b5b828202905092915050565b6000611dca826119c5565b9150611dd5836119c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e0a57611e09611b11565b5b828201905092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b611e5c611e5782611e15565b611e41565b82525050565b6000611e6e8286611e4b565b600182019150611e7e8285611e4b565b600182019150611e8e8284611e4b565b60018201915081905094935050505056fea2646970667358221220ae62fc1d4ae468869d6b1c57a26cd1a170092fb3b0845911a330e18a50220a7764736f6c63430008090033

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

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.