{"abi":[{"type":"function","name":"deployProxy","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"salt","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"verifyContract","inputs":[{"name":"proxy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ProxyDeployed","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"proxyAddress","type":"address","indexed":true,"internalType":"address"},{"name":"salt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"implementation","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506115538061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633d200b45146100385780635d84121a14610068575b5f80fd5b610052600480360381019061004d9190610440565b610098565b60405161005f9190610485565b60405180910390f35b610082600480360381019061007d919061060d565b610136565b60405161008f9190610688565b60405180910390f35b5f6100a2826102c1565b6100ae575f9050610131565b8173ffffffffffffffffffffffffffffffffffffffff166397916f166040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561011657506040513d601f19601f8201168201806040525081019061011391906106d4565b60015b1561012d5761012583826102d2565b915050610131565b5f90505b919050565b5f80338460405160200161014b92919061070e565b6040516020818303038152906040528051906020012090505f8130604051610172906103c8565b61017c9190610688565b8190604051809103905ff5905080158015610199573d5f803e3d5ffd5b5090506101a5816102c1565b6101e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101db9061078f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663c8331adf8388876040518463ffffffff1660e01b815260040161022193929190610836565b5f604051808303815f87803b158015610238575f80fd5b505af115801561024a573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0a2c575ff341b41da136c9ccae74ec230a927a024d18f0dccf46d123f28f5f5487896040516102ad929190610872565b60405180910390a380925050509392505050565b5f80823b90505f8111915050919050565b5f80604051806020016102e4906103c8565b6020820181038252601f19601f82011660405250306040516020016103099190610688565b6040516020818303038152906040526040516020016103299291906108d3565b60405160208183030381529060405290505f61034d84838051906020012030610388565b90508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149250505092915050565b5f604051836040820152846020820152828152600b810160ff815373ffffffffffffffffffffffffffffffffffffffff6055822016925050509392505050565b610c27806108f783390190565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61040f826103e6565b9050919050565b61041f81610405565b8114610429575f80fd5b50565b5f8135905061043a81610416565b92915050565b5f60208284031215610455576104546103de565b5b5f6104628482850161042c565b91505092915050565b5f8115159050919050565b61047f8161046b565b82525050565b5f6020820190506104985f830184610476565b92915050565b5f819050919050565b6104b08161049e565b81146104ba575f80fd5b50565b5f813590506104cb816104a7565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61051f826104d9565b810181811067ffffffffffffffff8211171561053e5761053d6104e9565b5b80604052505050565b5f6105506103d5565b905061055c8282610516565b919050565b5f67ffffffffffffffff82111561057b5761057a6104e9565b5b610584826104d9565b9050602081019050919050565b828183375f83830152505050565b5f6105b16105ac84610561565b610547565b9050828152602081018484840111156105cd576105cc6104d5565b5b6105d8848285610591565b509392505050565b5f82601f8301126105f4576105f36104d1565b5b813561060484826020860161059f565b91505092915050565b5f805f60608486031215610624576106236103de565b5b5f6106318682870161042c565b9350506020610642868287016104bd565b925050604084013567ffffffffffffffff811115610663576106626103e2565b5b61066f868287016105e0565b9150509250925092565b61068281610405565b82525050565b5f60208201905061069b5f830184610679565b92915050565b5f819050919050565b6106b3816106a1565b81146106bd575f80fd5b50565b5f815190506106ce816106aa565b92915050565b5f602082840312156106e9576106e86103de565b5b5f6106f6848285016106c0565b91505092915050565b6107088161049e565b82525050565b5f6040820190506107215f830185610679565b61072e60208301846106ff565b9392505050565b5f82825260208201905092915050565b7f50726f7879206465706c6f796d656e74206661696c65640000000000000000005f82015250565b5f610779601783610735565b915061078482610745565b602082019050919050565b5f6020820190508181035f8301526107a68161076d565b9050919050565b6107b6816106a1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156107f35780820151818401526020810190506107d8565b5f8484015250505050565b5f610808826107bc565b61081281856107c6565b93506108228185602086016107d6565b61082b816104d9565b840191505092915050565b5f6060820190506108495f8301866107ad565b6108566020830185610679565b818103604083015261086881846107fe565b9050949350505050565b5f6040820190506108855f8301856106ff565b6108926020830184610679565b9392505050565b5f81905092915050565b5f6108ad826107bc565b6108b78185610899565b93506108c78185602086016107d6565b80840191505092915050565b5f6108de82856108a3565b91506108ea82846108a3565b9150819050939250505056fe60a060405234801561000f575f80fd5b50604051610c27380380610c27833981810160405281019061003191906100c9565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506100f4565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100988261006f565b9050919050565b6100a88161008e565b81146100b2575f80fd5b50565b5f815190506100c38161009f565b92915050565b5f602082840312156100de576100dd61006b565b5b5f6100eb848285016100b5565b91505092915050565b608051610b1c61010b5f395f60cc0152610b1c5ff3fe608060405260043610610037575f3560e01c806385369dd71461004857806397916f1614610072578063c8331adf1461009c5761003e565b3661003e57005b6100466100b8565b005b348015610053575f80fd5b5061005c6100ca565b6040516100699190610707565b60405180910390f35b34801561007d575f80fd5b506100866100ee565b6040516100939190610738565b60405180910390f35b6100b660048036038101906100b191906108f2565b6100fc565b005b6100c86100c36101f7565b610205565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6100f7610224565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361016a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610161906109de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff166101896101f7565b73ffffffffffffffffffffffffffffffffffffffff16146101df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d690610a46565b60405180910390fd5b6101e8836102bf565b6101f2828261035b565b505050565b5f6102006103cd565b905090565b365f80375f80365f845af43d5f803e805f8114610220573d5ff35b3d5ffd5b5f806102646040518060400160405280601081526020017f70726f78792e76657269666961626c6500000000000000000000000000000000815250610420565b90506102b66102b16040518060400160405280600481526020017f73616c74000000000000000000000000000000000000000000000000000000008152508361043c90919063ffffffff16565b610460565b5f015491505090565b5f6102fe6040518060400160405280601081526020017f70726f78792e76657269666961626c6500000000000000000000000000000000815250610420565b90508161035161034c6040518060400160405280600481526020017f73616c74000000000000000000000000000000000000000000000000000000008152508461043c90919063ffffffff16565b610460565b5f01819055505050565b61036482610469565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156103c0576103ba8282610532565b506103c9565b6103c86105b2565b5b5050565b5f6103f97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6105ee565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600182516020840120035f5260ff1960205f20169050919050565b5f815160208301818101805186825260208401832094508082525050505092915050565b5f819050919050565b5f8173ffffffffffffffffffffffffffffffffffffffff163b036104c457806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016104bb9190610707565b60405180910390fd5b806104f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6105ee565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f808473ffffffffffffffffffffffffffffffffffffffff168460405161055b9190610ad0565b5f60405180830381855af49150503d805f8114610593576040519150601f19603f3d011682016040523d82523d5f602084013e610598565b606091505b50915091506105a88583836105f7565b9250505092915050565b5f3411156105ec576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f819050919050565b60608261060c5761060782610684565b61067c565b5f825114801561063257505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561067457836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161066b9190610707565b60405180910390fd5b81905061067d565b5b9392505050565b5f815111156106965780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106f1826106c8565b9050919050565b610701816106e7565b82525050565b5f60208201905061071a5f8301846106f8565b92915050565b5f819050919050565b61073281610720565b82525050565b5f60208201905061074b5f830184610729565b92915050565b5f604051905090565b5f80fd5b5f80fd5b61076b81610720565b8114610775575f80fd5b50565b5f8135905061078681610762565b92915050565b610795816106e7565b811461079f575f80fd5b50565b5f813590506107b08161078c565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610804826107be565b810181811067ffffffffffffffff82111715610823576108226107ce565b5b80604052505050565b5f610835610751565b905061084182826107fb565b919050565b5f67ffffffffffffffff8211156108605761085f6107ce565b5b610869826107be565b9050602081019050919050565b828183375f83830152505050565b5f61089661089184610846565b61082c565b9050828152602081018484840111156108b2576108b16107ba565b5b6108bd848285610876565b509392505050565b5f82601f8301126108d9576108d86107b6565b5b81356108e9848260208601610884565b91505092915050565b5f805f606084860312156109095761090861075a565b5b5f61091686828701610778565b9350506020610927868287016107a2565b925050604084013567ffffffffffffffff8111156109485761094761075e565b5b610954868287016108c5565b9150509250925092565b5f82825260208201905092915050565b7f4e657720696d706c656d656e746174696f6e2063616e6e6f74206265207468655f8201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b5f6109c8602d8361095e565b91506109d38261096e565b604082019050919050565b5f6020820190508181035f8301526109f5816109bc565b9050919050565b7f416c726561647920696e697469616c697a6564000000000000000000000000005f82015250565b5f610a3060138361095e565b9150610a3b826109fc565b602082019050919050565b5f6020820190508181035f830152610a5d81610a24565b9050919050565b5f81519050919050565b5f81905092915050565b5f5b83811015610a95578082015181840152602081019050610a7a565b5f8484015250505050565b5f610aaa82610a64565b610ab48185610a6e565b9350610ac4818560208601610a78565b80840191505092915050565b5f610adb8284610aa0565b91508190509291505056fea2646970667358221220907ef243cbe338bf0a890137862566bc03f70837fbcaa57a2bbaca4f9fee910464736f6c63430008170033a26469706673582212205ca8d17c693a52a6ac9c82d1eb4d97cf9aff0a235e5698c1de3428eb300ed99c64736f6c63430008170033","sourceMap":"262:3166:41:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633d200b45146100385780635d84121a14610068575b5f80fd5b610052600480360381019061004d9190610440565b610098565b60405161005f9190610485565b60405180910390f35b610082600480360381019061007d919061060d565b610136565b60405161008f9190610688565b60405180910390f35b5f6100a2826102c1565b6100ae575f9050610131565b8173ffffffffffffffffffffffffffffffffffffffff166397916f166040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561011657506040513d601f19601f8201168201806040525081019061011391906106d4565b60015b1561012d5761012583826102d2565b915050610131565b5f90505b919050565b5f80338460405160200161014b92919061070e565b6040516020818303038152906040528051906020012090505f8130604051610172906103c8565b61017c9190610688565b8190604051809103905ff5905080158015610199573d5f803e3d5ffd5b5090506101a5816102c1565b6101e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101db9061078f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663c8331adf8388876040518463ffffffff1660e01b815260040161022193929190610836565b5f604051808303815f87803b158015610238575f80fd5b505af115801561024a573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0a2c575ff341b41da136c9ccae74ec230a927a024d18f0dccf46d123f28f5f5487896040516102ad929190610872565b60405180910390a380925050509392505050565b5f80823b90505f8111915050919050565b5f80604051806020016102e4906103c8565b6020820181038252601f19601f82011660405250306040516020016103099190610688565b6040516020818303038152906040526040516020016103299291906108d3565b60405160208183030381529060405290505f61034d84838051906020012030610388565b90508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149250505092915050565b5f604051836040820152846020820152828152600b810160ff815373ffffffffffffffffffffffffffffffffffffffff6055822016925050509392505050565b610c27806108f783390190565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61040f826103e6565b9050919050565b61041f81610405565b8114610429575f80fd5b50565b5f8135905061043a81610416565b92915050565b5f60208284031215610455576104546103de565b5b5f6104628482850161042c565b91505092915050565b5f8115159050919050565b61047f8161046b565b82525050565b5f6020820190506104985f830184610476565b92915050565b5f819050919050565b6104b08161049e565b81146104ba575f80fd5b50565b5f813590506104cb816104a7565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61051f826104d9565b810181811067ffffffffffffffff8211171561053e5761053d6104e9565b5b80604052505050565b5f6105506103d5565b905061055c8282610516565b919050565b5f67ffffffffffffffff82111561057b5761057a6104e9565b5b610584826104d9565b9050602081019050919050565b828183375f83830152505050565b5f6105b16105ac84610561565b610547565b9050828152602081018484840111156105cd576105cc6104d5565b5b6105d8848285610591565b509392505050565b5f82601f8301126105f4576105f36104d1565b5b813561060484826020860161059f565b91505092915050565b5f805f60608486031215610624576106236103de565b5b5f6106318682870161042c565b9350506020610642868287016104bd565b925050604084013567ffffffffffffffff811115610663576106626103e2565b5b61066f868287016105e0565b9150509250925092565b61068281610405565b82525050565b5f60208201905061069b5f830184610679565b92915050565b5f819050919050565b6106b3816106a1565b81146106bd575f80fd5b50565b5f815190506106ce816106aa565b92915050565b5f602082840312156106e9576106e86103de565b5b5f6106f6848285016106c0565b91505092915050565b6107088161049e565b82525050565b5f6040820190506107215f830185610679565b61072e60208301846106ff565b9392505050565b5f82825260208201905092915050565b7f50726f7879206465706c6f796d656e74206661696c65640000000000000000005f82015250565b5f610779601783610735565b915061078482610745565b602082019050919050565b5f6020820190508181035f8301526107a68161076d565b9050919050565b6107b6816106a1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156107f35780820151818401526020810190506107d8565b5f8484015250505050565b5f610808826107bc565b61081281856107c6565b93506108228185602086016107d6565b61082b816104d9565b840191505092915050565b5f6060820190506108495f8301866107ad565b6108566020830185610679565b818103604083015261086881846107fe565b9050949350505050565b5f6040820190506108855f8301856106ff565b6108926020830184610679565b9392505050565b5f81905092915050565b5f6108ad826107bc565b6108b78185610899565b93506108c78185602086016107d6565b80840191505092915050565b5f6108de82856108a3565b91506108ea82846108a3565b9150819050939250505056fe60a060405234801561000f575f80fd5b50604051610c27380380610c27833981810160405281019061003191906100c9565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506100f4565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100988261006f565b9050919050565b6100a88161008e565b81146100b2575f80fd5b50565b5f815190506100c38161009f565b92915050565b5f602082840312156100de576100dd61006b565b5b5f6100eb848285016100b5565b91505092915050565b608051610b1c61010b5f395f60cc0152610b1c5ff3fe608060405260043610610037575f3560e01c806385369dd71461004857806397916f1614610072578063c8331adf1461009c5761003e565b3661003e57005b6100466100b8565b005b348015610053575f80fd5b5061005c6100ca565b6040516100699190610707565b60405180910390f35b34801561007d575f80fd5b506100866100ee565b6040516100939190610738565b60405180910390f35b6100b660048036038101906100b191906108f2565b6100fc565b005b6100c86100c36101f7565b610205565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6100f7610224565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361016a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610161906109de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff166101896101f7565b73ffffffffffffffffffffffffffffffffffffffff16146101df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d690610a46565b60405180910390fd5b6101e8836102bf565b6101f2828261035b565b505050565b5f6102006103cd565b905090565b365f80375f80365f845af43d5f803e805f8114610220573d5ff35b3d5ffd5b5f806102646040518060400160405280601081526020017f70726f78792e76657269666961626c6500000000000000000000000000000000815250610420565b90506102b66102b16040518060400160405280600481526020017f73616c74000000000000000000000000000000000000000000000000000000008152508361043c90919063ffffffff16565b610460565b5f015491505090565b5f6102fe6040518060400160405280601081526020017f70726f78792e76657269666961626c6500000000000000000000000000000000815250610420565b90508161035161034c6040518060400160405280600481526020017f73616c74000000000000000000000000000000000000000000000000000000008152508461043c90919063ffffffff16565b610460565b5f01819055505050565b61036482610469565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156103c0576103ba8282610532565b506103c9565b6103c86105b2565b5b5050565b5f6103f97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6105ee565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600182516020840120035f5260ff1960205f20169050919050565b5f815160208301818101805186825260208401832094508082525050505092915050565b5f819050919050565b5f8173ffffffffffffffffffffffffffffffffffffffff163b036104c457806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016104bb9190610707565b60405180910390fd5b806104f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6105ee565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f808473ffffffffffffffffffffffffffffffffffffffff168460405161055b9190610ad0565b5f60405180830381855af49150503d805f8114610593576040519150601f19603f3d011682016040523d82523d5f602084013e610598565b606091505b50915091506105a88583836105f7565b9250505092915050565b5f3411156105ec576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f819050919050565b60608261060c5761060782610684565b61067c565b5f825114801561063257505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561067457836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161066b9190610707565b60405180910390fd5b81905061067d565b5b9392505050565b5f815111156106965780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106f1826106c8565b9050919050565b610701816106e7565b82525050565b5f60208201905061071a5f8301846106f8565b92915050565b5f819050919050565b61073281610720565b82525050565b5f60208201905061074b5f830184610729565b92915050565b5f604051905090565b5f80fd5b5f80fd5b61076b81610720565b8114610775575f80fd5b50565b5f8135905061078681610762565b92915050565b610795816106e7565b811461079f575f80fd5b50565b5f813590506107b08161078c565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610804826107be565b810181811067ffffffffffffffff82111715610823576108226107ce565b5b80604052505050565b5f610835610751565b905061084182826107fb565b919050565b5f67ffffffffffffffff8211156108605761085f6107ce565b5b610869826107be565b9050602081019050919050565b828183375f83830152505050565b5f61089661089184610846565b61082c565b9050828152602081018484840111156108b2576108b16107ba565b5b6108bd848285610876565b509392505050565b5f82601f8301126108d9576108d86107b6565b5b81356108e9848260208601610884565b91505092915050565b5f805f606084860312156109095761090861075a565b5b5f61091686828701610778565b9350506020610927868287016107a2565b925050604084013567ffffffffffffffff8111156109485761094761075e565b5b610954868287016108c5565b9150509250925092565b5f82825260208201905092915050565b7f4e657720696d706c656d656e746174696f6e2063616e6e6f74206265207468655f8201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b5f6109c8602d8361095e565b91506109d38261096e565b604082019050919050565b5f6020820190508181035f8301526109f5816109bc565b9050919050565b7f416c726561647920696e697469616c697a6564000000000000000000000000005f82015250565b5f610a3060138361095e565b9150610a3b826109fc565b602082019050919050565b5f6020820190508181035f830152610a5d81610a24565b9050919050565b5f81519050919050565b5f81905092915050565b5f5b83811015610a95578082015181840152602081019050610a7a565b5f8484015250505050565b5f610aaa82610a64565b610ab48185610a6e565b9350610ac4818560208601610a78565b80840191505092915050565b5f610adb8284610aa0565b91508190509291505056fea2646970667358221220907ef243cbe338bf0a890137862566bc03f70837fbcaa57a2bbaca4f9fee910464736f6c63430008170033a26469706673582212205ca8d17c693a52a6ac9c82d1eb4d97cf9aff0a235e5698c1de3428eb300ed99c64736f6c63430008170033","sourceMap":"262:3166:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2501:314;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1582:498;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2501:314;2561:4;2582:17;2593:5;2582:10;:17::i;:::-;2577:61;;2622:5;2615:12;;;;2577:61;2662:5;2651:40;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2647:139;;;2738:28;2754:5;2761:4;2738:15;:28::i;:::-;2731:35;;;;;2647:139;2803:5;2796:12;;2501:314;;;;:::o;1582:498::-;1678:7;1697:17;1738:10;1750:4;1727:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1717:39;;;;;;1697:59;;1767:15;1805:9;1824:4;1785:45;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1767:63;;1849:26;1868:5;1849:10;:26::i;:::-;1841:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;1914:5;:16;;;1931:9;1942:14;1958:4;1914:49;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2013:5;1979:63;;1993:10;1979:63;;;2021:4;2027:14;1979:63;;;;;;;:::i;:::-;;;;;;;;2067:5;2052:21;;;;1582:498;;;;;:::o;3236:190::-;3296:4;3312:12;3377:7;3365:20;3357:28;;3418:1;3411:4;:8;3404:15;;;3236:190;;;:::o;2821:409::-;2897:4;2973:21;3014:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3063:4;3044:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;2997:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2973:97;;3081:28;3112:64;3135:4;3151:8;3141:19;;;;;;3170:4;3112:22;:64::i;:::-;3081:95;;3218:5;3194:29;;:20;:29;;;3187:36;;;;2821:409;;;;:::o;2669:1794:34:-;2770:12;2850:4;2844:11;4069:12;4062:4;4057:3;4053:14;4046:36;4118:4;4111;4106:3;4102:14;4095:28;4148:8;4143:3;4136:21;4241:4;4236:3;4232:14;4352:4;4345:5;4337:20;4404:42;4399:2;4392:5;4382:20;4378:69;4370:77;;2819:1638;;2669:1794;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:75:48:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:77::-;1640:7;1669:5;1658:16;;1603:77;;;:::o;1686:122::-;1759:24;1777:5;1759:24;:::i;:::-;1752:5;1749:35;1739:63;;1798:1;1795;1788:12;1739:63;1686:122;:::o;1814:139::-;1860:5;1898:6;1885:20;1876:29;;1914:33;1941:5;1914:33;:::i;:::-;1814:139;;;;:::o;1959:117::-;2068:1;2065;2058:12;2082:117;2191:1;2188;2181:12;2205:102;2246:6;2297:2;2293:7;2288:2;2281:5;2277:14;2273:28;2263:38;;2205:102;;;:::o;2313:180::-;2361:77;2358:1;2351:88;2458:4;2455:1;2448:15;2482:4;2479:1;2472:15;2499:281;2582:27;2604:4;2582:27;:::i;:::-;2574:6;2570:40;2712:6;2700:10;2697:22;2676:18;2664:10;2661:34;2658:62;2655:88;;;2723:18;;:::i;:::-;2655:88;2763:10;2759:2;2752:22;2542:238;2499:281;;:::o;2786:129::-;2820:6;2847:20;;:::i;:::-;2837:30;;2876:33;2904:4;2896:6;2876:33;:::i;:::-;2786:129;;;:::o;2921:307::-;2982:4;3072:18;3064:6;3061:30;3058:56;;;3094:18;;:::i;:::-;3058:56;3132:29;3154:6;3132:29;:::i;:::-;3124:37;;3216:4;3210;3206:15;3198:23;;2921:307;;;:::o;3234:146::-;3331:6;3326:3;3321;3308:30;3372:1;3363:6;3358:3;3354:16;3347:27;3234:146;;;:::o;3386:423::-;3463:5;3488:65;3504:48;3545:6;3504:48;:::i;:::-;3488:65;:::i;:::-;3479:74;;3576:6;3569:5;3562:21;3614:4;3607:5;3603:16;3652:3;3643:6;3638:3;3634:16;3631:25;3628:112;;;3659:79;;:::i;:::-;3628:112;3749:54;3796:6;3791:3;3786;3749:54;:::i;:::-;3469:340;3386:423;;;;;:::o;3828:338::-;3883:5;3932:3;3925:4;3917:6;3913:17;3909:27;3899:122;;3940:79;;:::i;:::-;3899:122;4057:6;4044:20;4082:78;4156:3;4148:6;4141:4;4133:6;4129:17;4082:78;:::i;:::-;4073:87;;3889:277;3828:338;;;;:::o;4172:797::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4732:2;4721:9;4717:18;4704:32;4763:18;4755:6;4752:30;4749:117;;;4785:79;;:::i;:::-;4749:117;4890:62;4944:7;4935:6;4924:9;4920:22;4890:62;:::i;:::-;4880:72;;4675:287;4172:797;;;;;:::o;4975:118::-;5062:24;5080:5;5062:24;:::i;:::-;5057:3;5050:37;4975:118;;:::o;5099:222::-;5192:4;5230:2;5219:9;5215:18;5207:26;;5243:71;5311:1;5300:9;5296:17;5287:6;5243:71;:::i;:::-;5099:222;;;;:::o;5327:77::-;5364:7;5393:5;5382:16;;5327:77;;;:::o;5410:122::-;5483:24;5501:5;5483:24;:::i;:::-;5476:5;5473:35;5463:63;;5522:1;5519;5512:12;5463:63;5410:122;:::o;5538:143::-;5595:5;5626:6;5620:13;5611:22;;5642:33;5669:5;5642:33;:::i;:::-;5538:143;;;;:::o;5687:351::-;5757:6;5806:2;5794:9;5785:7;5781:23;5777:32;5774:119;;;5812:79;;:::i;:::-;5774:119;5932:1;5957:64;6013:7;6004:6;5993:9;5989:22;5957:64;:::i;:::-;5947:74;;5903:128;5687:351;;;;:::o;6044:118::-;6131:24;6149:5;6131:24;:::i;:::-;6126:3;6119:37;6044:118;;:::o;6168:332::-;6289:4;6327:2;6316:9;6312:18;6304:26;;6340:71;6408:1;6397:9;6393:17;6384:6;6340:71;:::i;:::-;6421:72;6489:2;6478:9;6474:18;6465:6;6421:72;:::i;:::-;6168:332;;;;;:::o;6506:169::-;6590:11;6624:6;6619:3;6612:19;6664:4;6659:3;6655:14;6640:29;;6506:169;;;;:::o;6681:173::-;6821:25;6817:1;6809:6;6805:14;6798:49;6681:173;:::o;6860:366::-;7002:3;7023:67;7087:2;7082:3;7023:67;:::i;:::-;7016:74;;7099:93;7188:3;7099:93;:::i;:::-;7217:2;7212:3;7208:12;7201:19;;6860:366;;;:::o;7232:419::-;7398:4;7436:2;7425:9;7421:18;7413:26;;7485:9;7479:4;7475:20;7471:1;7460:9;7456:17;7449:47;7513:131;7639:4;7513:131;:::i;:::-;7505:139;;7232:419;;;:::o;7657:118::-;7744:24;7762:5;7744:24;:::i;:::-;7739:3;7732:37;7657:118;;:::o;7781:98::-;7832:6;7866:5;7860:12;7850:22;;7781:98;;;:::o;7885:168::-;7968:11;8002:6;7997:3;7990:19;8042:4;8037:3;8033:14;8018:29;;7885:168;;;;:::o;8059:246::-;8140:1;8150:113;8164:6;8161:1;8158:13;8150:113;;;8249:1;8244:3;8240:11;8234:18;8230:1;8225:3;8221:11;8214:39;8186:2;8183:1;8179:10;8174:15;;8150:113;;;8297:1;8288:6;8283:3;8279:16;8272:27;8121:184;8059:246;;;:::o;8311:373::-;8397:3;8425:38;8457:5;8425:38;:::i;:::-;8479:70;8542:6;8537:3;8479:70;:::i;:::-;8472:77;;8558:65;8616:6;8611:3;8604:4;8597:5;8593:16;8558:65;:::i;:::-;8648:29;8670:6;8648:29;:::i;:::-;8643:3;8639:39;8632:46;;8401:283;8311:373;;;;:::o;8690:529::-;8857:4;8895:2;8884:9;8880:18;8872:26;;8908:71;8976:1;8965:9;8961:17;8952:6;8908:71;:::i;:::-;8989:72;9057:2;9046:9;9042:18;9033:6;8989:72;:::i;:::-;9108:9;9102:4;9098:20;9093:2;9082:9;9078:18;9071:48;9136:76;9207:4;9198:6;9136:76;:::i;:::-;9128:84;;8690:529;;;;;;:::o;9225:332::-;9346:4;9384:2;9373:9;9369:18;9361:26;;9397:71;9465:1;9454:9;9450:17;9441:6;9397:71;:::i;:::-;9478:72;9546:2;9535:9;9531:18;9522:6;9478:72;:::i;:::-;9225:332;;;;;:::o;9563:147::-;9664:11;9701:3;9686:18;;9563:147;;;;:::o;9716:386::-;9820:3;9848:38;9880:5;9848:38;:::i;:::-;9902:88;9983:6;9978:3;9902:88;:::i;:::-;9895:95;;9999:65;10057:6;10052:3;10045:4;10038:5;10034:16;9999:65;:::i;:::-;10089:6;10084:3;10080:16;10073:23;;9824:278;9716:386;;;;:::o;10108:427::-;10284:3;10306:93;10395:3;10386:6;10306:93;:::i;:::-;10299:100;;10416:93;10505:3;10496:6;10416:93;:::i;:::-;10409:100;;10526:3;10519:10;;10108:427;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"deployProxy(address,uint256,bytes)":"5d84121a","verifyContract(address)":"3d200b45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ProxyDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"deployProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"verifyContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deployProxy(address,uint256,bytes)\":{\"details\":\"Deploys a new `UUPSProxy` contract at a deterministic address. This function deploys a proxy contract using the CREATE2 opcode, ensuring a predictable address based on the sender's address and a provided salt. The deployed proxy is controlled by the factory and is initialized to use a specific implementation. - A unique address for the proxy is generated using the caller's address and the salt. - After deployment, the proxy's `initialize` function is called to configure it with the given salt,   the factory address, and the provided implementation address. - The proxy is fully managed by the factory, which controls upgrades and other administrative methods. - The event `ProxyDeployed` is emitted, logging details of the deployment including the sender, proxy address, salt, and implementation.\",\"params\":{\"implementation\":\"The address of the contract implementation the proxy will delegate calls to.\",\"salt\":\"A value provided by the caller to ensure uniqueness of the proxy address.\"},\"returns\":{\"_0\":\"proxy The address of the deployed `UUPSProxy`.\"}},\"verifyContract(address)\":{\"details\":\"Initiates verification of a proxy contract. This function attempts to validate a proxy contract by retrieving its salt and reconstructing the address to ensure it was correctly deployed by the current factory.\",\"params\":{\"proxy\":\"The address of the proxy contract being verified.\"},\"returns\":{\"_0\":\"A boolean indicating whether the verification succeeded.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/VerifiableFactory.sol\":\"VerifiableFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradable/=lib/openzeppelin-contracts-upgradable/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x02caa0e5f7bade9a0d8ad6058467d641cb67697cd4678c7b1c170686bafe9128\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b42a434f5d5fdc5071be05238059b9d8938bdab510071a5c300a975abc405a\",\"dweb:/ipfs/QmaThmoD3JMdHGhn4GUJbEGnKcojUG8PWMFoC7DFcQoeCw\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x8447b57b63810fe2e367c09496a966f143ec0e825d71ddb9fce2506cff84b618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://996cb48f793bf151555045b37138e36b3cdb31d6bc6552d3149285260be00cfb\",\"dweb:/ipfs/QmcLaTTMNVbkMx58xhkp6GeFt4V3GtSyupZuaKG3vYW2Zc\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"src/IUUPSProxy.sol\":{\"keccak256\":\"0xc36f336ec738dcf00a6ebb5435627ad554cf0816ea25a98380c3926429c20ec5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971d920b533b3e5b3e50657f1fbff617218c677264b08c3714f75eb735e52715\",\"dweb:/ipfs/QmWNvc2qDzmERFn9RuxeNscWJBMhm2fk1KmVnBa61gJFQG\"]},\"src/UUPSProxy.sol\":{\"keccak256\":\"0xdf8fd4fbd4e07a46451c229a3a811b7c48c02b140547ab6364506c440e2e8920\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf15cff0d8529d20534d98b87a3a41adf4c9cd1e5a548b329891cc9754855783\",\"dweb:/ipfs/QmeC4b12CpsTe2o3WTtgbnMYFo3sLkpobbMQVVBBY8FZgm\"]},\"src/VerifiableFactory.sol\":{\"keccak256\":\"0x300339f7d09863b19a61a82ad1bf6852215f30a0dda8b76f0107bf48fcab0bd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3448b4652ab0985ab2287ab7dbfefb2b1290dd80ed7721bb53f7d2ba60f597a3\",\"dweb:/ipfs/QmYLKh5RSjYjYGwxyc87SeQz22mryxvNrFM2pJLPHf5Vs9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"proxyAddress","type":"address","indexed":true},{"internalType":"uint256","name":"salt","type":"uint256","indexed":false},{"internalType":"address","name":"implementation","type":"address","indexed":false}],"type":"event","name":"ProxyDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deployProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"proxy","type":"address"}],"stateMutability":"view","type":"function","name":"verifyContract","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"deployProxy(address,uint256,bytes)":{"details":"Deploys a new `UUPSProxy` contract at a deterministic address. This function deploys a proxy contract using the CREATE2 opcode, ensuring a predictable address based on the sender's address and a provided salt. The deployed proxy is controlled by the factory and is initialized to use a specific implementation. - A unique address for the proxy is generated using the caller's address and the salt. - After deployment, the proxy's `initialize` function is called to configure it with the given salt,   the factory address, and the provided implementation address. - The proxy is fully managed by the factory, which controls upgrades and other administrative methods. - The event `ProxyDeployed` is emitted, logging details of the deployment including the sender, proxy address, salt, and implementation.","params":{"implementation":"The address of the contract implementation the proxy will delegate calls to.","salt":"A value provided by the caller to ensure uniqueness of the proxy address."},"returns":{"_0":"proxy The address of the deployed `UUPSProxy`."}},"verifyContract(address)":{"details":"Initiates verification of a proxy contract. This function attempts to validate a proxy contract by retrieving its salt and reconstructing the address to ensure it was correctly deployed by the current factory.","params":{"proxy":"The address of the proxy contract being verified."},"returns":{"_0":"A boolean indicating whether the verification succeeded."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradable/=lib/openzeppelin-contracts-upgradable/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/VerifiableFactory.sol":"VerifiableFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x02caa0e5f7bade9a0d8ad6058467d641cb67697cd4678c7b1c170686bafe9128","urls":["bzz-raw://33b42a434f5d5fdc5071be05238059b9d8938bdab510071a5c300a975abc405a","dweb:/ipfs/QmaThmoD3JMdHGhn4GUJbEGnKcojUG8PWMFoC7DFcQoeCw"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Create2.sol":{"keccak256":"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06","urls":["bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e","dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x8447b57b63810fe2e367c09496a966f143ec0e825d71ddb9fce2506cff84b618","urls":["bzz-raw://996cb48f793bf151555045b37138e36b3cdb31d6bc6552d3149285260be00cfb","dweb:/ipfs/QmcLaTTMNVbkMx58xhkp6GeFt4V3GtSyupZuaKG3vYW2Zc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"src/IUUPSProxy.sol":{"keccak256":"0xc36f336ec738dcf00a6ebb5435627ad554cf0816ea25a98380c3926429c20ec5","urls":["bzz-raw://971d920b533b3e5b3e50657f1fbff617218c677264b08c3714f75eb735e52715","dweb:/ipfs/QmWNvc2qDzmERFn9RuxeNscWJBMhm2fk1KmVnBa61gJFQG"],"license":"MIT"},"src/UUPSProxy.sol":{"keccak256":"0xdf8fd4fbd4e07a46451c229a3a811b7c48c02b140547ab6364506c440e2e8920","urls":["bzz-raw://cf15cff0d8529d20534d98b87a3a41adf4c9cd1e5a548b329891cc9754855783","dweb:/ipfs/QmeC4b12CpsTe2o3WTtgbnMYFo3sLkpobbMQVVBBY8FZgm"],"license":"MIT"},"src/VerifiableFactory.sol":{"keccak256":"0x300339f7d09863b19a61a82ad1bf6852215f30a0dda8b76f0107bf48fcab0bd8","urls":["bzz-raw://3448b4652ab0985ab2287ab7dbfefb2b1290dd80ed7721bb53f7d2ba60f597a3","dweb:/ipfs/QmYLKh5RSjYjYGwxyc87SeQz22mryxvNrFM2pJLPHf5Vs9"],"license":"MIT"}},"version":1},"id":41}