Contract 0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc00a07fa01e73cbe64af3d690872bba8f87ff3c98bfb724aa31ca1de64e93829Submit Signature262120502023-01-29 19:10:353 hrs 56 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.00017442
0x17ed509f6d28022834a61087c2c5b0f776aee1a417cba7b459f0736ab426f1baSubmit Signature262120502023-01-29 19:10:353 hrs 56 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000550137
0x16560dd891a34fb80ec4f76e29dc3e78a926b1f95084e787d3086f1ea191189bSubmit Signature262120492023-01-29 19:10:253 hrs 56 mins ago0xf57b55b01b831e602e09674a4e5d69cbcf343f98 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.0012603
0x9006d42d21d80ed4a3d9b3d3f52203471470d25dbc086fa96f79ea620a5b6741Submit Signature262119432023-01-29 19:00:304 hrs 6 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000549873
0x6526d72b99f3ee7c0f54e9679aaaf76f01082491ecab28d7c6e46250fbcf57eeSubmit Signature262119432023-01-29 19:00:304 hrs 6 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.001260564
0x5b0b247276b069def1c18971d6947beb2843eed9dfc866ffcd37c155d01f528aExecute Affirmat...262111532023-01-29 17:50:155 hrs 16 mins ago0xf57b55b01b831e602e09674a4e5d69cbcf343f98 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000215544
0x7e440e22e2366792bab2b7130de4f1be0f671168981a857ae2189ed9e92d9b0aExecute Affirmat...262111522023-01-29 17:50:105 hrs 16 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000655152
0xfc641937e7276e5365786e94ded6b88ae7abf6c24ffd705aec76b726c30c8ad1Execute Affirmat...262111512023-01-29 17:50:055 hrs 16 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000293613
0x2e2ff1ac379ddddd4d6fb2056cd86cdba665767e92aa1b33c8304ee2629fc3d4Submit Signature262092712023-01-29 15:07:207 hrs 59 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000170121
0x70e2ccea9c53ec21c30b8ff855c6860974d40509e2ac2243b454dc9732845107Submit Signature262092702023-01-29 15:07:157 hrs 59 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000545556
0x66f1e69586ccfdd3ba0e076bacb73035c7ecb79fe9fdb7c5af79fe97f729dd94Submit Signature262092692023-01-29 15:07:107 hrs 59 mins ago0xf57b55b01b831e602e09674a4e5d69cbcf343f98 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.001056396
0x67ac92f1936a73344f670c393994889509baccbc236d4e167e2c0ac910316d05Submit Signature262089772023-01-29 14:41:158 hrs 25 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000555132
0xc55e92167ecea7c05dd529560d3e978e2980913d03c386533efd6f7bc072eea2Submit Signature262089772023-01-29 14:41:158 hrs 25 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.001472238
0xf2ed19bd31303fb359660fc9e128a0afa96b357b843ab971100b76935eb4549bExecute Affirmat...262089302023-01-29 14:37:108 hrs 29 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000221412
0x0f6e755ad5374b107777f26dcc2c9e1de36cab30c0c7c5213980bf39b103a2c8Execute Affirmat...262089302023-01-29 14:37:108 hrs 29 mins ago0xf57b55b01b831e602e09674a4e5d69cbcf343f98 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000666348
0x2ce1c2726815df30c4817d47b043782e902b2d8381f3357bae3edf41dce1a671Execute Affirmat...262089292023-01-29 14:37:058 hrs 29 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000299484
0x3a9f8bb23541954d4619db988ea617b32accddb7b550ce0187783f5577f5bfa8Execute Affirmat...262088012023-01-29 14:26:058 hrs 40 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000215544
0x4ea757e47ed6ef8c0c5809de65bddf5c44ea425854c71972fc52ed36bd1f2113Execute Affirmat...262088012023-01-29 14:26:058 hrs 40 mins ago0xf57b55b01b831e602e09674a4e5d69cbcf343f98 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000704652
0x575c871470bdaf6575bba934c54e645852c90df42cb1eba50d0ba232558c85dcExecute Affirmat...262088012023-01-29 14:26:058 hrs 40 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000293613
0x8a28e842142fe3ddc653db916db228f4823a5e5765d71e44ebf302120c31c18cSubmit Signature262087312023-01-29 14:20:008 hrs 47 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000170241
0xbbef6b48d9768297005255c435210da2ac9d0e0e94c66cda7968a92386f9d9d9Submit Signature262087312023-01-29 14:20:008 hrs 47 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000545712
0xd8bb51b0990940b2d665941a3ea2ef4e90a6856aab84b7611553264ea769629aSubmit Signature262087302023-01-29 14:19:558 hrs 47 mins ago0xf57b55b01b831e602e09674a4e5d69cbcf343f98 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.001056552
0x45647f552a9d6c4673b7fad5540f56b5a2702bdc79bf32f9559179678afef554Submit Signature262052542023-01-29 9:18:0013 hrs 49 mins ago0x0e6c76cb7df33a5faa72c6d84fbeb7f1f8bb6a6a IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000174684
0xc4282df643f054a366858871bc8f2a3db034a7f121a1d49ac72755132ef3d24eSubmit Signature262052542023-01-29 9:18:0013 hrs 49 mins ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.000550101
0x6845f92c4f8de756f5e545abcf84475c15f458d60b451dfdedf605ddefc8fe97Submit Signature262052522023-01-29 9:17:5013 hrs 49 mins ago0xf57b55b01b831e602e09674a4e5d69cbcf343f98 IN  0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f0 xDAI0.001260228
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x75df5af045d91108662d8080fd1fefad6aa0bb59

