ETH Price: $3,336.00 (-1.23%)

Token

ethereum-fee-collector ()
 

Overview

Max Total Supply

0 ethereum-fee-collector

Holders

0

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PayableProxy

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 19066 runs

Other Settings:
default evmVersion
File 1 of 2 : PayableProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import { PayableProxyInterface } from "../interfaces/PayableProxyInterface.sol";

interface IUpgradeBeacon {
    /**
     * @notice An external view function that returns the implementation.
     *
     * @return The address of the implementation.
     */
    function implementation() external view returns (address);
}

/**
 * @title   PayableProxy
 * @author  OpenSea Protocol Team
 * @notice  PayableProxy is a beacon proxy which will immediately return if
 *          called with callvalue. Otherwise, it will delegatecall the beacon
 *          implementation.
 */
contract PayableProxy is PayableProxyInterface {
    // Address of the beacon.
    address private immutable _beacon;

    constructor(address beacon) payable {
        // Ensure the origin is an approved deployer.
        require(
            (tx.origin == address(0x939C8d89EBC11fA45e576215E2353673AD0bA18A) ||
                tx.origin ==
                address(0xe80a65eB7a3018DedA407e621Ef5fb5B416678CA) ||
                tx.origin ==
                address(0x86D26897267711ea4b173C8C124a0A73612001da) ||
                tx.origin ==
                address(0x3B52ad533687Ce908bA0485ac177C5fb42972962)),
            "Deployment must originate from an approved deployer."
        );
        // Set the initial beacon.
        _beacon = beacon;
    }

    function initialize(address ownerToSet) external {
        // Ensure the origin is an approved deployer.
        require(
            (tx.origin == address(0x939C8d89EBC11fA45e576215E2353673AD0bA18A) ||
                tx.origin ==
                address(0xe80a65eB7a3018DedA407e621Ef5fb5B416678CA) ||
                tx.origin ==
                address(0x86D26897267711ea4b173C8C124a0A73612001da) ||
                tx.origin ==
                address(0x3B52ad533687Ce908bA0485ac177C5fb42972962)),
            "Initialize must originate from an approved deployer."
        );
        // Get the implementation address from the provided beacon.
        address implementation = IUpgradeBeacon(_beacon).implementation();

        // Create the initializationCalldata from the provided parameters.
        bytes memory initializationCalldata = abi.encodeWithSignature(
            "initialize(address)",
            ownerToSet
        );

        // Delegatecall into the implementation, supplying initialization
        // calldata.
        (bool ok, ) = implementation.delegatecall(initializationCalldata);

        // Revert and include revert data if delegatecall to implementation
        // reverts.
        if (!ok) {
            assembly {
                returndatacopy(0, 0, returndatasize())
                revert(0, returndatasize())
            }
        }
    }

    /**
     * @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 override {
        _fallback();
    }

    /**
     * @dev Internal fallback function that delegates calls to the address
     *      returned by `_implementation()`. Will run if no other function
     *      in the contract matches the call data.
     */
    function _fallback() internal {
        // Delegate if call value is zero.
        if (msg.value == 0) {
            _delegate(_implementation());
        }
    }

    /**
     * @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 function returns the address to which the fallback function
     *      should delegate.
     */
    function _implementation() internal view returns (address) {
        return IUpgradeBeacon(_beacon).implementation();
    }
}

File 2 of 2 : PayableProxyInterface.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

/**
 * @title   PayableProxyInterface
 * @author  OpenSea Protocol Team
 * @notice  PayableProxyInterface contains all external function interfaces
 *          for the payable proxy.
 */
