Contract 0x1e0507046130c31deb20ec2f870ad070ff266079 1

Contract Overview

Balance:
0 xDAI

xDAI Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x07612d85628c04e9fbf3e96b5e485d47a3d26f21a33b21bc2cec3460560ca2afClaim Tokens244751142022-10-05 12:25:15116 days 10 hrs ago0x1f9d85133b0f270f6c811aa03557ece8e7de4999 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.0000767225
0xdf8cac6177bf3ecd9e50d39a070800bdeed0b50b4b78330637d6dbf048fbd29eRelay Tokens244353572022-10-02 16:12:15119 days 6 hrs ago0xd54e4f8a55247487dd7c8c59f14ee5c0c2889477 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000250341001
0x201426d03d714d9f52bc44d2ba613a02f498648806a48297fee856b1d22975ffRelay Tokens244222322022-10-01 17:45:35120 days 5 hrs ago0x1f9d85133b0f270f6c811aa03557ece8e7de4999 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00022551
0x0b09d542d217f6e312015b41ce9185fcc811aa654ee5b93939fb914c5cc22e31Relay Tokens244222282022-10-01 17:45:10120 days 5 hrs ago0x1f9d85133b0f270f6c811aa03557ece8e7de4999 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00022557
0xbe1da21baab2560a0eb761471c92266aa732c6ec15984488e3d3e9ffd12172d2Relay Tokens243252402022-09-24 19:52:35127 days 2 hrs ago0xd54e4f8a55247487dd7c8c59f14ee5c0c2889477 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000271675501
0x94285194005df090188ee1ecfb5a9e381659683eccd1c470a5bc9541947058c5Relay Tokens211393652022-03-16 13:02:20319 days 9 hrs ago0x58dd1804818beb025d2f8d84299c855ad119d8c6 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000421952501
0x50c080165f7b9c443ea40089f6e00076bc938c584372e80f9d038e60f6ca9628Relay Tokens211392632022-03-16 12:53:50319 days 9 hrs ago0x58dd1804818beb025d2f8d84299c855ad119d8c6 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000109746
0x9c2372d8e950d43fcc6c9724c2e1fa63b11eb63f875bf094fc4816a838b9d8d9Transfer187881902021-10-28 5:08:03458 days 17 hrs ago0xd44856d346e79493aa4f7d4d3f4d26374a01f664 IN  0x1e0507046130c31deb20ec2f870ad070ff2660792 xDAI0.0052166
0x09e8bfa6b5dd3186a0552b7b9e025d5422ff4ace7cedb0eac03e1df5280ce801Transfer187881762021-10-28 5:06:45458 days 17 hrs ago0xd44856d346e79493aa4f7d4d3f4d26374a01f664 IN  0x1e0507046130c31deb20ec2f870ad070ff2660792 xDAI0.000021
0xe88af8bfa25d7f2e1e692a286ad17441c69c44166d4623ea3e9b0979dd595a61Transfer Proxy O...176775362021-08-20 11:39:20527 days 11 hrs ago0xb8ae138dd157811ad7f2ed6d839614e12fc17c68 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000024048
0x97797883caf4a6e2e6494b918fcb7b1801df64d1a1a2ecdd7850bf4023c05810Relay Tokens176767322021-08-20 10:18:00527 days 12 hrs ago0xb8ae138dd157811ad7f2ed6d839614e12fc17c68 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.0000967483
0x1192fd8d09b2439c5465e8ff79b5acb48d0c0d00fa48dfc82d9e557e64cc2143Relay Tokens174213342021-08-04 20:21:55543 days 2 hrs ago0x1c367cf89490a32429ace2f59cdcbd555247f986 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00307586
0x524a0a157d9ec9eaeb3e4a82530003fd5a1414c70cd0664c13fdc3a954e00416Relay Tokens174210352021-08-04 19:57:00543 days 2 hrs ago0x1c367cf89490a32429ace2f59cdcbd555247f986 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00307586
0x0530c9864e5bdbad4983494e174df4905b625e416487049c9e30f6effdca9b11Relay Tokens173805072021-08-02 10:21:05545 days 12 hrs ago0x1c367cf89490a32429ace2f59cdcbd555247f986 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00341762
0x157f26dc086bb4622d112d607bf38319144ab1664f398cfdcd0210a655e430bbTransfer Proxy O...162905002021-05-28 19:41:20611 days 3 hrs ago0xe248dd8b6a24d52f818a3573f8877785e4b1db63 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000028913
0xb571aa27cdcc692d0b2a918a1d014b7fd5a3fca36c34530ce2192ef75021f53dTransfer Ownersh...162904902021-05-28 19:40:30611 days 3 hrs ago0xe248dd8b6a24d52f818a3573f8877785e4b1db63 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000034915
0x49a97d8c8935658bbfd2b1a1d870f878df10d57b479bef189975a5992f37b299Upgrade To146850562021-02-23 4:10:50705 days 18 hrs ago0xe248dd8b6a24d52f818a3573f8877785e4b1db63 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000037673
0x7a7e8a54a3dc48944cd74dd687f7360a55ea70b552fc157a6b436081cec6f64fRelay Tokens142967422021-01-30 15:46:15729 days 7 hrs ago0x711aca028ecaea178ebc29c7059cfdb195facd37 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000140782
0x6ca54922a2326c47975bfe13ec0cf8bdd2f4432a379549c2e2d3966317b0887bRelay Tokens130732722020-11-18 3:22:30802 days 19 hrs ago0x711aca028ecaea178ebc29c7059cfdb195facd37 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.000155782
0xdae26e66957bff8bc911401373c0bb4ba943aa10825034fd031f94ccda7d924bRelay Tokens130732482020-11-18 3:20:25802 days 19 hrs ago0x711aca028ecaea178ebc29c7059cfdb195facd37 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00015577
0xa8529a9d413a011c8c9a189bb5fe674eb2e53de1de10bcd428e44f5f32cf5c44Relay Tokens124350012020-10-10 0:39:40841 days 22 hrs ago0xe10030b4f665adc91e8b20060251d6818528c130 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00015577
0xa9b74b0eb423251c259060926cb5cfbc19ef2fe652975bfeefea3e0bd6569a70Relay Tokens124207352020-10-09 4:37:05842 days 18 hrs ago0xe10030b4f665adc91e8b20060251d6818528c130 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00014077
0x9900b0eda7014e353b75eef39c67c4d8aef96dda80fe83b027523a4467a410cdRelay Tokens124155812020-10-08 21:21:05843 days 1 hr ago0xe10030b4f665adc91e8b20060251d6818528c130 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00014077
0xe7bb9b1a3fdddc85bcbb8ea26903e45e614293d4cab6825f6a380ca65cc45191Relay Tokens124155522020-10-08 21:18:30843 days 1 hr ago0xe10030b4f665adc91e8b20060251d6818528c130 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00014077
0x782d21629c921cf6bbe537f7525f3a564c8ed7807a463672124bb2bec88e8291Relay Tokens124155272020-10-08 21:16:10843 days 1 hr ago0xe10030b4f665adc91e8b20060251d6818528c130 IN  0x1e0507046130c31deb20ec2f870ad070ff2660790 xDAI0.00014077
[ 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.