ETH Price: $3,328.15 (-0.96%)

Contract

0xB9a4Bca06F14A982fcD14907D31DFACaDC8ff88E
 
Transaction Hash
Method
Block
From
To
Withdraw174162262023-06-05 18:55:59571 days ago1685991359IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.004704841.79297782
Get Reward159962492022-11-18 10:17:59770 days ago1668766679IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0039053513.90294535
Get Reward158178472022-10-24 12:04:47795 days ago1666613087IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0041801912.03104525
Withdraw158178442022-10-24 12:04:11795 days ago1666613051IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0013741212.20637954
Withdraw153390202022-08-14 9:44:02866 days ago1660470242IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.000687986.11137599
Exit145965512022-04-16 13:16:19986 days ago1650114979IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0069840418.82533709
Exit143263392022-03-05 10:29:501028 days ago1646476190IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0067349418.15387233
Exit141985232022-02-13 15:15:021048 days ago1644765302IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0125194931.3382353
Get Reward139665112022-01-08 18:52:391084 days ago1641667959IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.04803307150.59890828
Exit139190312022-01-01 10:32:351091 days ago1641033155IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0157093848.04959109
Withdraw138156382021-12-16 10:18:091107 days ago1639649889IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.005809164.62743421
Exit136933722021-11-27 2:17:021127 days ago1637979422IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.030972483.48537632
Exit135611242021-11-06 5:18:041147 days ago1636175884IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0336662691.08345202
Exit134474572021-10-19 9:40:581165 days ago1634636458IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0194779652.41365523
Get Reward134079832021-10-13 4:42:311171 days ago1634100151IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0225466664.83546569
Withdraw134079692021-10-13 4:39:511171 days ago1634099991IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0068013860.41056465
Get Reward133828222021-10-09 5:56:211175 days ago1633758981IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0278986286.5092523
Get Reward132218872021-09-14 5:13:321200 days ago1631596412IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0109331631.43955115
Withdraw132218802021-09-14 5:12:561200 days ago1631596376IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0043452538.5990698
Get Reward132198862021-09-13 21:47:071201 days ago1631569627IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0201956463.19530664
Withdraw132198852021-09-13 21:46:241201 days ago1631569584IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0065211957.92193416
Exit132186282021-09-13 17:08:241201 days ago1631552904IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0232289162.50718464
Withdraw130682962021-08-21 11:19:351224 days ago1629544775IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0037149332.99996672
Exit130517492021-08-18 21:53:371227 days ago1629323617IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0141215638
Withdraw130391322021-08-16 23:06:331229 days ago1629155193IN
0xB9a4Bca0...aDC8ff88E
0 ETH0.0036027532
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 0x63cbD185...0b834912D
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
PProxy

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-10-30
*/

/**
 *Submitted for verification at Etherscan.io on 2020-10-30
*/

pragma solidity ^0.6.2;

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

}

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

}

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

0x60806040526004361061008a5760003560e01c80639d84ae69116100595780639d84ae691461021b578063aaf10f4214610296578063bb15ac8e146102ed578063caaee91c14610340578063d784d426146103915761008b565b80631ab7710d1461009557806337a440e6146100ec5780635ced058e1461013b57806382c947b7146101b65761008b565b5b6100936103e2565b005b3480156100a157600080fd5b506100aa61045c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100f857600080fd5b506101256004803603602081101561010f57600080fd5b81019080803590602001909291905050506104b2565b6040518082815260200191505060405180910390f35b34801561014757600080fd5b506101746004803603602081101561015e57600080fd5b81019080803590602001909291905050506104c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c257600080fd5b50610205600480360360208110156101d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104cf565b6040518082815260200191505060405180910390f35b34801561022757600080fd5b506102546004803603602081101561023e57600080fd5b81019080803590602001909291905050506104f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a257600080fd5b506102ab61050c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102f957600080fd5b506103266004803603602081101561031057600080fd5b8101908080359060200190929190505050610562565b604051808215151515815260200191505060405180910390f35b34801561034c57600080fd5b5061038f6004803603602081101561036357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061057a565b005b34801561039d57600080fd5b506103e0600480360360208110156103b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061069f565b005b600061043360405160200180807f494d504c454d454e544154494f4e5f534c4f54000000000000000000000000008152506013019050604051602081830303815290604052805190602001206104f2565b905060405136600082376000803683855af43d806000843e8160008114610458578184f35b8184fd5b60006104ad60405160200180807f4f574e45525f534c4f5400000000000000000000000000000000000000000000815250600a019050604051602081830303815290604052805190602001206104f2565b905090565b6000808254905080915050919050565b60008160001c9050919050565b60008173ffffffffffffffffffffffffffffffffffffffff1660001b9050919050565b6000610505610500836104b2565b6104c2565b9050919050565b600061055d60405160200180807f494d504c454d454e544154494f4e5f534c4f54000000000000000000000000008152506013019050604051602081830303815290604052805190602001206104f2565b905090565b6000600160001b610572836104b2565b149050919050565b6105c960405160200180807f4f574e45525f534c4f5400000000000000000000000000000000000000000000815250600a019050604051602081830303815290604052805190602001206104f2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806107e8602b913960400191505060405180910390fd5b61069c60405160200180807f4f574e45525f534c4f5400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405280519060200120826107c4565b50565b6106ee60405160200180807f4f574e45525f534c4f5400000000000000000000000000000000000000000000815250600a019050604051602081830303815290604052805190602001206104f2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806107e8602b913960400191505060405180910390fd5b6107c160405160200180807f494d504c454d454e544154494f4e5f534c4f5400000000000000000000000000815250601301905060405160208183030381529060405280519060200120826107c4565b50565b6107d6826107d1836104cf565b6107da565b5050565b600082905081815550505056fe5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e6572a2646970667358221220751af61933da54c507864e78dea4e44ab4d20e7a6e56dec75496e1249d08711b64736f6c63430006060033

