Contract 0x162e898bd0aacb578c8d5f8d6ca588c13d2a383f 9

Contract Overview

Gnosis Chain: BSC-xDAI AMB
Balance:
0 xDAI

xDAI Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x778c9f11ac3de0f55825b6e7dd46afbda7067cd6d8323bc0deadc98103aae0fcSubmit Signature324534112024-02-14 20:37:408 days 1 hr agoGnosis: Deployer 5 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000169941
0xe4cb83885ebf9c53a20e74e6259c2740cdce1df4efddc6e5663da234cc8266abSubmit Signature324534112024-02-14 20:37:408 days 1 hr ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000545412
0xfffa0e39bdada653aa94db3315327628a5f075e230d450e5704ed77b15f1aab4Submit Signature324534112024-02-14 20:37:408 days 1 hr agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.001056516
0xf4a54b0dcd0e3f37b44ef80ac3e6a7fb87c87517aef87eed1684435445b2c0f8Submit Signature322653042024-02-03 8:14:5019 days 13 hrs agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000227084
0x7af3e4ae4f9808e743b95ad6737fe411d1fbcd720d698007c1662085b43707daSubmit Signature322653042024-02-03 8:14:5019 days 13 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000727664
0xa4c134b538a423f8a72cbe9f6bcbfa656190043d6518e451964818361bf5a054Submit Signature322653032024-02-03 8:14:4519 days 13 hrs agoGnosis: Deployer 5 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.001408784
0x3b979aa35c6457b7f76ee4f09d7f54fef2053e4f5dadac01899dea36ffeeb180Submit Signature322651322024-02-03 7:59:3019 days 14 hrs agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000319472441
0x2e8b437d14d23089568ac79f094ae6f7d4c807cf3e9fcae2be40e838076c7f2fSubmit Signature322651322024-02-03 7:59:3019 days 14 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.001023446772
0x40decaf509bf578369e38554f5ba1f8a57d68ba6fdbdef6f25cf86a7962a1431Submit Signature322651322024-02-03 7:59:3019 days 14 hrs agoGnosis: Deployer 5 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.001982083656
0xd28f850fec668959de9fb663c0459229b2b978ef420460052720895a7385cb0aSubmit Signature322331552024-02-01 8:53:3021 days 13 hrs agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000545676
0x0af1393f2ae93558b72641231ba3a3607dcaffbe9471f1192c82ffac7e2de00bSubmit Signature322331542024-02-01 8:53:2521 days 13 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.00105648
0x0f3c9778b9b02430bb30accd7c397a3f4226e91fbf517ea898ecc027169ddf43Execute Affirmat...320847832024-01-23 7:47:1030 days 14 hrs ago0x8a99586472711f0b7148bb503bb23eb6b30f2325 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000074054831
0xedaf65d96c26dd38d2f7d5d018a1f846a8d22b1b0d17188d9cfe3aea07e8b3f0Submit Signature320820022024-01-23 3:44:0530 days 18 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000170013
0x95698eb16d6d559727bd1178da5aa06278496f63388c32d38307f06eabab1909Submit Signature320820022024-01-23 3:44:0530 days 18 hrs agoGnosis: Deployer 5 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000545448
0x2d8c367db3f7991548c0a81187ea7888aca70366d82c66c263c9c33da1ad7298Submit Signature320820022024-01-23 3:44:0530 days 18 hrs agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.001056516
0xe0f0929478d03297c58a9c6cdd238ce037ec5ded7afc3f3f50fb35e5064621c9Submit Signature320819342024-01-23 3:38:1030 days 18 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000170330645
0x28275387b53b9e1b5c737b0e19c8838022b9a57f153419cb91263b4f3c9c2323Submit Signature320819342024-01-23 3:38:1030 days 18 hrs agoGnosis: Deployer 5 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000545930092
0x3c933329a3951d32fffc40861ad262b7bfe0267d38fc25ecfcd7350509ede021Submit Signature320819342024-01-23 3:38:1030 days 18 hrs agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.00105748356
0x35bea77fb3e632372cc488c5061f495bed465a565e97835e17b19c8803b63f0cSubmit Signature320816152024-01-23 3:09:4030 days 18 hrs agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000170049
0x16eef8018e91c01d6b684d21c1c682866371c1e49f8b80c5ca60b24124381b5aSubmit Signature320816152024-01-23 3:09:4030 days 18 hrs agoGnosis: Deployer 5 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000545484
0x457f72eb756b6f73e9b953daa1c6ab2fc566415449e05d801ad416cf2515e4c4Submit Signature320816152024-01-23 3:09:4030 days 18 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.001056324
0x1f4592c3df90d1655b5f28166e586ccd0c8323e9c3c60d4f6c16fb0ed0ace501Submit Signature318452202024-01-08 12:54:4545 days 9 hrs agoGnosis: Deployer 5 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.000770396532
0x1861eba5f6727b315949e9ad8afed78ee083cb98dfe17a379e5d4e115c2032c6Submit Signature318452202024-01-08 12:54:4545 days 9 hrs agoGnosis: Deployer 4 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.002428235499
0x99d34bfa605f8d01d3074953aa1b032754a9054c810d311035bedc3dce71f3a2Submit Signature318452182024-01-08 12:54:3545 days 9 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.004716362281
0x176de37a13e96b7720c940c4e81dab8e3179a7dea694d31ac8c0b25420a5d0d7Submit Signature318450872024-01-08 12:43:0545 days 9 hrs ago0x8c33f06fc4c1aa5b03945785043f33e4355aea20 IN  Gnosis Chain: BSC-xDAI AMB0 xDAI0.001142073658
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Index Block
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x75df5af045d91108662d8080fd1fefad6aa0bb59
The constructor portion of the code might be different and could alter the actual behaviour of the contract

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

