ETH Price: $2,635.34 (+1.93%)

Contract

0x2bd0D1EC0e1C7fFCdbab78532B117Cbe78Bce148
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60808060149303372022-06-09 3:07:52805 days ago1654744072IN
 Create: ISBStaticData
0 ETH0.0930421260

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ISBStaticData

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 100 runs

Other Settings:
default evmVersion
File 1 of 7 : ISBStaticData.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;
import '@openzeppelin/contracts/utils/Base64.sol';
import '@openzeppelin/contracts/utils/Strings.sol';
import '@openzeppelin/contracts/utils/introspection/ERC165.sol';
import './interface/IISBStaticData.sol';

contract ISBStaticData is IISBStaticData, ERC165 {
    using Strings for uint256;
    using Strings for uint16;

    function generationText(Generation gen) public pure override returns (string memory) {
        if (gen == Generation.GEN0) {
            return 'GEN0';
        } else if (gen == Generation.GEN05) {
            return 'GEN0.5';
        } else if (gen == Generation.GEN1) {
            return 'GEN1';
        } else {
            return '';
        }
    }

    function weaponTypeText(WeaponType weaponType) public pure override returns (string memory) {
        if (weaponType == WeaponType.Sword) {
            return 'Sword';
        } else if (weaponType == WeaponType.TwoHand) {
            return 'TwoHand';
        } else if (weaponType == WeaponType.Fists) {
            return 'Fists';
        } else if (weaponType == WeaponType.Bow) {
            return 'Bow';
        } else if (weaponType == WeaponType.Staff) {
            return 'Staff';
        } else {
            return '';
        }
    }

    function armorTypeText(ArmorType armorType) public pure override returns (string memory) {
        if (armorType == ArmorType.HeavyArmor) {
            return 'HeavyArmor';
        } else if (armorType == ArmorType.LightArmor) {
            return 'LightArmor';
        } else if (armorType == ArmorType.Robe) {
            return 'Robe';
        } else if (armorType == ArmorType.Cloak) {
            return 'Cloak';
        } else if (armorType == ArmorType.TribalWear) {
            return 'TribalWear';
        } else {
            return '';
        }
    }

    function sexTypeText(SexType sexType) public pure override returns (string memory) {
        if (sexType == SexType.Male) {
            return 'Male';
        } else if (sexType == SexType.Female) {
            return 'Female';
        } else if (sexType == SexType.Hermaphrodite) {
            return 'Hermaphrodite';
        } else if (sexType == SexType.Unknown) {
            return 'Unknown';
        } else {
            return '';
        }
    }

    function speciesTypeText(SpeciesType speciesType) public pure override returns (string memory) {
        if (speciesType == SpeciesType.Human) {
            return 'Human';
        } else if (speciesType == SpeciesType.Elf) {
            return 'Elf';
        } else if (speciesType == SpeciesType.Dwarf) {
            return 'Dwarf';
        } else if (speciesType == SpeciesType.Demon) {
            return 'Demon';
        } else if (speciesType == SpeciesType.Merfolk) {
            return 'Merfolk';
        } else if (speciesType == SpeciesType.Therianthrope) {
            return 'Therianthrope';
        } else if (speciesType == SpeciesType.Vampire) {
            return 'Vampire';
        } else if (speciesType == SpeciesType.Angel) {
            return 'Angel';
        } else if (speciesType == SpeciesType.Unknown) {
            return 'Unknown';
        } else if (speciesType == SpeciesType.Dragonewt) {
            return 'Dragonewt';
        } else if (speciesType == SpeciesType.Monster) {
            return 'Monster';
        } else {
            return '';
        }
    }

    function heritageTypeText(HeritageType heritageType) public pure override returns (string memory) {
        if (heritageType == HeritageType.LowClass) {
            return 'LowClass';
        } else if (heritageType == HeritageType.MiddleClass) {
            return 'MiddleClass';
        } else if (heritageType == HeritageType.HighClass) {
            return 'HighClass';
        } else if (heritageType == HeritageType.Unknown) {
            return 'Unknown';
        } else {
            return '';
        }
    }

    function personalityTypeText(PersonalityType personalityType) public pure override returns (string memory) {
        if (personalityType == PersonalityType.Cool) {
            return 'Cool';
        } else if (personalityType == PersonalityType.Serious) {
            return 'Serious';
        } else if (personalityType == PersonalityType.Gentle) {
            return 'Gentle';
        } else if (personalityType == PersonalityType.Optimistic) {
            return 'Optimistic';
        } else if (personalityType == PersonalityType.Rough) {
            return 'Rough';
        } else if (personalityType == PersonalityType.Diffident) {
            return 'Diffident';
        } else if (personalityType == PersonalityType.Pessimistic) {
            return 'Pessimistic';
        } else if (personalityType == PersonalityType.Passionate) {
            return 'Passionate';
        } else if (personalityType == PersonalityType.Unknown) {
            return 'Unknown';
        } else if (personalityType == PersonalityType.Frivolous) {
            return 'Frivolous';
        } else if (personalityType == PersonalityType.Confident) {
            return 'Confident';
        } else {
            return '';
        }
    }

    function createMetadata(
        uint256 tokenId,
        Character calldata char,
        Metadata calldata metadata,
        uint16[] calldata status,
        StatusMaster[] calldata statusMaster,
        string calldata image,
        Generation generation
    ) public pure override returns (string memory) {
        bytes memory attributes = abi.encodePacked(
            '{"trait_type": "Name","value": "',
            char.name,
            '"},{"trait_type": "Generation Type","value": "',
            generationText(generation),
            abi.encodePacked(
                '"},{"trait_type": "Weapon","value": "',
                weaponTypeText(char.weapon),
                '"},{"trait_type": "Armor","value": "',
                armorTypeText(char.armor),
                '"},{"trait_type": "Sex","value": "',
                sexTypeText(char.sex),
                '"},{"trait_type": "Species","value": "',
                speciesTypeText(char.species),
                '"},{"trait_type": "Heritage","value": "',
                heritageTypeText(char.heritage),
                '"},{"trait_type": "Personality","value": "',
                personalityTypeText(char.personality)
            ),
            '"},{"trait_type": "Used Seed","value": ',
            metadata.seedHistory.length.toString(),
            '},{"trait_type": "Level","value": ',
            metadata.level.toString(),
            '}',
            statusMaster.length == 0 ? ',' : ''
        );
        for (uint256 i = 0; i < statusMaster.length; i++) {
            if (i == 0) attributes = abi.encodePacked(attributes, ',');
            attributes = abi.encodePacked(
                attributes,
                '{"trait_type": "',
                statusMaster[i].statusText,
                '","value": ',
                status[i].toString(),
                '}',
                i == statusMaster.length - 1 ? '' : ','
            );
        }
        bytes memory dataURI = abi.encodePacked(
            '{"name": "',
            char.name,
            ' #',
            tokenId.toString(),
            '","description": "When the seven Fragments come together,  \\nThe lost power of the gods will be revived and unleashed.  \\n  \\nExplore the Isekai, Turkenista, and defeat your rivals to collect Fragments (NFT)! Combining the Fragments will bring back SINKI blessing you with overflowing SINN(ERC20)!   \\n  \\nYou will need 3 or more characters to play this fully on-chain game on the Ethereum blockchain.  \\n  \\nBattle for NFTs!","image": "',
            image,
            '","attributes": [',
            attributes,
            ']}'
        );

        return string(abi.encodePacked('data:application/json;base64,', Base64.encode(dataURI)));
    }

    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IISBStaticData).interfaceId || super.supportsInterface(interfaceId);
    }
}

