{"abi":[{"type":"constructor","inputs":[{"name":"authorityFactory","type":"address","internalType":"contract IAuthorityFactory"},{"name":"applicationFactory","type":"address","internalType":"contract IApplicationFactory"}],"stateMutability":"nonpayable"},{"type":"function","name":"calculateAddresses","inputs":[{"name":"authorityOwner","type":"address","internalType":"address"},{"name":"epochLength","type":"uint256","internalType":"uint256"},{"name":"appOwner","type":"address","internalType":"address"},{"name":"templateHash","type":"bytes32","internalType":"bytes32"},{"name":"dataAvailability","type":"bytes","internalType":"bytes"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"application","type":"address","internalType":"address"},{"name":"authority","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deployContracts","inputs":[{"name":"authorityOwner","type":"address","internalType":"address"},{"name":"epochLength","type":"uint256","internalType":"uint256"},{"name":"appOwner","type":"address","internalType":"address"},{"name":"templateHash","type":"bytes32","internalType":"bytes32"},{"name":"dataAvailability","type":"bytes","internalType":"bytes"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"application","type":"address","internalType":"contract IApplication"},{"name":"authority","type":"address","internalType":"contract IAuthority"}],"stateMutability":"nonpayable"},{"type":"function","name":"getApplicationFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IApplicationFactory"}],"stateMutability":"view"},{"type":"function","name":"getAuthorityFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAuthorityFactory"}],"stateMutability":"view"}],"bytecode":{"object":"0x60c0346100a657601f61061238819003918201601f19168301916001600160401b038311848410176100aa5780849260409485528339810103126100a6578051906001600160a01b03821682036100a65760200151906001600160a01b03821682036100a65760805260a05260405161055390816100bf823960805181818160de0152818161022e01526102ae015260a051818181605d0152818161016e01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816350567b3a1461025d5750806375689f8314610219578063938f7adc146100905763e63d50ff14610048575f80fd5b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461008c5760206100a036610423565b604051631442f7bb60e01b81526001600160a01b039097166004880152602487019590955260448601859052959094939192919084806064810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101f157602094610162915f916101fc575b5060018060a01b0316956040519788958695634269667b60e01b875289600488015260018060a01b03166024870152604486015260a0606486015260a48501916104de565b608483019190915203817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101f1576040925f926101c0575b5082516001600160a01b0390921682526020820152f35b6101e391925060203d6020116101ea575b6101db81836104a8565b8101906104fe565b90836101a9565b503d6101d1565b6040513d5f823e3d90fd5b6102139150863d88116101ea576101db81836104a8565b8861011d565b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461008c578060206102a98261027236610423565b989489919a949b93989296631d9324cd60e31b855260048501604091949392606082019560018060a01b0316825260208201520152565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156101f1575f926103db575b50604051630b30fbdf60e21b81526001600160a01b0392831660048201819052969092166024830152604482019290925260a0606482015292602092849283926103359160a4850191906104de565b608483019190915203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101f1575f91610396575b50604080516001600160a01b0390921682526020820192909252f35b90506020813d6020116103d3575b816103b1602093836104a8565b8101031261008c5751906001600160a01b038216820361008c5790604061037a565b3d91506103a4565b9091506020813d60201161041b575b816103f7602093836104a8565b8101031261008c5751926001600160a01b038416840361008c5792906103356102e6565b3d91506103ea565b9060c060031983011261008c576004356001600160a01b038116810361008c5791602435916044356001600160a01b038116810361008c57916064359160843567ffffffffffffffff811161008c578260238201121561008c5780600401359267ffffffffffffffff841161008c576024848301011161008c57602401919060a43590565b90601f8019910116810190811067ffffffffffffffff8211176104ca57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b9081602091031261008c57516001600160a01b038116810361008c579056fea2646970667358221220f01c7edf774b8629d889cfe78e2b6f2ad337b9b6623d1cdf8074e1273d198f3064736f6c634300081e0033","sourceMap":"726:1978:42:-:0;;;;;;;;;;;;;-1:-1:-1;;726:1978:42;;;;-1:-1:-1;;;;;726:1978:42;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;726:1978:42;;;;;;;;;;-1:-1:-1;;;;;726:1978:42;;;;;;1142:36;;1188:40;;726:1978;;;;;;;;1142:36;726:1978;;;;;;;;;;;;;;;1188:40;726:1978;;;;;;;;;;;;;;;;;-1:-1:-1;726:1978:42;;;;;;-1:-1:-1;726:1978:42;;;;;-1:-1:-1;726:1978:42","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816350567b3a1461025d5750806375689f8314610219578063938f7adc146100905763e63d50ff14610048575f80fd5b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461008c5760206100a036610423565b604051631442f7bb60e01b81526001600160a01b039097166004880152602487019590955260448601859052959094939192919084806064810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101f157602094610162915f916101fc575b5060018060a01b0316956040519788958695634269667b60e01b875289600488015260018060a01b03166024870152604486015260a0606486015260a48501916104de565b608483019190915203817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101f1576040925f926101c0575b5082516001600160a01b0390921682526020820152f35b6101e391925060203d6020116101ea575b6101db81836104a8565b8101906104fe565b90836101a9565b503d6101d1565b6040513d5f823e3d90fd5b6102139150863d88116101ea576101db81836104a8565b8861011d565b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461008c578060206102a98261027236610423565b989489919a949b93989296631d9324cd60e31b855260048501604091949392606082019560018060a01b0316825260208201520152565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156101f1575f926103db575b50604051630b30fbdf60e21b81526001600160a01b0392831660048201819052969092166024830152604482019290925260a0606482015292602092849283926103359160a4850191906104de565b608483019190915203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101f1575f91610396575b50604080516001600160a01b0390921682526020820192909252f35b90506020813d6020116103d3575b816103b1602093836104a8565b8101031261008c5751906001600160a01b038216820361008c5790604061037a565b3d91506103a4565b9091506020813d60201161041b575b816103f7602093836104a8565b8101031261008c5751926001600160a01b038416840361008c5792906103356102e6565b3d91506103ea565b9060c060031983011261008c576004356001600160a01b038116810361008c5791602435916044356001600160a01b038116810361008c57916064359160843567ffffffffffffffff811161008c578260238201121561008c5780600401359267ffffffffffffffff841161008c576024848301011161008c57602401919060a43590565b90601f8019910116810190811067ffffffffffffffff8211176104ca57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b9081602091031261008c57516001600160a01b038116810361008c579056fea2646970667358221220f01c7edf774b8629d889cfe78e2b6f2ad337b9b6623d1cdf8074e1273d198f3064736f6c634300081e0033","sourceMap":"726:1978:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;726:1978:42;;;;;;1509:19;-1:-1:-1;;;;;726:1978:42;;;;;;;;;;;;;;2357:108;726:1978;;;:::i;:::-;;;-1:-1:-1;;;2357:108:42;;-1:-1:-1;;;;;726:1978:42;;;;2357:108;;726:1978;;;;;;;;;;;;;;;;;;;;;;;;;;;2357:108;726:1978;2357:17;-1:-1:-1;;;;;726:1978:42;2357:108;;;;;;;;;726:1978;2357:108;726:1978;2357:108;;;726:1978;;;;;;;;;;;;;;;;;;;2490:205;;;726:1978;2490:205;;726:1978;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2490:205;726:1978;2490:19;-1:-1:-1;;;;;726:1978:42;2490:205;;;;;;;726:1978;2490:205;726:1978;2490:205;;;726:1978;-1:-1:-1;726:1978:42;;-1:-1:-1;;;;;726:1978:42;;;;;2357:108;726:1978;;;;2490:205;;;;;2357:108;2490:205;2357:108;2490:205;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;726:1978;;;;;;;;;2357:108;;;;;;;;;;;;;;:::i;:::-;;;;726:1978;;;;;;-1:-1:-1;;726:1978:42;;;;;;1340:17;-1:-1:-1;;;;;726:1978:42;;;;;;;;;;;1840:65;;726:1978;;;;:::i;:::-;;;;;;;;;;;;;;;1840:65;;726:1978;1840:65;;726:1978;;;;;;;;;;;;;;;;;;;;;;;;1840:65;;726:1978;;1840:17;-1:-1:-1;;;;;726:1978:42;1840:65;;;;;;;726:1978;1840:65;;;726:1978;-1:-1:-1;726:1978:42;;-1:-1:-1;;;1930:115:42;;-1:-1:-1;;;;;726:1978:42;;;;1930:115;;726:1978;;;;;;;;;;;;;;;;;;;;;;;;1840:65;;726:1978;;;;;;;;;;;;:::i;:::-;;;;;;;;1930:115;726:1978;;1930:19;-1:-1:-1;;;;;726:1978:42;1930:115;;;;;;;726:1978;1930:115;;;726:1978;-1:-1:-1;726:1978:42;;;-1:-1:-1;;;;;726:1978:42;;;;;1840:65;726:1978;;;;;;;1930:115;;;1840:65;1930:115;;1840:65;1930:115;;;;;;1840:65;1930:115;;;:::i;:::-;;;726:1978;;;;;;-1:-1:-1;;;;;726:1978:42;;;;;;1930:115;726:1978;1930:115;;;;;-1:-1:-1;1930:115:42;;1840:65;;;;;;;;;;;;;;;;;;:::i;:::-;;;726:1978;;;;;;-1:-1:-1;;;;;726:1978:42;;;;;;1840:65;;726:1978;1840:65;;;;;-1:-1:-1;1840:65:42;;726:1978;;;-1:-1:-1;;726:1978:42;;;;;;;-1:-1:-1;;;;;726:1978:42;;;;;;;;;;;;-1:-1:-1;;;;;726:1978:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;726:1978:42;;;;;-1:-1:-1;726:1978:42;;;;;;;;;;;;;;-1:-1:-1;726:1978:42;;;;;;;;-1:-1:-1;;726:1978:42;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;726:1978:42;;;;;;;:::o","linkReferences":{},"immutableReferences":{"4038":[{"start":222,"length":32},{"start":558,"length":32},{"start":686,"length":32}],"4041":[{"start":93,"length":32},{"start":366,"length":32},{"start":834,"length":32}]}},"methodIdentifiers":{"calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)":"938f7adc","deployContracts(address,uint256,address,bytes32,bytes,bytes32)":"50567b3a","getApplicationFactory()":"e63d50ff","getAuthorityFactory()":"75689f83"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAuthorityFactory\",\"name\":\"authorityFactory\",\"type\":\"address\"},{\"internalType\":\"contract IApplicationFactory\",\"name\":\"applicationFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorityOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epochLength\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"templateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dataAvailability\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"calculateAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"application\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorityOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epochLength\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"templateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dataAvailability\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"deployContracts\",\"outputs\":[{\"internalType\":\"contract IApplication\",\"name\":\"application\",\"type\":\"address\"},{\"internalType\":\"contract IAuthority\",\"name\":\"authority\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationFactory\",\"outputs\":[{\"internalType\":\"contract IApplicationFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorityFactory\",\"outputs\":[{\"internalType\":\"contract IAuthorityFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)\":{\"params\":{\"appOwner\":\"The initial application owner\",\"authorityOwner\":\"The initial authority owner\",\"epochLength\":\"The epoch length\",\"salt\":\"The salt used to deterministically generate the addresses\",\"templateHash\":\"The initial machine state hash\"},\"returns\":{\"application\":\"The application address\",\"authority\":\"The authority address\"}},\"constructor\":{\"params\":{\"applicationFactory\":\"The application factory\",\"authorityFactory\":\"The authority factory\"}},\"deployContracts(address,uint256,address,bytes32,bytes,bytes32)\":{\"details\":\"Reverts if the authority owner address is zero.Reverts if the application owner address is zero.Reverts if the epoch length is zero.\",\"params\":{\"appOwner\":\"The initial application owner\",\"authorityOwner\":\"The initial authority owner\",\"epochLength\":\"The epoch length\",\"salt\":\"The salt used to deterministically generate the addresses\",\"templateHash\":\"The initial machine state hash\"},\"returns\":{\"application\":\"The application contract\",\"authority\":\"The authority contract\"}},\"getApplicationFactory()\":{\"returns\":{\"_0\":\"The application factory\"}},\"getAuthorityFactory()\":{\"returns\":{\"_0\":\"The authority factory\"}}},\"title\":\"Self-hosted Application Factory\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)\":{\"notice\":\"Calculate the addresses of the application and authority contracts to be deployed deterministically.\"},\"deployContracts(address,uint256,address,bytes32,bytes,bytes32)\":{\"notice\":\"Deploy new application and authority contracts deterministically.\"},\"getApplicationFactory()\":{\"notice\":\"Get the factory used to deploy `IApplication` contracts\"},\"getAuthorityFactory()\":{\"notice\":\"Get the factory used to deploy `IAuthority` contracts\"}},\"notice\":\"Allows anyone to reliably deploy a new IAuthority contract, along with an IApplication contract already linked to it.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dapp/SelfHostedApplicationFactory.sol\":\"SelfHostedApplicationFactory\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.2.0/=dependencies/@openzeppelin-contracts-5.2.0/\",\":forge-std-1.9.6/=dependencies/forge-std-1.9.6/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/access/IOwnable.sol\":{\"keccak256\":\"0x826f366603fe6fd715bd912d40e9b4e851c110aea5895522523d800015532f6d\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://bb115a4a30824bf77e10b63727cea83e7e1e9bf4c3079ed65e3e7c0eaa290272\",\"dweb:/ipfs/QmYpjBNmELeX1NKdPjXcqnssz65pgYpX2g6ahKXisr9aWM\"]},\"src/common/OutputValidityProof.sol\":{\"keccak256\":\"0x3bd009e3b744e160f92a84624f8c325b5a6abc8f4e8e02e4a1b8a6de73779c1c\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://73da0a877327888a637d739a49ec807a48b65fff96b9c20472b6a8a926d46ff7\",\"dweb:/ipfs/QmaHmqdhJX4RpR3xK15hhuMdVFc47GtvcUkny9ffyzD5K6\"]},\"src/consensus/IConsensus.sol\":{\"keccak256\":\"0x26491d6a13136dfed5c07b4553c86f8ec3ec2e0de803085620523db9c4f94dd3\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://6a0efccda9973ca9da9b8a1fa18fba0df9a457a3b46c6d101ee06f6da43eb468\",\"dweb:/ipfs/QmehZJHU6fEmGuA2QkthA9Mka38phw4q4ioX34rqXKp9Pi\"]},\"src/consensus/IOutputsMerkleRootValidator.sol\":{\"keccak256\":\"0x133dfa71847fd6478489e983d53b08b22f5f578634c2103e96a11cd128e81d68\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://eb43c0a4aa7cd21753a3b92820da37ef58cf29aa4ef5c18a6f2face3e6e94e25\",\"dweb:/ipfs/QmezZmVZV1cfygDYPC8XheVVxaSZt92xQNdEpnRV6Xdh3M\"]},\"src/consensus/authority/IAuthority.sol\":{\"keccak256\":\"0x6b63b7eb9c7deac1184052e58a2fba6e45bc630f1a38225d35cafbd0d5b98b04\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://a5775335d8d7fbb9d8470259af3fe924fdfc14c35c36f4d860fb3f70f8b9ef3b\",\"dweb:/ipfs/QmdpkdekUhZF1mEeKwkLWw3gDt6M8zTeS148rJ4vhUs8Eb\"]},\"src/consensus/authority/IAuthorityFactory.sol\":{\"keccak256\":\"0xd4cd49c11fc103e07a3a47de2fb0b41b3b7ef99d0da345c3cf3d23fd4e7891f5\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://7299f0af4917ab188dce0158701aad3051ace781db93907b3fb593dbbb069329\",\"dweb:/ipfs/Qmf7zLU5YdyUQaVZxxQXapVsJZqLdMxUeysMUc8JoMygfK\"]},\"src/dapp/IApplication.sol\":{\"keccak256\":\"0x2f8e32fd984129fa6e95ff57a6eae42f84a5613643289af75b68f9fedda26e86\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://7b334fc95577418cdbb323118b6078cec1289075b8b72fb794828150fbc681e5\",\"dweb:/ipfs/QmNpyKbFyNdmpPXfzfH4bPj4we1A3Q1qKxGpY18rJpgx3Y\"]},\"src/dapp/IApplicationFactory.sol\":{\"keccak256\":\"0x4fce0e0577b43d9269f1b4f481b9f763096266075143d8bb83719a1358f04ce2\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://d14f5a4221fb227761fa43c4348e6c93a4d9b8491e0f2d02c8944de108a48290\",\"dweb:/ipfs/QmbxidJZ4UKxCePMqkuLKFcinRcMcDkSgFJMPwsgDFDM9j\"]},\"src/dapp/ISelfHostedApplicationFactory.sol\":{\"keccak256\":\"0xfa527eb6b5d2734bb094b459540624153bbef9fd877785974b984e590bb81205\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d81efd30c01a3e691c082d003993b4898895bf9d3b1a6ad6fb1f999fb9f66ecd\",\"dweb:/ipfs/Qmf7JzobaH58o5YidbrnoACCeJSQMZckrgmfKANKWqn7mc\"]},\"src/dapp/SelfHostedApplicationFactory.sol\":{\"keccak256\":\"0x11ce7eec551c9edd9c0b3f431f95f1c08947833c672983081fd9104c72a23237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://670e536d24a5ce8c60d9c0767f1368c0c0e8b3880a6532c6b1e112fe42e8c58d\",\"dweb:/ipfs/QmUYAaiKu7MWwxUvdnbNA3vK99FgvUXeDo6mTyJ98yqq1R\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IAuthorityFactory","name":"authorityFactory","type":"address"},{"internalType":"contract IApplicationFactory","name":"applicationFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authorityOwner","type":"address"},{"internalType":"uint256","name":"epochLength","type":"uint256"},{"internalType":"address","name":"appOwner","type":"address"},{"internalType":"bytes32","name":"templateHash","type":"bytes32"},{"internalType":"bytes","name":"dataAvailability","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"view","type":"function","name":"calculateAddresses","outputs":[{"internalType":"address","name":"application","type":"address"},{"internalType":"address","name":"authority","type":"address"}]},{"inputs":[{"internalType":"address","name":"authorityOwner","type":"address"},{"internalType":"uint256","name":"epochLength","type":"uint256"},{"internalType":"address","name":"appOwner","type":"address"},{"internalType":"bytes32","name":"templateHash","type":"bytes32"},{"internalType":"bytes","name":"dataAvailability","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"deployContracts","outputs":[{"internalType":"contract IApplication","name":"application","type":"address"},{"internalType":"contract IAuthority","name":"authority","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getApplicationFactory","outputs":[{"internalType":"contract IApplicationFactory","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAuthorityFactory","outputs":[{"internalType":"contract IAuthorityFactory","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)":{"params":{"appOwner":"The initial application owner","authorityOwner":"The initial authority owner","epochLength":"The epoch length","salt":"The salt used to deterministically generate the addresses","templateHash":"The initial machine state hash"},"returns":{"application":"The application address","authority":"The authority address"}},"constructor":{"params":{"applicationFactory":"The application factory","authorityFactory":"The authority factory"}},"deployContracts(address,uint256,address,bytes32,bytes,bytes32)":{"details":"Reverts if the authority owner address is zero.Reverts if the application owner address is zero.Reverts if the epoch length is zero.","params":{"appOwner":"The initial application owner","authorityOwner":"The initial authority owner","epochLength":"The epoch length","salt":"The salt used to deterministically generate the addresses","templateHash":"The initial machine state hash"},"returns":{"application":"The application contract","authority":"The authority contract"}},"getApplicationFactory()":{"returns":{"_0":"The application factory"}},"getAuthorityFactory()":{"returns":{"_0":"The authority factory"}}},"version":1},"userdoc":{"kind":"user","methods":{"calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)":{"notice":"Calculate the addresses of the application and authority contracts to be deployed deterministically."},"deployContracts(address,uint256,address,bytes32,bytes,bytes32)":{"notice":"Deploy new application and authority contracts deterministically."},"getApplicationFactory()":{"notice":"Get the factory used to deploy `IApplication` contracts"},"getAuthorityFactory()":{"notice":"Get the factory used to deploy `IAuthority` contracts"}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.2.0/=dependencies/@openzeppelin-contracts-5.2.0/","forge-std-1.9.6/=dependencies/forge-std-1.9.6/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/dapp/SelfHostedApplicationFactory.sol":"SelfHostedApplicationFactory"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/access/IOwnable.sol":{"keccak256":"0x826f366603fe6fd715bd912d40e9b4e851c110aea5895522523d800015532f6d","urls":["bzz-raw://bb115a4a30824bf77e10b63727cea83e7e1e9bf4c3079ed65e3e7c0eaa290272","dweb:/ipfs/QmYpjBNmELeX1NKdPjXcqnssz65pgYpX2g6ahKXisr9aWM"],"license":"Apache-2.0 (see LICENSE)"},"src/common/OutputValidityProof.sol":{"keccak256":"0x3bd009e3b744e160f92a84624f8c325b5a6abc8f4e8e02e4a1b8a6de73779c1c","urls":["bzz-raw://73da0a877327888a637d739a49ec807a48b65fff96b9c20472b6a8a926d46ff7","dweb:/ipfs/QmaHmqdhJX4RpR3xK15hhuMdVFc47GtvcUkny9ffyzD5K6"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/IConsensus.sol":{"keccak256":"0x26491d6a13136dfed5c07b4553c86f8ec3ec2e0de803085620523db9c4f94dd3","urls":["bzz-raw://6a0efccda9973ca9da9b8a1fa18fba0df9a457a3b46c6d101ee06f6da43eb468","dweb:/ipfs/QmehZJHU6fEmGuA2QkthA9Mka38phw4q4ioX34rqXKp9Pi"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/IOutputsMerkleRootValidator.sol":{"keccak256":"0x133dfa71847fd6478489e983d53b08b22f5f578634c2103e96a11cd128e81d68","urls":["bzz-raw://eb43c0a4aa7cd21753a3b92820da37ef58cf29aa4ef5c18a6f2face3e6e94e25","dweb:/ipfs/QmezZmVZV1cfygDYPC8XheVVxaSZt92xQNdEpnRV6Xdh3M"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/authority/IAuthority.sol":{"keccak256":"0x6b63b7eb9c7deac1184052e58a2fba6e45bc630f1a38225d35cafbd0d5b98b04","urls":["bzz-raw://a5775335d8d7fbb9d8470259af3fe924fdfc14c35c36f4d860fb3f70f8b9ef3b","dweb:/ipfs/QmdpkdekUhZF1mEeKwkLWw3gDt6M8zTeS148rJ4vhUs8Eb"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/authority/IAuthorityFactory.sol":{"keccak256":"0xd4cd49c11fc103e07a3a47de2fb0b41b3b7ef99d0da345c3cf3d23fd4e7891f5","urls":["bzz-raw://7299f0af4917ab188dce0158701aad3051ace781db93907b3fb593dbbb069329","dweb:/ipfs/Qmf7zLU5YdyUQaVZxxQXapVsJZqLdMxUeysMUc8JoMygfK"],"license":"Apache-2.0 (see LICENSE)"},"src/dapp/IApplication.sol":{"keccak256":"0x2f8e32fd984129fa6e95ff57a6eae42f84a5613643289af75b68f9fedda26e86","urls":["bzz-raw://7b334fc95577418cdbb323118b6078cec1289075b8b72fb794828150fbc681e5","dweb:/ipfs/QmNpyKbFyNdmpPXfzfH4bPj4we1A3Q1qKxGpY18rJpgx3Y"],"license":"Apache-2.0 (see LICENSE)"},"src/dapp/IApplicationFactory.sol":{"keccak256":"0x4fce0e0577b43d9269f1b4f481b9f763096266075143d8bb83719a1358f04ce2","urls":["bzz-raw://d14f5a4221fb227761fa43c4348e6c93a4d9b8491e0f2d02c8944de108a48290","dweb:/ipfs/QmbxidJZ4UKxCePMqkuLKFcinRcMcDkSgFJMPwsgDFDM9j"],"license":"Apache-2.0 (see LICENSE)"},"src/dapp/ISelfHostedApplicationFactory.sol":{"keccak256":"0xfa527eb6b5d2734bb094b459540624153bbef9fd877785974b984e590bb81205","urls":["bzz-raw://d81efd30c01a3e691c082d003993b4898895bf9d3b1a6ad6fb1f999fb9f66ecd","dweb:/ipfs/Qmf7JzobaH58o5YidbrnoACCeJSQMZckrgmfKANKWqn7mc"],"license":"Apache-2.0"},"src/dapp/SelfHostedApplicationFactory.sol":{"keccak256":"0x11ce7eec551c9edd9c0b3f431f95f1c08947833c672983081fd9104c72a23237","urls":["bzz-raw://670e536d24a5ce8c60d9c0767f1368c0c0e8b3880a6532c6b1e112fe42e8c58d","dweb:/ipfs/QmUYAaiKu7MWwxUvdnbNA3vK99FgvUXeDo6mTyJ98yqq1R"],"license":"Apache-2.0"}},"version":1},"id":42}