Contract 0x8415D610f19641d97c088b532663CDCA3dc58826

 
Txn Hash
Method
Block
From
To
Value
0xf4545a1e1f87a3f439a3f7659f6ffe9613bbd365a500f5bcf55b337f00ab259bSafe Transfer Fr...155180452022-09-12 1:08:3215 days 12 hrs ago0x8a09ed6a990324d26fd4070d6c81b2bbd3288cfd IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00055969 9.00485198
0x1f49384217516e573029c48345fb23b9ed46386be8ebc5f6459d0cbd41ca690eSet Approval For...154869952022-09-06 23:42:1320 days 14 hrs ago0x53ed56bcd38251402ea7321f52e9dd56d6271717 IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00149878 29.35747028
0x5b25e31e042f2c34358ff7a4d99cc708b63be5868b0f384e336f739e13166339Set Approval For...154368042022-08-29 22:46:5428 days 14 hrs agoENS Name iams.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00051483 10.08435525
0x2a3f0a9351a089cf5831e06f25fa653b91f3076d925e3d3ba1f1953285ada6a4Set Approval For...153060572022-08-09 5:07:4049 days 8 hrs ago0xf52997637f048c8a6d3f7c86cb455a3b07cf61f9 IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.0005802 11.36472866
0x09a98e8c8ac75da2655c3cf4036d6ed52d9b025e0615db13808e0bbe0476022aSafe Transfer Fr...152926602022-08-07 3:07:1551 days 10 hrs agoENS Name mintface.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00044775 7.21940857
0xafa13283fcd3cce68c147bce30e3144fb86126e9c737801481f05ee2f25eb5bdSet Approval For...152116122022-07-25 12:19:1864 days 1 hr agoENS Name 2x4.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00068834 13.48285893
0x6418b55332c261b14e0eaa8dc5457bd31f91b9d6b745a67bf8f3c60b516eba7aSet Approval For...151988612022-07-23 12:17:3366 days 1 hr agoENS Name vanwhalen.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00089377 17.50673689
0x37d36e938affaa101451d5ed91823cc6ba5a162a5716bfe7a263b1acd1665db6Set Approval For...150714742022-07-03 19:29:2885 days 18 hrs ago0x2b5a3c0954395a98e8bc8da8b67eeb1acbf5f17b IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00084865 16.62303728
0xd741282391ba733a8a88a888aa60b94695166fb3bcda0a94a5c0847f359fbbbbSafe Transfer Fr...149827052022-06-18 3:02:33101 days 10 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00216772 32.44078657
0x66fe6a3d776486f9dade3891d8130ce695b8a50606e93acd5c1ecefa5381ee8fSafe Transfer Fr...149826852022-06-18 2:54:57101 days 10 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00163462 24.4628179
0xadf0e92f3481b1cc94287948cfa70c73e4be88026fec85a2daf090fb524aa084Safe Transfer Fr...149826602022-06-18 2:48:03101 days 10 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00151319 22.64545102
0x6f61dc395eb9c9b5bc69f944de6a368312d331a2669ba4c300fd39e49c948541Safe Transfer Fr...149826542022-06-18 2:46:38101 days 10 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00174772 26.15525179
0x5514d62819d634c4e7b0eb380d17fc77d1fcfe3cd61a6a31314111b1e21d5d41Safe Transfer Fr...149826452022-06-18 2:44:03101 days 10 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00169533 25.37130371
0x06f4234151c41d2245ae30bb87f2657c2b94bad9253f4fdd78814f85f4e3d67cSafe Transfer Fr...149826392022-06-18 2:42:40101 days 11 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00166701 26.87824343
0xd74d78a7009daa524d1765fc92865a50c24f6781cf4dd5c3fe9c44ef97e6326cSafe Transfer Fr...149826252022-06-18 2:39:17101 days 11 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.0018421 29.70130721
0x99a97681cfd8e3b0141193462fad976308d57993fb08bc7990a06fdeea3383c8Safe Transfer Fr...149606802022-06-14 7:56:39105 days 5 hrs agoENS Name pchung.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.0022634 36.49419429
0xec8a8f294754366be86dc06c3eb0411238397373dfd5c8b3cfae85ed40504c05Safe Transfer Fr...149594552022-06-14 2:47:54105 days 10 hrs ago0xdd07f6af35e231449d6fbd2201d1d3b22ac7137d IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.01245164 200.7649577
0xbcacaab8bcb508a8c8c7ebcbe328c7bafdbfa2d51c68aafbd4d2be91ae13b4c5Safe Transfer Fr...149594352022-06-14 2:40:02105 days 11 hrs agoFund: 0xAeb...C28 IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.01065763 171.83920212
0xb66ea8270821fa3e4560dbad313cab9bf6aab1ce8bc74074ec4ffd12d209a426Set Approval For...149590392022-06-14 0:56:14105 days 12 hrs ago0x54a973a5da508d551edf9ee50842e7c36faa1d87 IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00192124 37.57061692
0x21301383b3034f1d2cf369eeaf0e8ec1e6836958ed3ad7a703bcf9d278facb1dSafe Transfer Fr...149413172022-06-11 0:15:21108 days 13 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00529273 79.20770585
0x61866f3ad0fc85779b6d8d23ca248c4380f8989467d8db98dbadc2dcc69de2c1Set Approval For...148300242022-05-23 14:12:10126 days 23 hrs agoENS Name pchung.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00307348 60.11710569
0x414019d937099e3256e980290bdb4114d7f8e0fee7b7d185c8d77a532b157ef0Safe Transfer Fr...148278042022-05-23 5:40:40127 days 8 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00152194 22.78050863
0xc5171739e6c0b1b0e00f67785d0bebe627b3a38b4755218240f377c7e017a9d1Safe Transfer Fr...148277922022-05-23 5:37:58127 days 8 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00149157 22.32593605
0x60c615138c9c399918e8165f5db76674e835e2e82b35d3be695add4c5ce61309Safe Transfer Fr...148154552022-05-21 5:25:10129 days 8 hrs agoENS Name apocalypseart.eth IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.0009878 14.78283929
0xaa0dba6da7d7a608acce3f7a771ae0d3bb2f2907ede7b27739af4e7f9546c649Set Approval For...148097492022-05-20 7:17:59130 days 6 hrs ago0x2b5a3c0954395a98e8bc8da8b67eeb1acbf5f17b IN  0x8415d610f19641d97c088b532663cdca3dc588260 Ether0.00090387 17.67559695
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
APOCE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 300 runs

