Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Proxy
Compiler Version
v0.8.30+commit.73712a01
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
prague EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
/// @dev Zero implementation address.
error ZeroImplementationAddress();
/// @dev Zero proxy data.
error ZeroProxyData();
/// @dev Proxy initialization failed.
error InitializationFailed();
/*
* This is a proxy contract.
* Proxy implementation is created based on the Slots (ERC-1967) and Universal Upgradeable Proxy Standard (UUPS) EIP-1822.
* The implementation address must be located in a unique storage slot of the proxy contract.
* The upgrade logic must be located in the implementation contract.
* Special lock implementation address slot is produced by hashing the "eip1967.proxy.implementation"
* string in order to make the slot unique.
* The fallback() implementation for all the delegatecall-s is inspired by the Gnosis Safe set of contracts.
*/
/// @title Proxy - Smart contract for proxy implementation
contract Proxy {
// Code position in storage is bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1) = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
bytes32 public constant PROXY_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
/// @dev Proxy constructor.
/// @param implementation Implementation address.
/// @param proxyData Proxy initialization data.
constructor(address implementation, bytes memory proxyData) {
// Check for the zero address, since the delegatecall works even with the zero one
if (implementation == address(0)) {
revert ZeroImplementationAddress();
}
// Check for the zero data
if (proxyData.length == 0) {
revert ZeroProxyData();
}
// Store the lock implementation address
assembly {
sstore(PROXY_SLOT, implementation)
}
// Initialize proxy tokenomics storage
(bool success,) = implementation.delegatecall(proxyData);
if (!success) {
revert InitializationFailed();
}
}
/// @dev Delegatecall to all the incoming data.
fallback() external payable {
assembly {
let implementation := sload(PROXY_SLOT)
calldatacopy(0, 0, calldatasize())
let success := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
returndatacopy(0, 0, returndatasize())
if eq(success, 0) { revert(0, returndatasize()) }
return(0, returndatasize())
}
}
/// @dev Gets the implementation address.
/// @return implementation Implementation address.
function getImplementation() external view returns (address implementation) {
// solhint-disable-next-line avoid-low-level-calls
assembly {
implementation := sload(PROXY_SLOT)
}
}
}{
"remappings": [
"@gnosis.pm/=node_modules/@gnosis.pm/",
"@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",
"@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/",
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"@registries/=lib/autonolas-registries/",
"@solmate/=lib/solmate/",
"autonolas-registries/=lib/autonolas-registries/",
"devtools/=lib/devtools/packages/toolbox-foundry/src/",
"ds-test/=lib/autonolas-registries/lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/autonolas-registries/lib/forge-std/src/",
"halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
"layerzero-v2/=lib/layerzero-v2/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"solmate/=lib/solmate/src/"
],
"optimizer": {
"enabled": true,
"runs": 1000000
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "prague",
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"proxyData","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InitializationFailed","type":"error"},{"inputs":[],"name":"ZeroImplementationAddress","type":"error"},{"inputs":[],"name":"ZeroProxyData","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"PROXY_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523461012e576102ed8038038061001981610132565b92833981019060408183031261012e5780516001600160a01b0381169182820361012e576020810151906001600160401b03821161012e57019183601f8401121561012e57825161007161006c8261016b565b610132565b9381855260208501956020838301011161012e57815f926020809301885e850101521561011f57815115610110575f928392827f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5551915af43d1561010b573d6100dd61006c8261016b565b9081525f60203d92013e5b156100fc5760405161016690816101878239f35b630337323560e31b5f5260045ffd5b6100e8565b6376e27ff360e11b5f5260045ffd5b63d02c623d60e01b5f5260045ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761015757604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161015757601f01601f19166020019056fe6080604052600436106100f2575f3560e01c8063aa3d10df1461009a5763aaf10f42036100f25734610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100965760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5f80fd5b34610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610096577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60805260206080f35b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e1561012c573d5ff35b3d5ffdfea26469706673582212207f9cd4396cc1ca8859f9a2162bed7466391148754ab67bc1292ca6b5340bc80664736f6c634300081e003300000000000000000000000062a7033dcb94486f3da962bfc10631c9f5ef311e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100f2575f3560e01c8063aa3d10df1461009a5763aaf10f42036100f25734610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100965760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5f80fd5b34610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610096577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60805260206080f35b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e1561012c573d5ff35b3d5ffdfea26469706673582212207f9cd4396cc1ca8859f9a2162bed7466391148754ab67bc1292ca6b5340bc80664736f6c634300081e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000062a7033dcb94486f3da962bfc10631c9f5ef311e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : implementation (address): 0x62a7033dCB94486F3dA962BfC10631C9f5eF311e
Arg [1] : proxyData (bytes): 0x8129fc1c
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000062a7033dcb94486f3da962bfc10631c9f5ef311e
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 8129fc1c00000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.