ETH Price: $3,929.22 (+5.13%)
Gas: 7 Gwei

Contract

0x2aA5cE395b00CC486159aDbDD97c55b535CF2cf9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve199110842024-05-20 12:17:476 days ago1716207467IN
ElasticDAO: EGT Token
0 ETH0.000369786.81791854
Approve197401522024-04-26 14:34:3530 days ago1714142075IN
ElasticDAO: EGT Token
0 ETH0.0006053511.16134732
Transfer196851102024-04-18 21:45:5938 days ago1713476759IN
ElasticDAO: EGT Token
0 ETH0.002374049.02315555
Approve193908842024-03-08 13:55:4779 days ago1709906147IN
ElasticDAO: EGT Token
0 ETH0.0039392173.01733972
Approve193886802024-03-08 6:32:2379 days ago1709879543IN
ElasticDAO: EGT Token
0 ETH0.0025001346.34260562
Approve192511482024-02-18 0:30:3599 days ago1708216235IN
ElasticDAO: EGT Token
0 ETH0.0009700217.98039415
Approve191147432024-01-29 21:04:35118 days ago1706562275IN
ElasticDAO: EGT Token
0 ETH0.0008639115.92853203
Approve189508282024-01-06 21:34:35141 days ago1704576875IN
ElasticDAO: EGT Token
0 ETH0.0005669717.74395288
Approve188988672023-12-30 14:16:59148 days ago1703945819IN
ElasticDAO: EGT Token
0 ETH0.0004436813.88570022
Approve188351072023-12-21 15:23:11157 days ago1703172191IN
ElasticDAO: EGT Token
0 ETH0.0017864755.90936111
Approve187432222023-12-08 18:07:23170 days ago1702058843IN
ElasticDAO: EGT Token
0 ETH0.0015639748.94626365
Approve187114852023-12-04 7:22:35174 days ago1701674555IN
ElasticDAO: EGT Token
0 ETH0.0013144641.13736787
Approve181677542023-09-19 5:03:59250 days ago1695099839IN
ElasticDAO: EGT Token
0 ETH0.000417157.73231112
Approve181512192023-09-16 20:59:59253 days ago1694897999IN
ElasticDAO: EGT Token
0 ETH0.000289939.073854
Approve181391782023-09-15 4:13:59254 days ago1694751239IN
ElasticDAO: EGT Token
0 ETH0.000303559.49995
Approve180193082023-08-29 9:13:11271 days ago1693300391IN
ElasticDAO: EGT Token
0 ETH0.0010535119.42431788
Approve180193012023-08-29 9:11:47271 days ago1693300307IN
ElasticDAO: EGT Token
0 ETH0.001201322.14910057
Approve179541182023-08-20 6:17:11280 days ago1692512231IN
ElasticDAO: EGT Token
0 ETH0.0007508513.9179143
Approve179541092023-08-20 6:15:23280 days ago1692512123IN
ElasticDAO: EGT Token
0 ETH0.0006149611.3990018
Approve179053522023-08-13 10:30:47287 days ago1691922647IN
ElasticDAO: EGT Token
0 ETH0.0006544112.13033009
Approve178895992023-08-11 5:36:35289 days ago1691732195IN
ElasticDAO: EGT Token
0 ETH0.0007272413.4951617
Approve178851852023-08-10 14:48:59290 days ago1691678939IN
ElasticDAO: EGT Token
0 ETH0.0019654436.23814692
Approve178851812023-08-10 14:48:11290 days ago1691678891IN
ElasticDAO: EGT Token
0 ETH0.0020823338.59829957
Approve177044592023-07-16 7:46:23315 days ago1689493583IN
ElasticDAO: EGT Token
0 ETH0.0008291515.36919592
Approve176213282023-07-04 15:04:59327 days ago1688483099IN
ElasticDAO: EGT Token
0 ETH0.0008738927.34927767
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To Value
120569282021-03-17 15:14:121166 days ago1615994052  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PProxy

Compiler Version
v0.7.2+commit.51b20bc0

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 3 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"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "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"}]

