POL Price: $0.453185 (-6.09%)
 

Overview

Max Total Supply

579.257317923696853049 stRAKIS-1

Holders

1,658

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
EIP173Proxy

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : EIP173Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.7;

import "./Proxy.sol";

interface ERC165 {
    function supportsInterface(bytes4 id) external view returns (bool);
}

///@notice Proxy implementing EIP173 for ownership management
contract EIP173Proxy is Proxy {
    // ////////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////

    event ProxyAdminTransferred(
        address indexed previousAdmin,
        address indexed newAdmin
    );

    // /////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////////////

    constructor(
        address implementationAddress,
        address adminAddress,
        bytes memory data
    ) payable {
        _setImplementation(implementationAddress, data);
        _setProxyAdmin(adminAddress);
    }

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

    function proxyAdmin() external view returns (address) {
        return _proxyAdmin();
    }

    function supportsInterface(bytes4 id) external view returns (bool) {
        if (id == 0x01ffc9a7 || id == 0x7f5828d0) {
            return true;
        }
        if (id == 0xFFFFFFFF) {
            return false;
        }

        ERC165 implementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            implementation := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
        }

        // Technically this is not standard compliant as ERC-165 require 30,000 gas which that call cannot ensure
        // because it is itself inside `supportsInterface` that might only get 30,000 gas.
        // In practise this is unlikely to be an issue.
        try implementation.supportsInterface(id) returns (bool support) {
            return support;
        } catch {
            return false;
        }
    }

    function transferProxyAdmin(address newAdmin) external onlyProxyAdmin {
        _setProxyAdmin(newAdmin);
    }

    function upgradeTo(address newImplementation) external onlyProxyAdmin {
        _setImplementation(newImplementation, "");
    }

    function upgradeToAndCall(address newImplementation, bytes calldata data)
        external
        payable
        onlyProxyAdmin
    {
        _setImplementation(newImplementation, data);
    }

    // /////////////////////// MODIFIERS ////////////////////////////////////////////////////////////////////////

    modifier onlyProxyAdmin() {
        require(msg.sender == _proxyAdmin(), "NOT_AUTHORIZED");
        _;
    }

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

    function _proxyAdmin() internal view returns (address adminAddress) {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            adminAddress := sload(
                0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
            )
        }
    }

    function _setProxyAdmin(address newAdmin) internal {
        address previousAdmin = _proxyAdmin();
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(
                0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103,
                newAdmin
            )
        }
        emit ProxyAdminTransferred(previousAdmin, newAdmin);
    }
}

File 2 of 2 : Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.7;