Other Settings:
default evmVersion
File 1 of 5 : APOCE.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/// @title: Apocalypse Art - Editions
/// @author: manifold.xyz

import "./ERC1155Creator.sol";

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                -*****                       .-----                        .:::::                               //
//                                [email protected]@@@@                       [email protected]@@@@:                       [email protected]@@@@.                              //
//                            ::::*@@@@@-:::.                  [email protected]@@@@:                       [email protected]@@@@.                              //
//                           [email protected]@@@@@@@@@@@@@*              @@@@@@@@@@@@@@%               @@@@@@@@@@@@@@#                          //
//                           [email protected]@@@@@@@@@@@@@*              @@@@@@@@@@@@@@@               @@@@@@@@@@@@@@%                          //
//                            ++++#@@@@@++++-              #%%%%@@@@@%%%%#               %%%%@@@@@@%%%%#                          //
//                                [email protected]@@@@                       [email protected]@@@@:                       [email protected]@@@@.                              //
//                                =%%%%%                       [email protected]@@@@:                       [email protected]@@@@.                              //
//                                                              .....                         .....                               //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//         .:::.      ::::::        .:::         :::.         .:::       :::      .:::    :::. ::::::.      .::.    :::::::::     //
//         %@@@%     [email protected]@@@@@@*   .*@@@@@@#:   .#@@@@@@*.      %@@@#      @@@:      #@@=  [email protected]@#  %@@@@@@#:  [email protected]@@@@%:  @@@@@@@@@     //
//        [email protected]@@@@+    [email protected]@@@@@@@% [email protected]@@@@@@@@@- [email protected]@@*==#@@@:    *@@@@@=     @@@:       #@@+*@@*   %@@@@@@@@.*@@%[email protected]@@. @@@+-----     //
//       :@@@@@@@:   [email protected]@@@@@@@% [email protected]@@@@@@@@@% %@@+    +**=   [email protected]@@@@@@:    @@@:        *@@@@+    %@@@@@@@@.*@@%=-:    @@@*===:      //
//       @@@@@@@@%   [email protected]@@@@@@*. *@@@@@@@@@@@ %@@=          [email protected]@@@@@@@%    @@@:         #@@*     %@@@@@@#:  [email protected]@@@@@=  @@@@@@@+      //
//      *@@%:::@@@*  [email protected]@@=-:    [email protected]@@@@@@@@@% #@@*    #%%=  #@@%::[email protected]@@+   @@@:         #@@+     %@@*-:.   ...::[email protected]@@: @@@=:::.      //
//     [email protected]@@:   :@@@- [email protected]@@:      .%@@@@@@@@@: :@@@%**%@@%. [email protected]@@.   [email protected]@@:  @@@#++++     #@@+     %@@=      [email protected]@@*#@@@. @@@#+++++     //
//    [email protected]@@+     [email protected]@@[email protected]@@:        =#@@@@%+     +%@@@@#=  [email protected]@@=     *@@@  @@@@@@@@     #@@+     %@@=       -%@@@@*.  @@@@@@@@@     //
//     ...       ...  ...            ..           .       ...       ...  ........      ..       ..           .      .........     //
//                                                                                                                                //
//                                                                                                                                //
//                            =======- :====:     -==  ========: -==    .-==-.    ===   -==   .-==:                               //
//                           [email protected]@@%%%%+ [email protected]@@@@@*.  #@@. %%@@@@%%= *@@.  #@@@@@@#. [email protected]@@#  #@@. *@@@@@%:                             //
//                           [email protected]@#      [email protected]@@@@@@@  #@@.   [email protected]@*    *@@. *@@@@@@@@% [email protected]@@@# #@@[email protected]@% .==:                             //
//                           [email protected]@@@@@-  [email protected]@@@@@@@= #@@.   [email protected]@*    *@@. %@@@@@@@@@ [email protected]@%@@##@@. [email protected]@@@%=                              //
//                           [email protected]@%---.  [email protected]@@@@@@@: #@@.   [email protected]@*    *@@. #@@@@@@@@@ [email protected]@*.%@@@@. .:[email protected]@+                             //
//                           [email protected]@@****= [email protected]@@@@@@-  #@@.   [email protected]@*    *@@. :@@@@@@@@- [email protected]@* [email protected]@@@. %@@*%@@=                             //
//                            #######+ -####+-    +##.   .##+    +##.   =*##*=   .##+  .###   =*##+:                              //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
//                                                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


