ETH Price: $2,091.63 (-0.22%)

Contract

0xE6136F2e90EeEA7280AE5a0a8e6F48Fb222AF945
 

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
Transfer199366172024-05-24 2:00:11659 days ago1716516011IN
PieDAO: veDOUGH Token
0 ETH0.000175946.4067583
Transfer175812742023-06-29 0:04:23989 days ago1687997063IN
PieDAO: veDOUGH Token
0 ETH0.0007031125.60303867
Transfer173006042023-05-20 12:20:351028 days ago1684585235IN
PieDAO: veDOUGH Token
0 ETH0.0008725931.81633036
Transfer172509992023-05-13 12:17:111035 days ago1683980231IN
PieDAO: veDOUGH Token
0 ETH0.0010567338.46320995
Transfer172350932023-05-11 5:39:471038 days ago1683783587IN
PieDAO: veDOUGH Token
0 ETH0.0026208895.3951105
Transfer172204742023-05-09 4:19:231040 days ago1683605963IN
PieDAO: veDOUGH Token
0 ETH0.0024791590.23629192
Transfer172204122023-05-09 4:06:471040 days ago1683605207IN
PieDAO: veDOUGH Token
0 ETH0.0018593867.67802351
Transfer170742082023-04-18 14:40:111060 days ago1681828811IN
PieDAO: veDOUGH Token
0 ETH0.0013236348.17778429
Transfer162602082022-12-25 7:15:591174 days ago1671952559IN
PieDAO: veDOUGH Token
0 ETH0.0003043911.08919257
Transfer162551622022-12-24 14:22:351175 days ago1671891755IN
PieDAO: veDOUGH Token
0 ETH0.0003352612.20821832
Transfer156986052022-10-07 20:30:591253 days ago1665174659IN
PieDAO: veDOUGH Token
0 ETH0.0003009310.95824646
Transfer147930942022-05-17 14:39:021396 days ago1652798342IN
PieDAO: veDOUGH Token
0 ETH0.0075642275.32247828
Transfer147930832022-05-17 14:36:281396 days ago1652798188IN
PieDAO: veDOUGH Token
0 ETH0.0055975203.73841369
Transfer136987242021-11-27 22:29:481567 days ago1638052188IN
PieDAO: veDOUGH Token
0 ETH0.0015696857.13337368
Transfer135184492021-10-30 12:25:421595 days ago1635596742IN
PieDAO: veDOUGH Token
0 ETH0.00338157123.08275842
Set Proxy Owner132295382021-09-15 9:36:191640 days ago1631698579IN
PieDAO: veDOUGH Token
0 ETH0.0011414241.93176464
Renounce Role132295142021-09-15 9:31:521640 days ago1631698312IN
PieDAO: veDOUGH Token
0 ETH0.0018182639.76344107
Renounce Role132295142021-09-15 9:31:521640 days ago1631698312IN
PieDAO: veDOUGH Token
0 ETH0.0018335339.76344107
Grant Role132295122021-09-15 9:31:091640 days ago1631698269IN
PieDAO: veDOUGH Token
0 ETH0.0028004633.47951107
Grant Role132295082021-09-15 9:30:511640 days ago1631698251IN
PieDAO: veDOUGH Token
0 ETH0.0029346534.92350072
Transfer Ownersh...132294862021-09-15 9:26:031640 days ago1631697963IN
PieDAO: veDOUGH Token
0 ETH0.0014707743.253058
Initialize132294072021-09-15 9:08:391640 days ago1631696919IN
PieDAO: veDOUGH Token
0 ETH0.0142024550
Set Implementati...132294012021-09-15 9:07:251640 days ago1631696845IN
PieDAO: veDOUGH Token
0 ETH0.002321650

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
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

OVERVIEW

PieDAO is a decentralized asset manager for tokenized portfolios, with a mission to bring automated wealth creation to everyone with an internet connection.

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.