ETH Price: $3,398.85 (+2.57%)

Token

Atopia Apes (ATPAPE)
 

Overview

Max Total Supply

306 ATPAPE

Holders

139

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
curation.eth
Balance
1 ATPAPE
0xa4663e48a4e2565d4d7c0ff85321294e2a313cfb
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.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 1 : Proxy.sol
// SPDX-License-Identifier: MIT
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.
 */
contract Proxy {
	address implementation_;
	address public admin;

	constructor(address impl) {
		implementation_ = impl;
		admin = msg.sender;
	}

	receive() external payable {}

	function setImplementation(address newImpl) public {
		require(msg.sender == admin);
		implementation_ = newImpl;
	}

	function implementation() public view returns (address impl) {
		impl = implementation_;
	}

	function transferOwnership(address newOwner) external {
		require(msg.sender == admin);
		admin = newOwner;
	}

	/**
	 * @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 returns (address) {
		return 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 {
		_delegate(_implementation());
	}
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50604051610513380380610513833981810160405281019061003291906100ce565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610140565b6000815190506100c881610129565b92915050565b6000602082840312156100e057600080fd5b60006100ee848285016100b9565b91505092915050565b600061010282610109565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b610132816100f7565b811461013d57600080fd5b50565b6103c48061014f6000396000f3fe6080604052600436106100435760003560e01c80635c60da1b1461005c578063d784d42614610087578063f2fde38b146100b0578063f851a440146100d95761004a565b3661004a57005b61005a610055610104565b61012d565b005b34801561006857600080fd5b50610071610153565b60405161007e919061032a565b60405180910390f35b34801561009357600080fd5b506100ae60048036038101906100a991906102f2565b61017c565b005b3480156100bc57600080fd5b506100d760048036038101906100d291906102f2565b610219565b005b3480156100e557600080fd5b506100ee6102b7565b6040516100fb919061032a565b60405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3660008037600080366000845af43d6000803e806000811461014e573d6000f35b3d6000fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101d657600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461027357600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000813590506102ec81610377565b92915050565b60006020828403121561030457600080fd5b6000610312848285016102dd565b91505092915050565b61032481610345565b82525050565b600060208201905061033f600083018461031b565b92915050565b600061035082610357565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b61038081610345565b811461038b57600080fd5b5056fea26469706673582212200d7d06c0bed458b69933eab139bd14c26bec9a21dc2e44a9da23e122a296de6764736f6c634300080400330000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100435760003560e01c80635c60da1b1461005c578063d784d42614610087578063f2fde38b146100b0578063f851a440146100d95761004a565b3661004a57005b61005a610055610104565b61012d565b005b34801561006857600080fd5b50610071610153565b60405161007e919061032a565b60405180910390f35b34801561009357600080fd5b506100ae60048036038101906100a991906102f2565b61017c565b005b3480156100bc57600080fd5b506100d760048036038101906100d291906102f2565b610219565b005b3480156100e557600080fd5b506100ee6102b7565b6040516100fb919061032a565b60405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3660008037600080366000845af43d6000803e806000811461014e573d6000f35b3d6000fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101d657600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461027357600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000813590506102ec81610377565b92915050565b60006020828403121561030457600080fd5b6000610312848285016102dd565b91505092915050565b61032481610345565b82525050565b600060208201905061033f600083018461031b565b92915050565b600061035082610357565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b61038081610345565b811461038b57600080fd5b5056fea26469706673582212200d7d06c0bed458b69933eab139bd14c26bec9a21dc2e44a9da23e122a296de6764736f6c63430008040033

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

0000000000000000000000000000000000000000000000000000000000000000

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

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


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.