ETH Price: $3,522.12 (+3.32%)
Gas: 80 Gwei

Contract

0x727a21924D9267E49D025a48464324edfcD215B5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Claim193580292024-03-03 23:49:599 hrs ago1709509799IN
0x727a2192...dfcD215B5
0 ETH0.0037877954.36997194
Claim193489532024-03-02 17:23:591 day ago1709400239IN
0x727a2192...dfcD215B5
0 ETH0.0033148747.63908362
Claim193489482024-03-02 17:22:591 day ago1709400179IN
0x727a2192...dfcD215B5
0 ETH0.0034181739.03232067
Claim193083732024-02-26 1:09:237 days ago1708909763IN
0x727a2192...dfcD215B5
0 ETH0.0022763926.24655618
Claim192627942024-02-19 15:53:3513 days ago1708358015IN
0x727a2192...dfcD215B5
0 ETH0.0028414340.79291376
Claim192559762024-02-18 16:49:5914 days ago1708274999IN
0x727a2192...dfcD215B5
0 ETH0.0030681235.375206
Claim192543582024-02-18 11:20:4714 days ago1708255247IN
0x727a2192...dfcD215B5
0 ETH0.0020530623.4472708
Claim192510572024-02-18 0:12:1115 days ago1708215131IN
0x727a2192...dfcD215B5
0 ETH0.0011715713.51
Claim192471562024-02-17 11:02:5915 days ago1708167779IN
0x727a2192...dfcD215B5
0 ETH0.0012656418.18267199
Claim192343912024-02-15 16:01:5917 days ago1708012919IN
0x727a2192...dfcD215B5
0 ETH0.01264067145.84668785
Claim192343852024-02-15 16:00:4717 days ago1708012847IN
0x727a2192...dfcD215B5
0 ETH0.00993481114.56326234
Claim192343672024-02-15 15:57:1117 days ago1708012631IN
0x727a2192...dfcD215B5
0 ETH0.0068658578.42301214
Claim192330382024-02-15 11:29:5917 days ago1707996599IN
0x727a2192...dfcD215B5
0 ETH0.0020611623.78802676
Claim192327282024-02-15 10:27:2317 days ago1707992843IN
0x727a2192...dfcD215B5
0 ETH0.001869721.5545783
Claim192300572024-02-15 1:27:5918 days ago1707960479IN
0x727a2192...dfcD215B5
0 ETH0.0022129925.28416529
Claim192286822024-02-14 20:49:1118 days ago1707943751IN
0x727a2192...dfcD215B5
0 ETH0.0015850618.10483974
Claim192239792024-02-14 4:58:3519 days ago1707886715IN
0x727a2192...dfcD215B5
0 ETH0.0009749813.99977806
Claim192239002024-02-14 4:42:4719 days ago1707885767IN
0x727a2192...dfcD215B5
0 ETH0.0012917714.88791767
Claim192197152024-02-13 14:35:5919 days ago1707834959IN
0x727a2192...dfcD215B5
0 ETH0.0057569565.7209337
Claim192170412024-02-13 5:34:5920 days ago1707802499IN
0x727a2192...dfcD215B5
0 ETH0.0017817520.34034373
Claim192140822024-02-12 19:39:1120 days ago1707766751IN
0x727a2192...dfcD215B5
0 ETH0.0040105745.79688868
Claim192122622024-02-12 13:32:2320 days ago1707744743IN
0x727a2192...dfcD215B5
0 ETH0.0017561720.25689216
Claim192096972024-02-12 4:55:2321 days ago1707713723IN
0x727a2192...dfcD215B5
0 ETH0.0018957421.64758355
Claim192053532024-02-11 14:15:2321 days ago1707660923IN
0x727a2192...dfcD215B5
0 ETH0.0023120526.63937879
Claim192034722024-02-11 7:54:5922 days ago1707638099IN
0x727a2192...dfcD215B5
0 ETH0.0019939823
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x3E70FF09...CC3d92e64
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
PProxy

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : PProxy.sol
pragma solidity ^0.8.0;

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) }
        }
    }

}

File 2 of 2 : PProxyStorage.sol
pragma solidity ^0.8.0;

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(uint160(_value)));
    }

}

Settings
{
  "remappings": [
    "@bridge/=src/modules/vedough-bridge/",
    "@forge-std/=lib/forge-std/src/",
    "@governance/=src/modules/governance/",
    "@interfaces/=src/interfaces/",
    "@mocks/=test/mocks/",
    "@oracles/=src/modules/reward-policies/",
    "@oz-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@oz/=lib/openzeppelin-contracts/contracts/",
    "@pproxy/=lib/pie-proxy/contracts/",
    "@prv/=src/modules/PRV/",
    "@rewards/=src/modules/rewards/",
    "@src/=src/",
    "@test/=test/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "pie-proxy/=lib/pie-proxy/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {
    "src/modules/PRV/bitfield.sol": {
      "Bitfields": "0x013b49b72da7f746eec30c7bca848bd788c4fcfe"
    }
  }
}

Contract Security Audit

Contract ABI

[{"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"}]

Deployed Bytecode

0x6080604052600436106100865760003560e01c80639d84ae69116100595780639d84ae6914610134578063aaf10f4214610154578063bb15ac8e14610169578063caaee91c14610199578063d784d426146101b957610086565b80631ab7710d1461009057806337a440e6146100c25780635ced058e146100ef57806382c947b71461010d575b61008e6101d9565b005b34801561009c57600080fd5b506100a5610249565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ce57600080fd5b506100e16100dd3660046103e4565b5490565b6040519081526020016100b9565b3480156100fb57600080fd5b506100a561010a3660046103e4565b90565b34801561011957600080fd5b506100e16101283660046103fd565b6001600160a01b031690565b34801561014057600080fd5b506100a561014f3660046103e4565b610273565b34801561016057600080fd5b506100a5610286565b34801561017557600080fd5b506101896101843660046103e4565b6102b4565b60405190151581526020016100b9565b3480156101a557600080fd5b5061008e6101b43660046103fd565b6102c7565b3480156101c557600080fd5b5061008e6101d43660046103fd565b610367565b6000610222604051602001610207907212535413115351539510551253d397d4d313d5606a1b815260130190565b60405160208183030381529060405280519060200120610273565b905060405136600082376000803683855af43d806000843e818015610245578184f35b8184fd5b600061026e604051602001610207906913d5d3915497d4d313d560b21b8152600a0190565b905090565b600061028061010a835490565b92915050565b600061026e604051602001610207907212535413115351539510551253d397d4d313d5606a1b815260130190565b600060016102c0835490565b1492915050565b6040516913d5d3915497d4d313d560b21b60208201526102e990602a01610207565b6001600160a01b0316336001600160a01b0316146103225760405162461bcd60e51b81526004016103199061042d565b60405180910390fd5b6040516913d5d3915497d4d313d560b21b602082015261036490602a015b60405160208183030381529060405280519060200120826001600160a01b03169055565b50565b6040516913d5d3915497d4d313d560b21b602082015261038990602a01610207565b6001600160a01b0316336001600160a01b0316146103b95760405162461bcd60e51b81526004016103199061042d565b6040517212535413115351539510551253d397d4d313d5606a1b602082015261036490603301610340565b6000602082840312156103f657600080fd5b5035919050565b60006020828403121561040f57600080fd5b81356001600160a01b038116811461042657600080fd5b9392505050565b6020808252602b908201527f5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646560408201526a39103737ba1037bbb732b960a91b60608201526080019056fea2646970667358221220ca719e95db069c9f0a47ee239b2bc79b412ed0afae289b3ec91594cbe1f3e65664736f6c63430008100033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.