文件 1 的 1:AccaAuctionProxy.sol
pragma solidity ^0.8.20;
contract AccaProxy {
constructor(address _implementation) {
if(_implementation == address(0))
revert("Invalid implementation address");
assembly {
sstore(address(), _implementation)
}
}
fallback() external payable {
address target;
assembly {
target := sload(address())
calldatacopy(0, 0, calldatasize())
let result := delegatecall(gas(), target, 0, calldatasize(), 0, 0)
returndatacopy(0, 0, returndatasize())
switch result
case 0 {
revert(0, returndatasize())
}
default {
return(0, returndatasize())
}
}
}
}
{
"compilationTarget": {
"src/AccaAuctionProxy.sol": "AccaProxy"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": [
":@manifoldxyz/libraries-solidity/=lib/royalty-registry-solidity/lib/libraries-solidity/",
":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
":create2-helpers/=lib/royalty-registry-solidity/lib/create2-helpers/",
":create2-scripts/=lib/royalty-registry-solidity/lib/create2-helpers/script/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
":forge-std/=lib/forge-std/src/",
":libraries-solidity/=lib/royalty-registry-solidity/lib/libraries-solidity/contracts/",
":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
":openzeppelin-contracts/=lib/openzeppelin-contracts/",
":royalty-registry-solidity/=lib/royalty-registry-solidity/",
":solady/=lib/solady/",
":solady/=lib/solady/src/"
]
}