APE Price: $0.69 (-1.99%)

Contract

0x630ca434CcCa7FD85012203f1fb50fF99E8f1f56

Overview

APE Balance

Apechain LogoApechain LogoApechain Logo0 APE

APE Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Store Hoodie Ove...85506762025-01-21 2:10:4831 days ago1737425448IN
0x630ca434...99E8f1f56
0 APE0.1195150125.42069
Store Traits85499292025-01-21 1:51:3431 days ago1737424294IN
0x630ca434...99E8f1f56
0 APE0.0073394325.42069
Store Traits85499282025-01-21 1:51:3331 days ago1737424293IN
0x630ca434...99E8f1f56
0 APE0.0049116825.42069
Store Traits85499252025-01-21 1:51:3131 days ago1737424291IN
0x630ca434...99E8f1f56
0 APE0.0061256925.42069
Store Traits85499232025-01-21 1:51:3031 days ago1737424290IN
0x630ca434...99E8f1f56
0 APE0.007338825.42069
Store Traits85499212025-01-21 1:51:2931 days ago1737424289IN
0x630ca434...99E8f1f56
0 APE0.0061220125.42069
Store Traits85499202025-01-21 1:51:2831 days ago1737424288IN
0x630ca434...99E8f1f56
0 APE0.0073390825.42069
Store Traits85499192025-01-21 1:51:2831 days ago1737424288IN
0x630ca434...99E8f1f56
0 APE0.0061269425.42069
Store Traits85499182025-01-21 1:51:2631 days ago1737424286IN
0x630ca434...99E8f1f56
0 APE0.0049107425.42069
Store Traits85499162025-01-21 1:51:2531 days ago1737424285IN
0x630ca434...99E8f1f56
0 APE0.0061272525.42069
Store Traits85499152025-01-21 1:51:2431 days ago1737424284IN
0x630ca434...99E8f1f56
0 APE0.0061226425.42069
Store Traits85499132025-01-21 1:51:2231 days ago1737424282IN
0x630ca434...99E8f1f56
0 APE0.0061300425.42069
Store Traits85499112025-01-21 1:51:2131 days ago1737424281IN
0x630ca434...99E8f1f56
0 APE0.0073347825.42069
Store Traits85499092025-01-21 1:51:2031 days ago1737424280IN
0x630ca434...99E8f1f56
0 APE0.006124225.42069
Store Traits85499082025-01-21 1:51:1831 days ago1737424278IN
0x630ca434...99E8f1f56
0 APE0.0061222925.42069
Store Traits85499072025-01-21 1:51:1731 days ago1737424277IN
0x630ca434...99E8f1f56
0 APE0.0061263325.42069
Store Traits85499062025-01-21 1:51:1631 days ago1737424276IN
0x630ca434...99E8f1f56
0 APE0.006124525.42069
Store Traits85499052025-01-21 1:51:1531 days ago1737424275IN
0x630ca434...99E8f1f56
0 APE0.0061253625.42069
Store Traits85499042025-01-21 1:51:1331 days ago1737424273IN
0x630ca434...99E8f1f56
0 APE0.0073375525.42069
Store Traits85499032025-01-21 1:51:1231 days ago1737424272IN
0x630ca434...99E8f1f56
0 APE0.0061241725.42069
Store Traits85498992025-01-21 1:51:1131 days ago1737424271IN
0x630ca434...99E8f1f56
0 APE0.0061238625.42069
Store Traits85498982025-01-21 1:51:1031 days ago1737424270IN
0x630ca434...99E8f1f56
0 APE0.0061251425.42069
Store Traits85498952025-01-21 1:51:0931 days ago1737424269IN
0x630ca434...99E8f1f56
0 APE0.0073379125.42069
Store Traits85498942025-01-21 1:51:0831 days ago1737424268IN
0x630ca434...99E8f1f56
0 APE0.0061241725.42069
Store Traits85498932025-01-21 1:51:0731 days ago1737424267IN
0x630ca434...99E8f1f56
0 APE0.0073384925.42069
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GoobalooData

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : GoobalooData.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

/**
 * @title GobsDataSource
 * @notice Stores SVGs for traits and generates SVGs for on-chain Goblin images.
 */