contract APOCE is ERC1155Creator {
    constructor() ERC1155Creator() {}
}

File 2 of 5 : ERC1155Creator.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/// @author: manifold.xyz

import "@openzeppelin/contracts/proxy/Proxy.sol";
import "@openzeppelin/contracts/utils/Address.sol";
import "@openzeppelin/contracts/utils/StorageSlot.sol";

contract ERC1155Creator is Proxy {

    constructor() {
        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = 0x142FD5b9d67721EfDA3A5E2E9be47A96c9B724A4;
        Address.functionDelegateCall(
            0x142FD5b9d67721EfDA3A5E2E9be47A96c9B724A4,
            abi.encodeWithSignature("initialize()")
        );
    }

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation address.
     */
     function implementation() public view returns (address) {
        return _implementation();
    }

    function _implementation() internal override view returns (address) {
        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
    }    

}

File 3 of 5 : Proxy.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (proxy/Proxy.sol)

pragma solidity ^0.8.0;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 *
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 *
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     *
     * This function does not return to its internal call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal virtual {
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback() external payable virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive() external payable virtual {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     *
     * If overriden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {}
}

File 4 of 5 : Address.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

File 5 of 5 : StorageSlot.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)

pragma solidity ^0.8.0;

/**
 * @dev Library for reading and writing primitive types to specific storage slots.
 *
 * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
 * This library helps with reading and writing to such slots without the need for inline assembly.
 *
 * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
 *
 * Example usage to set ERC1967 implementation slot:
 * ```
 * contract ERC1967 {
 *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
 *
 *     function _getImplementation() internal view returns (address) {
 *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
 *     }
 *
 *     function _setImplementation(address newImplementation) internal {
 *         require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
 *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
 *     }
 * }
 * ```
 *
 * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._
 */