File 2 of 7 : Base64.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Base64.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides a set of functions to operate with Base64 strings.
 *
 * _Available since v4.5._
 */
library Base64 {
    /**
     * @dev Base64 Encoding/Decoding Table
     */
    string internal constant _TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    /**
     * @dev Converts a `bytes` to its Bytes64 `string` representation.
     */
    function encode(bytes memory data) internal pure returns (string memory) {
        /**
         * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence
         * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol
         */
        if (data.length == 0) return "";

        // Loads the table into memory
        string memory table = _TABLE;

        // Encoding takes 3 bytes chunks of binary data from `bytes` data parameter
        // and split into 4 numbers of 6 bits.
        // The final Base64 length should be `bytes` data length multiplied by 4/3 rounded up
        // - `data.length + 2`  -> Round up
        // - `/ 3`              -> Number of 3-bytes chunks
        // - `4 *`              -> 4 characters for each chunk
        string memory result = new string(4 * ((data.length + 2) / 3));

        assembly {
            // Prepare the lookup table (skip the first "length" byte)
            let tablePtr := add(table, 1)

            // Prepare result pointer, jump over length
            let resultPtr := add(result, 32)

            // Run over the input, 3 bytes at a time
            for {
                let dataPtr := data
                let endPtr := add(data, mload(data))
            } lt(dataPtr, endPtr) {

            } {
                // Advance 3 bytes
                dataPtr := add(dataPtr, 3)
                let input := mload(dataPtr)

                // To write each character, shift the 3 bytes (18 bits) chunk
                // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)
                // and apply logical AND with 0x3F which is the number of
                // the previous character in the ASCII table prior to the Base64 Table
                // The result is then added to the table to get the character to write,
                // and finally write it in the result pointer but with a left shift
                // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits

                mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance

                mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance

                mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance

                mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance
            }

            // When data `bytes` is not exactly 3 bytes long
            // it is padded with `=` characters at the end
            switch mod(mload(data), 3)
            case 1 {
                mstore8(sub(resultPtr, 1), 0x3d)
                mstore8(sub(resultPtr, 2), 0x3d)
            }
            case 2 {
                mstore8(sub(resultPtr, 1), 0x3d)
            }
        }

        return result;
    }
}

File 3 of 7 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (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 4 of 7 : ERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)

pragma solidity ^0.8.0;

import "./IERC165.sol";

/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

File 5 of 7 : IISBStaticData.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;
import '@openzeppelin/contracts/token/ERC20/IERC20.sol';

interface IISBStaticData {
    enum Generation {
        GEN0,
        GEN05,
        GEN1
    }
    enum WeaponType {
        Sword,
        TwoHand,
        Fists,
        Bow,
        Staff
    }
    enum ArmorType {
        HeavyArmor,
        LightArmor,
        Robe,
        Cloak,
        TribalWear
    }
    enum SexType {
        Male,
        Female,
        Hermaphrodite,
        Unknown
    }
    enum SpeciesType {
        Human,
        Elf,
        Dwarf,
        Demon,
        Merfolk,
        Therianthrope,
        Vampire,
        Angel,
        Unknown,
        Dragonewt,
        Monster
    }
    enum HeritageType {
        LowClass,
        MiddleClass,
        HighClass,
        Unknown
    }
    enum PersonalityType {
        Cool,
        Serious,
        Gentle,
        Optimistic,
        Rough,
        Diffident,
        Pessimistic,
        Passionate,
        Unknown,
        Frivolous,
        Confident
    }
    enum Phase {
        BeforeMint,
        WLMint,
        PublicMint,
        MintByTokens
    }