contract GoobalooData {
    address payable internal deployer;
    bool private contractSealed = false;
    mapping(string => mapping(string => string)) private traitSVGs; // traitType => value => SVG
    mapping(uint256 => Trait[]) private gobTraits; // Simplified storage for traits
    string private hoodieOverlaySVG;

    struct Trait {
        string traitType;
        string value;
    }

    modifier onlyDeployer() {
        require(msg.sender == deployer, "Only deployer.");
        _;
    }

    modifier unsealed() {
        require(!contractSealed, "Contract is sealed.");
        _;
    }

    constructor() {
        deployer = payable(msg.sender);
    }

    /**
     * @notice Seal the contract to prevent further modifications.
     */
    function sealContract() external onlyDeployer unsealed {
        contractSealed = true;
    }

    /**
     * @notice Store SVG data for a trait value
     * @param traitType The type of trait (e.g., "Background", "Head", etc.)
     * @param value The trait value (e.g., "Red", "Blue", etc.)
     * @param svg The SVG string for this trait
     */
    function storeTraitSVG(
        string memory traitType,
        string memory value,
        string memory svg
    ) external onlyDeployer unsealed {
        traitSVGs[traitType][value] = svg;
    }

    /**
     * @notice Store multiple trait SVGs at once
     */
    function batchStoreTraitSVGs(
        string[] memory traitTypes,
        string[] memory values,
        string[] memory svgs
    ) external onlyDeployer unsealed {
        require(
            traitTypes.length == values.length && values.length == svgs.length,
            "Mismatched arrays"
        );

        for (uint256 i = 0; i < traitTypes.length; i++) {
            traitSVGs[traitTypes[i]][values[i]] = svgs[i];
        }
    }

    /**
     * @notice Store traits for a token
     * @param tokenId The token ID to store traits for
     * @param traitTypes Array of trait types
     * @param values Array of values corresponding to trait types
     */
    function storeTraits(
        uint256 tokenId,
        string[] memory traitTypes,
        string[] memory values
    ) external onlyDeployer unsealed {
        require(tokenId < 2222, "Invalid token ID");
        require(traitTypes.length > 0, "No traits provided");
        require(
            traitTypes.length == values.length,
            string.concat(
                "Length mismatch: traitTypes(",
                toString(traitTypes.length),
                ") != values(",
                toString(values.length),
                ")"
            )
        );

        // Clear existing traits
        delete gobTraits[tokenId];

        // Store new traits
        for (uint256 i = 0; i < traitTypes.length; i++) {
            require(bytes(traitTypes[i]).length > 0, "Empty trait type");
            require(bytes(values[i]).length > 0, "Empty trait value");

            gobTraits[tokenId].push(
                Trait({traitType: traitTypes[i], value: values[i]})
            );
        }
    }

    /**
     * @notice Retrieve traits for a token
     * @param tokenId The ID of the token
     * @return The traits for the token
     */
    function getTraits(uint256 tokenId) external view returns (string memory) {
        require(gobTraits[tokenId].length > 0, "Traits not set");

        string memory jsonTraits = "[";

        for (uint256 i = 0; i < gobTraits[tokenId].length; i++) {
            jsonTraits = string.concat(
                jsonTraits,
                '{"trait_type": "',
                gobTraits[tokenId][i].traitType,
                '", "value": "',
                gobTraits[tokenId][i].value,
                '"}'
            );

            if (i < gobTraits[tokenId].length - 1) {
                jsonTraits = string.concat(jsonTraits, ",");
            }
        }

        jsonTraits = string.concat(jsonTraits, "]");
        return jsonTraits;
    }

    /**
     * @notice Retrieve SVG for a Goblin
     * @param tokenId The ID of the Goblin
     * @return The SVG for the Goblin
     */
    function getGoobalooSVG(
        uint256 tokenId
    ) external view returns (string memory) {
        require(tokenId < 2222, "Invalid tokenId");
        require(gobTraits[tokenId].length > 0, "Traits not set");

        string memory svg = "";
        bool hasHoodie = false;

        for (uint256 i = 0; i < gobTraits[tokenId].length; i++) {
            string memory traitType = gobTraits[tokenId][i].traitType;
            string memory value = gobTraits[tokenId][i].value;

            // Check if this goblin has hoodie
            if (
                keccak256(abi.encodePacked(traitType)) ==
                keccak256(abi.encodePacked("clothes")) &&
                keccak256(abi.encodePacked(value)) ==
                keccak256(abi.encodePacked("hoodie"))
            ) {
                hasHoodie = true;
            }

            string memory traitSVG = traitSVGs[traitType][value];
            require(bytes(traitSVG).length > 0, "SVG not found for trait");

            svg = string.concat(svg, "<g>", traitSVG, "</g>");
        }

        // Add hoodie overlay at the end if this goblin has hoodie
        if (hasHoodie) {
            require(
                bytes(hoodieOverlaySVG).length > 0,
                "Hoodie overlay not set"
            );
            svg = string.concat(svg, "<g>", hoodieOverlaySVG, "</g>");
        }

        return svg;
    }

    /**
     * @notice Store the hoodie overlay SVG that goes on top of other traits
     */
    function storeHoodieOverlay(
        string memory svg
    ) external onlyDeployer unsealed {
        hoodieOverlaySVG = svg;
    }

    /**
     * @notice Store traits for multiple Goblins in batch
     * @param tokenIds Array of token IDs
     * @param traitTypes Array of trait types for each trait
     * @param values Array of values for each trait
     */
    function batchStoreTraits(
        uint256[] memory tokenIds,
        string[] memory traitTypes,
        string[] memory values
    ) external onlyDeployer unsealed {
        require(
            traitTypes.length == values.length,
            "Length mismatch: traitTypes and values arrays"
        );
        require(tokenIds.length > 0, "Empty arrays provided");
        require(
            tokenIds.length == traitTypes.length,
            string.concat(
                "Length mismatch: tokenIds(",
                toString(tokenIds.length),
                ") != traitTypes(",
                toString(traitTypes.length),
                ")"
            )
        );
        require(
            tokenIds[0] < 2222,
            string.concat("Invalid token ID: ", toString(tokenIds[0]))
        );

        uint256 currentTokenId = tokenIds[0];
        delete gobTraits[currentTokenId];

        for (uint256 i = 0; i < tokenIds.length; i++) {
            require(
                tokenIds[i] < 2222,
                string.concat(
                    "Invalid token ID at index ",
                    toString(i),
                    ": ",
                    toString(tokenIds[i])
                )
            );
            require(
                bytes(traitTypes[i]).length > 0,
                string.concat("Empty trait type at index ", toString(i))
            );
            require(
                bytes(values[i]).length > 0,
                string.concat("Empty trait value at index ", toString(i))
            );

            if (currentTokenId != tokenIds[i]) {
                currentTokenId = tokenIds[i];
                delete gobTraits[currentTokenId];
            }

            Trait memory trait = Trait({
                traitType: traitTypes[i],
                value: values[i]
            });
            gobTraits[tokenIds[i]].push(trait);
        }
    }

    // Helper function to convert uint to string
    function toString(uint256 value) internal pure returns (string memory) {
        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);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "debug": {
    "revertStrings": "debug"
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string[]","name":"traitTypes","type":"string[]"},{"internalType":"string[]","name":"values","type":"string[]"},{"internalType":"string[]","name":"svgs","type":"string[]"}],"name":"batchStoreTraitSVGs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"string[]","name":"traitTypes","type":"string[]"},{"internalType":"string[]","name":"values","type":"string[]"}],"name":"batchStoreTraits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getGoobalooSVG","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getTraits","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sealContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"svg","type":"string"}],"name":"storeHoodieOverlay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"traitType","type":"string"},{"internalType":"string","name":"value","type":"string"},{"internalType":"string","name":"svg","type":"string"}],"name":"storeTraitSVG","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string[]","name":"traitTypes","type":"string[]"},{"internalType":"string[]","name":"values","type":"string[]"}],"name":"storeTraits","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000805460ff60a01b1916905534801560695760405162461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e637469604482019081526137b760f11b6064830152608482fd5b50600080546001600160a01b0319163317905561204a8061008b6000396000f3fe608060405234801561005d5760405162461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e637469604482019081526137b760f11b6064830152608482fd5b50600436106100d55760003560e01c80639b7d9b0c116100a85780639b7d9b0c1461017d5780639d1facc314610190578063a5b57cf3146101b9578063e1dc0761146101cc576100d5565b806368bd580e1461013a5780637026e4f5146101445780638bf88d121461015757806397442a981461016a575b60405162461bcd60e51b815260206004820152603560248201527f436f6e747261637420646f6573206e6f7420686176652066616c6c6261636b2060448201908152746e6f7220726563656976652066756e6374696f6e7360581b6064830152608482fd5b6101426101df565b005b6101426101523660046116f9565b610251565b610142610165366004611796565b6103a4565b610142610178366004611829565b61043f565b61014261018b366004611861565b6106f5565b6101a361019e36600461191c565b610b8a565b6040516101b0919061195c565b60405180910390f35b6101426101c736600461198f565b611058565b6101a36101da36600461191c565b6110bc565b6000546001600160a01b031633146102125760405162461bcd60e51b8152600401610209906119c9565b60405180910390fd5b600054600160a01b900460ff161561023c5760405162461bcd60e51b8152600401610209906119f1565b6000805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461027b5760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156102a55760405162461bcd60e51b8152600401610209906119f1565b815183511480156102b7575080518251145b6102f75760405162461bcd60e51b81526020600482015260116024820152704d69736d6174636865642061727261797360781b6044820152606401610209565b60005b835181101561039e5781818151811061031557610315611a1e565b6020026020010151600185838151811061033157610331611a1e565b60200260200101516040516103469190611a34565b908152602001604051809103902084838151811061036657610366611a1e565b602002602001015160405161037b9190611a34565b908152602001604051809103902090816103959190611ad6565b506001016102fa565b50505050565b6000546001600160a01b031633146103ce5760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156103f85760405162461bcd60e51b8152600401610209906119f1565b806001846040516104099190611a34565b9081526020016040518091039020836040516104259190611a34565b9081526020016040518091039020908161039e9190611ad6565b6000546001600160a01b031633146104695760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156104935760405162461bcd60e51b8152600401610209906119f1565b6108ae83106104d75760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081d1bdad95b88125160821b6044820152606401610209565b600082511161051d5760405162461bcd60e51b8152602060048201526012602482015271139bc81d1c985a5d1cc81c1c9bdd9a59195960721b6044820152606401610209565b805182511461052c835161123d565b610536835161123d565b604051602001610547929190611b94565b604051602081830303815290604052906105745760405162461bcd60e51b8152600401610209919061195c565b50600083815260026020526040812061058c91611345565b60005b825181101561039e5760008382815181106105ac576105ac611a1e565b602002602001015151116105f55760405162461bcd60e51b815260206004820152601060248201526f456d707479207472616974207479706560801b6044820152606401610209565b600082828151811061060957610609611a1e565b602002602001015151116106535760405162461bcd60e51b8152602060048201526011602482015270456d7074792074726169742076616c756560781b6044820152606401610209565b60026000858152602001908152602001600020604051806040016040528085848151811061068357610683611a1e565b602002602001015181526020018484815181106106a2576106a2611a1e565b60209081029190910181015190915282546001810184556000938452922081519192600202019081906106d59082611ad6565b50602082015160018201906106ea9082611ad6565b50505060010161058f565b6000546001600160a01b0316331461071f5760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156107495760405162461bcd60e51b8152600401610209906119f1565b80518251146107b05760405162461bcd60e51b815260206004820152602d60248201527f4c656e677468206d69736d617463683a207472616974547970657320616e642060448201526c76616c7565732061727261797360981b6064820152608401610209565b60008351116107f95760405162461bcd60e51b8152602060048201526015602482015274115b5c1d1e48185c9c985e5cc81c1c9bdd9a591959605a1b6044820152606401610209565b8151835114610808845161123d565b610812845161123d565b604051602001610823929190611c12565b604051602081830303815290604052906108505760405162461bcd60e51b8152600401610209919061195c565b506108ae8360008151811061086757610867611a1e565b6020026020010151106108938460008151811061088657610886611a1e565b602002602001015161123d565b6040516020016108a39190611c94565b604051602081830303815290604052906108d05760405162461bcd60e51b8152600401610209919061195c565b506000836000815181106108e6576108e6611a1e565b6020026020010151905060026000828152602001908152602001600020600061090f9190611345565b60005b8451811015610b83576108ae85828151811061093057610930611a1e565b6020026020010151106109428261123d565b61095787848151811061088657610886611a1e565b604051602001610968929190611cce565b604051602081830303815290604052906109955760405162461bcd60e51b8152600401610209919061195c565b5060008482815181106109aa576109aa611a1e565b602002602001015151116109bd8261123d565b6040516020016109cd9190611d34565b604051602081830303815290604052906109fa5760405162461bcd60e51b8152600401610209919061195c565b506000838281518110610a0f57610a0f611a1e565b60200260200101515111610a228261123d565b604051602001610a329190611d79565b60405160208183030381529060405290610a5f5760405162461bcd60e51b8152600401610209919061195c565b50848181518110610a7257610a72611a1e565b60200260200101518214610abb57848181518110610a9257610a92611a1e565b60200260200101519150600260008381526020019081526020016000206000610abb9190611345565b60006040518060400160405280868481518110610ada57610ada611a1e565b60200260200101518152602001858481518110610af957610af9611a1e565b6020026020010151815250905060026000878481518110610b1c57610b1c611a1e565b6020908102919091018101518252818101929092526040016000908120805460018101825590825291902082518392600202909101908190610b5e9082611ad6565b5060208201516001820190610b739082611ad6565b5050600190920191506109129050565b5050505050565b60606108ae8210610bcf5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1bdad95b9259608a1b6044820152606401610209565b600082815260026020526040902054610c1b5760405162461bcd60e51b815260206004820152600e60248201526d151c985a5d1cc81b9bdd081cd95d60921b6044820152606401610209565b60408051602081019091526000808252805b600085815260026020526040902054811015610fcd576000858152600260205260408120805483908110610c6357610c63611a1e565b90600052602060002090600202016000018054610c7f90611a50565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab90611a50565b8015610cf85780601f10610ccd57610100808354040283529160200191610cf8565b820191906000526020600020905b815481529060010190602001808311610cdb57829003601f168201915b505050505090506000600260008881526020019081526020016000208381548110610d2557610d25611a1e565b90600052602060002090600202016001018054610d4190611a50565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6d90611a50565b8015610dba5780601f10610d8f57610100808354040283529160200191610dba565b820191906000526020600020905b815481529060010190602001808311610d9d57829003601f168201915b50505050509050604051602001610dde9066636c6f7468657360c81b815260070190565b6040516020818303038152906040528051906020012082604051602001610e059190611a34565b60405160208183030381529060405280519060200120148015610e77575060405165686f6f64696560d01b60208201526026016040516020818303038152906040528051906020012081604051602001610e5f9190611a34565b60405160208183030381529060405280519060200120145b15610e8157600193505b6000600183604051610e939190611a34565b908152602001604051809103902082604051610eaf9190611a34565b90815260200160405180910390208054610ec890611a50565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef490611a50565b8015610f415780601f10610f1657610100808354040283529160200191610f41565b820191906000526020600020905b815481529060010190602001808311610f2457829003601f168201915b505050505090506000815111610f995760405162461bcd60e51b815260206004820152601760248201527f535647206e6f7420666f756e6420666f722074726169740000000000000000006044820152606401610209565b8581604051602001610fac929190611dbe565b60405160208183030381529060405295505050508080600101915050610c2d565b50801561105157600060038054610fe390611a50565b90501161102b5760405162461bcd60e51b8152602060048201526016602482015275121bdbd91a59481bdd995c9b185e481b9bdd081cd95d60521b6044820152606401610209565b81600360405160200161103f929190611e7f565b60405160208183030381529060405291505b5092915050565b6000546001600160a01b031633146110825760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156110ac5760405162461bcd60e51b8152600401610209906119f1565b60036110b88282611ad6565b5050565b60008181526002602052604090205460609061110b5760405162461bcd60e51b815260206004820152600e60248201526d151c985a5d1cc81b9bdd081cd95d60921b6044820152606401610209565b6040805180820190915260018152605b60f81b602082015260005b60008481526002602052604090205481101561121457600084815260026020526040902080548391908390811061115f5761115f611a1e565b906000526020600020906002020160000160026000878152602001908152602001600020838154811061119457611194611a1e565b90600052602060002090600202016001016040516020016111b793929190611ec1565b60408051601f198184030181529181526000868152600260205220549092506111e290600190611f47565b81101561120c57816040516020016111fa9190611f60565b60405160208183030381529060405291505b600101611126565b50806040516020016112269190611f85565b60408051601f198184030181529190529392505050565b6060816000036112645750506040805180820190915260018152600360fc1b602082015290565b8160005b811561128e578061127881611faa565b91506112879050600a83611fd9565b9150611268565b6000816001600160401b038111156112a8576112a86114db565b6040519080825280601f01601f1916602001820160405280156112d2576020820181803683370190505b5090505b841561133d576112e7600183611f47565b91506112f4600a86611fed565b6112ff906030612001565b60f81b81838151811061131457611314611a1e565b60200101906001600160f81b031916908160001a905350611336600a86611fd9565b94506112d6565b949350505050565b50805460008255600202906000526020600020908101906113669190611369565b50565b8082111561139457600061137d8282611398565b61138b600183016000611398565b50600201611369565b5090565b5080546113a490611a50565b6000825580601f106113b4575050565b601f01602090049060005260206000209081019061136691905b8082111561139457600081556001016113ce565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608481fd5b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a20696e76616c6964207475706c65206f666673604482015261195d60f21b6064820152608481fd5b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201526a1c9c985e481bd9999cd95d60aa1b6064820152608481fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611519576115196114db565b604052919050565b60006001600160401b0382111561153a5761153a6114db565b5060051b60200190565b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201526a727261792073747269646560a81b6064820152608481fd5b600082601f8301126115b1576115b1611482565b81356001600160401b038111156115ca576115ca6114db565b6115dd601f8201601f19166020016114f1565b8181528460208386010111156116425760405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a20696e76616c69642062797465206172726179604482015266040d8cadccee8d60cb1b6064820152608481fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261167357611673611482565b813561168661168182611521565b6114f1565b8082825260208201915060208360051b8601019250858311156116ab576116ab611544565b602085015b838110156116ef5780356001600160401b038111156116d1576116d1611482565b6116e0886020838a010161159d565b845250602092830192016116b0565b5095945050505050565b600080600060608486031215611711576117116113e2565b83356001600160401b0381111561172a5761172a611432565b6117368682870161165f565b93505060208401356001600160401b0381111561175557611755611432565b6117618682870161165f565b92505060408401356001600160401b0381111561178057611780611432565b61178c8682870161165f565b9150509250925092565b6000806000606084860312156117ae576117ae6113e2565b83356001600160401b038111156117c7576117c7611432565b6117d38682870161159d565b93505060208401356001600160401b038111156117f2576117f2611432565b6117fe8682870161159d565b92505060408401356001600160401b0381111561181d5761181d611432565b61178c8682870161159d565b600080600060608486031215611841576118416113e2565b8335925060208401356001600160401b0381111561175557611755611432565b600080600060608486031215611879576118796113e2565b83356001600160401b0381111561189257611892611432565b8401601f810186136118a6576118a6611482565b80356118b461168182611521565b8082825260208201915060208360051b8501019250888311156118d9576118d9611544565b6020840193505b828410156118fb5783358252602093840193909101906118e0565b955050505060208401356001600160401b0381111561175557611755611432565b600060208284031215611931576119316113e2565b5035919050565b60005b8381101561195357818101518382015260200161193b565b50506000910152565b602081526000825180602084015261197b816040850160208701611938565b601f01601f19169190910160400192915050565b6000602082840312156119a4576119a46113e2565b81356001600160401b038111156119bd576119bd611432565b61133d8482850161159d565b6020808252600e908201526d27b7363c903232b83637bcb2b91760911b604082015260600190565b60208082526013908201527221b7b73a3930b1ba1034b99039b2b0b632b21760691b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008251611a46818460208701611938565b9190910192915050565b600181811c90821680611a6457607f821691505b602082108103611a8457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611ad157806000526020600020601f840160051c81016020851015611ab15750805b601f840160051c820191505b81811015610b835760008155600101611abd565b505050565b81516001600160401b03811115611aef57611aef6114db565b611b0381611afd8454611a50565b84611a8a565b6020601f821160018114611b375760008315611b1f5750848201515b600019600385901b1c1916600184901b178455610b83565b600084815260208120601f198516915b82811015611b675787850151825560209485019460019092019101611b47565b5084821015611b855786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b7f4c656e677468206d69736d617463683a20747261697454797065732800000000815260008351611bcc81601c850160208801611938565b6b05240427a40ecc2d8eacae6560a31b601c918401918201528351611bf8816028840160208801611938565b602960f81b60289290910191820152602901949350505050565b7f4c656e677468206d69736d617463683a20746f6b656e49647328000000000000815260008351611c4a81601a850160208801611938565b6f05240427a40e8e4c2d2e8a8f2e0cae6560831b601a918401918201528351611c7a81602a840160208801611938565b602960f81b602a9290910191820152602b01949350505050565b71024b73b30b634b2103a37b5b2b71024a21d160751b815260008251611cc1816012850160208701611938565b9190910160120192915050565b7f496e76616c696420746f6b656e20494420617420696e64657820000000000000815260008351611d0681601a850160208801611938565b6101d160f51b601a918401918201528351611d2881601c840160208801611938565b01601c01949350505050565b7f456d707479207472616974207479706520617420696e64657820000000000000815260008251611d6c81601a850160208701611938565b91909101601a0192915050565b7f456d7074792074726169742076616c756520617420696e646578200000000000815260008251611db181601b850160208701611938565b91909101601b0192915050565b60008351611dd0818460208801611938565b621e339f60e91b9083019081528351611df0816003840160208801611938565b631e17b39f60e11b60039290910191820152600701949350505050565b60008154611e1a81611a50565b600182168015611e315760018114611e4657611e76565b60ff1983168652811515820286019350611e76565b84600052602060002060005b83811015611e6e57815488820152600190910190602001611e52565b505081860193505b50505092915050565b60008351611e91818460208801611938565b621e339f60e91b908301908152611eab6003820185611e0d565b631e17b39f60e11b815260040195945050505050565b60008451611ed3818460208901611938565b6f3d913a3930b4ba2fba3cb832911d101160811b908301908152611efa6010820186611e0d565b6c111610113b30b63ab2911d101160991b81529050611f1c600d820185611e0d565b61227d60f01b81526002019695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611f5a57611f5a611f31565b92915050565b60008251611f72818460208701611938565b600b60fa1b920191825250600101919050565b60008251611f97818460208701611938565b605d60f81b920191825250600101919050565b600060018201611fbc57611fbc611f31565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611fe857611fe8611fc3565b500490565b600082611ffc57611ffc611fc3565b500690565b80820180821115611f5a57611f5a611f3156fea2646970667358221220f83b74bd0e7c90b93bd7aa82d8a1e63f196682ad8c8f05a883b5cd3fea6973b464736f6c634300081c0033