Deployed Bytecode

0x6080604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633ad06d1681146100c257806354fd4d50146100e85780635c60da1b1461010f5780636fde820214610140578063a9c45fcb14610155578063f1739cae14610179575b600061008161019a565b9050600160a060020a038116151561009857600080fd5b60405136600082376000803683855af43d82016040523d6000833e8080156100be573d83f35b3d83fd5b3480156100ce57600080fd5b506100e6600435600160a060020a03602435166101a9565b005b3480156100f457600080fd5b506100fd6101d3565b60408051918252519081900360200190f35b34801561011b57600080fd5b5061012461019a565b60408051600160a060020a039092168252519081900360200190f35b34801561014c57600080fd5b506101246101d9565b6100e6600480359060248035600160a060020a0316916044359182019101356101e8565b34801561018557600080fd5b506100e6600160a060020a0360043516610250565b600854600160a060020a031690565b6101b16101d9565b600160a060020a031633146101c557600080fd5b6101cf82826102d8565b5050565b60075490565b600654600160a060020a031690565b6101f06101d9565b600160a060020a0316331461020457600080fd5b61020e84846101a9565b30600160a060020a03163483836040518083838082843782019150509250505060006040518083038185875af192505050151561024a57600080fd5b50505050565b6102586101d9565b600160a060020a0316331461026c57600080fd5b600160a060020a038116151561028157600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96102aa6101d9565b60408051600160a060020a03928316815291841660208301528051918290030190a16102d58161037d565b50565b600854600160a060020a03828116911614156102f357600080fd5b6102fc816103ac565b151561030757600080fd5b600754821161031557600080fd5b600782905560088054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911681179091556040805184815290517f4289d6195cf3c2d2174adf98d0e19d4d2d08887995b99cb7b100e7ffe795820e9181900360200190a25050565b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000903b11905600a165627a7a7230582078bac02704e0c07980df83f6082a0453ef0e0259d68860b6e0f2c5dc0d11c56c0029

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.