    struct Tokens {
        IERC20 SINN;
        IERC20 GOV;
    }
    struct Metadata {
        uint16 characterId;
        uint16 level;
        uint256 transferTime;
        Status[] seedHistory;
    }
    struct Status {
        uint256 statusId;
        uint16 status;
    }
    struct Character {
        Status[] defaultStatus;
        WeaponType weapon;
        ArmorType armor;
        SexType sex;
        SpeciesType species;
        HeritageType heritage;
        PersonalityType personality;
        string name;
        uint16 imageId;
        bool canBuy;
    }
    struct EtherPrices {
        uint64 mintPrice1;
        uint64 mintPrice2;
        uint64 mintPrice3;
        uint64 mintPrice4;
        uint64 wlMintPrice1;
        uint64 wlMintPrice2;
        uint64 wlMintPrice3;
        uint64 wlMintPrice4;
    }
    struct TokenPrices {
        uint128 SINNPrice1;
        uint128 SINNPrice2;
        uint128 SINNPrice3;
        uint128 SINNPrice4;
        uint128 GOVPrice1;
        uint128 GOVPrice2;
        uint128 GOVPrice3;
        uint128 GOVPrice4;
    }
    struct StatusMaster {
        string statusText;
        bool withLevel;
    }

    function generationText(Generation gen) external pure returns (string memory);

    function weaponTypeText(WeaponType weaponType) external pure returns (string memory);

    function armorTypeText(ArmorType armorType) external pure returns (string memory);

    function sexTypeText(SexType sexType) external pure returns (string memory);

    function speciesTypeText(SpeciesType speciesType) external pure returns (string memory);

    function heritageTypeText(HeritageType heritageType) external pure returns (string memory);

    function personalityTypeText(PersonalityType personalityType) external pure returns (string memory);

    function createMetadata(
        uint256 tokenId,
        Character calldata char,
        Metadata calldata metadata,
        uint16[] calldata status,
        StatusMaster[] calldata statusTexts,
        string calldata image,
        Generation generation
    ) external pure returns (string memory);
}

File 6 of 7 : IERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 7 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"enum IISBStaticData.ArmorType","name":"armorType","type":"uint8"}],"name":"armorTypeText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"components":[{"components":[{"internalType":"uint256","name":"statusId","type":"uint256"},{"internalType":"uint16","name":"status","type":"uint16"}],"internalType":"struct IISBStaticData.Status[]","name":"defaultStatus","type":"tuple[]"},{"internalType":"enum IISBStaticData.WeaponType","name":"weapon","type":"uint8"},{"internalType":"enum IISBStaticData.ArmorType","name":"armor","type":"uint8"},{"internalType":"enum IISBStaticData.SexType","name":"sex","type":"uint8"},{"internalType":"enum IISBStaticData.SpeciesType","name":"species","type":"uint8"},{"internalType":"enum IISBStaticData.HeritageType","name":"heritage","type":"uint8"},{"internalType":"enum IISBStaticData.PersonalityType","name":"personality","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint16","name":"imageId","type":"uint16"},{"internalType":"bool","name":"canBuy","type":"bool"}],"internalType":"struct IISBStaticData.Character","name":"char","type":"tuple"},{"components":[{"internalType":"uint16","name":"characterId","type":"uint16"},{"internalType":"uint16","name":"level","type":"uint16"},{"internalType":"uint256","name":"transferTime","type":"uint256"},{"components":[{"internalType":"uint256","name":"statusId","type":"uint256"},{"internalType":"uint16","name":"status","type":"uint16"}],"internalType":"struct IISBStaticData.Status[]","name":"seedHistory","type":"tuple[]"}],"internalType":"struct IISBStaticData.Metadata","name":"metadata","type":"tuple"},{"internalType":"uint16[]","name":"status","type":"uint16[]"},{"components":[{"internalType":"string","name":"statusText","type":"string"},{"internalType":"bool","name":"withLevel","type":"bool"}],"internalType":"struct IISBStaticData.StatusMaster[]","name":"statusMaster","type":"tuple[]"},{"internalType":"string","name":"image","type":"string"},{"internalType":"enum IISBStaticData.Generation","name":"generation","type":"uint8"}],"name":"createMetadata","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum IISBStaticData.Generation","name":"gen","type":"uint8"}],"name":"generationText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum IISBStaticData.HeritageType","name":"heritageType","type":"uint8"}],"name":"heritageTypeText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum IISBStaticData.PersonalityType","name":"personalityType","type":"uint8"}],"name":"personalityTypeText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum IISBStaticData.SexType","name":"sexType","type":"uint8"}],"name":"sexTypeText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum IISBStaticData.SpeciesType","name":"speciesType","type":"uint8"}],"name":"speciesTypeText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IISBStaticData.WeaponType","name":"weaponType","type":"uint8"}],"name":"weaponTypeText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

