ERC-20
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
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PayableProxy
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 19066 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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(); } }
// 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; }
{ "viaIR": true, "optimizer": { "enabled": true, "runs": 19066 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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.