ETH Price: $2,346.73 (+7.60%)

Contract

0x6Bd0D8c8aD8D3F1f97810d5Cc57E9296db73DC45
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw245569982026-02-28 17:43:5916 days ago1772300639IN
PieDAO: Time Lock Proxy
0 ETH0.000009970.05649009
Withdraw245569902026-02-28 17:42:2316 days ago1772300543IN
PieDAO: Time Lock Proxy
0 ETH0.000011620.06412493
Eject245567272026-02-28 16:49:3516 days ago1772297375IN
PieDAO: Time Lock Proxy
0 ETH0.000002680.0853903
VIEW ADVANCED FILTER
Age:30D
Reset Filter

Advanced mode:
Parent Transaction Hash Method Block
From
To

There are no matching entries

Update your filters to view other transactions

View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 800 runs

Other Settings:
default evmVersion
pragma solidity ^0.7.1;

import "./PProxyStorage.sol";

contract PProxy is PProxyStorage {

    bytes32 constant IMPLEMENTATION_SLOT = keccak256(abi.encodePacked("IMPLEMENTATION_SLOT"));
    bytes32 constant OWNER_SLOT = keccak256(abi.encodePacked("OWNER_SLOT"));

    modifier onlyProxyOwner() {
        require(msg.sender == readAddress(OWNER_SLOT), "PProxy.onlyProxyOwner: msg sender not owner");
        _;
    }

    constructor () public {
        setAddress(OWNER_SLOT, msg.sender);
    }

    function getProxyOwner() public view returns (address) {
       return readAddress(OWNER_SLOT);
    }

    function setProxyOwner(address _newOwner) onlyProxyOwner public {
        setAddress(OWNER_SLOT, _newOwner);
    }

    function getImplementation() public view returns (address) {
        return readAddress(IMPLEMENTATION_SLOT);
    }

    function setImplementation(address _newImplementation) onlyProxyOwner public {
        setAddress(IMPLEMENTATION_SLOT, _newImplementation);
    }


    fallback () external payable {
       return internalFallback();
    }

    function internalFallback() internal virtual {
        address contractAddr = readAddress(IMPLEMENTATION_SLOT);
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(gas(), contractAddr, ptr, calldatasize(), 0, 0)
            let size := returndatasize()
            returndatacopy(ptr, 0, size)

            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }

}

pragma solidity ^0.7.1;