6080806040523461001657611b12908161001c8239f35b600080fdfe60806040526004361015610013575b600080fd5b6000803560e01c90816301ffc9a7146100ca5750806324878050146100c157806336247e40146100b857806364ee0d26146100af5780639b30d5ed146100a6578063bc13f5f31461009d578063d867deca14610094578063def9afb11461008b5763ebed3d391461008357600080fd5b61000e6103df565b5061000e6103b6565b5061000e610309565b5061000e610266565b5061000e610233565b5061000e610209565b5061000e6101d1565b5061000e61018e565b34610120576020366003190112610120576004359063ffffffff60e01b82168092036101205750635e0ecfb560e11b811490811561010f575b50151560805260206080f35b6301ffc9a760e01b14905081610103565b80fd5b6004111561000e57565b918091926000905b82821061014d575011610146575050565b6000910152565b91508060209183015181860152018291610135565b60409160208252610182815180928160208601526020868601910161012d565b601f01601f1916010190565b503461000e57602036600319011261000e576101c36101b76004356101b281610123565b610bf0565b60405191829182610162565b0390f35b6005111561000e57565b503461000e57602036600319011261000e576101c36101b76004356101f5816101c7565b610657565b60c43590600382101561000e57565b503461000e57602036600319011261000e57600435600381101561000e576101b76101c39161052d565b503461000e57602036600319011261000e576101c36101b760043561025781610123565b61089e565b600b111561000e57565b503461000e57602036600319011261000e576101c36101b760043561028a8161025c565b610da3565b908161014091031261000e5790565b9081608091031261000e5790565b9181601f8401121561000e578235916001600160401b03831161000e576020808501948460051b01011161000e57565b9181601f8401121561000e578235916001600160401b03831161000e576020838186019501011161000e57565b503461000e5760e036600319011261000e576024356001600160401b0380821161000e5761033c6004923690840161028f565b9160443582811161000e57610354903690830161029e565b60643583811161000e5761036b90369084016102ac565b60849591953585811161000e5761038590369086016102ac565b9160a43596871161000e576101c3976103a46101b798369089016102dc565b9690956103af6101fa565b9835611044565b503461000e57602036600319011261000e576101c36101b76004356103da8161025c565b610a66565b503461000e57602036600319011261000e576101c36101b7600435610403816101c7565b610788565b50634e487b7160e01b600052602160045260246000fd5b6003111561042957565b610431610408565b565b50634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b0382111761046557604052565b61046d610433565b604052565b604081019081106001600160401b0382111761046557604052565b90601f801991011681019081106001600160401b0382111761046557604052565b6020906001600160401b0381116104cb575b601f01601f19160190565b6104d3610433565b6104c0565b604051906104e58261044a565b60008252565b604051906104f882610472565b600682526547454e302e3560d01b6020830152565b6040519061051a82610472565b6004825263047454e360e41b6020830152565b600381101561059b575b80610548575061054561050d565b90565b6105518161041f565b6001810361056257506105456104eb565b8061056e60029261041f565b036105935760405161057f81610472565b600481526347454e3160e01b602082015290565b6105456104d8565b6105a3610408565b610537565b6005111561042957565b604051906105bf82610472565b600582526429ba30b33360d91b6020830152565b604051906105e082610472565b6003825262426f7760e81b6020830152565b604051906105ff82610472565b6005825264466973747360d81b6020830152565b6040519061062082610472565b6007825266151ddbd2185b9960ca1b6020830152565b6040519061064382610472565b600582526414dddbdc9960da1b6020830152565b610660816105a8565b8061066e5750610545610636565b610677816105a8565b600181036106885750610545610613565b610691816105a8565b600281036106a257506105456105f2565b6106ab816105a8565b600381036106bc57506105456105d3565b806106c86004926105a8565b03610593576105456105b2565b604051906106e282610472565b600a8252692a3934b130b62bb2b0b960b11b6020830152565b6040519061070882610472565b6005825264436c6f616b60d81b6020830152565b6040519061072982610472565b6004825263526f626560e01b6020830152565b6040519061074982610472565b600a8252692634b3b43a20b936b7b960b11b6020830152565b6040519061076f82610472565b600a8252692432b0bb3ca0b936b7b960b11b6020830152565b610791816105a8565b8061079f5750610545610762565b6107a8816105a8565b600181036107b9575061054561073c565b6107c2816105a8565b600281036107d3575061054561071c565b6107dc816105a8565b600381036107ed57506105456106fb565b806107f96004926105a8565b03610593576105456106d5565b6004111561042957565b6040519061081d82610472565b60078252662ab735b737bbb760c91b6020830152565b6040519061084082610472565b600d82526c4865726d617068726f6469746560981b6020830152565b6040519061086982610472565b600682526546656d616c6560d01b6020830152565b6040519061088b82610472565b60048252634d616c6560e01b6020830152565b6108a781610806565b806108b5575061054561087e565b6108be81610806565b600181036108cf575061054561085c565b6108d881610806565b600281036108e95750610545610833565b806108f5600392610806565b0361059357610545610810565b600b111561042957565b6040519061091982610472565b600782526626b7b739ba32b960c91b6020830152565b6040519061093c82610472565b6009825268111c9859dbdb995ddd60ba1b6020830152565b6040519061096182610472565b6005825264105b99d95b60da1b6020830152565b6040519061098282610472565b600782526656616d7069726560c81b6020830152565b604051906109a582610472565b600d82526c5468657269616e7468726f706560981b6020830152565b604051906109ce82610472565b60078252664d6572666f6c6b60c81b6020830152565b604051906109f182610472565b60058252642232b6b7b760d91b6020830152565b60405190610a1282610472565b6005825264223bb0b93360d91b6020830152565b60405190610a3382610472565b600382526222b63360e91b6020830152565b60405190610a5282610472565b6005825264243ab6b0b760d91b6020830152565b610a6f81610902565b80610a7d5750610545610a45565b610a8681610902565b60018103610a975750610545610a26565b610aa081610902565b60028103610ab15750610545610a05565b610aba81610902565b60038103610acb57506105456109e4565b610ad481610902565b60048103610ae557506105456109c1565b610aee81610902565b60058103610aff5750610545610998565b610b0881610902565b60068103610b195750610545610975565b610b2281610902565b60078103610b335750610545610954565b610b3c81610902565b60088103610b4d5750610545610810565b610b5681610902565b60098103610b67575061054561092f565b80610b73600a92610902565b036105935761054561090c565b60405190610b8d82610472565b600982526848696768436c61737360b81b6020830152565b60405190610bb282610472565b600b82526a4d6964646c65436c61737360a81b6020830152565b60405190610bd982610472565b60088252674c6f77436c61737360c01b6020830152565b610bf981610806565b80610c075750610545610bcc565b610c1081610806565b60018103610c215750610545610ba5565b610c2a81610806565b600281036108e95750610545610b80565b60405190610c4882610472565b600982526810dbdb999a59195b9d60ba1b6020830152565b60405190610c6d82610472565b6009825268467269766f6c6f757360b81b6020830152565b60405190610c9282610472565b600a82526950617373696f6e61746560b01b6020830152565b60405190610cb882610472565b600b82526a50657373696d697374696360a81b6020830152565b60405190610cdf82610472565b6009825268111a59999a59195b9d60ba1b6020830152565b60405190610d0482610472565b60058252640a4deeaced60db1b6020830152565b60405190610d2582610472565b600a8252694f7074696d697374696360b01b6020830152565b60405190610d4b82610472565b600682526547656e746c6560d01b6020830152565b60405190610d6d82610472565b6007825266536572696f757360c81b6020830152565b60405190610d9082610472565b600482526310dbdbdb60e21b6020830152565b610dac81610902565b80610dba5750610545610d83565b610dc381610902565b60018103610dd45750610545610d60565b610ddd81610902565b60028103610dee5750610545610d3e565b610df781610902565b60038103610e085750610545610d18565b610e1181610902565b60048103610e225750610545610cf7565b610e2b81610902565b60058103610e3c5750610545610cd2565b610e4581610902565b60068103610e565750610545610cab565b610e5f81610902565b60078103610e705750610545610c85565b610e7981610902565b60088103610e8a5750610545610810565b610e9381610902565b60098103610ea45750610545610c60565b80610eb0600a92610902565b0361059357610545610c3b565b903590601e198136030182121561000e57018035906001600160401b03821161000e5760200191813603831361000e57565b35610545816101c7565b3561054581610123565b356105458161025c565b90610f206020928281519485920161012d565b0190565b903590601e198136030182121561000e57018035906001600160401b03821161000e57602001918160061b3603831361000e57565b3561ffff8116810361000e5790565b60405190610f7582610472565b60018252600b60fa1b6020830152565b908092918237016000815290565b50634e487b7160e01b600052601160045260246000fd5b6001906000198114610fba570190565b610f20610f93565b50634e487b7160e01b600052603260045260246000fd5b9190811015610ffc575b60051b81013590603e198136030182121561000e570190565b611004610fc2565b610fe3565b919081101561101a575b60051b0190565b611022610fc2565b611013565b60018110611037575b6000190190565b61103f610f93565b611030565b989695929694919493909360e085019561105e8787610ebd565b91909261106a9061052d565b9061107760208901610eef565b61108090610657565b9061108d60408a01610eef565b61109690610788565b916110a360608b01610ef9565b6110ac9061089e565b6110b860808c01610f03565b6110c190610a66565b6110cd60a08d01610ef9565b6110d690610bf0565b906110e360c08e01610f03565b6110ec90610da3565b9260405196879560208701611133906025907f227d2c7b2274726169745f74797065223a2022576561706f6e222c2276616c7581526432911d101160d91b60208201520190565b61113c91610f0d565b7f227d2c7b2274726169745f74797065223a202241726d6f72222c2276616c7565815263111d101160e11b602082015260240161117891610f0d565b7f227d2c7b2274726169745f74797065223a2022536578222c2276616c7565223a815261101160f11b60208201526022016111b291610f0d565b7f227d2c7b2274726169745f74797065223a202253706563696573222c2276616c8152653ab2911d101160d11b60208201526026016111f091610f0d565b7f227d2c7b2274726169745f74797065223a20224865726974616765222c227661815266363ab2911d101160c91b602082015260270161122f91610f0d565b7f227d2c7b2274726169745f74797065223a2022506572736f6e616c697479222c815269113b30b63ab2911d101160b11b6020820152602a0161127191610f0d565b03601f1981018352611283908361048d565b6112906060820182610f24565b61129a9150611a21565b906020016112a790610f59565b61ffff166112b490611a21565b918861184f576112c2610f68565b939c9897969c5b604080517f7b2274726169745f74797065223a20224e616d65222c2276616c7565223a2022602082015297889761130292890191610f85565b7f227d2c7b2274726169745f74797065223a202247656e65726174696f6e20547981526d38329116113b30b63ab2911d101160911b6020820152602e0161134891610f0d565b61135191610f0d565b7f227d2c7b2274726169745f74797065223a2022557365642053656564222c2276815266030b63ab2911d160cd1b602082015260270161139091610f0d565b7f7d2c7b2274726169745f74797065223a20224c6576656c222c2276616c75652281526101d160f51b60208201526022016113ca91610f0d565b607d60f81b81526001016113dd91610f0d565b03601f19810182526113ef908261048d565b966000935b8385106117025750505050509061140a91610ebd565b93909461141690611a21565b604051693d913730b6b2911d101160b11b6020820152958695602a87019061143d92610f85565b61202360f01b815260020161145191610f0d565b7f222c226465736372697074696f6e223a20225768656e2074686520736576656e81527f20467261676d656e747320636f6d6520746f6765746865722c20205c6e54686560208201527f206c6f737420706f776572206f662074686520676f64732077696c6c2062652060408201527f7265766976656420616e6420756e6c6561736865642e20205c6e20205c6e457860608201527f706c6f726520746865204973656b61692c205475726b656e697374612c20616e60808201527f642064656665617420796f757220726976616c7320746f20636f6c6c6563742060a08201527f467261676d656e747320284e4654292120436f6d62696e696e6720746865204660c08201527f7261676d656e74732077696c6c206272696e67206261636b2053494e4b49206260e08201527f6c657373696e6720796f752077697468206f766572666c6f77696e672053494e6101008201527f4e28455243323029212020205c6e20205c6e596f752077696c6c206e656564206101208201527f33206f72206d6f7265206368617261637465727320746f20706c6179207468696101408201527f732066756c6c79206f6e2d636861696e2067616d65206f6e20746865204574686101608201527f657265756d20626c6f636b636861696e2e20205c6e20205c6e426174746c6520610180820152743337b91027232a399091161134b6b0b3b2911d101160591b6101a08201526101b5019061166e92610f85565b70222c2261747472696275746573223a205b60781b815260110161169191610f0d565b615d7d60f01b815260020103601f19810182526116ae908261048d565b6116b790611946565b6040517f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020820152908190603d82016116f091610f0d565b03601f1981018252610545908261048d565b84988285878685969798991561180f575b926117d16117d7846117d16117ba6117f89a8761177661177061176b6117646117989f9d6117f29f9d6117576117e49f8261175f9461175192610fd9565b80610ebd565b9e9098611009565b610f59565b61ffff1690565b611a21565b95611027565b03611801576117836104d8565b965b6117b46040519c8d9b60208d0190610f0d565b6f3d913a3930b4ba2fba3cb832911d101160811b815260100190565b91610f85565b6a01116113b30b63ab2911d160ad1b8152600b0190565b90610f0d565b607d60f81b815260010190565b03601f19810183528261048d565b98610faa565b939291906113f4565b611809610f68565b96611785565b9093928483819560405180916020820161182891610f0d565b600b60fa1b815260010103601f1981018252611844908261048d565b965050509290611713565b6118576104d8565b939c9897969c6112c9565b60405190606082018281106001600160401b038211176118d2575b604052604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b6118da610433565b61187d565b6002906002198111610fba570190565b6001600160fe1b038111600116611907575b60021b90565b61190f610f93565b611901565b9061191e826104ae565b61192b604051918261048d565b828152809261193c601f19916104ae565b0190602036910137565b805115611a1857611955611862565b61197961197461196f61196885516118df565b6003900490565b6118ef565b611914565b9160208301918182518301915b8282106119c6575050506003905106806001146119b3576002146119a8575090565b603d90600019015390565b50603d9081600019820153600119015390565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c1688010151600286015316850101519082015301939190611986565b506105456104d8565b8015611abe576000818181805b611aa65750611a3c81611914565b935b611a485750505090565b611a5190611027565b90600a90603082820680198211611a99575b8651851015611a8c575b0160f81b6001600160f81b031916841a85840160200153049081611a3e565b611a94610fc2565b611a6d565b611aa1610f93565b611a63565b9150611ab3600a91610faa565b910480849291611a2e565b50604051611acb81610472565b60018152600360fc1b60208201529056fea2646970667358221220293436c5c077bf04b4272b583c1bf7a75f9fba43be836ea119d4b60179e289bc64736f6c634300080e0033

