Contract 0x6d93d3fD7Bb8BaEbF853be56d0198989Db655e40

 
Txn Hash
Method
Block
From
To
Value
0xd913ace12bd1dc787616fbf44ccde067a622397a9ff66f43bee8e2961fa008b6Set Approval For...156252572022-09-27 14:22:113 days 7 hrs agoENS Name poorpleb.eth IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00088846 17.40280204
0xeb745c6e1960a031b9f169a961e9868384738b6b9353159f76a31553cdf0c379Set Approval For...155455882022-09-16 10:28:4714 days 11 hrs ago0x52ac6bae2d8c31d8496855941f903d86f4f3a4d3 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00032338 6.32396802
0x977262500fd91fe9c054557c4cb45247a5ea09fb07b57e6971d4d07d027b4253Set Approval For...155372192022-09-15 6:01:4415 days 15 hrs ago0x5ba54e0bad708e22c14fb7922d09892d997a6a6d IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00036916 7.23109597
0x3da756df92d06ef63a01e1f2d332400db0a72bd14aae2552488967745499a5bfSafe Transfer Fr...155321742022-09-14 9:26:1616 days 12 hrs ago0x48749032e248b30425ee913222c2e59a31b8d45f IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00086026 12.31184231
0x6d4fe8e98a86058271bd119837a360beca43e8a2a21355d8b9a594342c47c7d7Safe Transfer Fr...155081042022-09-10 9:40:4520 days 12 hrs agoENS Name oiconion.eth IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00044864 6.42092003
0x1a4944cab07e813e09bef13ece1c4f8dcb7b9ad64fd52a9d3df59d1932816544Safe Transfer Fr...155075012022-09-10 7:19:0320 days 14 hrs agoENS Name xanie.eth IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00061624 8.81955963
0x1c0813bdcdb3f9fc11e1e19d3dcee88588fcf665eba1641a6c5c32da257fb722Set Approval For...154833042022-09-06 9:39:1924 days 12 hrs ago0x52ac6bae2d8c31d8496855941f903d86f4f3a4d3 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00051465 10.08075771
0x8cbf11294a18220025b4f79348cd9d4467d6a3e09ccec67ff9f4c44d7da80544Safe Transfer Fr...154402022022-08-30 11:47:5131 days 10 hrs ago0xf5d8a6fe192d5e962550d6f356b695bf59c6f5d8 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00090265 12.91849713
0xa915bdacd6eefb1ea713d8bc8d1178339d279bec63cc7bfd533f24f30ea838d2Safe Transfer Fr...154394472022-08-30 8:54:2631 days 12 hrs ago0x8be35ca7f8cf057ef0857276acc578c0a2e7a027 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00093989 12.58680049
0x677a580addf6038fd787c3cde8c88c01f73b7c39e723ef90d8bb9d51e685eb07Set Approval For...153037162022-08-08 20:26:4953 days 1 hr agoENS Name tripguy.eth IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00328611 64.36672528
0x8c8e309fc8747b7b65a5d17c72464d297ee971bb67c8ec34ec46cacd2418553bSet Approval For...151659352022-07-18 9:54:3274 days 11 hrs ago0x313ebb55caa1d43dc8ea2de81146d93d8eaa7823 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.000915 17.89313555
0x298ad1805b82e2f720d3826c869e99f1214acdc62df1b004563907c7c149d0cfSet Approval For...151529332022-07-16 9:26:3776 days 12 hrs ago0xa2425a18ca24bdf37f242ffcca4a890716edcf44 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.000459479
0xbd0bc4f56e98b485fed4c3d1c9d8ec6dc26018d4c7533dd1c83bbd0757b135e9Set Approval For...151228282022-07-11 18:01:4081 days 3 hrs agoENS Name juicyju.eth IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00397479 77.85627162
0x119c1dd16bc7ef7a84d04eb86a76940637e67662b84216643aa447e08907e4a3Set Approval For...150868372022-07-06 4:33:0786 days 17 hrs ago0x4560e246f87f3b1e1c9144529a00638e1ed8b891 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00118966 23.30248838
0xa3a7fb32e27f646689cb49d3c3d7615ccae4f971bde2d1271c37fd02ae640966Set Approval For...150650492022-07-02 19:43:1990 days 2 hrs agoENS Name troopy.eth IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00065577 12.84496396
0x3433e202bda2897b29a35c3558f87ad316288c6e74fc690df63e96852ec3a419Safe Transfer Fr...147992052022-05-18 13:50:33135 days 8 hrs ago0xb3f7aaaf4a74d1dc65bb39583e0451dd6955bdc3 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00317951 45.50414051
0x30b03e979ebf810a805c0151d78d072063997c48850c62b8aebe2bfac4f97ddeSet Approval For...147380102022-05-08 19:44:44145 days 2 hrs ago0xdb734624d5f1f53508121684d222e5393fab2843 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00120271 23.51937964
0x896f8ae8fb82fa455a2158b84a498cb04c05274be3524a10dce6f1c19c4375aaSet Approval For...146434592022-04-23 21:17:49160 days 33 mins ago0x52ac6bae2d8c31d8496855941f903d86f4f3a4d3 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00139443 27.26862635
0xee9611430bf81e13080a9c0db390865bf1598aa446dc25da891c3d198ce3afe9Transfer From146372282022-04-22 22:04:05160 days 23 hrs ago0xd435c50dcea76635efb67fb1d9be044fcf9e0458 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.005152 76.87842623
0x50977a1456505e44f37dc22ca017f8398d1cbeead0b886928830f3b54d739522Safe Transfer Fr...145963212022-04-16 12:24:25167 days 9 hrs ago0xea6a6d3a73fc365d07c6717996bf924d2a31d452 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00169741 24.29278912
0xfe76bb530d96f98d8dbc80b8f38619db35b894aa114b994a42de953aa820cadbSet Approval For...145770672022-04-13 12:20:01170 days 9 hrs agoENS Name idareyoutosend.eth IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00156997 30.70130238
0x58962fa4d3eb5863ea9e6bd6e085735c0d61c2f07cee2724f062dee1d4e30ac5Safe Transfer Fr...145458722022-04-08 15:08:00175 days 6 hrs ago0xb3f7aaaf4a74d1dc65bb39583e0451dd6955bdc3 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00317668 45.46372139
0xf7787c25f428159021d60fb87f4bd0bc68059994820238986593b97af1ff6312Set Approval For...145131982022-04-03 12:39:52180 days 9 hrs ago0xbcb3cb5c44b763a501b710475942480465a6bc26 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00161149 31.51319412
0x17e691c421345741588e89b76bf7dad2ebc3cffa625a0fc6d354fb017241d9e6Set Approval For...144931662022-03-31 9:33:40183 days 12 hrs ago0x8be35ca7f8cf057ef0857276acc578c0a2e7a027 IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00194314 37.9987831
0x1c5691e4a4650b561abb7ae4474556d69bf8b4d2848566e7794ad843633af2cdSet Approval For...144769392022-03-28 20:57:30186 days 53 mins ago0xf1af5442efd5cb058e05f9ca78e4d32a75c82dfd IN  0x6d93d3fd7bb8baebf853be56d0198989db655e400 Ether0.00318115 62.20857283
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
cxDD

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 300 runs

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

