Token Gelato Network Token

 

Overview ERC-20

Price
$0.00 @ 0.000000 FTM
Fully Diluted Market Cap
Total Supply:
420,690,000 GEL

Holders:
72 addresses

Transfers:
-

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

OVERVIEW

Automated smart contract executions on Ethereum.

Market

Volume (24H):$120,872.00
Market Capitalization:$9,822,383.00
Circulating Supply:60,477,493.00 GEL
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EIP173Proxy

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 2 : EIP173Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.12;

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.12;

// 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
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

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

6080604052604051620009e3380380620009e3833981016040819052610024916101ea565b61002e838261003f565b6100378261011b565b5050506102d6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a3815115610116576000836001600160a01b0316836040516100c091906102ba565b600060405180830381855af49150503d80600081146100fb576040519150601f19603f3d011682016040523d82523d6000602084013e610100565b606091505b5050905080610114573d806000803e806000fd5b505b505050565b6000610134600080516020620009c38339815191525490565b905081600080516020620009c383398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80516001600160a01b03811681146101a357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156101d95781810151838201526020016101c1565b838111156101145750506000910152565b6000806000606084860312156101ff57600080fd5b6102088461018c565b92506102166020850161018c565b60408501519092506001600160401b038082111561023357600080fd5b818601915086601f83011261024757600080fd5b815181811115610259576102596101a8565b604051601f8201601f19908116603f01168101908382118183101715610281576102816101a8565b8160405282815289602084870101111561029a57600080fd5b6102ab8360208301602088016101be565b80955050505050509250925092565b600082516102cc8184602087016101be565b9190910192915050565b6106dd80620002e66000396000f3fe60806040526004361061004e5760003560e01c806301ffc9a71461009b5780633659cfe6146100d05780633e47158c146100f05780634f1ef2861461011d5780638356ca4f1461013057610091565b366100915760405162461bcd60e51b815260206004820152600e60248201526d115512115497d491529150d5115160921b60448201526064015b60405180910390fd5b610099610150565b005b3480156100a757600080fd5b506100bb6100b636600461051e565b61019b565b60405190151581526020015b60405180910390f35b3480156100dc57600080fd5b506100996100eb366004610564565b610293565b3480156100fc57600080fd5b506101056102ef565b6040516001600160a01b0390911681526020016100c7565b61009961012b36600461057f565b61030c565b34801561013c57600080fd5b5061009961014b366004610564565b610391565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610191578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b0319831614806101cc57506307f5828d60e41b6001600160e01b03198316145b156101d957506001919050565b6001600160e01b031980831614156101f357506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa92505050801561027f575060408051601f3d908101601f1916820190925261027c91810190610602565b60015b61028c5750600092915050565b9392505050565b600080516020610688833981519152546001600160a01b0316336001600160a01b0316146102d35760405162461bcd60e51b815260040161008890610624565b6102ec81604051806020016040528060008152506103da565b50565b60006103076000805160206106888339815191525490565b905090565b600080516020610688833981519152546001600160a01b0316336001600160a01b03161461034c5760405162461bcd60e51b815260040161008890610624565b61038c8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103da92505050565b505050565b600080516020610688833981519152546001600160a01b0316336001600160a01b0316146103d15760405162461bcd60e51b815260040161008890610624565b6102ec816104af565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511561038c576000836001600160a01b03168360405161045b919061064c565b600060405180830381855af49150503d8060008114610496576040519150601f19603f3d011682016040523d82523d6000602084013e61049b565b606091505b5050905080610195573d806000803e806000fd5b60006104c76000805160206106888339815191525490565b90508160008051602061068883398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b60006020828403121561053057600080fd5b81356001600160e01b03198116811461028c57600080fd5b80356001600160a01b038116811461055f57600080fd5b919050565b60006020828403121561057657600080fd5b61028c82610548565b60008060006040848603121561059457600080fd5b61059d84610548565b9250602084013567ffffffffffffffff808211156105ba57600080fd5b818601915086601f8301126105ce57600080fd5b8135818111156105dd57600080fd5b8760208285010111156105ef57600080fd5b6020830194508093505050509250925092565b60006020828403121561061457600080fd5b8151801515811461028c57600080fd5b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b6000825160005b8181101561066d5760208186018101518583015201610653565b8181111561067c576000828501525b50919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a26469706673582212206893e23a61ee2d63ab664eca375cdafbca70e86a5d703cde602753d38b8eddec64736f6c634300080c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000091e9c9e0e887275bd992743687717bcd1beef1420000000000000000000000006404abbba1921267a7d8199300973fef7dbb0b3a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001046fe0e395000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000015bfc9298de952e2f400000000000000000000000000000000000000000000000000000000000000000001447656c61746f204e6574776f726b20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000347454c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

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

00000000000000000000000091e9c9e0e887275bd992743687717bcd1beef1420000000000000000000000006404abbba1921267a7d8199300973fef7dbb0b3a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001046fe0e395000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000015bfc9298de952e2f400000000000000000000000000000000000000000000000000000000000000000001447656c61746f204e6574776f726b20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000347454c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : implementationAddress (address): 0x91e9c9e0e887275bd992743687717bcd1beef142
Arg [1] : adminAddress (address): 0x6404abbba1921267a7d8199300973fef7dbb0b3a
Arg [2] : data (bytes): 0x6fe0e395000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000015bfc9298de952e2f400000000000000000000000000000000000000000000000000000000000000000001447656c61746f204e6574776f726b20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000347454c0000000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 00000000000000000000000091e9c9e0e887275bd992743687717bcd1beef142
Arg [1] : 0000000000000000000000006404abbba1921267a7d8199300973fef7dbb0b3a
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000104
Arg [4] : 6fe0e39500000000000000000000000000000000000000000000000000000000
Arg [5] : 0000008000000000000000000000000000000000000000000000000000000000
Arg [6] : 000000c000000000000000000000000000000000000000000000000000000000
Arg [7] : 000151800000000000000000000000000000000000000000015bfc9298de952e
Arg [8] : 2f40000000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000001447656c61746f204e6574776f726b20546f6b656e0000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000347454c00000000000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000000


Loading