ETH Price: $2,683.61 (+0.56%)
Gas: 19.5 Gwei

Token

Godjira Staking Contact (GS)
 

Overview

Max Total Supply

0 GS

Holders

218

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
0 GS
0x8da2583f7c85d967bee8bf7bf47175def3d20f01
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
UnstructuredProxy

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2022-04-09
*/

// File: @openzeppelin/contracts/proxy/Proxy.sol



pragma solidity ^0.8.0;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 *
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 *
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal virtual {
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback() external payable virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive() external payable virtual {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     *
     * If overriden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {}
}

// File: contracts/Proxy.sol


pragma solidity ^0.8.4;


contract UnstructuredProxy is Proxy {
    
    // Storage position of the address of the current implementation
    bytes32 private constant implementationPosition = 
        keccak256("org.smartdefi.implementation.address");
    
    // Storage position of the owner of the contract
    bytes32 private constant proxyOwnerPosition = 
        keccak256("org.smartdefi.proxy.owner");
    
    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyProxyOwner() {
        require (msg.sender == proxyOwner(), "Not Proxy owner");
        _;
    }
    
    /**
    * @dev the constructor sets owner
    */
    constructor() {
        _setUpgradeabilityOwner(msg.sender);
    }

    /**
     * @dev Allows the current owner to transfer ownership
     * @param _newOwner The address to transfer ownership to
     */
    function transferProxyOwnership(address _newOwner) 
        public onlyProxyOwner 
    {
        require(_newOwner != address(0));
        _setUpgradeabilityOwner(_newOwner);
    }
    
    /**
     * @dev Allows the proxy owner to upgrade the implementation
     * @param _impl address of the new implementation
     */
    function upgradeTo(address _impl) 
        public onlyProxyOwner
    {
        _upgradeTo(_impl);
    }
    
    /**
     * @dev Tells the address of the current implementation
     * @return impl address of the current implementation
     */
    function _implementation()
        internal
        view
        override
        returns (address impl)
    {
        bytes32 position = implementationPosition;
        assembly {
            impl := sload(position)
        }
    }

    function implementation() external view returns (address) {
        return _implementation();
    }
    
    /**
     * @dev Tells the address of the owner
     * @return owner the address of the owner
     */
    function proxyOwner() public view returns (address owner) {
        bytes32 position = proxyOwnerPosition;
        assembly {
            owner := sload(position)
        }
    }
    
    /**
     * @dev Sets the address of the current implementation
     * @param _newImplementation address of the new implementation
     */
    function _setImplementation(address _newImplementation) 
        internal 
    {
        bytes32 position = implementationPosition;
        assembly {
            sstore(position, _newImplementation)
        }
    }
    
    /**
     * @dev Upgrades the implementation address
     * @param _newImplementation address of the new implementation
     */
    function _upgradeTo(address _newImplementation) internal {
        address currentImplementation = _implementation();
        require(currentImplementation != _newImplementation);
        _setImplementation(_newImplementation);
    }
    
    /**
     * @dev Sets the address of the owner
     */
    function _setUpgradeabilityOwner(address _newProxyOwner) 
        internal 
    {
        bytes32 position = proxyOwnerPosition;
        assembly {
            sstore(position, _newProxyOwner)
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_impl","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506100203361002560201b60201c565b610051565b60007f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb90508181555050565b610504806100606000396000f3fe6080604052600436106100435760003560e01c8063025313a21461005c5780633659cfe6146100875780635c60da1b146100b0578063f1739cae146100db57610052565b3661005257610050610104565b005b61005a610104565b005b34801561006857600080fd5b5061007161011e565b60405161007e919061040b565b60405180910390f35b34801561009357600080fd5b506100ae60048036038101906100a991906103ac565b61014c565b005b3480156100bc57600080fd5b506100c56101cd565b6040516100d2919061040b565b60405180910390f35b3480156100e757600080fd5b5061010260048036038101906100fd91906103ac565b6101dc565b005b61010c610297565b61011c610117610299565b6102c7565b565b6000807f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb9050805491505090565b61015461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b890610426565b60405180910390fd5b6101ca816102ed565b50565b60006101d7610299565b905090565b6101e461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024890610426565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561028b57600080fd5b6102948161033f565b50565b565b6000807ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae9050805491505090565b3660008037600080366000845af43d6000803e80600081146102e8573d6000f35b3d6000fd5b60006102f7610299565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561033257600080fd5b61033b8261036b565b5050565b60007f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb90508181555050565b60007ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae90508181555050565b6000813590506103a6816104b7565b92915050565b6000602082840312156103c2576103c1610489565b5b60006103d084828501610397565b91505092915050565b6103e281610457565b82525050565b60006103f5600f83610446565b91506104008261048e565b602082019050919050565b600060208201905061042060008301846103d9565b92915050565b6000602082019050818103600083015261043f816103e8565b9050919050565b600082825260208201905092915050565b600061046282610469565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b7f4e6f742050726f7879206f776e65720000000000000000000000000000000000600082015250565b6104c081610457565b81146104cb57600080fd5b5056fea2646970667358221220da76c2af21c828b8e721029fbbf7a1bf578edb964b4856ee3b950e2f251e34a464736f6c63430008070033

Deployed Bytecode

0x6080604052600436106100435760003560e01c8063025313a21461005c5780633659cfe6146100875780635c60da1b146100b0578063f1739cae146100db57610052565b3661005257610050610104565b005b61005a610104565b005b34801561006857600080fd5b5061007161011e565b60405161007e919061040b565b60405180910390f35b34801561009357600080fd5b506100ae60048036038101906100a991906103ac565b61014c565b005b3480156100bc57600080fd5b506100c56101cd565b6040516100d2919061040b565b60405180910390f35b3480156100e757600080fd5b5061010260048036038101906100fd91906103ac565b6101dc565b005b61010c610297565b61011c610117610299565b6102c7565b565b6000807f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb9050805491505090565b61015461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b890610426565b60405180910390fd5b6101ca816102ed565b50565b60006101d7610299565b905090565b6101e461011e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024890610426565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561028b57600080fd5b6102948161033f565b50565b565b6000807ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae9050805491505090565b3660008037600080366000845af43d6000803e80600081146102e8573d6000f35b3d6000fd5b60006102f7610299565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561033257600080fd5b61033b8261036b565b5050565b60007f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb90508181555050565b60007ffede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae90508181555050565b6000813590506103a6816104b7565b92915050565b6000602082840312156103c2576103c1610489565b5b60006103d084828501610397565b91505092915050565b6103e281610457565b82525050565b60006103f5600f83610446565b91506104008261048e565b602082019050919050565b600060208201905061042060008301846103d9565b92915050565b6000602082019050818103600083015261043f816103e8565b9050919050565b600082825260208201905092915050565b600061046282610469565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b7f4e6f742050726f7879206f776e65720000000000000000000000000000000000600082015250565b6104c081610457565b81146104cb57600080fd5b5056fea2646970667358221220da76c2af21c828b8e721029fbbf7a1bf578edb964b4856ee3b950e2f251e34a464736f6c63430008070033

Deployed Bytecode Sourcemap

3352:3184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2928:11;:9;:11::i;:::-;3352:3184;;2697:11;:9;:11::i;:::-;3352:3184;5298:183;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4569:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5076:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4233:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2334:113;2383:17;:15;:17::i;:::-;2411:28;2421:17;:15;:17::i;:::-;2411:9;:28::i;:::-;2334:113::o;5298:183::-;5341:13;5367:16;3703:38;5367:37;;5454:8;5448:15;5439:24;;5424:50;5298:183;:::o;4569:107::-;3897:12;:10;:12::i;:::-;3883:26;;:10;:26;;;3874:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4651:17:::1;4662:5;4651:10;:17::i;:::-;4569:107:::0;:::o;5076:101::-;5125:7;5152:17;:15;:17::i;:::-;5145:24;;5076:101;:::o;4233:185::-;3897:12;:10;:12::i;:::-;3883:26;;:10;:26;;;3874:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4362:1:::1;4341:23;;:9;:23;;;;4333:32;;;::::0;::::1;;4376:34;4400:9;4376:23;:34::i;:::-;4233:185:::0;:::o;3236:46::-;:::o;4826:242::-;4921:12;4951:16;3531:49;4951:41;;5041:8;5035:15;5027:23;;5012:49;4826:242;:::o;924:918::-;1267:14;1264:1;1261;1248:34;1485:1;1482;1466:14;1463:1;1447:14;1440:5;1427:60;1564:16;1561:1;1558;1543:38;1604:6;1678:1;1673:68;;;;1792:16;1789:1;1782:27;1673:68;1709:16;1706:1;1699:27;6008:237;6076:29;6108:17;:15;:17::i;:::-;6076:49;;6169:18;6144:43;;:21;:43;;;;6136:52;;;;;;6199:38;6218:18;6199;:38::i;:::-;6065:180;6008:237;:::o;6318:215::-;6411:16;3703:38;6411:37;;6500:14;6490:8;6483:32;6468:58;6318:215;:::o;5639:222::-;5731:16;3531:49;5731:41;;5824:18;5814:8;5807:36;5792:62;5639:222;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:366::-;753:3;774:67;838:2;833:3;774:67;:::i;:::-;767:74;;850:93;939:3;850:93;:::i;:::-;968:2;963:3;959:12;952:19;;611:366;;;:::o;983:222::-;1076:4;1114:2;1103:9;1099:18;1091:26;;1127:71;1195:1;1184:9;1180:17;1171:6;1127:71;:::i;:::-;983:222;;;;:::o;1211:419::-;1377:4;1415:2;1404:9;1400:18;1392:26;;1464:9;1458:4;1454:20;1450:1;1439:9;1435:17;1428:47;1492:131;1618:4;1492:131;:::i;:::-;1484:139;;1211:419;;;:::o;1717:169::-;1801:11;1835:6;1830:3;1823:19;1875:4;1870:3;1866:14;1851:29;;1717:169;;;;:::o;1892:96::-;1929:7;1958:24;1976:5;1958:24;:::i;:::-;1947:35;;1892:96;;;:::o;1994:126::-;2031:7;2071:42;2064:5;2060:54;2049:65;;1994:126;;;:::o;2249:117::-;2358:1;2355;2348:12;2372:165;2512:17;2508:1;2500:6;2496:14;2489:41;2372:165;:::o;2543:122::-;2616:24;2634:5;2616:24;:::i;:::-;2609:5;2606:35;2596:63;;2655:1;2652;2645:12;2596:63;2543:122;:::o

Swarm Source

ipfs://da76c2af21c828b8e721029fbbf7a1bf578edb964b4856ee3b950e2f251e34a4
Loading...
Loading
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.