编译器
0.8.21+commit.d9974bed
文件 1 的 5:error.sol
pragma solidity 0.8.21;
contract Error {
error FluidInfiniteProxyError(uint256 errorId_);
}
文件 2 的 5:errorTypes.sol
pragma solidity 0.8.21;
library ErrorTypes {
uint256 internal constant InfiniteProxy__ImplementationNotExist = 50001;
}
文件 3 的 5:events.sol
pragma solidity 0.8.21;
contract Events {
event LogSetAdmin(address indexed oldAdmin, address indexed newAdmin);
event LogSetDummyImplementation(address indexed oldDummyImplementation, address indexed newDummyImplementation);
event LogSetImplementation(address indexed implementation, bytes4[] sigs);
event LogRemoveImplementation(address indexed implementation);
}
文件 4 的 5:proxy.sol
pragma solidity 0.8.21;
import { Proxy } from "../infiniteProxy/proxy.sol";
contract FluidLiquidityProxy is Proxy {
constructor(address admin_, address dummyImplementation_) Proxy(admin_, dummyImplementation_) {}
}
文件 5 的 5:storageRead.sol
pragma solidity 0.8.21;
contract StorageRead {
function readFromStorage(bytes32 slot_) public view returns (uint256 result_) {
assembly {
result_ := sload(slot_)
}
}
}
{
"compilationTarget": {
"contracts/liquidity/proxy.sol": "FluidLiquidityProxy"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs",
"useLiteralContent": true
},
"optimizer": {
"enabled": true,
"runs": 10000000
},
"remappings": []
}
[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"dummyImplementation_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"errorId_","type":"uint256"}],"name":"FluidInfiniteProxyError","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"LogRemoveImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"LogSetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldDummyImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newDummyImplementation","type":"address"}],"name":"LogSetDummyImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"bytes4[]","name":"sigs","type":"bytes4[]"}],"name":"LogSetImplementation","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"name":"addImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDummyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"impl_","type":"address"}],"name":"getImplementationSigs","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"sig_","type":"bytes4"}],"name":"getSigsImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"slot_","type":"bytes32"}],"name":"readFromStorage","outputs":[{"internalType":"uint256","name":"result_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"removeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin_","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDummyImplementation_","type":"address"}],"name":"setDummyImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]