Deployed Bytecode

0x60806040526004361015610013575b600080fd5b6000803560e01c90816301ffc9a7146100ca5750806324878050146100c157806336247e40146100b857806364ee0d26146100af5780639b30d5ed146100a6578063bc13f5f31461009d578063d867deca14610094578063def9afb11461008b5763ebed3d391461008357600080fd5b61000e6103df565b5061000e6103b6565b5061000e610309565b5061000e610266565b5061000e610233565b5061000e610209565b5061000e6101d1565b5061000e61018e565b34610120576020366003190112610120576004359063ffffffff60e01b82168092036101205750635e0ecfb560e11b811490811561010f575b50151560805260206080f35b6301ffc9a760e01b14905081610103565b80fd5b6004111561000e57565b918091926000905b82821061014d575011610146575050565b6000910152565b91508060209183015181860152018291610135565b60409160208252610182815180928160208601526020868601910161012d565b601f01601f1916010190565b503461000e57602036600319011261000e576101c36101b76004356101b281610123565b610bf0565b60405191829182610162565b0390f35b6005111561000e57565b503461000e57602036600319011261000e576101c36101b76004356101f5816101c7565b610657565b60c43590600382101561000e57565b503461000e57602036600319011261000e57600435600381101561000e576101b76101c39161052d565b503461000e57602036600319011261000e576101c36101b760043561025781610123565b61089e565b600b111561000e57565b503461000e57602036600319011261000e576101c36101b760043561028a8161025c565b610da3565b908161014091031261000e5790565b9081608091031261000e5790565b9181601f8401121561000e578235916001600160401b03831161000e576020808501948460051b01011161000e57565b9181601f8401121561000e578235916001600160401b03831161000e576020838186019501011161000e57565b503461000e5760e036600319011261000e576024356001600160401b0380821161000e5761033c6004923690840161028f565b9160443582811161000e57610354903690830161029e565b60643583811161000e5761036b90369084016102ac565b60849591953585811161000e5761038590369086016102ac565b9160a43596871161000e576101c3976103a46101b798369089016102dc565b9690956103af6101fa565b9835611044565b503461000e57602036600319011261000e576101c36101b76004356103da8161025c565b610a66565b503461000e57602036600319011261000e576101c36101b7600435610403816101c7565b610788565b50634e487b7160e01b600052602160045260246000fd5b6003111561042957565b610431610408565b565b50634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b0382111761046557604052565b61046d610433565b604052565b604081019081106001600160401b0382111761046557604052565b90601f801991011681019081106001600160401b0382111761046557604052565b6020906001600160401b0381116104cb575b601f01601f19160190565b6104d3610433565b6104c0565b604051906104e58261044a565b60008252565b604051906104f882610472565b600682526547454e302e3560d01b6020830152565b6040519061051a82610472565b6004825263047454e360e41b6020830152565b600381101561059b575b80610548575061054561050d565b90565b6105518161041f565b6001810361056257506105456104eb565b8061056e60029261041f565b036105935760405161057f81610472565b600481526347454e3160e01b602082015290565b6105456104d8565b6105a3610408565b610537565b6005111561042957565b604051906105bf82610472565b600582526429ba30b33360d91b6020830152565b604051906105e082610472565b6003825262426f7760e81b6020830152565b604051906105ff82610472565b6005825264466973747360d81b6020830152565b6040519061062082610472565b6007825266151ddbd2185b9960ca1b6020830152565b6040519061064382610472565b600582526414dddbdc9960da1b6020830152565b610660816105a8565b8061066e5750610545610636565b610677816105a8565b600181036106885750610545610613565b610691816105a8565b600281036106a257506105456105f2565b6106ab816105a8565b600381036106bc57506105456105d3565b806106c86004926105a8565b03610593576105456105b2565b604051906106e282610472565b600a8252692a3934b130b62bb2b0b960b11b6020830152565b6040519061070882610472565b6005825264436c6f616b60d81b6020830152565b6040519061072982610472565b6004825263526f626560e01b6020830152565b6040519061074982610472565b600a8252692634b3b43a20b936b7b960b11b6020830152565b6040519061076f82610472565b600a8252692432b0bb3ca0b936b7b960b11b6020830152565b610791816105a8565b8061079f5750610545610762565b6107a8816105a8565b600181036107b9575061054561073c565b6107c2816105a8565b600281036107d3575061054561071c565b6107dc816105a8565b600381036107ed57506105456106fb565b806107f96004926105a8565b03610593576105456106d5565b6004111561042957565b6040519061081d82610472565b60078252662ab735b737bbb760c91b6020830152565b6040519061084082610472565b600d82526c4865726d617068726f6469746560981b6020830152565b6040519061086982610472565b600682526546656d616c6560d01b6020830152565b6040519061088b82610472565b60048252634d616c6560e01b6020830152565b6108a781610806565b806108b5575061054561087e565b6108be81610806565b600181036108cf575061054561085c565b6108d881610806565b600281036108e95750610545610833565b806108f5600392610806565b0361059357610545610810565b600b111561042957565b6040519061091982610472565b600782526626b7b739ba32b960c91b6020830152565b6040519061093c82610472565b6009825268111c9859dbdb995ddd60ba1b6020830152565b6040519061096182610472565b6005825264105b99d95b60da1b6020830152565b6040519061098282610472565b600782526656616d7069726560c81b6020830152565b604051906109a582610472565b600d82526c5468657269616e7468726f706560981b6020830152565b604051906109ce82610472565b60078252664d6572666f6c6b60c81b6020830152565b604051906109f182610472565b60058252642232b6b7b760d91b6020830152565b60405190610a1282610472565b6005825264223bb0b93360d91b6020830152565b60405190610a3382610472565b600382526222b63360e91b6020830152565b60405190610a5282610472565b6005825264243ab6b0b760d91b6020830152565b610a6f81610902565b80610a7d5750610545610a45565b610a8681610902565b60018103610a975750610545610a26565b610aa081610902565b60028103610ab15750610545610a05565b610aba81610902565b60038103610acb57506105456109e4565b610ad481610902565b60048103610ae557506105456109c1565b610aee81610902565b60058103610aff5750610545610998565b610b0881610902565b60068103610b195750610545610975565b610b2281610902565b60078103610b335750610545610954565b610b3c81610902565b60088103610b4d5750610545610810565b610b5681610902565b60098103610b67575061054561092f565b80610b73600a92610902565b036105935761054561090c565b60405190610b8d82610472565b600982526848696768436c61737360b81b6020830152565b60405190610bb282610472565b600b82526a4d6964646c65436c61737360a81b6020830152565b60405190610bd982610472565b60088252674c6f77436c61737360c01b6020830152565b610bf981610806565b80610c075750610545610bcc565b610c1081610806565b60018103610c215750610545610ba5565b610c2a81610806565b600281036108e95750610545610b80565b60405190610c4882610472565b600982526810dbdb999a59195b9d60ba1b6020830152565b60405190610c6d82610472565b6009825268467269766f6c6f757360b81b6020830152565b60405190610c9282610472565b600a82526950617373696f6e61746560b01b6020830152565b60405190610cb882610472565b600b82526a50657373696d697374696360a81b6020830152565b60405190610cdf82610472565b6009825268111a59999a59195b9d60ba1b6020830152565b60405190610d0482610472565b60058252640a4deeaced60db1b6020830152565b60405190610d2582610472565b600a8252694f7074696d697374696360b01b6020830152565b60405190610d4b82610472565b600682526547656e746c6560d01b6020830152565b60405190610d6d82610472565b6007825266536572696f757360c81b6020830152565b60405190610d9082610472565b600482526310dbdbdb60e21b6020830152565b610dac81610902565b80610dba5750610545610d83565b610dc381610902565b60018103610dd45750610545610d60565b610ddd81610902565b60028103610dee5750610545610d3e565b610df781610902565b60038103610e085750610545610d18565b610e1181610902565b60048103610e225750610545610cf7565b610e2b81610902565b60058103610e3c5750610545610cd2565b610e4581610902565b60068103610e565750610545610cab565b610e5f81610902565b60078103610e705750610545610c85565b610e7981610902565b60088103610e8a5750610545610810565b610e9381610902565b60098103610ea45750610545610c60565b80610eb0600a92610902565b0361059357610545610c3b565b903590601e198136030182121561000e57018035906001600160401b03821161000e5760200191813603831361000e57565b35610545816101c7565b3561054581610123565b356105458161025c565b90610f206020928281519485920161012d565b0190565b903590601e198136030182121561000e57018035906001600160401b03821161000e57602001918160061b3603831361000e57565b3561ffff8116810361000e5790565b60405190610f7582610472565b60018252600b60fa1b6020830152565b908092918237016000815290565b50634e487b7160e01b600052601160045260246000fd5b6001906000198114610fba570190565b610f20610f93565b50634e487b7160e01b600052603260045260246000fd5b9190811015610ffc575b60051b81013590603e198136030182121561000e570190565b611004610fc2565b610fe3565b919081101561101a575b60051b0190565b611022610fc2565b611013565b60018110611037575b6000190190565b61103f610f93565b611030565b989695929694919493909360e085019561105e8787610ebd565b91909261106a9061052d565b9061107760208901610eef565b61108090610657565b9061108d60408a01610eef565b61109690610788565b916110a360608b01610ef9565b6110ac9061089e565b6110b860808c01610f03565b6110c190610a66565b6110cd60a08d01610ef9565b6110d690610bf0565b906110e360c08e01610f03565b6110ec90610da3565b9260405196879560208701611133906025907f227d2c7b2274726169745f74797065223a2022576561706f6e222c2276616c7581526432911d101160d91b60208201520190565b61113c91610f0d565b7f227d2c7b2274726169745f74797065223a202241726d6f72222c2276616c7565815263111d101160e11b602082015260240161117891610f0d565b7f227d2c7b2274726169745f74797065223a2022536578222c2276616c7565223a815261101160f11b60208201526022016111b291610f0d565b7f227d2c7b2274726169745f74797065223a202253706563696573222c2276616c8152653ab2911d101160d11b60208201526026016111f091610f0d565b7f227d2c7b2274726169745f74797065223a20224865726974616765222c227661815266363ab2911d101160c91b602082015260270161122f91610f0d565b7f227d2c7b2274726169745f74797065223a2022506572736f6e616c697479222c815269113b30b63ab2911d101160b11b6020820152602a0161127191610f0d565b03601f1981018352611283908361048d565b6112906060820182610f24565b61129a9150611a21565b906020016112a790610f59565b61ffff166112b490611a21565b918861184f576112c2610f68565b939c9897969c5b604080517f7b2274726169745f74797065223a20224e616d65222c2276616c7565223a2022602082015297889761130292890191610f85565b7f227d2c7b2274726169745f74797065223a202247656e65726174696f6e20547981526d38329116113b30b63ab2911d101160911b6020820152602e0161134891610f0d565b61135191610f0d565b7f227d2c7b2274726169745f74797065223a2022557365642053656564222c2276815266030b63ab2911d160cd1b602082015260270161139091610f0d565b7f7d2c7b2274726169745f74797065223a20224c6576656c222c2276616c75652281526101d160f51b60208201526022016113ca91610f0d565b607d60f81b81526001016113dd91610f0d565b03601f19810182526113ef908261048d565b966000935b8385106117025750505050509061140a91610ebd565b93909461141690611a21565b604051693d913730b6b2911d101160b11b6020820152958695602a87019061143d92610f85565b61202360f01b815260020161145191610f0d565b7f222c226465736372697074696f6e223a20225768656e2074686520736576656e81527f20467261676d656e747320636f6d6520746f6765746865722c20205c6e54686560208201527f206c6f737420706f776572206f662074686520676f64732077696c6c2062652060408201527f7265766976656420616e6420756e6c6561736865642e20205c6e20205c6e457860608201527f706c6f726520746865204973656b61692c205475726b656e697374612c20616e60808201527f642064656665617420796f757220726976616c7320746f20636f6c6c6563742060a08201527f467261676d656e747320284e4654292120436f6d62696e696e6720746865204660c08201527f7261676d656e74732077696c6c206272696e67206261636b2053494e4b49206260e08201527f6c657373696e6720796f752077697468206f766572666c6f77696e672053494e6101008201527f4e28455243323029212020205c6e20205c6e596f752077696c6c206e656564206101208201527f33206f72206d6f7265206368617261637465727320746f20706c6179207468696101408201527f732066756c6c79206f6e2d636861696e2067616d65206f6e20746865204574686101608201527f657265756d20626c6f636b636861696e2e20205c6e20205c6e426174746c6520610180820152743337b91027232a399091161134b6b0b3b2911d101160591b6101a08201526101b5019061166e92610f85565b70222c2261747472696275746573223a205b60781b815260110161169191610f0d565b615d7d60f01b815260020103601f19810182526116ae908261048d565b6116b790611946565b6040517f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020820152908190603d82016116f091610f0d565b03601f1981018252610545908261048d565b84988285878685969798991561180f575b926117d16117d7846117d16117ba6117f89a8761177661177061176b6117646117989f9d6117f29f9d6117576117e49f8261175f9461175192610fd9565b80610ebd565b9e9098611009565b610f59565b61ffff1690565b611a21565b95611027565b03611801576117836104d8565b965b6117b46040519c8d9b60208d0190610f0d565b6f3d913a3930b4ba2fba3cb832911d101160811b815260100190565b91610f85565b6a01116113b30b63ab2911d160ad1b8152600b0190565b90610f0d565b607d60f81b815260010190565b03601f19810183528261048d565b98610faa565b939291906113f4565b611809610f68565b96611785565b9093928483819560405180916020820161182891610f0d565b600b60fa1b815260010103601f1981018252611844908261048d565b965050509290611713565b6118576104d8565b939c9897969c6112c9565b60405190606082018281106001600160401b038211176118d2575b604052604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b6118da610433565b61187d565b6002906002198111610fba570190565b6001600160fe1b038111600116611907575b60021b90565b61190f610f93565b611901565b9061191e826104ae565b61192b604051918261048d565b828152809261193c601f19916104ae565b0190602036910137565b805115611a1857611955611862565b61197961197461196f61196885516118df565b6003900490565b6118ef565b611914565b9160208301918182518301915b8282106119c6575050506003905106806001146119b3576002146119a8575090565b603d90600019015390565b50603d9081600019820153600119015390565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c1688010151600286015316850101519082015301939190611986565b506105456104d8565b8015611abe576000818181805b611aa65750611a3c81611914565b935b611a485750505090565b611a5190611027565b90600a90603082820680198211611a99575b8651851015611a8c575b0160f81b6001600160f81b031916841a85840160200153049081611a3e565b611a94610fc2565b611a6d565b611aa1610f93565b611a63565b9150611ab3600a91610faa565b910480849291611a2e565b50604051611acb81610472565b60018152600360fc1b60208201529056fea2646970667358221220293436c5c077bf04b4272b583c1bf7a75f9fba43be836ea119d4b60179e289bc64736f6c634300080e0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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