Deployed Bytecode Sourcemap

1585:1583:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2607:18;:16;:18::i;:::-;1585:1583;2044:103;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2044:103:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;747:248;;5:9:-1;2:2;;;27:1;24;17:12;2:2;747:248:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;747:248:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1317:130;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1317:130:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1317:130:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1455:121;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1455:121:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1455:121:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;486:125;;5:9:-1;2:2;;;27:1;24;17:12;2:2;486:125:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;486:125:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2279:117;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2279:117:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;130:124;;5:9:-1;2:2;;;27:1;24;17:12;2:2;130:124:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;130:124:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2155:116;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2155:116:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2155:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2404:147;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2404:147:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2404:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2641:522;2697:20;2720:32;1676:39;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1676:39:0;;;1666:50;;;;;;2720:11;:32::i;:::-;2697:55;;2804:4;2798:11;2844:14;2841:1;2836:3;2823:36;2945:1;2942;2926:14;2921:3;2907:12;2900:5;2887:60;2973:16;3026:4;3023:1;3018:3;3003:28;3054:6;3079:1;3074:28;;;;3138:4;3133:3;3126:17;3074:28;3095:4;3090:3;3083:17;2044:103;2090:7;2116:23;1763:30;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1763:30:0;;;1753:41;;;;;;2116:11;:23::i;:::-;2109:30;;2044:103;:::o;747:248::-;802:7;822:13;949:4;943:11;934:20;;982:5;975:12;;;747:248;;;:::o;1317:130::-;1379:7;1430:6;1422:15;;1399:40;;1317:130;;;:::o;1455:121::-;1517:7;1560:6;1552:15;;1544:24;;1537:31;;1455:121;;;:::o;486:125::-;541:7;568:35;585:17;597:4;585:11;:17::i;:::-;568:16;:35::i;:::-;561:42;;486:125;;;:::o;2279:117::-;2329:7;2356:32;1676:39;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1676:39:0;;;1666:50;;;;;;2356:11;:32::i;:::-;2349:39;;2279:117;:::o;130:124::-;182:4;243:1;227:19;;206:17;218:4;206:11;:17::i;:::-;:40;199:47;;130:124;;;:::o;2155:116::-;1862:23;1763:30;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1763:30:0;;;1753:41;;;;;;1862:11;:23::i;:::-;1848:37;;:10;:37;;;1840:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2230:33:::1;1763:30;;;;;;;;;::::0;::::1;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1763:30:0;;;1753:41;;;;;;2253:9;2230:10;:33::i;:::-;2155:116:::0;:::o;2404:147::-;1862:23;1763:30;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1763:30:0;;;1753:41;;;;;;1862:11;:23::i;:::-;1848:37;;:10;:37;;;1840:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2492:51:::1;1676:39;;;;;;;;;::::0;::::1;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1676:39:0;;;1666:50;;;;;;2524:18;2492:10;:51::i;:::-;2404:147:::0;:::o;619:120::-;689:42;700:4;706:24;723:6;706:16;:24::i;:::-;689:10;:42::i;:::-;619:120;;:::o;1003:306::-;1119:29;1151:4;1119:36;;1284:6;1261:21;1254:37;1239:63;;;:::o

Swarm Source

ipfs://751af61933da54c507864e78dea4e44ab4d20e7a6e56dec75496e1249d08711b

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

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