Contract Name:
EternalStorageProxy

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
byzantium EvmVersion
/**
 *Submitted for verification at gnosisscan.io on 2022-08-03
*/

// File: contracts/upgradeability/EternalStorage.sol

pragma solidity 0.4.24;

/**
 * @title EternalStorage
 * @dev This contract holds all the necessary state variables to carry out the storage of any contract.
 */
contract EternalStorage {
    mapping(bytes32 => uint256) internal uintStorage;
    mapping(bytes32 => string) internal stringStorage;
    mapping(bytes32 => address) internal addressStorage;
    mapping(bytes32 => bytes) internal bytesStorage;
    mapping(bytes32 => bool) internal boolStorage;
    mapping(bytes32 => int256) internal intStorage;

}

// File: openzeppelin-solidity/contracts/AddressUtils.sol

pragma solidity ^0.4.24;


/**
 * Utility library of inline functions on addresses
 */
library AddressUtils {

  /**
   * Returns whether the target address is a contract
   * @dev This function will return false if invoked during the constructor of a contract,
   * as the code is not actually created until after the constructor finishes.
   * @param _addr address to check
   * @return whether the target address is a contract
   */
  function isContract(address _addr) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solium-disable-next-line security/no-inline-assembly
    assembly { size := extcodesize(_addr) }
    return size > 0;
  }

}

// File: contracts/upgradeability/Proxy.sol

pragma solidity 0.4.24;

/**
 * @title Proxy
 * @dev Gives the possibility to delegate any call to a foreign implementation.
 */
contract Proxy {
    /**
    * @dev Tells the address of the implementation where every call will be delegated.
    * @return address of the implementation to which it will be delegated
    */
    /* solcov ignore next */
    function implementation() public view returns (address);

    /**
    * @dev Fallback function allowing to perform a delegatecall to the given implementation.
    * This function will return whatever the implementation call returns
    */
    function() public payable {
        // solhint-disable-previous-line no-complex-fallback
        address _impl = implementation();
        require(_impl != address(0));
        assembly {
            /*
                0x40 is the "free memory slot", meaning a pointer to next slot of empty memory. mload(0x40)
                loads the data in the free memory slot, so `ptr` is a pointer to the next slot of empty
                memory. It's needed because we're going to write the return data of delegatecall to the
                free memory slot.
            */
            let ptr := mload(0x40)
            /*
                `calldatacopy` is copy calldatasize bytes from calldata
                First argument is the destination to which data is copied(ptr)
                Second argument specifies the start position of the copied data.
                    Since calldata is sort of its own unique location in memory,
                    0 doesn't refer to 0 in memory or 0 in storage - it just refers to the zeroth byte of calldata.
                    That's always going to be the zeroth byte of the function selector.
                Third argument, calldatasize, specifies how much data will be copied.
                    calldata is naturally calldatasize bytes long (same thing as msg.data.length)
            */
            calldatacopy(ptr, 0, calldatasize)
            /*
                delegatecall params explained:
                gas: the amount of gas to provide for the call. `gas` is an Opcode that gives
                    us the amount of gas still available to execution

                _impl: address of the contract to delegate to

                ptr: to pass copied data

                calldatasize: loads the size of `bytes memory data`, same as msg.data.length

                0, 0: These are for the `out` and `outsize` params. Because the output could be dynamic,
                        these are set to 0, 0 so the output data will not be written to memory. The output
                        data will be read using `returndatasize` and `returdatacopy` instead.

                result: This will be 0 if the call fails and 1 if it succeeds
            */
            let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0)
            /*

            */
            /*
                ptr current points to the value stored at 0x40,
                because we assigned it like ptr := mload(0x40).
                Because we use 0x40 as a free memory pointer,
                we want to make sure that the next time we want to allocate memory,
                we aren't overwriting anything important.
                So, by adding ptr and returndatasize,
                we get a memory location beyond the end of the data we will be copying to ptr.
                We place this in at 0x40, and any reads from 0x40 will now read from free memory
            */
            mstore(0x40, add(ptr, returndatasize))
            /*
                `returndatacopy` is an Opcode that copies the last return data to a slot. `ptr` is the
                    slot it will copy to, 0 means copy from the beginning of the return data, and size is
                    the amount of data to copy.
                `returndatasize` is an Opcode that gives us the size of the last return data. In this case, that is the size of the data returned from delegatecall
            */
            returndatacopy(ptr, 0, returndatasize)

            /*
                if `result` is 0, revert.
                if `result` is 1, return `size` amount of data from `ptr`. This is the data that was
                copied to `ptr` from the delegatecall return data
            */
            switch result
                case 0 {
                    revert(ptr, returndatasize)
                }
                default {
                    return(ptr, returndatasize)
                }
        }
    }
}