interface PayableProxyInterface {
    /**
     * @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;
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"ownerToSet","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a0601f61066738819003918201601f19168301916001600160401b038311848410176100765780849260209460405283398101031261007157516001600160a01b0381168103610071576100539061008c565b6040516104e29081610185823960805181818160e501526104320152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b73939c8d89ebc11fa45e576215e2353673ad0ba18a32148015610167575b801561014a575b801561012d575b156100c257608052565b60405162461bcd60e51b815260206004820152603460248201527f4465706c6f796d656e74206d757374206f726967696e6174652066726f6d206160448201527f6e20617070726f766564206465706c6f7965722e0000000000000000000000006064820152608490fd5b50733b52ad533687ce908ba0485ac177c5fb4297296232146100b8565b507386d26897267711ea4b173c8c124a0a73612001da32146100b1565b5073e80a65eb7a3018deda407e621ef5fb5b416678ca32146100aa56fe60806040526004361015610018575b6100166103e4565b005b6000803560e01c63c4d66de81461002f575061000e565b346102245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022457808060043561006c81610227565b73939c8d89ebc11fa45e576215e2353673ad0ba18a32148015610207575b80156101ea575b80156101cd575b6100a19061024a565b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156101c0575b8392610190575b506040517fc4d66de8000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff929092166024808301919091528152610171604482610305565b51915af461017d610378565b501561018857604051f35b3d81803e3d90fd5b6101b291925060203d81116101b9575b6101aa8183610305565b810190610353565b9038610116565b503d6101a0565b6101c861036b565b61010f565b5032733b52ad533687ce908ba0485ac177c5fb4297296214610098565b507386d26897267711ea4b173c8c124a0a73612001da3214610091565b5073e80a65eb7a3018deda407e621ef5fb5b416678ca321461008a565b80fd5b73ffffffffffffffffffffffffffffffffffffffff81160361024557565b600080fd5b1561025157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f496e697469616c697a65206d757374206f726967696e6174652066726f6d206160448201527f6e20617070726f766564206465706c6f7965722e0000000000000000000000006064820152fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034657604052565b61034e6102d5565b604052565b90816020910312610245575161036881610227565b90565b506040513d6000823e3d90fd5b3d156103df573d9067ffffffffffffffff82116103d2575b604051916103c660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610305565b82523d6000602084013e565b6103da6102d5565b610390565b606090565b34156103ec57565b6000806040517f5c60da1b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561049f575b8291610481575b50368280378136915af43d6000803e1561047c573d6000f35b3d6000fd5b610499915060203d81116101b9576101aa8183610305565b83610463565b6104a761036b565b61045c56fea264697066735822122022a6f8a80a3410719e8504e9b42af008259446db5cdbc3acc5d20ff3f8f338a464736f6c634300080e00330000000000000000000000000000000033ca97c0b4df29103dc8da00a967884f

Deployed Bytecode

0x60806040526004361015610018575b6100166103e4565b005b6000803560e01c63c4d66de81461002f575061000e565b346102245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022457808060043561006c81610227565b73939c8d89ebc11fa45e576215e2353673ad0ba18a32148015610207575b80156101ea575b80156101cd575b6100a19061024a565b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000033ca97c0b4df29103dc8da00a967884f165afa9182156101c0575b8392610190575b506040517fc4d66de8000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff929092166024808301919091528152610171604482610305565b51915af461017d610378565b501561018857604051f35b3d81803e3d90fd5b6101b291925060203d81116101b9575b6101aa8183610305565b810190610353565b9038610116565b503d6101a0565b6101c861036b565b61010f565b5032733b52ad533687ce908ba0485ac177c5fb4297296214610098565b507386d26897267711ea4b173c8c124a0a73612001da3214610091565b5073e80a65eb7a3018deda407e621ef5fb5b416678ca321461008a565b80fd5b73ffffffffffffffffffffffffffffffffffffffff81160361024557565b600080fd5b1561025157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f496e697469616c697a65206d757374206f726967696e6174652066726f6d206160448201527f6e20617070726f766564206465706c6f7965722e0000000000000000000000006064820152fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034657604052565b61034e6102d5565b604052565b90816020910312610245575161036881610227565b90565b506040513d6000823e3d90fd5b3d156103df573d9067ffffffffffffffff82116103d2575b604051916103c660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610305565b82523d6000602084013e565b6103da6102d5565b610390565b606090565b34156103ec57565b6000806040517f5c60da1b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000033ca97c0b4df29103dc8da00a967884f165afa90811561049f575b8291610481575b50368280378136915af43d6000803e1561047c573d6000f35b3d6000fd5b610499915060203d81116101b9576101aa8183610305565b83610463565b6104a761036b565b61045c56fea264697066735822122022a6f8a80a3410719e8504e9b42af008259446db5cdbc3acc5d20ff3f8f338a464736f6c634300080e0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000033ca97c0b4df29103dc8da00a967884f

-----Decoded View---------------
Arg [0] : beacon (address): 0x0000000033cA97C0b4DF29103DC8dA00a967884f

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000033ca97c0b4df29103dc8da00a967884f


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.