Contract 0xB5C913934CB4445e7e89D879Ba0CaB53f73E288a

 
 
Txn Hash
Method
Block
From
To
Value
0x99322dcd95a5ff3ea08ebd8d044bb4716ba5828dcba5752036e83df0b0a8da6aSet Token URI153830592022-08-21 9:04:4597 days 2 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00026697 5.89925343
0xbf76e2d1b391f75c4cf07df5b2c81e883eebfe3536684d3233a5ac52774f04d2Set Token URI153830432022-08-21 9:01:5597 days 2 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00029613 6.54366357
0x2644b6a75b33fe41fd11d0d3da93f5ee87b38e8a436f6a3cf2a47e032af3dcdcSet Token URI153830012022-08-21 8:50:3797 days 2 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00033894 7.48973761
0x9ae704837f5f0a8b73829ad2c5899a47071e723005c789402b3a17a8bd41028aSet Token URI153829752022-08-21 8:44:3197 days 3 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00035265 7.79257404
0x61ace2719a1a00a5040dbe8700bb01e00837297b092a02d2a9cec70870eb98c4Set Token URI153829052022-08-21 8:27:4197 days 3 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.0002749 6.07458948
0x5881f6b2f50ac22dedf20acfa5d44704bf31830147d0eea4ac905adae1b06eeeSet Token URI153828022022-08-21 8:04:1997 days 3 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00034738 7.67609833
0x4733ba8ef06c3736932380c1af6dd1d1c56bda02dd4ba8fbc24978d9a083469eSet Token URI153827742022-08-21 7:57:4497 days 3 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.0003401 7.51523588
0xd97283e62b01863c565fa714c9edf462ad22ecdc314cc5ef8dbfda6cf57ac9aeSet Token URI153827592022-08-21 7:55:0797 days 3 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00023022 5.08731029
0xd343de1df20eebbae8e2899758dea01aaa7a65974cbe5a68ca9d39fc425654c2Set Token URI153827102022-08-21 7:43:0797 days 4 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00017592 3.8874605
0x97279445a92020cf27aa7bd0ed9df34041e9cd3c1e4a15b1309098553e0af4dbSet Token URI153826922022-08-21 7:39:0897 days 4 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00022627 4.99995277
0xf2f89f94daf69758e065275471fdef7413ba260d35fbf740f558477a6c0f0e82Set Approval For...150615282022-07-02 6:42:21147 days 5 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00052637 10.29345929
0x473ece238167b66ab459cf4fdff778345c00fa47358daa1a9bea57bbdd3256adSet Approval For...148389592022-05-25 1:12:55185 days 10 hrs agoENS Name logancrable.eth IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00087751 17.16007479
0xd136ba061740793b8eebc3b97f96bc44a9fc1edfb5ce473edf8b019b1ce96f73Set Approval For...147216862022-05-06 5:24:31204 days 6 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00154452 30.20367871
0x1743aeb65566825cae349a8d8a55a4c0d87010350844df79f637a84e888020bdSet Approval For...145501202022-04-09 7:12:58231 days 4 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00120939 23.65010791
0x158cc889a0c480a0f6f30f485f68c684a77517c8a3f3e229193f7d518dfb65b2Set Approval For...143254992022-03-05 7:23:07266 days 4 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00136013 26.59778247
0xa221a048be399fe4358ff1abf99f9e5755b0d42d2977dc9d5851bfd7962606e2Set Approval For...142824502022-02-26 15:14:56272 days 20 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00153737 30.06378767
0xe010827f1e3106ac220b4dafd627c288e4ef4c67ba9c240846bdd0b4e2559de3Mint Base142727752022-02-25 3:06:49274 days 8 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00467889 29.26594599
0xd0ce68eb0363c5190bb09fb68eb11ddf41474ed4ec7694443cf4a3e3eeb7e0e3Mint Base142629072022-02-23 14:32:46275 days 21 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00475446 29.73865104
0x0d2aa1b8d65ddcbc8c65c6a479b2c655fee244da4cd13040b5f5f36885163b87Mint Base142626052022-02-23 13:31:04275 days 22 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.0055389 34.64522546
0x903831c741374906356eeb0976a6dd96946933614a37d00293ed1aa579ad27dfMint Base142622012022-02-23 11:59:25275 days 23 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00471228 29.47477798
0x6dc8d97b62e5677444ad87b56fe476942e4c09938a12d905ea0b576e1b2f1cceMint Base142620822022-02-23 11:32:22276 days 15 mins ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00481317 30.10586035
0x10f34ecdb8654bf365ccb73cf702386d65124b0017dd47d9eae20c535158ccadMint Base142556382022-02-22 11:38:11277 days 9 mins ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00460625 28.81160663
0x78a0557a5a2f4caa5540f8ffea8bd0811ff55aa30675f2f1d68a7fbdaf4fee4cMint Base142457762022-02-20 22:52:40278 days 12 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00482712 30.19312472
0x8c274b1b55c3fcf49d705d7b420a38fa653953d01a8ba0dfeded72621b1dc9a5Mint Base142431592022-02-20 13:24:27278 days 22 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00483729 30.2567442
0xbe4d2fd794ae8f767fab7b8f216f9ad13c8d6dffb183b00bdb9e5ae63134826fMint Base142429932022-02-20 12:46:28278 days 23 hrs ago0x85b65bd430f4b473d33eb97b0e5a20aabab46cfc IN  0xb5c913934cb4445e7e89d879ba0cab53f73e288a0 Ether0.00559784 35.01389762
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CACI

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 300 runs

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