pragma solidity ^0.8.0;

/// @title: colette x Dour Darcels
/// @author: manifold.xyz

import "./ERC721Creator.sol";

////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                        //
//                                                                                        //
//    MMMMMMMMMMMMMMMMMMMMMMMMMMMMWN0dl;'..      ..';ld0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMMMMMMMMMXkc'.                  .'ckXMMMMMMMMMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMMMMMMWKd'                          'dKWMMMMMMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMMMMMKo.                              .oKMMMMMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMMMNx'                                  'xNMMMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMW0:                                      :0WMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMNx.                                        .xNMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMXl.                                          .lXMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMK:                                              :KMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMM0;                .';:llooooll:;'.                ;0MMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMW0,             .:okKNWMMMMMMMMMMWNKko:.             ,0WMMMMMMMMMMMM    //
//    MMMMMMMMMMMM0;           .:xXWMMMMMMMMMMMMMMMMMMMMWXx:.           ;0MMMMMMMMMMMM    //
//    MMMMMMMMMMMX:          .l0WMMMMMMMMMMMMMMMMMMMMMMMMMMW0l.          :XMMMMMMMMMMM    //
//    MMMMMMMMMMNl          :0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0:          lNMMMMMMMMMM    //
//    MMMMMMMMMWx.        .dNMMMMMMMMMMMWNKOkkkkOKNWMMMMMMMMMMMNd.        .xWMMMMMMMMM    //
//    MMMMMMMMM0,        .xWMMMMMMMMMWKd:..      ..:dKWMMMMMMMMMWx.        ,0MMMMMMMMM    //
//    MMMMMMMMNl        .oNMMMMMMMMMXo.              .oXMMMMMMMMMNo.        oNMMMMMMMM    //
//    MMMMMMMM0'        ;KMMMMMMMMM0;                  ;0MMMMMMMMMK;        '0MMMMMMMM    //
//    MMMMMMMWo         oWMMMMMMMMX:                    :XMMMMMMMMWo         oWMMMMMMM    //
//    MMMMMMMK;        .xMMMMMMMMMO.                    .OMMMMMMMMMx.        ;KMMMMMMM    //
//    MMMMMMMO.        .xMMMMMMMMMk.                    .kMMMMMMMMMx.        .OMMMMMMM    //
//    MMMMMMMd.         dWMMMMMMMMK;                    ;KMMMMMMMMWd         .xMMMMMMM    //
//    MMMMMMMd          ;XMMMMMMMMWk'                  'kWMMMMMMMMX;          dMMMMMMM    //
//    MMMMMMWo          .dWMMMMMMMMW0:.              .:0WMMMMMMMMWd.          dWMMMMMM    //
//    MMMMMMMd           .kWMMMMMMMMMNOl'.        .'lONMMMMMMMMMWk.           dMMMMMMM    //
//    MMMMMMMx.           'kWMMMMMMMMMMWN0kdoooodk0NWMMMMMMMMMMWk.           .xMMMMMMM    //
//    MMMMMMMO.            .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXo.            .OMMMMMMM    //
//    MMMMMMMXc              'xXWMMMMMMMMMMMMMMMMMMMMMMMMMMWXx'              cXMMMMMMM    //
//    MMMMMMMMk.               'o0NMMMMMMMMMMMMMMMMMMMMMMN0o'               .kMMMMMMMM    //
//    MMMMMMMMNo.                .,lkKNWMMMMMMMMMMMMWNKkl,.                .oNMMMMMMMM    //
//    MMMMMMMMMXc                    .':lodxkkkkxdol:'.                    cXMMMMMMMMM    //
//    MMMMMMMMMMXc                                                        cXMMMMMMMMMM    //
//    MMMMMMMMMMMXo.                                                    .oXMMMMMMMMMMM    //
//    MMMMMMMMMMMMWk,                                                  ,kWMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMXo.                 ,:.      .:,                 .oXMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMWKo'               ;kOo::::oOk;               'oKWMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMWXx;.             .;loddol,.             .;xXWMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMMMW0d:.                              .:d0WMMMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMMMMMMWXko:'.                    .':okXWMMMMMMMMMMMMMMMMMMMMMMM    //
//    MMMMMMMMMMMMMMMMMMMMMMMMMMMWXOdc,..          ..,cdOXWMMMMMMMMMMMMMMMMMMMMMMMMMMM    //
//                                                                                        //
//                                                                                        //
////////////////////////////////////////////////////////////////////////////////////////////