// File: contracts/upgradeability/UpgradeabilityStorage.sol

pragma solidity 0.4.24;

/**
 * @title UpgradeabilityStorage
 * @dev This contract holds all the necessary state variables to support the upgrade functionality
 */
contract UpgradeabilityStorage {
    // Version name of the current implementation
    uint256 internal _version;

    // Address of the current implementation
    address internal _implementation;

    /**
    * @dev Tells the version name of the current implementation
    * @return uint256 representing the name of the current version
    */
    function version() external view returns (uint256) {
        return _version;
    }

    /**
    * @dev Tells the address of the current implementation
    * @return address of the current implementation
    */
    function implementation() public view returns (address) {
        return _implementation;
    }
}

// File: contracts/upgradeability/UpgradeabilityProxy.sol

pragma solidity 0.4.24;




/**
 * @title UpgradeabilityProxy
 * @dev This contract represents a proxy where the implementation address to which it will delegate can be upgraded
 */
contract UpgradeabilityProxy is Proxy, UpgradeabilityStorage {
    /**
    * @dev This event will be emitted every time the implementation gets upgraded
    * @param version representing the version name of the upgraded implementation
    * @param implementation representing the address of the upgraded implementation
    */
    event Upgraded(uint256 version, address indexed implementation);

    /**
    * @dev Upgrades the implementation address
    * @param version representing the version name of the new implementation to be set
    * @param implementation representing the address of the new implementation to be set
    */
    function _upgradeTo(uint256 version, address implementation) internal {
        require(_implementation != implementation);

        // This additional check verifies that provided implementation is at least a contract
        require(AddressUtils.isContract(implementation));

        // This additional check guarantees that new version will be at least greater than the privios one,
        // so it is impossible to reuse old versions, or use the last version twice
        require(version > _version);

        _version = version;
        _implementation = implementation;
        emit Upgraded(version, implementation);
    }
}

// File: contracts/upgradeability/UpgradeabilityOwnerStorage.sol

pragma solidity 0.4.24;

/**
 * @title UpgradeabilityOwnerStorage
 * @dev This contract keeps track of the upgradeability owner
 */
contract UpgradeabilityOwnerStorage {
    // Owner of the contract
    address internal _upgradeabilityOwner;

    /**
    * @dev Tells the address of the owner
    * @return the address of the owner
    */
    function upgradeabilityOwner() public view returns (address) {
        return _upgradeabilityOwner;
    }

    /**
    * @dev Sets the address of the owner
    */
    function setUpgradeabilityOwner(address newUpgradeabilityOwner) internal {
        _upgradeabilityOwner = newUpgradeabilityOwner;
    }
}

// File: contracts/upgradeability/OwnedUpgradeabilityProxy.sol

pragma solidity 0.4.24;



/**
 * @title OwnedUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with basic authorization control functionalities
 */
