ContractVERIFIED
nameCurvePumpERC1967Proxylanguagesoliditycompiler0.8.29+commit.ab55807coptimizationenabled (200 runs)evm versionosakalicensenoneverified at2026-09-02abi surface0 functions · 1 eventsdeployer—creation tx—
src/curve_pump/CurvePumpERC1967Proxy.solentry file
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
/// @title CurvePumpERC1967Proxy — 标准 EIP-1967 代理(无外部依赖,可 Verify)。
/// @dev 实现槽 `keccak256("eip1967.proxy.implementation") - 1`。
contract CurvePumpERC1967Proxy {
bytes32 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
event Upgraded(address indexed implementation);
constructor(address implementation_, bytes memory data_) payable {
require(implementation_.code.length > 0, "impl");
assembly {
sstore(_IMPLEMENTATION_SLOT, implementation_)
}
emit Upgraded(implementation_);
if (data_.length > 0) {
(bool ok, bytes memory ret) = implementation_.delegatecall(data_);
if (!ok) {
if (ret.length == 0) revert("init");
assembly {
revert(add(ret, 32), mload(ret))
}
}
}
}
fallback() external payable {
_delegate();
}
receive() external payable {
_delegate();
}
function _delegate() private {
assembly {
let impl := sload(_IMPLEMENTATION_SLOT)
calldatacopy(0, 0, calldatasize())
let result := delegatecall(gas(), impl, 0, calldatasize(), 0, 0)
returndatacopy(0, 0, returndatasize())
switch result
case 0 { revert(0, returndatasize()) }
default { return(0, returndatasize()) }
}
}
}