Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
0 ERC20 ***
Holders
0
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Minimal Proxy Contract for 0xb3809450037ca1a9d153f3d5200390a8be5e065c
Contract Name:
BeaconProxy
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1
/**
* █████╗ ███████╗████████╗ █████╗ ██████╗ ██╗ █████╗
* ██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██║██╔══██╗
* ███████║███████╗ ██║ ███████║██████╔╝██║███████║
* ██╔══██║╚════██║ ██║ ██╔══██║██╔══██╗██║██╔══██║
* ██║ ██║███████║ ██║ ██║ ██║██║ ██║██║██║ ██║
* ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝
*
* Astaria Labs, Inc
*/
pragma solidity =0.8.17;
import {IBeacon} from "core/interfaces/IBeacon.sol";
import {Clone} from "create2-clones-with-immutable-args/Clone.sol";
contract BeaconProxy is Clone {
address public immutable me;
constructor() {
me = address(this);
}
function _getBeacon() internal pure returns (IBeacon) {
return IBeacon(_getArgAddress(0));
}
/**
* @dev Delegates the current call to `implementation`.
*
* This function does not return to its internal 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 Delegates the current call to the address returned by `_implementation()`.
*
* This function does not return to its internal call site, it will return directly to the external caller.
*/
function _fallback() internal virtual {
_beforeFallback();
_delegate(_getBeacon().getImpl(_getArgUint8(20)));
}
/**
* @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 overridden should call `super._beforeFallback()`.
*/
function _beforeFallback() internal virtual {
if (address(this) == me) {
revert InvalidSender();
}
}
error InvalidSender();
}// SPDX-License-Identifier: BUSL-1.1
/**
* █████╗ ███████╗████████╗ █████╗ ██████╗ ██╗ █████╗
* ██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██║██╔══██╗
* ███████║███████╗ ██║ ███████║██████╔╝██║███████║
* ██╔══██║╚════██║ ██║ ██╔══██║██╔══██╗██║██╔══██║
* ██║ ██║███████║ ██║ ██║ ██║██║ ██║██║██║ ██║
* ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝
*
* Astaria Labs, Inc
*/
pragma solidity =0.8.17;
interface IBeacon {
/**
* @dev Must return an address that can be used as a delegate call target.
*
* {BeaconProxy} will check that this address is a contract.
*/
function getImpl(uint8) external view returns (address);
}// SPDX-License-Identifier: BSD
pragma solidity ^0.8.4;
/// @title Clone
/// @author zefram.eth
/// @notice Provides helper functions for reading immutable args from calldata
contract Clone {
/// @notice Reads an immutable arg with type address
/// @param argOffset The offset of the arg in the packed data
/// @return arg The arg value
function _getArgAddress(uint256 argOffset) internal pure returns (address arg) {
uint256 offset = _getImmutableArgsOffset();
// solhint-disable-next-line no-inline-assembly
assembly {
arg := shr(0x60, calldataload(add(offset, argOffset)))
}
}
/// @notice Reads an immutable arg with type uint256
/// @param argOffset The offset of the arg in the packed data
/// @return arg The arg value
function _getArgUint256(uint256 argOffset) internal pure returns (uint256 arg) {
uint256 offset = _getImmutableArgsOffset();
// solhint-disable-next-line no-inline-assembly
assembly {
arg := calldataload(add(offset, argOffset))
}
}
/// @notice Reads a uint256 array stored in the immutable args.
/// @param argOffset The offset of the arg in the packed data
/// @param arrLen Number of elements in the array
/// @return arr The array
function _getArgUint256Array(uint256 argOffset, uint64 arrLen) internal pure returns (uint256[] memory arr) {
uint256 offset = _getImmutableArgsOffset();
uint256 el;
arr = new uint256[](arrLen);
for (uint64 i = 0; i < arrLen; i++) {
assembly {
// solhint-disable-next-line no-inline-assembly
el := calldataload(add(add(offset, argOffset), mul(i, 32)))
}
arr[i] = el;
}
return arr;
}
/// @notice Reads an immutable arg with type uint64
/// @param argOffset The offset of the arg in the packed data
/// @return arg The arg value
function _getArgUint64(uint256 argOffset) internal pure returns (uint64 arg) {
uint256 offset = _getImmutableArgsOffset();
// solhint-disable-next-line no-inline-assembly
assembly {
arg := shr(0xc0, calldataload(add(offset, argOffset)))
}
}
/// @notice Reads an immutable arg with type uint8
/// @param argOffset The offset of the arg in the packed data
/// @return arg The arg value
function _getArgUint8(uint256 argOffset) internal pure returns (uint8 arg) {
uint256 offset = _getImmutableArgsOffset();
// solhint-disable-next-line no-inline-assembly
assembly {
arg := shr(0xf8, calldataload(add(offset, argOffset)))
}
}
/// @return offset The offset of the packed immutable args in calldata
function _getImmutableArgsOffset() internal pure returns (uint256 offset) {
// solhint-disable-next-line no-inline-assembly
assembly {
offset := sub(calldatasize(), add(shr(240, calldataload(sub(calldatasize(), 2))), 2))
}
}
}{
"remappings": [
"clones-with-immutable-args/=lib/clones-with-immutable-args/src/",
"create2-clones-with-immutable-args/=lib/create2-clones-with-immutable-args/src/",
"create2-helpers/=lib/create2-clones-with-immutable-args/lib/create2-helpers/src/",
"forge-std/=lib/forge-std/src/",
"eip4626/=lib/foundry_eip-4626/src/",
"gpl/=lib/gpl/src/",
"solmate/=lib/solmate/src/",
"seaport/=lib/seaport/contracts/",
"seaport-core/=lib/seaport-core/",
"seaport-types/=lib/seaport-types/",
"seaport-sol/=lib/seaport-sol/",
"murky/=lib/murky/src/",
"core/=src/",
"@openzeppelin/=lib/seaport/lib/openzeppelin-contracts/",
"@rari-capital/solmate/=lib/seaport/lib/solmate/",
"auction/=lib/gpl/lib/auction-house/src/",
"ds-test/=lib/ds-test/src/",
"erc4626-tests/=lib/seaport/lib/openzeppelin-contracts/lib/erc4626-tests/",
"openzeppelin-contracts/=lib/seaport/lib/openzeppelin-contracts/",
"openzeppelin/=lib/gpl/lib/openzeppelin-contracts/contracts/",
"solady/=lib/solady/",
"solarray/=lib/seaport/lib/solarray/src/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "london",
"libraries": {}
}Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidSender","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"me","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Loading...
Loading
Loading...
Loading
[ 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.
Add Token to MetaMask (Web3)