Deployed Bytecode

0x608060405234801561005d5760405162461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e637469604482019081526137b760f11b6064830152608482fd5b50600436106100d55760003560e01c80639b7d9b0c116100a85780639b7d9b0c1461017d5780639d1facc314610190578063a5b57cf3146101b9578063e1dc0761146101cc576100d5565b806368bd580e1461013a5780637026e4f5146101445780638bf88d121461015757806397442a981461016a575b60405162461bcd60e51b815260206004820152603560248201527f436f6e747261637420646f6573206e6f7420686176652066616c6c6261636b2060448201908152746e6f7220726563656976652066756e6374696f6e7360581b6064830152608482fd5b6101426101df565b005b6101426101523660046116f9565b610251565b610142610165366004611796565b6103a4565b610142610178366004611829565b61043f565b61014261018b366004611861565b6106f5565b6101a361019e36600461191c565b610b8a565b6040516101b0919061195c565b60405180910390f35b6101426101c736600461198f565b611058565b6101a36101da36600461191c565b6110bc565b6000546001600160a01b031633146102125760405162461bcd60e51b8152600401610209906119c9565b60405180910390fd5b600054600160a01b900460ff161561023c5760405162461bcd60e51b8152600401610209906119f1565b6000805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461027b5760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156102a55760405162461bcd60e51b8152600401610209906119f1565b815183511480156102b7575080518251145b6102f75760405162461bcd60e51b81526020600482015260116024820152704d69736d6174636865642061727261797360781b6044820152606401610209565b60005b835181101561039e5781818151811061031557610315611a1e565b6020026020010151600185838151811061033157610331611a1e565b60200260200101516040516103469190611a34565b908152602001604051809103902084838151811061036657610366611a1e565b602002602001015160405161037b9190611a34565b908152602001604051809103902090816103959190611ad6565b506001016102fa565b50505050565b6000546001600160a01b031633146103ce5760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156103f85760405162461bcd60e51b8152600401610209906119f1565b806001846040516104099190611a34565b9081526020016040518091039020836040516104259190611a34565b9081526020016040518091039020908161039e9190611ad6565b6000546001600160a01b031633146104695760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156104935760405162461bcd60e51b8152600401610209906119f1565b6108ae83106104d75760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081d1bdad95b88125160821b6044820152606401610209565b600082511161051d5760405162461bcd60e51b8152602060048201526012602482015271139bc81d1c985a5d1cc81c1c9bdd9a59195960721b6044820152606401610209565b805182511461052c835161123d565b610536835161123d565b604051602001610547929190611b94565b604051602081830303815290604052906105745760405162461bcd60e51b8152600401610209919061195c565b50600083815260026020526040812061058c91611345565b60005b825181101561039e5760008382815181106105ac576105ac611a1e565b602002602001015151116105f55760405162461bcd60e51b815260206004820152601060248201526f456d707479207472616974207479706560801b6044820152606401610209565b600082828151811061060957610609611a1e565b602002602001015151116106535760405162461bcd60e51b8152602060048201526011602482015270456d7074792074726169742076616c756560781b6044820152606401610209565b60026000858152602001908152602001600020604051806040016040528085848151811061068357610683611a1e565b602002602001015181526020018484815181106106a2576106a2611a1e565b60209081029190910181015190915282546001810184556000938452922081519192600202019081906106d59082611ad6565b50602082015160018201906106ea9082611ad6565b50505060010161058f565b6000546001600160a01b0316331461071f5760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156107495760405162461bcd60e51b8152600401610209906119f1565b80518251146107b05760405162461bcd60e51b815260206004820152602d60248201527f4c656e677468206d69736d617463683a207472616974547970657320616e642060448201526c76616c7565732061727261797360981b6064820152608401610209565b60008351116107f95760405162461bcd60e51b8152602060048201526015602482015274115b5c1d1e48185c9c985e5cc81c1c9bdd9a591959605a1b6044820152606401610209565b8151835114610808845161123d565b610812845161123d565b604051602001610823929190611c12565b604051602081830303815290604052906108505760405162461bcd60e51b8152600401610209919061195c565b506108ae8360008151811061086757610867611a1e565b6020026020010151106108938460008151811061088657610886611a1e565b602002602001015161123d565b6040516020016108a39190611c94565b604051602081830303815290604052906108d05760405162461bcd60e51b8152600401610209919061195c565b506000836000815181106108e6576108e6611a1e565b6020026020010151905060026000828152602001908152602001600020600061090f9190611345565b60005b8451811015610b83576108ae85828151811061093057610930611a1e565b6020026020010151106109428261123d565b61095787848151811061088657610886611a1e565b604051602001610968929190611cce565b604051602081830303815290604052906109955760405162461bcd60e51b8152600401610209919061195c565b5060008482815181106109aa576109aa611a1e565b602002602001015151116109bd8261123d565b6040516020016109cd9190611d34565b604051602081830303815290604052906109fa5760405162461bcd60e51b8152600401610209919061195c565b506000838281518110610a0f57610a0f611a1e565b60200260200101515111610a228261123d565b604051602001610a329190611d79565b60405160208183030381529060405290610a5f5760405162461bcd60e51b8152600401610209919061195c565b50848181518110610a7257610a72611a1e565b60200260200101518214610abb57848181518110610a9257610a92611a1e565b60200260200101519150600260008381526020019081526020016000206000610abb9190611345565b60006040518060400160405280868481518110610ada57610ada611a1e565b60200260200101518152602001858481518110610af957610af9611a1e565b6020026020010151815250905060026000878481518110610b1c57610b1c611a1e565b6020908102919091018101518252818101929092526040016000908120805460018101825590825291902082518392600202909101908190610b5e9082611ad6565b5060208201516001820190610b739082611ad6565b5050600190920191506109129050565b5050505050565b60606108ae8210610bcf5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1bdad95b9259608a1b6044820152606401610209565b600082815260026020526040902054610c1b5760405162461bcd60e51b815260206004820152600e60248201526d151c985a5d1cc81b9bdd081cd95d60921b6044820152606401610209565b60408051602081019091526000808252805b600085815260026020526040902054811015610fcd576000858152600260205260408120805483908110610c6357610c63611a1e565b90600052602060002090600202016000018054610c7f90611a50565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab90611a50565b8015610cf85780601f10610ccd57610100808354040283529160200191610cf8565b820191906000526020600020905b815481529060010190602001808311610cdb57829003601f168201915b505050505090506000600260008881526020019081526020016000208381548110610d2557610d25611a1e565b90600052602060002090600202016001018054610d4190611a50565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6d90611a50565b8015610dba5780601f10610d8f57610100808354040283529160200191610dba565b820191906000526020600020905b815481529060010190602001808311610d9d57829003601f168201915b50505050509050604051602001610dde9066636c6f7468657360c81b815260070190565b6040516020818303038152906040528051906020012082604051602001610e059190611a34565b60405160208183030381529060405280519060200120148015610e77575060405165686f6f64696560d01b60208201526026016040516020818303038152906040528051906020012081604051602001610e5f9190611a34565b60405160208183030381529060405280519060200120145b15610e8157600193505b6000600183604051610e939190611a34565b908152602001604051809103902082604051610eaf9190611a34565b90815260200160405180910390208054610ec890611a50565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef490611a50565b8015610f415780601f10610f1657610100808354040283529160200191610f41565b820191906000526020600020905b815481529060010190602001808311610f2457829003601f168201915b505050505090506000815111610f995760405162461bcd60e51b815260206004820152601760248201527f535647206e6f7420666f756e6420666f722074726169740000000000000000006044820152606401610209565b8581604051602001610fac929190611dbe565b60405160208183030381529060405295505050508080600101915050610c2d565b50801561105157600060038054610fe390611a50565b90501161102b5760405162461bcd60e51b8152602060048201526016602482015275121bdbd91a59481bdd995c9b185e481b9bdd081cd95d60521b6044820152606401610209565b81600360405160200161103f929190611e7f565b60405160208183030381529060405291505b5092915050565b6000546001600160a01b031633146110825760405162461bcd60e51b8152600401610209906119c9565b600054600160a01b900460ff16156110ac5760405162461bcd60e51b8152600401610209906119f1565b60036110b88282611ad6565b5050565b60008181526002602052604090205460609061110b5760405162461bcd60e51b815260206004820152600e60248201526d151c985a5d1cc81b9bdd081cd95d60921b6044820152606401610209565b6040805180820190915260018152605b60f81b602082015260005b60008481526002602052604090205481101561121457600084815260026020526040902080548391908390811061115f5761115f611a1e565b906000526020600020906002020160000160026000878152602001908152602001600020838154811061119457611194611a1e565b90600052602060002090600202016001016040516020016111b793929190611ec1565b60408051601f198184030181529181526000868152600260205220549092506111e290600190611f47565b81101561120c57816040516020016111fa9190611f60565b60405160208183030381529060405291505b600101611126565b50806040516020016112269190611f85565b60408051601f198184030181529190529392505050565b6060816000036112645750506040805180820190915260018152600360fc1b602082015290565b8160005b811561128e578061127881611faa565b91506112879050600a83611fd9565b9150611268565b6000816001600160401b038111156112a8576112a86114db565b6040519080825280601f01601f1916602001820160405280156112d2576020820181803683370190505b5090505b841561133d576112e7600183611f47565b91506112f4600a86611fed565b6112ff906030612001565b60f81b81838151811061131457611314611a1e565b60200101906001600160f81b031916908160001a905350611336600a86611fd9565b94506112d6565b949350505050565b50805460008255600202906000526020600020908101906113669190611369565b50565b8082111561139457600061137d8282611398565b61138b600183016000611398565b50600201611369565b5090565b5080546113a490611a50565b6000825580601f106113b4575050565b601f01602090049060005260206000209081019061136691905b8082111561139457600081556001016113ce565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608481fd5b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a20696e76616c6964207475706c65206f666673604482015261195d60f21b6064820152608481fd5b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201526a1c9c985e481bd9999cd95d60aa1b6064820152608481fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611519576115196114db565b604052919050565b60006001600160401b0382111561153a5761153a6114db565b5060051b60200190565b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201526a727261792073747269646560a81b6064820152608481fd5b600082601f8301126115b1576115b1611482565b81356001600160401b038111156115ca576115ca6114db565b6115dd601f8201601f19166020016114f1565b8181528460208386010111156116425760405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a20696e76616c69642062797465206172726179604482015266040d8cadccee8d60cb1b6064820152608481fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261167357611673611482565b813561168661168182611521565b6114f1565b8082825260208201915060208360051b8601019250858311156116ab576116ab611544565b602085015b838110156116ef5780356001600160401b038111156116d1576116d1611482565b6116e0886020838a010161159d565b845250602092830192016116b0565b5095945050505050565b600080600060608486031215611711576117116113e2565b83356001600160401b0381111561172a5761172a611432565b6117368682870161165f565b93505060208401356001600160401b0381111561175557611755611432565b6117618682870161165f565b92505060408401356001600160401b0381111561178057611780611432565b61178c8682870161165f565b9150509250925092565b6000806000606084860312156117ae576117ae6113e2565b83356001600160401b038111156117c7576117c7611432565b6117d38682870161159d565b93505060208401356001600160401b038111156117f2576117f2611432565b6117fe8682870161159d565b92505060408401356001600160401b0381111561181d5761181d611432565b61178c8682870161159d565b600080600060608486031215611841576118416113e2565b8335925060208401356001600160401b0381111561175557611755611432565b600080600060608486031215611879576118796113e2565b83356001600160401b0381111561189257611892611432565b8401601f810186136118a6576118a6611482565b80356118b461168182611521565b8082825260208201915060208360051b8501019250888311156118d9576118d9611544565b6020840193505b828410156118fb5783358252602093840193909101906118e0565b955050505060208401356001600160401b0381111561175557611755611432565b600060208284031215611931576119316113e2565b5035919050565b60005b8381101561195357818101518382015260200161193b565b50506000910152565b602081526000825180602084015261197b816040850160208701611938565b601f01601f19169190910160400192915050565b6000602082840312156119a4576119a46113e2565b81356001600160401b038111156119bd576119bd611432565b61133d8482850161159d565b6020808252600e908201526d27b7363c903232b83637bcb2b91760911b604082015260600190565b60208082526013908201527221b7b73a3930b1ba1034b99039b2b0b632b21760691b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008251611a46818460208701611938565b9190910192915050565b600181811c90821680611a6457607f821691505b602082108103611a8457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611ad157806000526020600020601f840160051c81016020851015611ab15750805b601f840160051c820191505b81811015610b835760008155600101611abd565b505050565b81516001600160401b03811115611aef57611aef6114db565b611b0381611afd8454611a50565b84611a8a565b6020601f821160018114611b375760008315611b1f5750848201515b600019600385901b1c1916600184901b178455610b83565b600084815260208120601f198516915b82811015611b675787850151825560209485019460019092019101611b47565b5084821015611b855786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b7f4c656e677468206d69736d617463683a20747261697454797065732800000000815260008351611bcc81601c850160208801611938565b6b05240427a40ecc2d8eacae6560a31b601c918401918201528351611bf8816028840160208801611938565b602960f81b60289290910191820152602901949350505050565b7f4c656e677468206d69736d617463683a20746f6b656e49647328000000000000815260008351611c4a81601a850160208801611938565b6f05240427a40e8e4c2d2e8a8f2e0cae6560831b601a918401918201528351611c7a81602a840160208801611938565b602960f81b602a9290910191820152602b01949350505050565b71024b73b30b634b2103a37b5b2b71024a21d160751b815260008251611cc1816012850160208701611938565b9190910160120192915050565b7f496e76616c696420746f6b656e20494420617420696e64657820000000000000815260008351611d0681601a850160208801611938565b6101d160f51b601a918401918201528351611d2881601c840160208801611938565b01601c01949350505050565b7f456d707479207472616974207479706520617420696e64657820000000000000815260008251611d6c81601a850160208701611938565b91909101601a0192915050565b7f456d7074792074726169742076616c756520617420696e646578200000000000815260008251611db181601b850160208701611938565b91909101601b0192915050565b60008351611dd0818460208801611938565b621e339f60e91b9083019081528351611df0816003840160208801611938565b631e17b39f60e11b60039290910191820152600701949350505050565b60008154611e1a81611a50565b600182168015611e315760018114611e4657611e76565b60ff1983168652811515820286019350611e76565b84600052602060002060005b83811015611e6e57815488820152600190910190602001611e52565b505081860193505b50505092915050565b60008351611e91818460208801611938565b621e339f60e91b908301908152611eab6003820185611e0d565b631e17b39f60e11b815260040195945050505050565b60008451611ed3818460208901611938565b6f3d913a3930b4ba2fba3cb832911d101160811b908301908152611efa6010820186611e0d565b6c111610113b30b63ab2911d101160991b81529050611f1c600d820185611e0d565b61227d60f01b81526002019695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611f5a57611f5a611f31565b92915050565b60008251611f72818460208701611938565b600b60fa1b920191825250600101919050565b60008251611f97818460208701611938565b605d60f81b920191825250600101919050565b600060018201611fbc57611fbc611f31565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611fe857611fe8611fc3565b500490565b600082611ffc57611ffc611fc3565b500690565b80820180821115611f5a57611f5a611f3156fea2646970667358221220f83b74bd0e7c90b93bd7aa82d8a1e63f196682ad8c8f05a883b5cd3fea6973b464736f6c634300081c0033

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
[ 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.