pragma solidity ^0.8.0;

/// @title: CARBON CITIES
/// @author: manifold.xyz

import "./ERC721Creator.sol";

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                          //
//                                                                                                          //
//    __/\\\________/\\\_______/\\\\\_______/\\\\\\\\\\\\\____/\\\\\\\\\\\\\\\__/\\\\\_____/\\\_            //
//     _\/\\\_____/\\\//______/\\\///\\\____\/\\\/////////\\\_\/\\\///////////__\/\\\\\\___\/\\\_           //
//      _\/\\\__/\\\//_______/\\\/__\///\\\__\/\\\_______\/\\\_\/\\\_____________\/\\\/\\\__\/\\\_          //
//       _\/\\\\\\//\\\______/\\\______\//\\\_\/\\\\\\\\\\\\\\__\/\\\\\\\\\\\_____\/\\\//\\\_\/\\\_         //
//        _\/\\\//_\//\\\____\/\\\_______\/\\\_\/\\\/////////\\\_\/\\\///////______\/\\\\//\\\\/\\\_        //
//         _\/\\\____\//\\\___\//\\\______/\\\__\/\\\_______\/\\\_\/\\\_____________\/\\\_\//\\\/\\\_       //
//          _\/\\\_____\//\\\___\///\\\__/\\\____\/\\\_______\/\\\_\/\\\_____________\/\\\__\//\\\\\\_      //
//           _\/\\\______\//\\\____\///\\\\\/_____\/\\\\\\\\\\\\\/__\/\\\\\\\\\\\\\\\_\/\\\___\//\\\\\_     //
//            _\///________\///_______\/////_______\/////////////____\///////////////__\///_____\/////__    //
//                                                                                                          //
//                                                                                                          //
//                                                                                                          //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////


contract CACI is ERC721Creator {
    constructor() ERC721Creator("CARBON CITIES", "CACI") {}
}

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"}]

608060405234801561001057600080fd5b50604080518082018252600d81526c434152424f4e2043495449455360981b602080830191909152825180840190935260048352634341434960e01b908301529061007c60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610330565b6000805160206106d18339815191521461009857610098610385565b73e4e4003afe3765aca8149a82fc064c0b125b9e5a6100d16000805160206106d183398151915260001b61015c60201b6100dd1760201c565b80546001600160a01b0319166001600160a01b03929092169190911790556040516101549073e4e4003afe3765aca8149a82fc064c0b125b9e5a9061011c9085908590602401610302565b60408051601f19818403018152919052602080820180516001600160e01b031663266c45bb60e11b1790526100e061015f821b17901c565b50505061039b565b90565b606061018483836040518060600160405280602781526020016106f16027913961018b565b9392505050565b60606001600160a01b0384163b6101f85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161021391906102d3565b600060405180830381855af49150503d806000811461024e576040519150601f19603f3d011682016040523d82523d6000602084013e610253565b606091505b50909250905061026482828661026e565b9695505050505050565b6060831561027d575081610184565b82511561028d5782518084602001fd5b8160405162461bcd60e51b81526004016101ef91906102ef565b600081518084526102bf816020860160208601610355565b601f01601f19169290920160200192915050565b600082516102e5818460208701610355565b9190910192915050565b60208152600061018460208301846102a7565b60408152600061031560408301856102a7565b828103602084015261032781856102a7565b95945050505050565b60008282101561035057634e487b7160e01b600052601160045260246000fd5b500390565b60005b83811015610370578181015183820152602001610358565b8381111561037f576000848401525b50505050565b634e487b7160e01b600052600160045260246000fd5b610327806103aa6000396000f3fe6080604052600436106100225760003560e01c80635c60da1b1461003957610031565b366100315761002f61006a565b005b61002f61006a565b34801561004557600080fd5b5061004e6100a5565b6040516001600160a01b03909116815260200160405180910390f35b6100a361009e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b61010c565b565b60006100d87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b90565b606061010583836040518060600160405280602781526020016102cb60279139610130565b9392505050565b3660008037600080366000845af43d6000803e80801561012b573d6000f35b3d6000fd5b60606001600160a01b0384163b61019d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101b8919061024b565b600060405180830381855af49150503d80600081146101f3576040519150601f19603f3d011682016040523d82523d6000602084013e6101f8565b606091505b5091509150610208828286610212565b9695505050505050565b60608315610221575081610105565b8251156102315782518084602001fd5b8160405162461bcd60e51b81526004016101949190610267565b6000825161025d81846020870161029a565b9190910192915050565b602081526000825180602084015261028681604085016020870161029a565b601f01601f19169190910160400192915050565b60005b838110156102b557818101518382015260200161029d565b838111156102c4576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c89e4499a3f9bb0ff0513fa08427c5f6566f39dc43f1a28b3a84b7cabacd840264736f6c63430008070033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564

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.