library StorageSlot {
    struct AddressSlot {
        address value;
    }

    struct BooleanSlot {
        bool value;
    }

    struct Bytes32Slot {
        bytes32 value;
    }

    struct Uint256Slot {
        uint256 value;
    }

    /**
     * @dev Returns an `AddressSlot` with member `value` located at `slot`.
     */
    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.
     */
    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
     */
    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.
     */
    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
        assembly {
            r.slot := slot
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5061003c60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6102a2565b60008051602061064383398151915214610058576100586102f7565b73142fd5b9d67721efda3a5e2e9be47a96c9b724a461009160008051602061064383398151915260001b61010860201b6100dd1760201c565b80546001600160a01b03929092166001600160a01b0319909216919091179055604080516004815260248101909152602080820180516001600160e01b031663204a7f0760e21b1790526101029173142fd5b9d67721efda3a5e2e9be47a96c9b724a4916100e061010b821b17901c565b5061030d565b90565b6060610130838360405180606001604052806027815260200161066360279139610137565b9392505050565b60606001600160a01b0384163b6101a45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101bf9190610253565b600060405180830381855af49150503d80600081146101fa576040519150601f19603f3d011682016040523d82523d6000602084013e6101ff565b606091505b50909250905061021082828661021a565b9695505050505050565b60608315610229575081610130565b8251156102395782518084602001fd5b8160405162461bcd60e51b815260040161019b919061026f565b600082516102658184602087016102c7565b9190910192915050565b602081526000825180602084015261028e8160408501602087016102c7565b601f01601f19169190910160400192915050565b6000828210156102c257634e487b7160e01b600052601160045260246000fd5b500390565b60005b838110156102e25781810151838201526020016102ca565b838111156102f1576000848401525b50505050565b634e487b7160e01b600052600160045260246000fd5b6103278061031c6000396000f3fe6080604052600436106100225760003560e01c80635c60da1b1461003957610031565b366100315761002f61006a565b005b61002f61006a565b34801561004557600080fd5b5061004e6100a5565b6040516001600160a01b03909116815260200160405180910390f35b6100a361009e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b61010c565b565b60006100d87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b90565b606061010583836040518060600160405280602781526020016102cb60279139610130565b9392505050565b3660008037600080366000845af43d6000803e80801561012b573d6000f35b3d6000fd5b60606001600160a01b0384163b61019d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101b8919061024b565b600060405180830381855af49150503d80600081146101f3576040519150601f19603f3d011682016040523d82523d6000602084013e6101f8565b606091505b5091509150610208828286610212565b9695505050505050565b60608315610221575081610105565b8251156102315782518084602001fd5b8160405162461bcd60e51b81526004016101949190610267565b6000825161025d81846020870161029a565b9190910192915050565b602081526000825180602084015261028681604085016020870161029a565b601f01601f19169190910160400192915050565b60005b838110156102b557818101518382015260200161029d565b838111156102c4576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200d4f5dbbface93d7421c3cc12670c0b7e2a1c384a830a1241ee71b4438382c8a64736f6c63430008070033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564

Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.