UNPKG

@excubiae/contracts

Version:
1 lines 8.12 kB
{"abi":[{"type":"error","name":"DeploymentFailed","inputs":[]},{"type":"error","name":"ETHTransferFailed","inputs":[]},{"type":"error","name":"SaltDoesNotStartWith","inputs":[]}],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212200a0cf8c81737837682a48a9198487c0088ad5bfa4efe0adf0c0afe08c4b74eed64736f6c634300081c0033","sourceMap":"3764:152678:132:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;3764:152678:132;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212200a0cf8c81737837682a48a9198487c0088ad5bfa4efe0adf0c0afe08c4b74eed64736f6c634300081c0033","sourceMap":"3764:152678:132:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DeploymentFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaltDoesNotStartWith\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)Minimal proxy by 0age (https://github.com/0age)Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\",\"details\":\"Minimal proxy: Although the sw0nt pattern saves 5 gas over the ERC1167 pattern during runtime, it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern, which saves 4 gas over the ERC1167 pattern during runtime, and has the smallest bytecode. - Automatically verified on Etherscan.Minimal proxy (PUSH0 variant): This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai. It is optimized first for minimal runtime gas, then for minimal bytecode. The PUSH0 clone functions are intentionally postfixed with a jarring \\\"_PUSH0\\\" as many EVM chains may not support the PUSH0 opcode in the early months after Shanghai. Please use with caution. - Automatically verified on Etherscan.Clones with immutable args (CWIA): The implementation of CWIA here is does NOT append the immutable args into the calldata passed into delegatecall. It is simply an ERC1167 minimal proxy with the immutable arguments appended to the back of the runtime bytecode. - Uses the identity precompile (0x4) to copy args during deployment.Minimal ERC1967 proxy: An minimal ERC1967 proxy, intended to be upgraded with UUPS. This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic. - Automatically verified on Etherscan.Minimal ERC1967 proxy with immutable args: - Uses the identity precompile (0x4) to copy args during deployment. - Automatically verified on Etherscan.ERC1967I proxy: An variant of the minimal ERC1967 proxy, with a special code path that activates if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the `implementation` address. The returned implementation is guaranteed to be valid if the keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.ERC1967I proxy with immutable args: An variant of the minimal ERC1967 proxy, with a special code path that activates if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the - Uses the identity precompile (0x4) to copy args during deployment.Minimal ERC1967 beacon proxy: A minimal beacon proxy, intended to be upgraded with an upgradable beacon. - Automatically verified on Etherscan.Minimal ERC1967 beacon proxy with immutable args: - Uses the identity precompile (0x4) to copy args during deployment. - Automatically verified on Etherscan.ERC1967I beacon proxy: An variant of the minimal ERC1967 beacon proxy, with a special code path that activates if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the `implementation` address. The returned implementation is guaranteed to be valid if the keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.ERC1967I proxy with immutable args: An variant of the minimal ERC1967 beacon proxy, with a special code path that activates if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the - Uses the identity precompile (0x4) to copy args during deployment.\",\"errors\":{\"DeploymentFailed()\":[{\"details\":\"Unable to deploy the clone.\"}],\"ETHTransferFailed()\":[{\"details\":\"The ETH transfer has failed.\"}],\"SaltDoesNotStartWith()\":[{\"details\":\"The salt must start with either the zero address or `by`.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CLONE_CODE_HASH\":{\"details\":\"The keccak256 of deployed code for the clone proxy, with the implementation set to `address(0)`.\"},\"CWIA_CODE_HASH\":{\"details\":\"The keccak256 of deployed code for the ERC-1167 CWIA proxy, with the implementation set to `address(0)`.\"},\"ERC1967I_BEACON_PROXY_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 beacon proxy.\"},\"ERC1967I_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967I proxy.\"},\"ERC1967_BEACON_PROXY_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 beacon proxy.\"},\"ERC1967_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 proxy.\"},\"PUSH0_CLONE_CODE_HASH\":{\"details\":\"The keccak256 of deployed code for the PUSH0 proxy, with the implementation set to `address(0)`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal proxy library.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/solady/src/utils/LibClone.sol\":\"LibClone\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200000},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@semaphore-protocol/=node_modules/@semaphore-protocol/\",\":@solady/=node_modules/solady/\",\":@zk-kit/=node_modules/@zk-kit/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=node_modules/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":poseidon-solidity/=node_modules/poseidon-solidity/\",\":solady/=node_modules/solady/\"]},\"sources\":{\"node_modules/solady/src/utils/LibClone.sol\":{\"keccak256\":\"0x1388494b421db04cf6f33ab69580edc5b187328688818504b87eaea9fa3c0d2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f6bf027d6fe4f102360bf7e988923f73510697a87d970b28093a0d950d9a3e5\",\"dweb:/ipfs/QmUhdrSqiwhBp2cZPef6jcTfQ8Md3KoyfnK2ZteseAvude\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DeploymentFailed"},{"inputs":[],"type":"error","name":"ETHTransferFailed"},{"inputs":[],"type":"error","name":"SaltDoesNotStartWith"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@semaphore-protocol/=node_modules/@semaphore-protocol/","@solady/=node_modules/solady/","@zk-kit/=node_modules/@zk-kit/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=node_modules/forge-std/","hardhat/=node_modules/hardhat/","poseidon-solidity/=node_modules/poseidon-solidity/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":200000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/solady/src/utils/LibClone.sol":"LibClone"},"evmVersion":"prague","libraries":{}},"sources":{"node_modules/solady/src/utils/LibClone.sol":{"keccak256":"0x1388494b421db04cf6f33ab69580edc5b187328688818504b87eaea9fa3c0d2c","urls":["bzz-raw://8f6bf027d6fe4f102360bf7e988923f73510697a87d970b28093a0d950d9a3e5","dweb:/ipfs/QmUhdrSqiwhBp2cZPef6jcTfQ8Md3KoyfnK2ZteseAvude"],"license":"MIT"}},"version":1},"id":132}