Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
24,029,819.822219 ERC20 ***
Holders
534
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
1.25 ERC20 ***Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xD8b27CF3...f904984C2 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
BeaconProxy
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 20000 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; /// @title BeaconProxy /// @custom:security-contact [email protected] /// @author Euler Labs (https://www.eulerlabs.com/) /// @notice A proxy contract, forwarding all calls to an implementation contract, fetched from a beacon /// @dev The proxy attaches up to 128 bytes of metadata to the delegated call data. contract BeaconProxy { // ERC-1967 beacon address slot. bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1) bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; // Beacon implementation() selector bytes32 internal constant IMPLEMENTATION_SELECTOR = 0x5c60da1b00000000000000000000000000000000000000000000000000000000; // Max trailing data length, 4 immutable slots uint256 internal constant MAX_TRAILING_DATA_LENGTH = 128; address internal immutable beacon; uint256 internal immutable metadataLength; bytes32 internal immutable metadata0; bytes32 internal immutable metadata1; bytes32 internal immutable metadata2; bytes32 internal immutable metadata3; event Genesis(); constructor(bytes memory trailingData) { emit Genesis(); require(trailingData.length <= MAX_TRAILING_DATA_LENGTH, "trailing data too long"); // Beacon is always the proxy creator; store it in immutable beacon = msg.sender; // Store the beacon address in ERC-1967 slot for compatibility with block explorers assembly { sstore(BEACON_SLOT, caller()) } // Record length as immutable metadataLength = trailingData.length; // Pad length with uninitialized memory so the decode will succeed assembly { mstore(trailingData, MAX_TRAILING_DATA_LENGTH) } (metadata0, metadata1, metadata2, metadata3) = abi.decode(trailingData, (bytes32, bytes32, bytes32, bytes32)); } fallback() external payable { address beacon_ = beacon; uint256 metadataLength_ = metadataLength; bytes32 metadata0_ = metadata0; bytes32 metadata1_ = metadata1; bytes32 metadata2_ = metadata2; bytes32 metadata3_ = metadata3; assembly { // Fetch implementation address from the beacon mstore(0, IMPLEMENTATION_SELECTOR) // Implementation call is trusted not to revert and to return an address let result := staticcall(gas(), beacon_, 0, 4, 0, 32) let implementation := mload(0) // delegatecall to the implementation with trailing metadata calldatacopy(0, 0, calldatasize()) mstore(calldatasize(), metadata0_) mstore(add(32, calldatasize()), metadata1_) mstore(add(64, calldatasize()), metadata2_) mstore(add(96, calldatasize()), metadata3_) result := delegatecall(gas(), implementation, 0, add(metadataLength_, calldatasize()), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
{ "remappings": [ "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", "ethereum-vault-connector/=lib/ethereum-vault-connector/src/", "evc/=lib/ethereum-vault-connector/src/", "evk/=lib/euler-vault-kit/src/", "evk-test/=lib/euler-vault-kit/test/", "euler-price-oracle/=lib/euler-price-oracle/src/", "euler-price-oracle-test/=lib/euler-price-oracle/test/", "fee-flow/=lib/fee-flow/src/", "reward-streams/=lib/reward-streams/src/", "@openzeppelin/contracts/utils/math/=lib/euler-price-oracle/lib/openzeppelin-contracts/contracts/utils/math/", "@pyth/=lib/euler-price-oracle/lib/pyth-sdk-solidity/", "@redstone/evm-connector/=lib/euler-price-oracle/lib/redstone-oracles-monorepo/packages/evm-connector/contracts/", "@solady/=lib/euler-price-oracle/lib/solady/src/", "@uniswap/v3-core/=lib/euler-price-oracle/lib/v3-core/", "@uniswap/v3-periphery/=lib/euler-price-oracle/lib/v3-periphery/", "ds-test/=lib/fee-flow/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "euler-vault-kit/=lib/euler-vault-kit/src/", "forge-gas-snapshot/=lib/euler-vault-kit/lib/permit2/lib/forge-gas-snapshot/src/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/", "openzeppelin/=lib/ethereum-vault-connector/lib/openzeppelin-contracts/contracts/", "permit2/=lib/euler-vault-kit/lib/permit2/", "pyth-sdk-solidity/=lib/euler-price-oracle/lib/pyth-sdk-solidity/", "redstone-oracles-monorepo/=lib/euler-price-oracle/lib/", "solady/=lib/euler-price-oracle/lib/solady/src/", "solmate/=lib/fee-flow/lib/solmate/src/", "v3-core/=lib/euler-price-oracle/lib/v3-core/contracts/", "v3-periphery/=lib/euler-price-oracle/lib/v3-periphery/contracts/" ], "optimizer": { "enabled": true, "runs": 20000 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "cancun", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"bytes","name":"trailingData","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Genesis","type":"event"},{"stateMutability":"payable","type":"fallback"}]
Contract Creation Code
610140604052348015610010575f80fd5b506040516103bd3803806103bd83398101604081905261002f91610119565b6040517f6bf6eaff5e9af8fbccb949f4c38cc016936f8775363ccf4224db160365785d52905f90a16080815111156100ad5760405162461bcd60e51b815260206004820152601660248201527f747261696c696e67206461746120746f6f206c6f6e6700000000000000000000604482015260640160405180910390fd5b3360808181527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5091909155815160a09081529082526100f1908201602083016101db565b610120526101005260e05260c0525061020e565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561012a575f80fd5b82516001600160401b0380821115610140575f80fd5b818501915085601f830112610153575f80fd5b81518181111561016557610165610105565b604051601f8201601f19908116603f0116810190838211818310171561018d5761018d610105565b8160405282815288868487010111156101a4575f80fd5b5f93505b828410156101c557848401860151818501870152928501926101a8565b5f86848301015280965050505050505092915050565b5f805f80608085870312156101ee575f80fd5b505082516020840151604085015160609095015191969095509092509050565b60805160a05160c05160e051610100516101205161016e61024f5f395f60d501525f60b301525f609101525f606f01525f604d01525f602b015261016e5ff3fe60806040527f5c60da1b000000000000000000000000000000000000000000000000000000005f9081527f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090602090600481895afa5f51365f80378536528436602001528336604001528236606001525f803689015f845af49150503d5f803e808015610134573d5ff35b3d5ffdfea264697066735822122007c4d4525bbc34b3e19324964e117238963dee192fe82c44824ae678efc75b5764736f6c634300081800330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc283b3b76873d36a28440cf53371df404c424971360000000000000000000000000000000000000348
Deployed Bytecode
0x60806040527f5c60da1b000000000000000000000000000000000000000000000000000000005f9081527f00000000000000000000000029a56a1b8214d9cf7c5561811750d5cbdb45cc8e907f0000000000000000000000000000000000000000000000000000000000000040907f00000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc283b3b76873d36a28907f440cf53371df404c424971360000000000000000000000000000000000000348907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090602090600481895afa5f51365f80378536528436602001528336604001528236606001525f803689015f845af49150503d5f803e808015610134573d5ff35b3d5ffdfea264697066735822122007c4d4525bbc34b3e19324964e117238963dee192fe82c44824ae678efc75b5764736f6c63430008180033
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.