Token BOTS EURO

 

Overview [ERC-20]

Max Total Supply:
30,994.000006 BOTS EURO

Holders:
20

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

Out of the many advantages that EURB contributes to digital financial markets, they are allowing users to transact in a trusted and secure way with a Euro-backed and denominated asset. As it allows the oversight of financial regulators, they created a Smart Euro.

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Proxy

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Proxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

contract Proxy {
    bytes32 private constant implementationPosition =
        keccak256("implementation.contract:2022");
    bytes32 private constant proxyOwnerPosition =
        keccak256("owner.contract:2022");

    event Upgraded(address indexed implementation);
    event ProxyOwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor(address _impl) {
        _setUpgradeabilityOwner(msg.sender);
        _setImplementation(_impl);
    }

    modifier onlyProxyOwner() {
        require(msg.sender == proxyOwner(), "Proxy: Caller not proxy owner");
        _;
    }

    function proxyOwner() public view returns (address owner) {
        bytes32 position = proxyOwnerPosition;
        assembly {
            owner := sload(position)
        }
    }

    function implementation() public view returns (address impl) {
        bytes32 position = implementationPosition;
        assembly {
            impl := sload(position)
        }
    }

    function transferProxyOwnership(address _newOwner) public onlyProxyOwner {
        require(_newOwner != address(0), "Proxy: new owner is address zero");
        require(_newOwner != proxyOwner(), "Proxy: new owner is the current owner");
        emit ProxyOwnershipTransferred(proxyOwner(), _newOwner);
        _setUpgradeabilityOwner(_newOwner);
    }

    function upgradeTo(address _newImplementation) public onlyProxyOwner {
        address currentImplementation = implementation();
        require(currentImplementation != _newImplementation, "Proxy: new implementation is the current implementation");
        _setImplementation(_newImplementation);
        emit Upgraded(_newImplementation);
    }

    function _setImplementation(address _newImplementation) internal {
        bytes32 position = implementationPosition;
        assembly {
            sstore(position, _newImplementation)
        }
    }

    function _setUpgradeabilityOwner(address _newProxyOwner) internal {
        bytes32 position = proxyOwnerPosition;
        assembly {
            sstore(position, _newProxyOwner)
        }
    }

    function transferOwnership(address /*_account */) external onlyProxyOwner{
        _delegatecall();
    }

    function _delegatecall() internal {
        address _impl = implementation();
        require(_impl != address(0), "Impl address is 0");

        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(
                sub(gas(), 10000),
                _impl,
                ptr,
                calldatasize(),
                0,
                0
            )
            let size := returndatasize()
            returndatacopy(ptr, 0, size)

            switch result
            case 0 {
                revert(ptr, size)
            }
            default {
                return(ptr, size)
            }
        }
    }

    fallback() external {
        _delegatecall();
    }

    receive() external payable {
        _delegatecall();
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_impl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161065c38038061065c83398101604081905261002f91610085565b610057337fe5e0c3d198ec6f12dff112a0be8a35a365b3a1eac673f5a3e1f5ca9e6e914f2555565b61007f817f25f79f54c2493e1fcb8ec8142a20f642f9b285503924a428782f2da3ab98279355565b506100b5565b60006020828403121561009757600080fd5b81516001600160a01b03811681146100ae57600080fd5b9392505050565b610598806100c46000396000f3fe60806040526004361061004e5760003560e01c8063025313a2146100725780633659cfe6146100ac5780635c60da1b146100cc578063f1739cae146100ee578063f2fde38b1461010e5761005d565b3661005d5761005b61012e565b005b34801561006957600080fd5b5061005b61012e565b34801561007e57600080fd5b50600080516020610543833981519152545b6040516001600160a01b03909116815260200160405180910390f35b3480156100b857600080fd5b5061005b6100c73660046104bb565b6101c0565b3480156100d857600080fd5b5060008051602061052383398151915254610090565b3480156100fa57600080fd5b5061005b6101093660046104bb565b6102f0565b34801561011a57600080fd5b5061005b6101293660046104bb565b610473565b60006101466000805160206105238339815191525490565b90506001600160a01b0381166101975760405162461bcd60e51b81526020600482015260116024820152700496d706c2061646472657373206973203607c1b60448201526064015b60405180910390fd5b60405136600082376000803683856127105a03f43d806000843e8180156101bc578184f35b8184fd5b600080516020610543833981519152546001600160a01b0316336001600160a01b0316146102005760405162461bcd60e51b815260040161018e906104eb565b60006102186000805160206105238339815191525490565b9050816001600160a01b0316816001600160a01b031614156102a25760405162461bcd60e51b815260206004820152603760248201527f50726f78793a206e657720696d706c656d656e746174696f6e2069732074686560448201527f2063757272656e7420696d706c656d656e746174696f6e000000000000000000606482015260840161018e565b6102b88260008051602061052383398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b600080516020610543833981519152546001600160a01b0316336001600160a01b0316146103305760405162461bcd60e51b815260040161018e906104eb565b6001600160a01b0381166103865760405162461bcd60e51b815260206004820181905260248201527f50726f78793a206e6577206f776e65722069732061646472657373207a65726f604482015260640161018e565b600080516020610543833981519152546001600160a01b0316816001600160a01b031614156104055760405162461bcd60e51b815260206004820152602560248201527f50726f78793a206e6577206f776e6572206973207468652063757272656e742060448201526437bbb732b960d91b606482015260840161018e565b806001600160a01b03166104256000805160206105438339815191525490565b6001600160a01b03167f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd960405160405180910390a36104708160008051602061054383398151915255565b50565b600080516020610543833981519152546001600160a01b0316336001600160a01b0316146104b35760405162461bcd60e51b815260040161018e906104eb565b61047061012e565b6000602082840312156104cd57600080fd5b81356001600160a01b03811681146104e457600080fd5b9392505050565b6020808252601d908201527f50726f78793a2043616c6c6572206e6f742070726f7879206f776e657200000060408201526060019056fe25f79f54c2493e1fcb8ec8142a20f642f9b285503924a428782f2da3ab982793e5e0c3d198ec6f12dff112a0be8a35a365b3a1eac673f5a3e1f5ca9e6e914f25a264697066735822122042c952bcf8c7b02f00b63be60f4dbb18aaa186f4f9464ce25e15761c12082b8664736f6c63430008070033000000000000000000000000ff0dcc7a6c1649ffc33f8df0086582b6ba95a497

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ff0dcc7a6c1649ffc33f8df0086582b6ba95a497

-----Decoded View---------------
Arg [0] : _impl (address): 0xFf0dCc7A6C1649Ffc33f8Df0086582B6BA95a497

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ff0dcc7a6c1649ffc33f8df0086582b6ba95a497


A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.