Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
0 ethereum-fee-collector
Holders
0
Transfers
-
0
Market
Onchain Market Cap
-
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
Contract ABI
API[{"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.
Add Token to MetaMask (Web3)