contract cxDD is ERC721Creator {
    constructor() ERC721Creator("colette x Dour Darcels", "cxDD") {}
}

File 2 of 5 : ERC721Creator.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 ERC721Creator is Proxy {
    
    constructor(string memory name, string memory symbol) {
        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = 0xe4E4003afE3765Aca8149a82fc064C0b125B9e5a;
        Address.functionDelegateCall(
            0xe4E4003afE3765Aca8149a82fc064C0b125B9e5a,
            abi.encodeWithSignature("initialize(string,string)", name, symbol)
        );
    }
        
    /**
     * @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"}]

608060405234801561001057600080fd5b50604080518082018252601681527f636f6c65747465207820446f75722044617263656c73000000000000000000006020808301919091528251808401909352600483526318de111160e21b908301529061008c60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610340565b6000805160206106e1833981519152146100a8576100a8610395565b73e4e4003afe3765aca8149a82fc064c0b125b9e5a6100e16000805160206106e183398151915260001b61016c60201b6100dd1760201c565b80546001600160a01b0319166001600160a01b03929092169190911790556040516101649073e4e4003afe3765aca8149a82fc064c0b125b9e5a9061012c9085908590602401610312565b60408051601f19818403018152919052602080820180516001600160e01b031663266c45bb60e11b1790526100e061016f821b17901c565b5050506103ab565b90565b606061019483836040518060600160405280602781526020016107016027913961019b565b9392505050565b60606001600160a01b0384163b6102085760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161022391906102e3565b600060405180830381855af49150503d806000811461025e576040519150601f19603f3d011682016040523d82523d6000602084013e610263565b606091505b50909250905061027482828661027e565b9695505050505050565b6060831561028d575081610194565b82511561029d5782518084602001fd5b8160405162461bcd60e51b81526004016101ff91906102ff565b600081518084526102cf816020860160208601610365565b601f01601f19169290920160200192915050565b600082516102f5818460208701610365565b9190910192915050565b60208152600061019460208301846102b7565b60408152600061032560408301856102b7565b828103602084015261033781856102b7565b95945050505050565b60008282101561036057634e487b7160e01b600052601160045260246000fd5b500390565b60005b83811015610380578181015183820152602001610368565b8381111561038f576000848401525b50505050565b634e487b7160e01b600052600160045260246000fd5b610327806103ba6000396000f3fe6080604052600436106100225760003560e01c80635c60da1b1461003957610031565b366100315761002f61006a565b005b61002f61006a565b34801561004557600080fd5b5061004e6100a5565b6040516001600160a01b03909116815260200160405180910390f35b6100a361009e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b61010c565b565b60006100d87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b90565b606061010583836040518060600160405280602781526020016102cb60279139610130565b9392505050565b3660008037600080366000845af43d6000803e80801561012b573d6000f35b3d6000fd5b60606001600160a01b0384163b61019d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101b8919061024b565b600060405180830381855af49150503d80600081146101f3576040519150601f19603f3d011682016040523d82523d6000602084013e6101f8565b606091505b5091509150610208828286610212565b9695505050505050565b60608315610221575081610105565b8251156102315782518084602001fd5b8160405162461bcd60e51b81526004016101949190610267565b6000825161025d81846020870161029a565b9190910192915050565b602081526000825180602084015261028681604085016020870161029a565b601f01601f19169190910160400192915050565b60005b838110156102b557818101518382015260200161029d565b838111156102c4576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208aaeef52c4df7200c9c77944cae7dfea54c21bf64ea915f765ab0ddaad01f11064736f6c63430008070033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564

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.