ETH Price: $2,917.17 (+6.95%)
 

Overview

Max Total Supply

719 SCOUTPASS

Holders

142

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
0xaFA0BE215Be4faB9cf4055fEE715b983577e1D89
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:
Proxy

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.8.0;


/// @dev Proxy for NFT Factory
contract Proxy {

    // Storage for this proxy
    bytes32 private constant IMPLEMENTATION_SLOT = bytes32(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc);
    bytes32 private constant ADMIN_SLOT          = bytes32(0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103);

    constructor(address impl) {
        require(impl != address(0));

        _setSlotValue(IMPLEMENTATION_SLOT, bytes32(uint256(uint160(impl))));
        _setSlotValue(ADMIN_SLOT, bytes32(uint256(uint160(msg.sender))));
    }

    function setImplementation(address newImpl) public {
        require(msg.sender == _getAddress(ADMIN_SLOT));
        _setSlotValue(IMPLEMENTATION_SLOT, bytes32(uint256(uint160(newImpl))));
    }
    
    function implementation() public view returns (address impl) {
        impl = address(uint160(uint256(_getSlotValue(IMPLEMENTATION_SLOT))));
    }

    function _getAddress(bytes32 key) internal view returns (address add) {
        add = address(uint160(uint256(_getSlotValue(key))));
    }

    function _getSlotValue(bytes32 slot_) internal view returns (bytes32 value_) {
        assembly {
            value_ := sload(slot_)
        }
    }

    function _setSlotValue(bytes32 slot_, bytes32 value_) internal {
        assembly {
            sstore(slot_, value_)
        }
    }

    /**
     * @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 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 {
        _delegate(_getAddress(IMPLEMENTATION_SLOT));
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516102c83803806102c883398101604081905261002f91610095565b6001600160a01b03811661004257600080fd5b6001600160a01b03167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55337fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103556100c5565b6000602082840312156100a757600080fd5b81516001600160a01b03811681146100be57600080fd5b9392505050565b6101f4806100d46000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b14610067578063d784d4261461009857610034565b3661003457005b6100656100607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6100b8565b6100c8565b005b34801561007357600080fd5b5061007c6100ec565b6040516001600160a01b03909116815260200160405180910390f35b3480156100a457600080fd5b506100656100b336600461018e565b61011b565b60006100c2825490565b92915050565b3660008037600080366000845af43d6000803e8080156100e7573d6000f35b3d6000fd5b60006101167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b919050565b6101447fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036100b8565b6001600160a01b0316336001600160a01b03161461016157600080fd5b6001600160a01b03167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000602082840312156101a057600080fd5b81356001600160a01b03811681146101b757600080fd5b939250505056fea2646970667358221220481447e63a40a45eb5d61b02cf4e8053f5b165f9272967f9343a94b53bbe680464736f6c63430008070033000000000000000000000000711a509b0e1e380085010dd984e420a3ae55d9b4

Deployed Bytecode

0x60806040526004361061002d5760003560e01c80635c60da1b14610067578063d784d4261461009857610034565b3661003457005b6100656100607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6100b8565b6100c8565b005b34801561007357600080fd5b5061007c6100ec565b6040516001600160a01b03909116815260200160405180910390f35b3480156100a457600080fd5b506100656100b336600461018e565b61011b565b60006100c2825490565b92915050565b3660008037600080366000845af43d6000803e8080156100e7573d6000f35b3d6000fd5b60006101167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b919050565b6101447fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036100b8565b6001600160a01b0316336001600160a01b03161461016157600080fd5b6001600160a01b03167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000602082840312156101a057600080fd5b81356001600160a01b03811681146101b757600080fd5b939250505056fea2646970667358221220481447e63a40a45eb5d61b02cf4e8053f5b165f9272967f9343a94b53bbe680464736f6c63430008070033

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

000000000000000000000000711a509b0e1e380085010dd984e420a3ae55d9b4

-----Decoded View---------------
Arg [0] : impl (address): 0x711A509b0e1E380085010dD984e420A3AE55d9b4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000711a509b0e1e380085010dd984e420a3ae55d9b4


Deployed Bytecode Sourcemap

61:2834:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2804:43;2814:32;171:66;2814:11;:32::i;:::-;2804:9;:43::i;:::-;61:2834;820:148;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;469:32:1;;;451:51;;439:2;424:18;820:148:0;;;;;;;611:197;;;;;;;;;;-1:-1:-1;611:197:0;;;;;:::i;:::-;;:::i;976:140::-;1033:11;1087:18;1101:3;1246:12;;1124:152;1087:18;1079:27;976:140;-1:-1:-1;;976:140:0:o;1630:922::-;1975:14;1972:1;1969;1956:34;2195:1;2192;2176:14;2173:1;2155:16;2148:5;2135:62;2274:16;2271:1;2268;2253:38;2314:6;2383:68;;;;2502:16;2499:1;2492:27;2383:68;2419:16;2416:1;2409:27;820:148;867:12;923:34;171:66;1246:12;;1124:152;923:34;915:43;820:148;-1:-1:-1;820:148:0:o;611:197::-;695:23;300:66;695:11;:23::i;:::-;-1:-1:-1;;;;;681:37:0;:10;-1:-1:-1;;;;;681:37:0;;673:46;;;;;;-1:-1:-1;;;;;773:25:0;171:66;1382:21;611:197::o;14:286:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:1;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:1:o

Swarm Source

ipfs://481447e63a40a45eb5d61b02cf4e8053f5b165f9272967f9343a94b53bbe6804
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.