// EIP-1967
abstract contract Proxy {
    // /////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////////

    event ProxyImplementationUpdated(
        address indexed previousImplementation,
        address indexed newImplementation
    );

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

    // prettier-ignore
    receive() external payable virtual {
        revert("ETHER_REJECTED"); // explicit reject by default
    }

    fallback() external payable {
        _fallback();
    }

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

    function _fallback() internal {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            let implementationAddress := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                gas(),
                implementationAddress,
                0x0,
                calldatasize(),
                0,
                0
            )
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
            case 0 {
                revert(0, retSz)
            }
            default {
                return(0, retSz)
            }
        }
    }

    function _setImplementation(address newImplementation, bytes memory data)
        internal
    {
        address previousImplementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            previousImplementation := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
        }

        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc,
                newImplementation
            )
        }

        emit ProxyImplementationUpdated(
            previousImplementation,
            newImplementation
        );

        if (data.length > 0) {
            (bool success, ) = newImplementation.delegatecall(data);
            if (!success) {
                assembly {
                    // This assembly ensure the revert contains the exact string data
                    let returnDataSize := returndatasize()
                    returndatacopy(0, 0, returnDataSize)
                    revert(0, returnDataSize)
                }
            }
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"ProxyAdminTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ProxyImplementationUpdated","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"proxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051620009f2380380620009f2833981016040819052610024916101a8565b61002e838261003f565b6100378261011b565b5050506102d6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a3815115610116576000836001600160a01b0316836040516100c09190610278565b600060405180830381855af49150503d80600081146100fb576040519150601f19603f3d011682016040523d82523d6000602084013e610100565b606091505b5050905080610114573d806000803e806000fd5b505b505050565b6000610134600080516020620009d28339815191525490565b905081600080516020620009d283398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80516001600160a01b03811681146101a357600080fd5b919050565b6000806000606084860312156101bd57600080fd5b6101c68461018c565b92506101d46020850161018c565b60408501519092506001600160401b03808211156101f157600080fd5b818601915086601f83011261020557600080fd5b815181811115610217576102176102c0565b604051601f8201601f19908116603f0116810190838211818310171561023f5761023f6102c0565b8160405282815289602084870101111561025857600080fd5b610269836020830160208801610294565b80955050505050509250925092565b6000825161028a818460208701610294565b9190910192915050565b60005b838110156102af578181015183820152602001610297565b838111156101145750506000910152565b634e487b7160e01b600052604160045260246000fd5b6106ec80620002e66000396000f3fe60806040526004361061004e5760003560e01c806301ffc9a71461009b5780633659cfe6146100d05780633e47158c146100f05780634f1ef2861461011d5780638356ca4f1461013057610091565b366100915760405162461bcd60e51b815260206004820152600e60248201526d115512115497d491529150d5115160921b60448201526064015b60405180910390fd5b610099610150565b005b3480156100a757600080fd5b506100bb6100b6366004610609565b61019b565b60405190151581526020015b60405180910390f35b3480156100dc57600080fd5b506100996100eb366004610549565b6102a2565b3480156100fc57600080fd5b506101056102fe565b6040516001600160a01b0390911681526020016100c7565b61009961012b366004610564565b61031b565b34801561013c57600080fd5b5061009961014b366004610549565b6103a0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610191578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b0319831614806101cc57506307f5828d60e41b6001600160e01b03198316145b156101d957506001919050565b6001600160e01b031980831614156101f357506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b15801561025e57600080fd5b505afa92505050801561028e575060408051601f3d908101601f1916820190925261028b918101906105e7565b60015b61029b5750600092915050565b9392505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146102e25760405162461bcd60e51b81526004016100889061066e565b6102fb81604051806020016040528060008152506103e9565b50565b60006103166000805160206106978339815191525490565b905090565b600080516020610697833981519152546001600160a01b0316336001600160a01b03161461035b5760405162461bcd60e51b81526004016100889061066e565b61039b8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103e992505050565b505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146103e05760405162461bcd60e51b81526004016100889061066e565b6102fb816104be565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511561039b576000836001600160a01b03168360405161046a9190610633565b600060405180830381855af49150503d80600081146104a5576040519150601f19603f3d011682016040523d82523d6000602084013e6104aa565b606091505b5050905080610195573d806000803e806000fd5b60006104d66000805160206106978339815191525490565b90508160008051602061069783398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80356001600160a01b038116811461054457600080fd5b919050565b60006020828403121561055b57600080fd5b61029b8261052d565b60008060006040848603121561057957600080fd5b6105828461052d565b9250602084013567ffffffffffffffff8082111561059f57600080fd5b818601915086601f8301126105b357600080fd5b8135818111156105c257600080fd5b8760208285010111156105d457600080fd5b6020830194508093505050509250925092565b6000602082840312156105f957600080fd5b8151801515811461029b57600080fd5b60006020828403121561061b57600080fd5b81356001600160e01b03198116811461029b57600080fd5b6000825160005b81811015610654576020818601810151858301520161063a565b81811115610663576000828501525b509190910192915050565b6020808252600e908201526d1393d517d055551213d49256915160921b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a26469706673582212201cbd2f29930decd2c6b4995a7ebce696b9e6fcddc9b171f6268877f44f2595cf64736f6c63430008070033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000016bb396868cc76d179533a18ed6b11a1ec8bd49a000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4cc2a9a5b000000000000000000000000dc0eca1d69ab51c2b2171c870a1506499081da5b000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c0000000000000000000000003755ceaa62f70b989f1de71d6b868ced2dad0d320000000000000000000000009d9208c87dc9b3a458af62f510fdec401a08ddc00000000000000000000000009a1cf3931e682c32acf35b1d238090560b4815e5000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061004e5760003560e01c806301ffc9a71461009b5780633659cfe6146100d05780633e47158c146100f05780634f1ef2861461011d5780638356ca4f1461013057610091565b366100915760405162461bcd60e51b815260206004820152600e60248201526d115512115497d491529150d5115160921b60448201526064015b60405180910390fd5b610099610150565b005b3480156100a757600080fd5b506100bb6100b6366004610609565b61019b565b60405190151581526020015b60405180910390f35b3480156100dc57600080fd5b506100996100eb366004610549565b6102a2565b3480156100fc57600080fd5b506101056102fe565b6040516001600160a01b0390911681526020016100c7565b61009961012b366004610564565b61031b565b34801561013c57600080fd5b5061009961014b366004610549565b6103a0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610191578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b0319831614806101cc57506307f5828d60e41b6001600160e01b03198316145b156101d957506001919050565b6001600160e01b031980831614156101f357506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b15801561025e57600080fd5b505afa92505050801561028e575060408051601f3d908101601f1916820190925261028b918101906105e7565b60015b61029b5750600092915050565b9392505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146102e25760405162461bcd60e51b81526004016100889061066e565b6102fb81604051806020016040528060008152506103e9565b50565b60006103166000805160206106978339815191525490565b905090565b600080516020610697833981519152546001600160a01b0316336001600160a01b03161461035b5760405162461bcd60e51b81526004016100889061066e565b61039b8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103e992505050565b505050565b600080516020610697833981519152546001600160a01b0316336001600160a01b0316146103e05760405162461bcd60e51b81526004016100889061066e565b6102fb816104be565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511561039b576000836001600160a01b03168360405161046a9190610633565b600060405180830381855af49150503d80600081146104a5576040519150601f19603f3d011682016040523d82523d6000602084013e6104aa565b606091505b5050905080610195573d806000803e806000fd5b60006104d66000805160206106978339815191525490565b90508160008051602061069783398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80356001600160a01b038116811461054457600080fd5b919050565b60006020828403121561055b57600080fd5b61029b8261052d565b60008060006040848603121561057957600080fd5b6105828461052d565b9250602084013567ffffffffffffffff8082111561059f57600080fd5b818601915086601f8301126105b357600080fd5b8135818111156105c257600080fd5b8760208285010111156105d457600080fd5b6020830194508093505050509250925092565b6000602082840312156105f957600080fd5b8151801515811461029b57600080fd5b60006020828403121561061b57600080fd5b81356001600160e01b03198116811461029b57600080fd5b6000825160005b81811015610654576020818601810151858301520161063a565b81811115610663576000828501525b509190910192915050565b6020808252600e908201526d1393d517d055551213d49256915160921b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a26469706673582212201cbd2f29930decd2c6b4995a7ebce696b9e6fcddc9b171f6268877f44f2595cf64736f6c63430008070033

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

00000000000000000000000016bb396868cc76d179533a18ed6b11a1ec8bd49a000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4cc2a9a5b000000000000000000000000dc0eca1d69ab51c2b2171c870a1506499081da5b000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c0000000000000000000000003755ceaa62f70b989f1de71d6b868ced2dad0d320000000000000000000000009d9208c87dc9b3a458af62f510fdec401a08ddc00000000000000000000000009a1cf3931e682c32acf35b1d238090560b4815e5000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : implementationAddress (address): 0x16Bb396868Cc76D179533A18ED6B11a1ec8bd49a
Arg [1] : adminAddress (address): 0xAa2E0c5c85ACb7717e58060AB3c96d2B184EE07C
Arg [2] : data (bytes): 0xcc2a9a5b000000000000000000000000dc0eca1d69ab51c2b2171c870a1506499081da5b000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c0000000000000000000000003755ceaa62f70b989f1de71d6b868ced2dad0d320000000000000000000000009d9208c87dc9b3a458af62f510fdec401a08ddc00000000000000000000000009a1cf3931e682c32acf35b1d238090560b4815e5000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c

-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 00000000000000000000000016bb396868cc76d179533a18ed6b11a1ec8bd49a
Arg [1] : 000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b184ee07c
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c4
Arg [4] : cc2a9a5b000000000000000000000000dc0eca1d69ab51c2b2171c870a150649
Arg [5] : 9081da5b000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b
Arg [6] : 184ee07c0000000000000000000000003755ceaa62f70b989f1de71d6b868ced
Arg [7] : 2dad0d320000000000000000000000009d9208c87dc9b3a458af62f510fdec40
Arg [8] : 1a08ddc00000000000000000000000009a1cf3931e682c32acf35b1d23809056
Arg [9] : 0b4815e5000000000000000000000000aa2e0c5c85acb7717e58060ab3c96d2b
Arg [10] : 184ee07c00000000000000000000000000000000000000000000000000000000


Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.