contract OwnedUpgradeabilityProxy is UpgradeabilityOwnerStorage, UpgradeabilityProxy {
    /**
    * @dev Event to show ownership has been transferred
    * @param previousOwner representing the address of the previous owner
    * @param newOwner representing the address of the new owner
    */
    event ProxyOwnershipTransferred(address previousOwner, address newOwner);

    /**
    * @dev the constructor sets the original owner of the contract to the sender account.
    */
    constructor() public {
        setUpgradeabilityOwner(msg.sender);
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyUpgradeabilityOwner() {
        require(msg.sender == upgradeabilityOwner());
        /* solcov ignore next */
        _;
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferProxyOwnership(address newOwner) external onlyUpgradeabilityOwner {
        require(newOwner != address(0));
        emit ProxyOwnershipTransferred(upgradeabilityOwner(), newOwner);
        setUpgradeabilityOwner(newOwner);
    }

    /**
    * @dev Allows the upgradeability owner to upgrade the current version of the proxy.
    * @param version representing the version name of the new implementation to be set.
    * @param implementation representing the address of the new implementation to be set.
    */
    function upgradeTo(uint256 version, address implementation) public onlyUpgradeabilityOwner {
        _upgradeTo(version, implementation);
    }

    /**
    * @dev Allows the upgradeability owner to upgrade the current version of the proxy and call the new implementation
    * to initialize whatever is needed through a low level call.
    * @param version representing the version name of the new implementation to be set.
    * @param implementation representing the address of the new implementation to be set.
    * @param data represents the msg.data to bet sent in the low level call. This parameter may include the function
    * signature of the implementation to be called with the needed payload
    */
    function upgradeToAndCall(uint256 version, address implementation, bytes data)
        external
        payable
        onlyUpgradeabilityOwner
    {
        upgradeTo(version, implementation);
        // solhint-disable-next-line avoid-call-value
        require(address(this).call.value(msg.value)(data));
    }
}

// File: contracts/upgradeability/EternalStorageProxy.sol

pragma solidity 0.4.24;



/**
 * @title EternalStorageProxy
 * @dev This proxy holds the storage of the token contract and delegates every call to the current implementation set.
 * Besides, it allows to upgrade the token's behaviour towards further implementations, and provides basic
 * authorization control functionalities
 */
// solhint-disable-next-line no-empty-blocks
contract EternalStorageProxy is EternalStorage, OwnedUpgradeabilityProxy {}

Contract ABI

[{"constant":false,"inputs":[{"name":"version","type":"uint256"},{"name":"implementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeabilityOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"version","type":"uint256"},{"name":"implementation","type":"address"},{"name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"version","type":"uint256"},{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]

60806040526100163364010000000061001b810204565b61003d565b60068054600160a060020a031916600160a060020a0392909216919091179055565b6103e08061004c6000396000f3006080604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633ad06d1681146100c257806354fd4d50146100e85780635c60da1b1461010f5780636fde820214610140578063a9c45fcb14610155578063f1739cae14610179575b600061008161019a565b9050600160a060020a038116151561009857600080fd5b60405136600082376000803683855af43d82016040523d6000833e8080156100be573d83f35b3d83fd5b3480156100ce57600080fd5b506100e6600435600160a060020a03602435166101a9565b005b3480156100f457600080fd5b506100fd6101d3565b60408051918252519081900360200190f35b34801561011b57600080fd5b5061012461019a565b60408051600160a060020a039092168252519081900360200190f35b34801561014c57600080fd5b506101246101d9565b6100e6600480359060248035600160a060020a0316916044359182019101356101e8565b34801561018557600080fd5b506100e6600160a060020a0360043516610250565b600854600160a060020a031690565b6101b16101d9565b600160a060020a031633146101c557600080fd5b6101cf82826102d8565b5050565b60075490565b600654600160a060020a031690565b6101f06101d9565b600160a060020a0316331461020457600080fd5b61020e84846101a9565b30600160a060020a03163483836040518083838082843782019150509250505060006040518083038185875af192505050151561024a57600080fd5b50505050565b6102586101d9565b600160a060020a0316331461026c57600080fd5b600160a060020a038116151561028157600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96102aa6101d9565b60408051600160a060020a03928316815291841660208301528051918290030190a16102d58161037d565b50565b600854600160a060020a03828116911614156102f357600080fd5b6102fc816103ac565b151561030757600080fd5b600754821161031557600080fd5b600782905560088054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911681179091556040805184815290517f4289d6195cf3c2d2174adf98d0e19d4d2d08887995b99cb7b100e7ffe795820e9181900360200190a25050565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000903b11905600a165627a7a7230582078bac02704e0c07980df83f6082a0453ef0e0259d68860b6e0f2c5dc0d11c56c0029

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.