{"abi":[{"type":"function","name":"calculateApplicationAddress","inputs":[{"name":"outputsMerkleRootValidator","type":"address","internalType":"contract IOutputsMerkleRootValidator"},{"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":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"newApplication","inputs":[{"name":"outputsMerkleRootValidator","type":"address","internalType":"contract IOutputsMerkleRootValidator"},{"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":"","type":"address","internalType":"contract IApplication"}],"stateMutability":"nonpayable"},{"type":"function","name":"newApplication","inputs":[{"name":"outputsMerkleRootValidator","type":"address","internalType":"contract IOutputsMerkleRootValidator"},{"name":"appOwner","type":"address","internalType":"address"},{"name":"templateHash","type":"bytes32","internalType":"bytes32"},{"name":"dataAvailability","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"contract IApplication"}],"stateMutability":"nonpayable"},{"type":"event","name":"ApplicationCreated","inputs":[{"name":"outputsMerkleRootValidator","type":"address","indexed":true,"internalType":"contract IOutputsMerkleRootValidator"},{"name":"appOwner","type":"address","indexed":false,"internalType":"address"},{"name":"templateHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"dataAvailability","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"appContract","type":"address","indexed":false,"internalType":"contract IApplication"}],"anonymous":false}],"bytecode":{"object":"0x608080604052346015576115d3908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081632cc3ef7c1461020b575080634269667b1461014957638d02370d1461003d575f80fd5b34610145576080366003190112610145576004356001600160a01b0381169081810361014557602435916001600160a01b0383168303610145576044359160643567ffffffffffffffff81116101455761009b9036906004016102a0565b939091604051906111bd8083019083821067ffffffffffffffff8311176101315785858a86956100d1958c956103e1893961034e565b03905ff09485156101265761011b7fd291ffe9436f2c57d5ce3e87ed33576f801053946651a2fb4fec5a406cf68cc59360209760018060a01b031696879160405195869586610382565b0390a2604051908152f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b34610145576020600b6101dc826101ab610162366102ce565b979491969295909361019d6111bd95604051996101818789018c6103be565b878b52868b01976103e18939604051998a94888601978861034e565b03601f1981018752866103be565b60405194859383850197518091895e840190838201905f8252519283915e01015f815203601f1981018352826103be565b51902090604051916040830152838201523081520160ff8153605590206040516001600160a01b039091168152f35b3461014557610219366102ce565b9094959291926111bd80820182811067ffffffffffffffff82111761013157878686898c61024d9588976103e1893961034e565b03905ff59485156101265761011b7fd291ffe9436f2c57d5ce3e87ed33576f801053946651a2fb4fec5a406cf68cc59360209760018060a01b031696879160405195869560018060a01b03169886610382565b9181601f840112156101455782359167ffffffffffffffff8311610145576020838186019501011161014557565b9060a0600319830112610145576004356001600160a01b038116810361014557916024356001600160a01b03811681036101455791604435916064359067ffffffffffffffff821161014557610326916004016102a0565b909160843590565b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261037f9391019161032e565b90565b936103ae926060949297969760018060a01b03168652602086015260806040860152608085019161032e565b6001600160a01b03909416910152565b90601f8019910116810190811067ffffffffffffffff8211176101315760405256fe60c0604052346102b8576111bd80380380610019816102bc565b9283398101906080818303126102b85780516001600160a01b03811691908290036102b85760208101516001600160a01b038116908190036102b8576040820151606083015190926001600160401b0382116102b8570184601f820112156102b8578051906001600160401b0382116102915761009f601f8301601f19166020016102bc565b95828752602083830101116102b857815f9260208093018389015e8601015280156102a5575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600180554360805260a052600380546001600160a01b03191691909117905580516001600160401b03811161029157600454600181811c91168015610287575b602082101461027357601f8111610210575b50602091601f82116001146101b0579181925f926101a5575b50508160011b915f199060031b1c1916176004555b604051610edb90816102e2823960805181610687015260a051816105670152f35b015190505f8061016f565b601f1982169260045f52805f20915f5b8581106101f8575083600195106101e0575b505050811b01600455610184565b01515f1960f88460031b161c191690555f80806101d2565b919260206001819286850151815501940192016101c0565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610269575b601f0160051c01905b81811061025e5750610156565b5f8155600101610251565b9091508190610248565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610144565b634e487b7160e01b5f52604160045260245ffd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102915760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301ffc9a71461012957806308eb89ab14610124578063150b7a021461011f57806333137b761461011a57806361b12c6614610115578063715018a61461011057806371891db01461010b5780638da5cb5b14610106578063a94dfc5a14610101578063b3a1acd8146100fc578063bc197c81146100f7578063bf8abff8146100f2578063e64fab4d146100ed578063e88d39c0146100e8578063f02478de146100e3578063f23a6e61146100de5763f2fde38b0361000e576109c6565b61096d565b61087e565b61083d565b610820565b6107af565b610711565b610670565b610648565b610621565b6105e1565b61058a565b610550565b61034b565b610286565b610191565b3461017f57602036600319011261017f5760043563ffffffff60e01b811680910361017f57602090630271189760e51b811490811561016e575b506040519015158152f35b6301ffc9a760e01b1490505f610163565b5f80fd5b9081604091031261017f5790565b3461017f57604036600319011261017f576024356001600160401b03811161017f576101c4610018913690600401610183565b600435610a4f565b6001600160a01b0381160361017f57565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761021257604052565b6101dd565b6001600160401b03811161021257601f01601f191660200190565b92919261023e82610217565b9161024c60405193846101f1565b82948184528183011161017f578281602093845f960137010152565b9080601f8301121561017f5781602061028393359101610232565b90565b3461017f57608036600319011261017f576102a26004356101cc565b6102ad6024356101cc565b6064356001600160401b03811161017f576102cc903690600401610268565b50604051630a85bd0160e11b8152602090f35b604060031982011261017f57600435916001600160401b03831161017f578160238401121561017f578260040135926001600160401b03841161017f57826024858301011161017f576024019291602435906001600160401b03821161017f5761028391600401610183565b3461017f57610359366102df565b6002600193929354146105415761037f90600260015561037a818585610c0e565b610b26565b600483106105245761039a6103948484610b6b565b90610b96565b6103a5848085610b79565b916001600160e01b03191663237a816f60e01b810361049557506103e96001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b610471579361041c610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610d4d565b6104466001600160401b0384168060081c5f526002602052600160ff60405f2092161b8154179055565b610459610454600554610bcc565b600555565b60405193849384610bee565b0390a161001860018055565b5050604051637b97a6bb60e01b8152928392610491925060048401610b5a565b0390fd5b6310321e8b60e01b03610504576104cc6001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b61047157936104ff610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610ce8565b61041c565b5050604051636942600f60e11b8152928392610491925060048401610b5a565b50610491604051928392636942600f60e11b845260048401610b5a565b633ee5aeb560e01b5f5260045ffd5b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461017f575f36600319011261017f576105a2610dbd565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017f57602036600319011261017f57602061061760043560ff6001918060081c5f526002602052161b60405f205416151590565b6040519015158152f35b3461017f575f36600319011261017f575f546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f576003546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b9080601f8301121561017f578135916001600160401b038311610212578260051b90604051936106dd60208401866101f1565b845260208085019282010192831161017f57602001905b8282106107015750505090565b81358152602091820191016106f4565b3461017f5760a036600319011261017f5761072d6004356101cc565b6107386024356101cc565b6044356001600160401b03811161017f576107579036906004016106aa565b506064356001600160401b03811161017f576107779036906004016106aa565b506084356001600160401b03811161017f57610797903690600401610268565b5060405163bc197c8160e01b815280602081015b0390f35b3461017f57602036600319011261017f577f6ad3188ba8f430fba0656cb0a7e839ab2020d5586ba11a1477d18f7092f8bece6004356107ed816101cc565b6107f5610dbd565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152602090a1005b3461017f575f36600319011261017f576020600554604051908152f35b3461017f5761001861084e366102df565b91610c0e565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017f575f36600319011261017f576040515f6004548060011c9060018116908115610963575b60208310821461094f57828552602085019190811561093657506001146108e4575b6107ab846108d8818603826101f1565b60405191829182610854565b60045f9081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818410610922575050016108d8826108c8565b80548484015260209093019260010161090f565b60ff191682525090151560051b0190506108d8826108c8565b634e487b7160e01b5f52602260045260245ffd5b91607f16916108a6565b3461017f5760a036600319011261017f576109896004356101cc565b6109946024356101cc565b6084356001600160401b03811161017f576109b3903690600401610268565b5060405163f23a6e6160e01b8152602090f35b3461017f57602036600319011261017f576004356109e3816101cc565b6109eb610dbd565b6001600160a01b03168015610a3c575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b916020820191603f610a618483610c2c565b905003610b17576001600160401b03610a80610a889483969496610c2c565b949092610b26565b16935f925b84841015610ade57610ac56001918560051b85013590838916155f14610ace5790610abe915f5260205260405f2090565b9660011c90565b93019294610a8d565b610abe915f5260205260405f2090565b9350939050610aee915015610de3565b610afe610afa82610c61565b1590565b610b055750565b6344a192ff60e01b5f5260045260245ffd5b635d2c5e9b60e11b5f5260045ffd5b356001600160401b038116810361017f5790565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610283938181520191610b3a565b9060041161017f5790600490565b909291928360041161017f57831161017f57600401916003190190565b356001600160e01b0319811692919060048210610bb1575050565b6001600160e01b031960049290920360031b82901b16169150565b5f198114610bda5760010190565b634e487b7160e01b5f52601160045260245ffd5b6040906001600160401b0361028395931681528160208201520191610b3a565b610c1e90610c2a93923691610232565b60208151910120610a4f565b565b903590601e198136030182121561017f57018035906001600160401b03821161017f57602001918160051b3603831361017f57565b600354604051633973219960e21b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115610cdd575f91610ca5575090565b90506020813d602011610cd5575b81610cc0602093836101f1565b8101031261017f5751801515810361017f5790565b3d9150610cb3565b6040513d5f823e3d90fd5b9081019060408183031261017f578035610d01816101cc565b6020820135916001600160401b03831161017f575f938493610d239201610268565b8051916020909101906001600160a01b03165af4610d3f610e2e565b9015610d485750565b610e94565b90810160608282031261017f578135610d65816101cc565b6020830135926040810135906001600160401b03821161017f57610d9e938592610d8f9201610268565b916001600160a01b0316610e5d565b919015610da9575050565b62fae2d560e21b5f5260045260245260445ffd5b5f546001600160a01b03163303610dd057565b63118cdaa760e01b5f523360045260245ffd5b15610dea57565b606460405162461bcd60e51b815260206004820152602060248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e64736044820152fd5b3d15610e58573d90610e3f82610217565b91610e4d60405193846101f1565b82523d5f602084013e565b606090565b909291924793848211610e8c575f928392602083519301915af1610e7f610e2e565b9015610d48575060019190565b5050505f9190565b80519081610ea0575f80fd5b602001fdfea2646970667358221220792581cdb4c619bae279f0c92e047aad61eb4cf6dc6fa58277baeef42718d57d64736f6c634300081e0033a2646970667358221220dbeec0f601cd75193104bedbc40c7ae49694cd51be7106d801f08f000e5730ee64736f6c634300081e0033","sourceMap":"562:2005:38:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081632cc3ef7c1461020b575080634269667b1461014957638d02370d1461003d575f80fd5b34610145576080366003190112610145576004356001600160a01b0381169081810361014557602435916001600160a01b0383168303610145576044359160643567ffffffffffffffff81116101455761009b9036906004016102a0565b939091604051906111bd8083019083821067ffffffffffffffff8311176101315785858a86956100d1958c956103e1893961034e565b03905ff09485156101265761011b7fd291ffe9436f2c57d5ce3e87ed33576f801053946651a2fb4fec5a406cf68cc59360209760018060a01b031696879160405195869586610382565b0390a2604051908152f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b34610145576020600b6101dc826101ab610162366102ce565b979491969295909361019d6111bd95604051996101818789018c6103be565b878b52868b01976103e18939604051998a94888601978861034e565b03601f1981018752866103be565b60405194859383850197518091895e840190838201905f8252519283915e01015f815203601f1981018352826103be565b51902090604051916040830152838201523081520160ff8153605590206040516001600160a01b039091168152f35b3461014557610219366102ce565b9094959291926111bd80820182811067ffffffffffffffff82111761013157878686898c61024d9588976103e1893961034e565b03905ff59485156101265761011b7fd291ffe9436f2c57d5ce3e87ed33576f801053946651a2fb4fec5a406cf68cc59360209760018060a01b031696879160405195869560018060a01b03169886610382565b9181601f840112156101455782359167ffffffffffffffff8311610145576020838186019501011161014557565b9060a0600319830112610145576004356001600160a01b038116810361014557916024356001600160a01b03811681036101455791604435916064359067ffffffffffffffff821161014557610326916004016102a0565b909160843590565b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261037f9391019161032e565b90565b936103ae926060949297969760018060a01b03168652602086015260806040860152608085019161032e565b6001600160a01b03909416910152565b90601f8019910116810190811067ffffffffffffffff8211176101315760405256fe60c0604052346102b8576111bd80380380610019816102bc565b9283398101906080818303126102b85780516001600160a01b03811691908290036102b85760208101516001600160a01b038116908190036102b8576040820151606083015190926001600160401b0382116102b8570184601f820112156102b8578051906001600160401b0382116102915761009f601f8301601f19166020016102bc565b95828752602083830101116102b857815f9260208093018389015e8601015280156102a5575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600180554360805260a052600380546001600160a01b03191691909117905580516001600160401b03811161029157600454600181811c91168015610287575b602082101461027357601f8111610210575b50602091601f82116001146101b0579181925f926101a5575b50508160011b915f199060031b1c1916176004555b604051610edb90816102e2823960805181610687015260a051816105670152f35b015190505f8061016f565b601f1982169260045f52805f20915f5b8581106101f8575083600195106101e0575b505050811b01600455610184565b01515f1960f88460031b161c191690555f80806101d2565b919260206001819286850151815501940192016101c0565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610269575b601f0160051c01905b81811061025e5750610156565b5f8155600101610251565b9091508190610248565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610144565b634e487b7160e01b5f52604160045260245ffd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102915760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301ffc9a71461012957806308eb89ab14610124578063150b7a021461011f57806333137b761461011a57806361b12c6614610115578063715018a61461011057806371891db01461010b5780638da5cb5b14610106578063a94dfc5a14610101578063b3a1acd8146100fc578063bc197c81146100f7578063bf8abff8146100f2578063e64fab4d146100ed578063e88d39c0146100e8578063f02478de146100e3578063f23a6e61146100de5763f2fde38b0361000e576109c6565b61096d565b61087e565b61083d565b610820565b6107af565b610711565b610670565b610648565b610621565b6105e1565b61058a565b610550565b61034b565b610286565b610191565b3461017f57602036600319011261017f5760043563ffffffff60e01b811680910361017f57602090630271189760e51b811490811561016e575b506040519015158152f35b6301ffc9a760e01b1490505f610163565b5f80fd5b9081604091031261017f5790565b3461017f57604036600319011261017f576024356001600160401b03811161017f576101c4610018913690600401610183565b600435610a4f565b6001600160a01b0381160361017f57565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761021257604052565b6101dd565b6001600160401b03811161021257601f01601f191660200190565b92919261023e82610217565b9161024c60405193846101f1565b82948184528183011161017f578281602093845f960137010152565b9080601f8301121561017f5781602061028393359101610232565b90565b3461017f57608036600319011261017f576102a26004356101cc565b6102ad6024356101cc565b6064356001600160401b03811161017f576102cc903690600401610268565b50604051630a85bd0160e11b8152602090f35b604060031982011261017f57600435916001600160401b03831161017f578160238401121561017f578260040135926001600160401b03841161017f57826024858301011161017f576024019291602435906001600160401b03821161017f5761028391600401610183565b3461017f57610359366102df565b6002600193929354146105415761037f90600260015561037a818585610c0e565b610b26565b600483106105245761039a6103948484610b6b565b90610b96565b6103a5848085610b79565b916001600160e01b03191663237a816f60e01b810361049557506103e96001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b610471579361041c610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610d4d565b6104466001600160401b0384168060081c5f526002602052600160ff60405f2092161b8154179055565b610459610454600554610bcc565b600555565b60405193849384610bee565b0390a161001860018055565b5050604051637b97a6bb60e01b8152928392610491925060048401610b5a565b0390fd5b6310321e8b60e01b03610504576104cc6001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b61047157936104ff610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610ce8565b61041c565b5050604051636942600f60e11b8152928392610491925060048401610b5a565b50610491604051928392636942600f60e11b845260048401610b5a565b633ee5aeb560e01b5f5260045ffd5b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461017f575f36600319011261017f576105a2610dbd565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017f57602036600319011261017f57602061061760043560ff6001918060081c5f526002602052161b60405f205416151590565b6040519015158152f35b3461017f575f36600319011261017f575f546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f576003546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b9080601f8301121561017f578135916001600160401b038311610212578260051b90604051936106dd60208401866101f1565b845260208085019282010192831161017f57602001905b8282106107015750505090565b81358152602091820191016106f4565b3461017f5760a036600319011261017f5761072d6004356101cc565b6107386024356101cc565b6044356001600160401b03811161017f576107579036906004016106aa565b506064356001600160401b03811161017f576107779036906004016106aa565b506084356001600160401b03811161017f57610797903690600401610268565b5060405163bc197c8160e01b815280602081015b0390f35b3461017f57602036600319011261017f577f6ad3188ba8f430fba0656cb0a7e839ab2020d5586ba11a1477d18f7092f8bece6004356107ed816101cc565b6107f5610dbd565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152602090a1005b3461017f575f36600319011261017f576020600554604051908152f35b3461017f5761001861084e366102df565b91610c0e565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017f575f36600319011261017f576040515f6004548060011c9060018116908115610963575b60208310821461094f57828552602085019190811561093657506001146108e4575b6107ab846108d8818603826101f1565b60405191829182610854565b60045f9081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818410610922575050016108d8826108c8565b80548484015260209093019260010161090f565b60ff191682525090151560051b0190506108d8826108c8565b634e487b7160e01b5f52602260045260245ffd5b91607f16916108a6565b3461017f5760a036600319011261017f576109896004356101cc565b6109946024356101cc565b6084356001600160401b03811161017f576109b3903690600401610268565b5060405163f23a6e6160e01b8152602090f35b3461017f57602036600319011261017f576004356109e3816101cc565b6109eb610dbd565b6001600160a01b03168015610a3c575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b916020820191603f610a618483610c2c565b905003610b17576001600160401b03610a80610a889483969496610c2c565b949092610b26565b16935f925b84841015610ade57610ac56001918560051b85013590838916155f14610ace5790610abe915f5260205260405f2090565b9660011c90565b93019294610a8d565b610abe915f5260205260405f2090565b9350939050610aee915015610de3565b610afe610afa82610c61565b1590565b610b055750565b6344a192ff60e01b5f5260045260245ffd5b635d2c5e9b60e11b5f5260045ffd5b356001600160401b038116810361017f5790565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610283938181520191610b3a565b9060041161017f5790600490565b909291928360041161017f57831161017f57600401916003190190565b356001600160e01b0319811692919060048210610bb1575050565b6001600160e01b031960049290920360031b82901b16169150565b5f198114610bda5760010190565b634e487b7160e01b5f52601160045260245ffd5b6040906001600160401b0361028395931681528160208201520191610b3a565b610c1e90610c2a93923691610232565b60208151910120610a4f565b565b903590601e198136030182121561017f57018035906001600160401b03821161017f57602001918160051b3603831361017f57565b600354604051633973219960e21b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115610cdd575f91610ca5575090565b90506020813d602011610cd5575b81610cc0602093836101f1565b8101031261017f5751801515810361017f5790565b3d9150610cb3565b6040513d5f823e3d90fd5b9081019060408183031261017f578035610d01816101cc565b6020820135916001600160401b03831161017f575f938493610d239201610268565b8051916020909101906001600160a01b03165af4610d3f610e2e565b9015610d485750565b610e94565b90810160608282031261017f578135610d65816101cc565b6020830135926040810135906001600160401b03821161017f57610d9e938592610d8f9201610268565b916001600160a01b0316610e5d565b919015610da9575050565b62fae2d560e21b5f5260045260245260445ffd5b5f546001600160a01b03163303610dd057565b63118cdaa760e01b5f523360045260245ffd5b15610dea57565b606460405162461bcd60e51b815260206004820152602060248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e64736044820152fd5b3d15610e58573d90610e3f82610217565b91610e4d60405193846101f1565b82523d5f602084013e565b606090565b909291924793848211610e8c575f928392602083519301915af1610e7f610e2e565b9015610d48575060019190565b5050505f9190565b80519081610ea0575f80fd5b602001fdfea2646970667358221220792581cdb4c619bae279f0c92e047aad61eb4cf6dc6fa58277baeef42718d57d64736f6c634300081e0033a2646970667358221220dbeec0f601cd75193104bedbc40c7ae49694cd51be7106d801f08f000e5730ee64736f6c634300081e0033","sourceMap":"562:2005:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2266:30;;;562:2005;;;;;;;;;-1:-1:-1;;562:2005:38;;;;;;-1:-1:-1;;;;;562:2005:38;;;;;;;;;;;-1:-1:-1;;;;;562:2005:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;888:107;;;;;;;;;562:2005;888:107;;;;;;;;;;;;;;;;;;:::i;:::-;;;562:2005;888:107;;;;;;1011:171;;562:2005;;;1515:119;562:2005;;;;;;;;;;1011:171;;;;;:::i;:::-;;;;562:2005;;;;;;888:107;562:2005;;;;;;;;;888:107;562:2005;;;;;;;;;;;;;;;;;;;2266:30;2794:1663:13;2228:306:38;562:2005;2318:198;562:2005;;;:::i;:::-;2266:30;;;;;;;;2318:198;2266:30;562:2005;;;2266:30;562:2005;2266:30;;;562:2005;;:::i;:::-;2266:30;;;;;;;;;;562:2005;;2318:198;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;562:2005;;2228:306;;;;;;562:2005;;;;;;;;;;;;;;;;;;;;;;;;;;2228:306;2318:198;;2228:306;;;;;;:::i;:::-;562:2005;2201:347;;2794:1663:13;562:2005:38;2794:1663:13;;562:2005:38;2794:1663:13;;;;;;;2413:4;2794:1663;;;;;;;;;-1:-1:-1;562:2005:38;-1:-1:-1;;;;;2794:1663:13;;;562:2005:38;;;;;;;;;;:::i;:::-;1515:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;562:2005;1515:119;;;;;;1650:171;;562:2005;;;1515:119;562:2005;;;;;;;;;;;;;1515:119;562:2005;;;;;1650:171;;;:::i;562:2005::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;562:2005:38;;;;;;;-1:-1:-1;;;;;562:2005:38;;;;;;;;;-1:-1:-1;;;;;562:2005:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;562:2005:38;;;;;;;;-1:-1:-1;;562:2005:38;;;;:::o;:::-;-1:-1:-1;;;;;562:2005:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;1515:119;562:2005;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;562:2005:38;;;;;;:::o;:::-;;;2318:198;;562:2005;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"calculateApplicationAddress(address,address,bytes32,bytes,bytes32)":"4269667b","newApplication(address,address,bytes32,bytes)":"8d02370d","newApplication(address,address,bytes32,bytes,bytes32)":"2cc3ef7c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"outputsMerkleRootValidator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"templateHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dataAvailability\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"contract IApplication\",\"name\":\"appContract\",\"type\":\"address\"}],\"name\":\"ApplicationCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"outputsMerkleRootValidator\",\"type\":\"address\"},{\"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\":\"calculateApplicationAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"outputsMerkleRootValidator\",\"type\":\"address\"},{\"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\":\"newApplication\",\"outputs\":[{\"internalType\":\"contract IApplication\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"outputsMerkleRootValidator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"appOwner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"templateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dataAvailability\",\"type\":\"bytes\"}],\"name\":\"newApplication\",\"outputs\":[{\"internalType\":\"contract IApplication\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ApplicationCreated(address,address,bytes32,bytes,address)\":{\"details\":\"MUST be triggered on a successful call to `newApplication`.\",\"params\":{\"appContract\":\"The application contract\",\"appOwner\":\"The initial application owner\",\"outputsMerkleRootValidator\":\"The initial outputs Merkle root validator contract\",\"templateHash\":\"The initial machine state hash\"}}},\"kind\":\"dev\",\"methods\":{\"calculateApplicationAddress(address,address,bytes32,bytes,bytes32)\":{\"details\":\"Beware that only the `newApplication` function with the `salt` parameter      is able to deterministically deploy an application.\",\"params\":{\"appOwner\":\"The initial application owner\",\"outputsMerkleRootValidator\":\"The initial outputs Merkle root validator contract\",\"salt\":\"The salt used to deterministically generate the application contract address\",\"templateHash\":\"The initial machine state hash\"},\"returns\":{\"_0\":\"The deterministic application contract address\"}},\"newApplication(address,address,bytes32,bytes)\":{\"details\":\"On success, MUST emit an `ApplicationCreated` event.Reverts if the application owner address is zero.\",\"params\":{\"appOwner\":\"The initial application owner\",\"outputsMerkleRootValidator\":\"The initial outputs Merkle root validator contract\",\"templateHash\":\"The initial machine state hash\"},\"returns\":{\"_0\":\"The application\"}},\"newApplication(address,address,bytes32,bytes,bytes32)\":{\"details\":\"On success, MUST emit an `ApplicationCreated` event.Reverts if the application owner address is zero.\",\"params\":{\"appOwner\":\"The initial application owner\",\"outputsMerkleRootValidator\":\"The initial outputs Merkle root validator contract\",\"salt\":\"The salt used to deterministically generate the application contract address\",\"templateHash\":\"The initial machine state hash\"},\"returns\":{\"_0\":\"The application\"}}},\"title\":\"Application Factory\",\"version\":1},\"userdoc\":{\"events\":{\"ApplicationCreated(address,address,bytes32,bytes,address)\":{\"notice\":\"A new application was deployed.\"}},\"kind\":\"user\",\"methods\":{\"calculateApplicationAddress(address,address,bytes32,bytes,bytes32)\":{\"notice\":\"Calculate the address of an application contract to be deployed deterministically.\"},\"newApplication(address,address,bytes32,bytes)\":{\"notice\":\"Deploy a new application.\"},\"newApplication(address,address,bytes32,bytes,bytes32)\":{\"notice\":\"Deploy a new application deterministically.\"}},\"notice\":\"Allows anyone to reliably deploy a new `IApplication` contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dapp/ApplicationFactory.sol\":\"ApplicationFactory\"},\"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/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"dependencies/@openzeppelin-contracts-5.2.0/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x61a23d601c2ab69dd726ac55058604cbda98e1d728ba31a51c379a3f9eeea715\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8cbb06152d82ebdd5ba1d33454e5759492040f309a82637c7e99c948a04fa20\",\"dweb:/ipfs/QmQQuLr6WSfLu97pMEh6XLefk99TSj9k5Qu1zXGPepwGiK\"]},\"dependencies/@openzeppelin-contracts-5.2.0/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0xe103e95f854ef0cd1bba5f469175f67cd332f5c2561941f165e3dd65cee94d6d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6cf8cc5d07cf8003255f9d766fe8188b9f6e33b6240e126a605f0d061566b23e\",\"dweb:/ipfs/Qmd7okDCSoUt1L4G9hmb5c4W8kWUnfpAa2jyBKUp4xKErd\"]},\"dependencies/@openzeppelin-contracts-5.2.0/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"dependencies/@openzeppelin-contracts-5.2.0/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0xaad20f8713b5cd98114278482d5d91b9758f9727048527d582e8e88fd4901fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5396e8dbb000c2fada59b7d2093b9c7c870fd09413ab0fdaba45d882959c6244\",\"dweb:/ipfs/QmXQn5XckSiUsUBpMYuiFeqnojRX4rKa9jmgjCPeTuPmhh\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"src/access/IOwnable.sol\":{\"keccak256\":\"0x826f366603fe6fd715bd912d40e9b4e851c110aea5895522523d800015532f6d\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://bb115a4a30824bf77e10b63727cea83e7e1e9bf4c3079ed65e3e7c0eaa290272\",\"dweb:/ipfs/QmYpjBNmELeX1NKdPjXcqnssz65pgYpX2g6ahKXisr9aWM\"]},\"src/common/CanonicalMachine.sol\":{\"keccak256\":\"0xbc26506585fc40fc4dbb8aa963e6bc25da0c727ccfbb7ac31d6c066ccb0595eb\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://dc7459179ec69a61bf30e0e55e2486b5f20b5a96108a3e337bb9cb50ff141cdb\",\"dweb:/ipfs/QmfFknWWyVTYwjDEEHfL9Bjuda3Arn3B9fNrUxPRXZuWSh\"]},\"src/common/OutputValidityProof.sol\":{\"keccak256\":\"0x3bd009e3b744e160f92a84624f8c325b5a6abc8f4e8e02e4a1b8a6de73779c1c\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://73da0a877327888a637d739a49ec807a48b65fff96b9c20472b6a8a926d46ff7\",\"dweb:/ipfs/QmaHmqdhJX4RpR3xK15hhuMdVFc47GtvcUkny9ffyzD5K6\"]},\"src/common/Outputs.sol\":{\"keccak256\":\"0x6778da4b58408efc31b2e2f3ac87193d218bc6f57a1b2f15aad2830021c11284\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://5d159bca31f0a4b48af44020aa6079dcf1c8c8668fefd4b0e980f5d38cbac6eb\",\"dweb:/ipfs/QmecpijscR9SuneJus8Rg8KsZfPXhTRuFERhLSYmpaNBWi\"]},\"src/consensus/IOutputsMerkleRootValidator.sol\":{\"keccak256\":\"0x133dfa71847fd6478489e983d53b08b22f5f578634c2103e96a11cd128e81d68\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://eb43c0a4aa7cd21753a3b92820da37ef58cf29aa4ef5c18a6f2face3e6e94e25\",\"dweb:/ipfs/QmezZmVZV1cfygDYPC8XheVVxaSZt92xQNdEpnRV6Xdh3M\"]},\"src/dapp/Application.sol\":{\"keccak256\":\"0x6b3fc9807d24a48c3fde688364d489f78c1959fbb6052844d1504e9f459be3af\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://78ecd43d7c2a9d8af3687d2f7eb5b9f18f963f763f2a40ff4bce802a44614a29\",\"dweb:/ipfs/QmUmYcfvkFhbePzkHLmQzjQDdkR4EjH6h1xYBCN6938P6p\"]},\"src/dapp/ApplicationFactory.sol\":{\"keccak256\":\"0x36c47e6a1ffdf617abb534c2f30687eafbf901f492c80f0638b941019ea9a0ab\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://16d41d7a8e7ec2c54b39375d00ff4843d1e3d946348e09c637780ac197de67d2\",\"dweb:/ipfs/QmY9bMG7BMKJqbirhK8mn3DkWMP4ByRqiwADC4tVp5q81h\"]},\"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/library/LibAddress.sol\":{\"keccak256\":\"0x99c8f5a5bcd733956fa595d52957fb61683529be14f086b7ce6acff62981ef87\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://6857c4ade5ab8e6cc9fc481dc5ae196410e9f3da04ef6c765db86818cb6dea6b\",\"dweb:/ipfs/QmT7mBbkwqrddiyDatze5hY7vuiTCEhhkLJBSvrymQR2Wh\"]},\"src/library/LibError.sol\":{\"keccak256\":\"0x3d5f9497f40e172fe1a0b9e2635cd4b14c4c3d16bcfd851db034273573aae37d\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://32419855137544d518a4f890edce6f237191de6ed8e3e158919d1af8823a2095\",\"dweb:/ipfs/QmTQNeThSFMKfdjuKzE6nzzucNnRgf1eTWopCRFwv37twt\"]},\"src/library/LibMerkle32.sol\":{\"keccak256\":\"0xa3891fc88d94016cdc440596da84637aa5d57af845c5f0002e2df9d9a97640a4\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://2109c1c53704bd88b25e29bd0861704bc53effef9a6b667ff87f991191a5cf66\",\"dweb:/ipfs/QmQufuncCvte62r9YX6vzjFv4WD9vpYHYcaBw58HpKrMDP\"]},\"src/library/LibOutputValidityProof.sol\":{\"keccak256\":\"0x79373aaf03883d39a58f7b2fe6e7ecd118547db65136f4bc9a6c9f5c6eb965c1\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://fb086964d1da1d995d2cb0a9a2f2c9e16829cebe358337d7efa6e563b90e89fc\",\"dweb:/ipfs/QmabuzTPCP2rF6tqLPVPZX4pg75BdJ5Dgbevu4E3rgZb42\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IOutputsMerkleRootValidator","name":"outputsMerkleRootValidator","type":"address","indexed":true},{"internalType":"address","name":"appOwner","type":"address","indexed":false},{"internalType":"bytes32","name":"templateHash","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dataAvailability","type":"bytes","indexed":false},{"internalType":"contract IApplication","name":"appContract","type":"address","indexed":false}],"type":"event","name":"ApplicationCreated","anonymous":false},{"inputs":[{"internalType":"contract IOutputsMerkleRootValidator","name":"outputsMerkleRootValidator","type":"address"},{"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":"calculateApplicationAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IOutputsMerkleRootValidator","name":"outputsMerkleRootValidator","type":"address"},{"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":"newApplication","outputs":[{"internalType":"contract IApplication","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IOutputsMerkleRootValidator","name":"outputsMerkleRootValidator","type":"address"},{"internalType":"address","name":"appOwner","type":"address"},{"internalType":"bytes32","name":"templateHash","type":"bytes32"},{"internalType":"bytes","name":"dataAvailability","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"newApplication","outputs":[{"internalType":"contract IApplication","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"calculateApplicationAddress(address,address,bytes32,bytes,bytes32)":{"details":"Beware that only the `newApplication` function with the `salt` parameter      is able to deterministically deploy an application.","params":{"appOwner":"The initial application owner","outputsMerkleRootValidator":"The initial outputs Merkle root validator contract","salt":"The salt used to deterministically generate the application contract address","templateHash":"The initial machine state hash"},"returns":{"_0":"The deterministic application contract address"}},"newApplication(address,address,bytes32,bytes)":{"details":"On success, MUST emit an `ApplicationCreated` event.Reverts if the application owner address is zero.","params":{"appOwner":"The initial application owner","outputsMerkleRootValidator":"The initial outputs Merkle root validator contract","templateHash":"The initial machine state hash"},"returns":{"_0":"The application"}},"newApplication(address,address,bytes32,bytes,bytes32)":{"details":"On success, MUST emit an `ApplicationCreated` event.Reverts if the application owner address is zero.","params":{"appOwner":"The initial application owner","outputsMerkleRootValidator":"The initial outputs Merkle root validator contract","salt":"The salt used to deterministically generate the application contract address","templateHash":"The initial machine state hash"},"returns":{"_0":"The application"}}},"version":1},"userdoc":{"kind":"user","methods":{"calculateApplicationAddress(address,address,bytes32,bytes,bytes32)":{"notice":"Calculate the address of an application contract to be deployed deterministically."},"newApplication(address,address,bytes32,bytes)":{"notice":"Deploy a new application."},"newApplication(address,address,bytes32,bytes,bytes32)":{"notice":"Deploy a new application deterministically."}},"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/ApplicationFactory.sol":"ApplicationFactory"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.2.0/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0x61a23d601c2ab69dd726ac55058604cbda98e1d728ba31a51c379a3f9eeea715","urls":["bzz-raw://d8cbb06152d82ebdd5ba1d33454e5759492040f309a82637c7e99c948a04fa20","dweb:/ipfs/QmQQuLr6WSfLu97pMEh6XLefk99TSj9k5Qu1zXGPepwGiK"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0xe103e95f854ef0cd1bba5f469175f67cd332f5c2561941f165e3dd65cee94d6d","urls":["bzz-raw://6cf8cc5d07cf8003255f9d766fe8188b9f6e33b6240e126a605f0d061566b23e","dweb:/ipfs/Qmd7okDCSoUt1L4G9hmb5c4W8kWUnfpAa2jyBKUp4xKErd"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0xaad20f8713b5cd98114278482d5d91b9758f9727048527d582e8e88fd4901fd8","urls":["bzz-raw://5396e8dbb000c2fada59b7d2093b9c7c870fd09413ab0fdaba45d882959c6244","dweb:/ipfs/QmXQn5XckSiUsUBpMYuiFeqnojRX4rKa9jmgjCPeTuPmhh"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/Create2.sol":{"keccak256":"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06","urls":["bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e","dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/structs/BitMaps.sol":{"keccak256":"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b","urls":["bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e","dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug"],"license":"MIT"},"src/access/IOwnable.sol":{"keccak256":"0x826f366603fe6fd715bd912d40e9b4e851c110aea5895522523d800015532f6d","urls":["bzz-raw://bb115a4a30824bf77e10b63727cea83e7e1e9bf4c3079ed65e3e7c0eaa290272","dweb:/ipfs/QmYpjBNmELeX1NKdPjXcqnssz65pgYpX2g6ahKXisr9aWM"],"license":"Apache-2.0 (see LICENSE)"},"src/common/CanonicalMachine.sol":{"keccak256":"0xbc26506585fc40fc4dbb8aa963e6bc25da0c727ccfbb7ac31d6c066ccb0595eb","urls":["bzz-raw://dc7459179ec69a61bf30e0e55e2486b5f20b5a96108a3e337bb9cb50ff141cdb","dweb:/ipfs/QmfFknWWyVTYwjDEEHfL9Bjuda3Arn3B9fNrUxPRXZuWSh"],"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/common/Outputs.sol":{"keccak256":"0x6778da4b58408efc31b2e2f3ac87193d218bc6f57a1b2f15aad2830021c11284","urls":["bzz-raw://5d159bca31f0a4b48af44020aa6079dcf1c8c8668fefd4b0e980f5d38cbac6eb","dweb:/ipfs/QmecpijscR9SuneJus8Rg8KsZfPXhTRuFERhLSYmpaNBWi"],"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/dapp/Application.sol":{"keccak256":"0x6b3fc9807d24a48c3fde688364d489f78c1959fbb6052844d1504e9f459be3af","urls":["bzz-raw://78ecd43d7c2a9d8af3687d2f7eb5b9f18f963f763f2a40ff4bce802a44614a29","dweb:/ipfs/QmUmYcfvkFhbePzkHLmQzjQDdkR4EjH6h1xYBCN6938P6p"],"license":"Apache-2.0 (see LICENSE)"},"src/dapp/ApplicationFactory.sol":{"keccak256":"0x36c47e6a1ffdf617abb534c2f30687eafbf901f492c80f0638b941019ea9a0ab","urls":["bzz-raw://16d41d7a8e7ec2c54b39375d00ff4843d1e3d946348e09c637780ac197de67d2","dweb:/ipfs/QmY9bMG7BMKJqbirhK8mn3DkWMP4ByRqiwADC4tVp5q81h"],"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/library/LibAddress.sol":{"keccak256":"0x99c8f5a5bcd733956fa595d52957fb61683529be14f086b7ce6acff62981ef87","urls":["bzz-raw://6857c4ade5ab8e6cc9fc481dc5ae196410e9f3da04ef6c765db86818cb6dea6b","dweb:/ipfs/QmT7mBbkwqrddiyDatze5hY7vuiTCEhhkLJBSvrymQR2Wh"],"license":"Apache-2.0 (see LICENSE)"},"src/library/LibError.sol":{"keccak256":"0x3d5f9497f40e172fe1a0b9e2635cd4b14c4c3d16bcfd851db034273573aae37d","urls":["bzz-raw://32419855137544d518a4f890edce6f237191de6ed8e3e158919d1af8823a2095","dweb:/ipfs/QmTQNeThSFMKfdjuKzE6nzzucNnRgf1eTWopCRFwv37twt"],"license":"Apache-2.0 (see LICENSE)"},"src/library/LibMerkle32.sol":{"keccak256":"0xa3891fc88d94016cdc440596da84637aa5d57af845c5f0002e2df9d9a97640a4","urls":["bzz-raw://2109c1c53704bd88b25e29bd0861704bc53effef9a6b667ff87f991191a5cf66","dweb:/ipfs/QmQufuncCvte62r9YX6vzjFv4WD9vpYHYcaBw58HpKrMDP"],"license":"Apache-2.0 (see LICENSE)"},"src/library/LibOutputValidityProof.sol":{"keccak256":"0x79373aaf03883d39a58f7b2fe6e7ecd118547db65136f4bc9a6c9f5c6eb965c1","urls":["bzz-raw://fb086964d1da1d995d2cb0a9a2f2c9e16829cebe358337d7efa6e563b90e89fc","dweb:/ipfs/QmabuzTPCP2rF6tqLPVPZX4pg75BdJ5Dgbevu4E3rgZb42"],"license":"Apache-2.0 (see LICENSE)"}},"version":1},"id":38}