contract PProxyStorage {

    function readBool(bytes32 _key) public view returns(bool) {
        return storageRead(_key) == bytes32(uint256(1));
    }

    function setBool(bytes32 _key, bool _value) internal {
        if(_value) {
            storageSet(_key, bytes32(uint256(1)));
        } else {
            storageSet(_key, bytes32(uint256(0)));
        }
    }

    function readAddress(bytes32 _key) public view returns(address) {
        return bytes32ToAddress(storageRead(_key));
    }

    function setAddress(bytes32 _key, address _value) internal {
        storageSet(_key, addressToBytes32(_value));
    }

    function storageRead(bytes32 _key) public view returns(bytes32) {
        bytes32 value;
        //solium-disable-next-line security/no-inline-assembly
        assembly {
            value := sload(_key)
        }
        return value;
    }

    function storageSet(bytes32 _key, bytes32 _value) internal {
        // targetAddress = _address;  // No!
        bytes32 implAddressStorageKey = _key;
        //solium-disable-next-line security/no-inline-assembly
        assembly {
            sstore(implAddressStorageKey, _value)
        }
    }

    function bytes32ToAddress(bytes32 _value) public pure returns(address) {
        return address(uint160(uint256(_value)));
    }

    function addressToBytes32(address _value) public pure returns(bytes32) {
        return bytes32(uint256(_value));
    }

}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 800
  },
  "metadata": {
    "bytecodeHash": "none",
    "useLiteralContent": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_value","type":"address"}],"name":"addressToBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_value","type":"bytes32"}],"name":"bytes32ToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProxyOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"readAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"readBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"setProxyOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"storageRead","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5061005460405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001203361005960201b60201c565b61007f565b61006b826100668361006f565b61007b565b5050565b6001600160a01b031690565b9055565b61056f8061008e6000396000f3fe6080604052600436106100965760003560e01c80639d84ae6911610069578063bb15ac8e1161004e578063bb15ac8e146101a9578063caaee91c146101e7578063d784d4261461021a57610096565b80639d84ae691461016a578063aaf10f421461019457610096565b80631ab7710d146100a057806337a440e6146100d15780635ced058e1461010d57806382c947b714610137575b61009e61024d565b005b3480156100ac57600080fd5b506100b56102bb565b604080516001600160a01b039092168252519081900360200190f35b3480156100dd57600080fd5b506100fb600480360360208110156100f457600080fd5b50356102fe565b60408051918252519081900360200190f35b34801561011957600080fd5b506100b56004803603602081101561013057600080fd5b5035610302565b34801561014357600080fd5b506100fb6004803603602081101561015a57600080fd5b50356001600160a01b0316610305565b34801561017657600080fd5b506100b56004803603602081101561018d57600080fd5b5035610311565b3480156101a057600080fd5b506100b561032a565b3480156101b557600080fd5b506101d3600480360360208110156101cc57600080fd5b5035610371565b604080519115158252519081900360200190f35b3480156101f357600080fd5b5061009e6004803603602081101561020a57600080fd5b50356001600160a01b0316610385565b34801561022657600080fd5b5061009e6004803603602081101561023d57600080fd5b50356001600160a01b0316610450565b600061029460405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610311565b905060405136600082376000803683855af43d806000843e8180156102b7578184f35b8184fd5b60006102f960405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610311565b905090565b5490565b90565b6001600160a01b031690565b600061032461031f836102fe565b610302565b92915050565b60006102f960405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610311565b6000600161037e836102fe565b1492915050565b6103c160405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610311565b6001600160a01b0316336001600160a01b0316146104105760405162461bcd60e51b815260040180806020018281038252602b815260200180610538602b913960400191505060405180910390fd5b61044d60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261051d565b50565b61048c60405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610311565b6001600160a01b0316336001600160a01b0316146104db5760405162461bcd60e51b815260040180806020018281038252602b815260200180610538602b913960400191505060405180910390fd5b61044d60405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120825b61052f8261052a83610305565b610533565b5050565b905556fe5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e6572a164736f6c6343000706000a

Deployed Bytecode

0x6080604052600436106100965760003560e01c80639d84ae6911610069578063bb15ac8e1161004e578063bb15ac8e146101a9578063caaee91c146101e7578063d784d4261461021a57610096565b80639d84ae691461016a578063aaf10f421461019457610096565b80631ab7710d146100a057806337a440e6146100d15780635ced058e1461010d57806382c947b714610137575b61009e61024d565b005b3480156100ac57600080fd5b506100b56102bb565b604080516001600160a01b039092168252519081900360200190f35b3480156100dd57600080fd5b506100fb600480360360208110156100f457600080fd5b50356102fe565b60408051918252519081900360200190f35b34801561011957600080fd5b506100b56004803603602081101561013057600080fd5b5035610302565b34801561014357600080fd5b506100fb6004803603602081101561015a57600080fd5b50356001600160a01b0316610305565b34801561017657600080fd5b506100b56004803603602081101561018d57600080fd5b5035610311565b3480156101a057600080fd5b506100b561032a565b3480156101b557600080fd5b506101d3600480360360208110156101cc57600080fd5b5035610371565b604080519115158252519081900360200190f35b3480156101f357600080fd5b5061009e6004803603602081101561020a57600080fd5b50356001600160a01b0316610385565b34801561022657600080fd5b5061009e6004803603602081101561023d57600080fd5b50356001600160a01b0316610450565b600061029460405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610311565b905060405136600082376000803683855af43d806000843e8180156102b7578184f35b8184fd5b60006102f960405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610311565b905090565b5490565b90565b6001600160a01b031690565b600061032461031f836102fe565b610302565b92915050565b60006102f960405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610311565b6000600161037e836102fe565b1492915050565b6103c160405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610311565b6001600160a01b0316336001600160a01b0316146104105760405162461bcd60e51b815260040180806020018281038252602b815260200180610538602b913960400191505060405180910390fd5b61044d60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261051d565b50565b61048c60405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610311565b6001600160a01b0316336001600160a01b0316146104db5760405162461bcd60e51b815260040180806020018281038252602b815260200180610538602b913960400191505060405180910390fd5b61044d60405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120825b61052f8261052a83610305565b610533565b5050565b905556fe5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e6572a164736f6c6343000706000a

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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.