MATIC Price: $0.645819 (+4.44%)
Gas: 33 GWei
 

Overview

Max Total Supply

79,900,174,576.427056911095648594 PECO

Holders

557 (0.00%)

Total Transfers

-

Market

Price

$2.64 @ 4.087836 MATIC

Onchain Market Cap

$210,936,460,881.77

Circulating Supply Market Cap

$223,681.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

PECO provides investors with exposure to the projects in the Polygon ecosystem. Consisting of 50% MATIC, PECO gives holders an alternative to only holding MATIC and instead gives them a token that grows with the entire ecosystem, not just the base token.

Market

Volume (24H):$0.00
Market Capitalization:$223,681.00
Circulating Supply:79,900,174,576.00 PECO
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
PProxy

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : PProxy.sol
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) }
        }
    }

}

File 2 of 2 : PProxyStorage.sol
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": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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

608060405234801561001057600080fd5b5061005460405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001203361005960201b60201c565b61007f565b61006b826100668361006f565b61007b565b5050565b6001600160a01b031690565b9055565b6105888061008e6000396000f3fe6080604052600436106100865760003560e01c80639d84ae69116100595780639d84ae691461015a578063aaf10f4214610184578063bb15ac8e14610199578063caaee91c146101d7578063d784d4261461020a57610086565b80631ab7710d1461009057806337a440e6146100c15780635ced058e146100fd57806382c947b714610127575b61008e61023d565b005b34801561009c57600080fd5b506100a56102ab565b604080516001600160a01b039092168252519081900360200190f35b3480156100cd57600080fd5b506100eb600480360360208110156100e457600080fd5b50356102ee565b60408051918252519081900360200190f35b34801561010957600080fd5b506100a56004803603602081101561012057600080fd5b50356102f2565b34801561013357600080fd5b506100eb6004803603602081101561014a57600080fd5b50356001600160a01b03166102f5565b34801561016657600080fd5b506100a56004803603602081101561017d57600080fd5b5035610301565b34801561019057600080fd5b506100a561031a565b3480156101a557600080fd5b506101c3600480360360208110156101bc57600080fd5b5035610361565b604080519115158252519081900360200190f35b3480156101e357600080fd5b5061008e600480360360208110156101fa57600080fd5b50356001600160a01b0316610375565b34801561021657600080fd5b5061008e6004803603602081101561022d57600080fd5b50356001600160a01b0316610440565b600061028460405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b905060405136600082376000803683855af43d806000843e8180156102a7578184f35b8184fd5b60006102e960405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b905090565b5490565b90565b6001600160a01b031690565b600061031461030f836102ee565b6102f2565b92915050565b60006102e960405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b6000600161036e836102ee565b1492915050565b6103b160405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104005760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261050d565b50565b61047c60405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104cb5760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120825b61051f8261051a836102f5565b610523565b5050565b905556fe5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e6572a26469706673582212200f558a1871d63d62ced5ed7101c1724a9d6a89cf257a0a6f493b7324b976e7bf64736f6c63430007050033

Deployed Bytecode

0x6080604052600436106100865760003560e01c80639d84ae69116100595780639d84ae691461015a578063aaf10f4214610184578063bb15ac8e14610199578063caaee91c146101d7578063d784d4261461020a57610086565b80631ab7710d1461009057806337a440e6146100c15780635ced058e146100fd57806382c947b714610127575b61008e61023d565b005b34801561009c57600080fd5b506100a56102ab565b604080516001600160a01b039092168252519081900360200190f35b3480156100cd57600080fd5b506100eb600480360360208110156100e457600080fd5b50356102ee565b60408051918252519081900360200190f35b34801561010957600080fd5b506100a56004803603602081101561012057600080fd5b50356102f2565b34801561013357600080fd5b506100eb6004803603602081101561014a57600080fd5b50356001600160a01b03166102f5565b34801561016657600080fd5b506100a56004803603602081101561017d57600080fd5b5035610301565b34801561019057600080fd5b506100a561031a565b3480156101a557600080fd5b506101c3600480360360208110156101bc57600080fd5b5035610361565b604080519115158252519081900360200190f35b3480156101e357600080fd5b5061008e600480360360208110156101fa57600080fd5b50356001600160a01b0316610375565b34801561021657600080fd5b5061008e6004803603602081101561022d57600080fd5b50356001600160a01b0316610440565b600061028460405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b905060405136600082376000803683855af43d806000843e8180156102a7578184f35b8184fd5b60006102e960405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b905090565b5490565b90565b6001600160a01b031690565b600061031461030f836102ee565b6102f2565b92915050565b60006102e960405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b6000600161036e836102ee565b1492915050565b6103b160405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104005760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261050d565b50565b61047c60405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104cb5760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120825b61051f8261051a836102f5565b610523565b5050565b905556fe5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e6572a26469706673582212200f558a1871d63d62ced5ed7101c1724a9d6a89cf257a0a6f493b7324b976e7bf64736f6c63430007050033

Loading...
Loading
[ Download: CSV Export  ]
[ 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.