608060405234801561001057600080fd5b5061005460405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001203361005960201b60201c565b61007f565b61006b826100668361006f565b61007b565b5050565b6001600160a01b031690565b9055565b6105888061008e6000396000f3fe6080604052600436106100865760003560e01c80639d84ae69116100595780639d84ae691461015a578063aaf10f4214610184578063bb15ac8e14610199578063caaee91c146101d7578063d784d4261461020a57610086565b80631ab7710d1461009057806337a440e6146100c15780635ced058e146100fd57806382c947b714610127575b61008e61023d565b005b34801561009c57600080fd5b506100a56102ab565b604080516001600160a01b039092168252519081900360200190f35b3480156100cd57600080fd5b506100eb600480360360208110156100e457600080fd5b50356102ee565b60408051918252519081900360200190f35b34801561010957600080fd5b506100a56004803603602081101561012057600080fd5b50356102f2565b34801561013357600080fd5b506100eb6004803603602081101561014a57600080fd5b50356001600160a01b03166102f5565b34801561016657600080fd5b506100a56004803603602081101561017d57600080fd5b5035610301565b34801561019057600080fd5b506100a561031a565b3480156101a557600080fd5b506101c3600480360360208110156101bc57600080fd5b5035610361565b604080519115158252519081900360200190f35b3480156101e357600080fd5b5061008e600480360360208110156101fa57600080fd5b50356001600160a01b0316610375565b34801561021657600080fd5b5061008e6004803603602081101561022d57600080fd5b50356001600160a01b0316610440565b600061028460405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b905060405136600082376000803683855af43d806000843e8180156102a7578184f35b8184fd5b60006102e960405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b905090565b5490565b90565b6001600160a01b031690565b600061031461030f836102ee565b6102f2565b92915050565b60006102e960405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b6000600161036e836102ee565b1492915050565b6103b160405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104005760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261050d565b50565b61047c60405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104cb5760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120825b61051f8261051a836102f5565b610523565b5050565b905556fe5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e6572a264697066735822122013045800f3a0f8b44846ccdce4be7ea9edb399b703cac8c007f15cb93a4b204a64736f6c63430007020033

Deployed Bytecode

0x6080604052600436106100865760003560e01c80639d84ae69116100595780639d84ae691461015a578063aaf10f4214610184578063bb15ac8e14610199578063caaee91c146101d7578063d784d4261461020a57610086565b80631ab7710d1461009057806337a440e6146100c15780635ced058e146100fd57806382c947b714610127575b61008e61023d565b005b34801561009c57600080fd5b506100a56102ab565b604080516001600160a01b039092168252519081900360200190f35b3480156100cd57600080fd5b506100eb600480360360208110156100e457600080fd5b50356102ee565b60408051918252519081900360200190f35b34801561010957600080fd5b506100a56004803603602081101561012057600080fd5b50356102f2565b34801561013357600080fd5b506100eb6004803603602081101561014a57600080fd5b50356001600160a01b03166102f5565b34801561016657600080fd5b506100a56004803603602081101561017d57600080fd5b5035610301565b34801561019057600080fd5b506100a561031a565b3480156101a557600080fd5b506101c3600480360360208110156101bc57600080fd5b5035610361565b604080519115158252519081900360200190f35b3480156101e357600080fd5b5061008e600480360360208110156101fa57600080fd5b50356001600160a01b0316610375565b34801561021657600080fd5b5061008e6004803603602081101561022d57600080fd5b50356001600160a01b0316610440565b600061028460405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b905060405136600082376000803683855af43d806000843e8180156102a7578184f35b8184fd5b60006102e960405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b905090565b5490565b90565b6001600160a01b031690565b600061031461030f836102ee565b6102f2565b92915050565b60006102e960405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120610301565b6000600161036e836102ee565b1492915050565b6103b160405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104005760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180806913d5d3915497d4d313d560b21b815250600a019050604051602081830303815290604052805190602001208261050d565b50565b61047c60405160200180806913d5d3915497d4d313d560b21b815250600a01905060405160208183030381529060405280519060200120610301565b6001600160a01b0316336001600160a01b0316146104cb5760405162461bcd60e51b815260040180806020018281038252602b815260200180610528602b913960400191505060405180910390fd5b61043d60405160200180807212535413115351539510551253d397d4d313d5606a1b815250601301905060405160208183030381529060405280519060200120825b61051f8261051a836102f5565b610523565b5050565b905556fe5050726f78792e6f6e6c7950726f78794f776e65723a206d73672073656e646572206e6f74206f776e6572a264697066735822122013045800f3a0f8b44846ccdce4be7ea9edb399b703cac8c007f15cb93a4b204a64736f6c63430007020033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

ElasticDAO is a governance protocol that attempts to balance the competing interests between the different participants in a decentralized ecosystem. ElasticDAO achieves this by reducing the overall influence that money and early adopters have in existing DAO governance models.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.