ETH Price: $3,362.80 (-0.13%)

Contract

0x2aA5cE395b00CC486159aDbDD97c55b535CF2cf9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer212309652024-11-20 19:14:352 days ago1732130075IN
ElasticDAO: EGT Token
0 ETH0.0032016214.55699072
Transfer212309382024-11-20 19:09:112 days ago1732129751IN
ElasticDAO: EGT Token
0 ETH0.004329716.4696609
Approve212235292024-11-19 18:19:473 days ago1732040387IN
ElasticDAO: EGT Token
0 ETH0.0012523823.21948163
Approve207528672024-09-15 1:56:1169 days ago1726365371IN
ElasticDAO: EGT Token
0 ETH0.000055941.03256049
Approve206199582024-08-27 12:35:4787 days ago1724762147IN
ElasticDAO: EGT Token
0 ETH0.000061781.93354627
Approve205574722024-08-18 19:01:5996 days ago1724007719IN
ElasticDAO: EGT Token
0 ETH0.000080172.17639576
Approve205574542024-08-18 18:58:2396 days ago1724007503IN
ElasticDAO: EGT Token
0 ETH0.000075422.04686604
Approve205574022024-08-18 18:47:5996 days ago1724006879IN
ElasticDAO: EGT Token
0 ETH0.000172513.19781502
Approve205510832024-08-17 21:39:1197 days ago1723930751IN
ElasticDAO: EGT Token
0 ETH0.00014552.7
Approve205421752024-08-16 15:45:3598 days ago1723823135IN
ElasticDAO: EGT Token
0 ETH0.00024854.60634849
Approve203975282024-07-27 11:16:59118 days ago1722079019IN
ElasticDAO: EGT Token
0 ETH0.00009071.67416258
Approve203585942024-07-22 0:49:11124 days ago1721609351IN
ElasticDAO: EGT Token
0 ETH0.000415137.66260408
Approve203030002024-07-14 6:38:11132 days ago1720939091IN
ElasticDAO: EGT Token
0 ETH0.000177293.28626554
Approve201186722024-06-18 12:34:35157 days ago1718714075IN
ElasticDAO: EGT Token
0 ETH0.000255127.98432858
Approve199110842024-05-20 12:17:47186 days ago1716207467IN
ElasticDAO: EGT Token
0 ETH0.000369786.81791854
Approve197401522024-04-26 14:34:35210 days ago1714142075IN
ElasticDAO: EGT Token
0 ETH0.0006053511.16134732
Transfer196851102024-04-18 21:45:59218 days ago1713476759IN
ElasticDAO: EGT Token
0 ETH0.002374049.02315555
Approve193908842024-03-08 13:55:47259 days ago1709906147IN
ElasticDAO: EGT Token
0 ETH0.0039392173.01733972
Approve193886802024-03-08 6:32:23260 days ago1709879543IN
ElasticDAO: EGT Token
0 ETH0.0025001346.34260562
Approve192511482024-02-18 0:30:35279 days ago1708216235IN
ElasticDAO: EGT Token
0 ETH0.0009700217.98039415
Approve191147432024-01-29 21:04:35298 days ago1706562275IN
ElasticDAO: EGT Token
0 ETH0.0008639115.92853203
Approve189508282024-01-06 21:34:35321 days ago1704576875IN
ElasticDAO: EGT Token
0 ETH0.0005669717.74395288
Approve188988672023-12-30 14:16:59328 days ago1703945819IN
ElasticDAO: EGT Token
0 ETH0.0004436813.88570022
Approve188351072023-12-21 15:23:11337 days ago1703172191IN
ElasticDAO: EGT Token
0 ETH0.0017864755.90936111
Approve187432222023-12-08 18:07:23350 days ago1702058843IN
ElasticDAO: EGT Token
0 ETH0.0015639748.94626365
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
120569282021-03-17 15:14:121346 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 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"
      ]
    }
  },
  "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.