文件 1 的 1:CallProxy.sol
pragma solidity =0.8.19;
contract CallProxy {
address immutable i_target;
constructor(address target) {
i_target = target;
}
fallback() external payable {
address target = i_target;
assembly {
calldatacopy(0, 0, calldatasize())
let success := call(gas(), target, callvalue(), 0, calldatasize(), 0, 0)
returndatacopy(0, 0, returndatasize())
if success { return(0, returndatasize()) }
revert(0, returndatasize())
}
}
}
{
"compilationTarget": {
"src/CallProxy.sol": "CallProxy"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"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/contracts/",
":openzeppelin/=lib/openzeppelin-contracts/contracts/",
":safe-contracts/=lib/safe-contracts/contracts/"
]
}