Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Proxy
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;
import "./LibRawResult.sol";
import "./Implementation.sol";
/// @notice Base class for all proxy contracts.
contract Proxy {
using LibRawResult for bytes;
/// @notice The address of the implementation contract used by this proxy.
Implementation public immutable IMPL;
// Made `payable` to allow initialized crowdfunds to receive ETH as an
// initial contribution.
constructor(Implementation impl, bytes memory initCallData) payable {
IMPL = impl;
(bool s, bytes memory r) = address(impl).delegatecall(initCallData);
if (!s) {
r.rawRevert();
}
}
// Forward all calls to the implementation.
fallback() external payable {
Implementation impl = IMPL;
assembly {
calldatacopy(0x00, 0x00, calldatasize())
let s := delegatecall(gas(), impl, 0x00, calldatasize(), 0x00, 0)
returndatacopy(0x00, 0x00, returndatasize())
if iszero(s) {
revert(0x00, returndatasize())
}
return(0x00, returndatasize())
}
}
}// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;
library LibRawResult {
// Revert with the data in `b`.
function rawRevert(bytes memory b) internal pure {
assembly {
revert(add(b, 32), mload(b))
}
}
// Return with the data in `b`.
function rawReturn(bytes memory b) internal pure {
assembly {
return(add(b, 32), mload(b))
}
}
}// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;
// Base contract for all contracts intended to be delegatecalled into.
abstract contract Implementation {
error OnlyDelegateCallError();
error OnlyConstructorError();
address public immutable IMPL;
constructor() {
IMPL = address(this);
}
// Reverts if the current function context is not inside of a delegatecall.
modifier onlyDelegateCall() virtual {
if (address(this) == IMPL) {
revert OnlyDelegateCallError();
}
_;
}
// Reverts if the current function context is not inside of a constructor.
modifier onlyConstructor() {
if (address(this).code.length != 0) {
revert OnlyConstructorError();
}
_;
}
}{
"remappings": [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"openzeppelin/=lib/openzeppelin-contracts/",
"solmate/=lib/solmate/src/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "paris",
"libraries": {},
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract Implementation","name":"impl","type":"address"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"IMPL","outputs":[{"internalType":"contract Implementation","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60a060405261025480380380610014816100df565b92833981016040828203126100c45781516001600160a01b03811681036100c45760208381015190936001600160401b0382116100c4570182601f820112156100c45780519061006b61006683610109565b6100df565b938285528583830101116100c45760005b8281106100b15750506100959360009184010152610124565b60405160da908161017a823960805181818160190152606f0152f35b818101860151858201870152850161007c565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b0381118382101761010457604052565b6100c9565b6001600160401b03811161010457601f01601f191660200190565b6080819052815160009283926020909101906001600160a01b03165af43d15610171573d9061015561006683610109565b9182523d6000602084013e5b156101695750565b602081519101fd5b60609061016156fe60806040526004361015604a575b600036818037808036817f00000000000000000000000000000000000000000000000000000000000000005af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003e42d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000d2f00000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000527973c07061d982f511f936c3539585f8e236a2000000000000000000000000000000000000000000000000000000000000000a4c65747320444f20697400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4c65747320444f206974000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001c8e54c46ad0de12b2b2f49ec52ae6b1f15384e900000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361015604a575b600036818037808036817f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da5af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da6001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003e42d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000d2f00000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000527973c07061d982f511f936c3539585f8e236a2000000000000000000000000000000000000000000000000000000000000000a4c65747320444f20697400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4c65747320444f206974000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001c8e54c46ad0de12b2b2f49ec52ae6b1f15384e900000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : impl (address): 0xb676cfeEeD5c7B739452a502F1Eff9Ab684A56Da
Arg [1] : initCallData (bytes): 0x2d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000d2f00000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000527973c07061d982f511f936c3539585f8e236a2000000000000000000000000000000000000000000000000000000000000000a4c65747320444f20697400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4c65747320444f206974000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001c8e54c46ad0de12b2b2f49ec52ae6b1f15384e9
-----Encoded View---------------
35 Constructor Arguments found :
Arg [0] : 000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 00000000000000000000000000000000000000000000000000000000000003e4
Arg [3] : 2d992cd300000000000000000000000000000000000000000000000000000000
Arg [4] : 0000002000000000000000000000000000000000000000000000000000000000
Arg [5] : 000000a000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000034000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000036000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000038000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000010000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [14] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [15] : 0000022000000000000000000000000000000000000000000000000000000000
Arg [16] : 0000026000000000000000000000000000000000000000000000000000000000
Arg [17] : 0000000300000000000000000000000000000000000000000000000000000000
Arg [18] : 000000e000000000000000000000000000000000000000000000000000000000
Arg [19] : 0000d2f000000000000000000000000000000000000000000000000000000000
Arg [20] : 00001c2000000000000000000000000000000000000000000000000000000000
Arg [21] : 000001f400000000000000000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [23] : 000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc4
Arg [24] : 8375820f00000000000000000000000000000000000000000000000000000000
Arg [25] : 00000001000000000000000000000000527973c07061d982f511f936c3539585
Arg [26] : f8e236a200000000000000000000000000000000000000000000000000000000
Arg [27] : 0000000a4c65747320444f206974000000000000000000000000000000000000
Arg [28] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [29] : 0000000a4c65747320444f206974000000000000000000000000000000000000
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [32] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [33] : 000000010000000000000000000000001c8e54c46ad0de12b2b2f49ec52ae6b1
Arg [34] : f15384e900000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.