{"abi":[{"type":"constructor","inputs":[{"name":"outputsMerkleRootValidator","type":"address","internalType":"contract IOutputsMerkleRootValidator"},{"name":"initialOwner","type":"address","internalType":"address"},{"name":"templateHash","type":"bytes32","internalType":"bytes32"},{"name":"dataAvailability","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"executeOutput","inputs":[{"name":"output","type":"bytes","internalType":"bytes"},{"name":"proof","type":"tuple","internalType":"struct OutputValidityProof","components":[{"name":"outputIndex","type":"uint64","internalType":"uint64"},{"name":"outputHashesSiblings","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDataAvailability","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeploymentBlockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNumberOfExecutedOutputs","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOutputsMerkleRootValidator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOutputsMerkleRootValidator"}],"stateMutability":"view"},{"type":"function","name":"getTemplateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"migrateToOutputsMerkleRootValidator","inputs":[{"name":"newOutputsMerkleRootValidator","type":"address","internalType":"contract IOutputsMerkleRootValidator"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateOutput","inputs":[{"name":"output","type":"bytes","internalType":"bytes"},{"name":"proof","type":"tuple","internalType":"struct OutputValidityProof","components":[{"name":"outputIndex","type":"uint64","internalType":"uint64"},{"name":"outputHashesSiblings","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"validateOutputHash","inputs":[{"name":"outputHash","type":"bytes32","internalType":"bytes32"},{"name":"proof","type":"tuple","internalType":"struct OutputValidityProof","components":[{"name":"outputIndex","type":"uint64","internalType":"uint64"},{"name":"outputHashesSiblings","type":"bytes32[]","internalType":"bytes32[]"}]}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"wasOutputExecuted","inputs":[{"name":"outputIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OutputExecuted","inputs":[{"name":"outputIndex","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"output","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"OutputsMerkleRootValidatorChanged","inputs":[{"name":"newOutputsMerkleRootValidator","type":"address","indexed":false,"internalType":"contract IOutputsMerkleRootValidator"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InsufficientFunds","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"balance","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidOutputHashesSiblingsArrayLength","inputs":[]},{"type":"error","name":"InvalidOutputsMerkleRoot","inputs":[{"name":"outputsMerkleRoot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OutputNotExecutable","inputs":[{"name":"output","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OutputNotReexecutable","inputs":[{"name":"output","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60c0604052346102b8576111bd80380380610019816102bc565b9283398101906080818303126102b85780516001600160a01b03811691908290036102b85760208101516001600160a01b038116908190036102b8576040820151606083015190926001600160401b0382116102b8570184601f820112156102b8578051906001600160401b0382116102915761009f601f8301601f19166020016102bc565b95828752602083830101116102b857815f9260208093018389015e8601015280156102a5575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600180554360805260a052600380546001600160a01b03191691909117905580516001600160401b03811161029157600454600181811c91168015610287575b602082101461027357601f8111610210575b50602091601f82116001146101b0579181925f926101a5575b50508160011b915f199060031b1c1916176004555b604051610edb90816102e2823960805181610687015260a051816105670152f35b015190505f8061016f565b601f1982169260045f52805f20915f5b8581106101f8575083600195106101e0575b505050811b01600455610184565b01515f1960f88460031b161c191690555f80806101d2565b919260206001819286850151815501940192016101c0565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610269575b601f0160051c01905b81811061025e5750610156565b5f8155600101610251565b9091508190610248565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610144565b634e487b7160e01b5f52604160045260245ffd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102915760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301ffc9a71461012957806308eb89ab14610124578063150b7a021461011f57806333137b761461011a57806361b12c6614610115578063715018a61461011057806371891db01461010b5780638da5cb5b14610106578063a94dfc5a14610101578063b3a1acd8146100fc578063bc197c81146100f7578063bf8abff8146100f2578063e64fab4d146100ed578063e88d39c0146100e8578063f02478de146100e3578063f23a6e61146100de5763f2fde38b0361000e576109c6565b61096d565b61087e565b61083d565b610820565b6107af565b610711565b610670565b610648565b610621565b6105e1565b61058a565b610550565b61034b565b610286565b610191565b3461017f57602036600319011261017f5760043563ffffffff60e01b811680910361017f57602090630271189760e51b811490811561016e575b506040519015158152f35b6301ffc9a760e01b1490505f610163565b5f80fd5b9081604091031261017f5790565b3461017f57604036600319011261017f576024356001600160401b03811161017f576101c4610018913690600401610183565b600435610a4f565b6001600160a01b0381160361017f57565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761021257604052565b6101dd565b6001600160401b03811161021257601f01601f191660200190565b92919261023e82610217565b9161024c60405193846101f1565b82948184528183011161017f578281602093845f960137010152565b9080601f8301121561017f5781602061028393359101610232565b90565b3461017f57608036600319011261017f576102a26004356101cc565b6102ad6024356101cc565b6064356001600160401b03811161017f576102cc903690600401610268565b50604051630a85bd0160e11b8152602090f35b604060031982011261017f57600435916001600160401b03831161017f578160238401121561017f578260040135926001600160401b03841161017f57826024858301011161017f576024019291602435906001600160401b03821161017f5761028391600401610183565b3461017f57610359366102df565b6002600193929354146105415761037f90600260015561037a818585610c0e565b610b26565b600483106105245761039a6103948484610b6b565b90610b96565b6103a5848085610b79565b916001600160e01b03191663237a816f60e01b810361049557506103e96001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b610471579361041c610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610d4d565b6104466001600160401b0384168060081c5f526002602052600160ff60405f2092161b8154179055565b610459610454600554610bcc565b600555565b60405193849384610bee565b0390a161001860018055565b5050604051637b97a6bb60e01b8152928392610491925060048401610b5a565b0390fd5b6310321e8b60e01b03610504576104cc6001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b61047157936104ff610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610ce8565b61041c565b5050604051636942600f60e11b8152928392610491925060048401610b5a565b50610491604051928392636942600f60e11b845260048401610b5a565b633ee5aeb560e01b5f5260045ffd5b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461017f575f36600319011261017f576105a2610dbd565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017f57602036600319011261017f57602061061760043560ff6001918060081c5f526002602052161b60405f205416151590565b6040519015158152f35b3461017f575f36600319011261017f575f546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f576003546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b9080601f8301121561017f578135916001600160401b038311610212578260051b90604051936106dd60208401866101f1565b845260208085019282010192831161017f57602001905b8282106107015750505090565b81358152602091820191016106f4565b3461017f5760a036600319011261017f5761072d6004356101cc565b6107386024356101cc565b6044356001600160401b03811161017f576107579036906004016106aa565b506064356001600160401b03811161017f576107779036906004016106aa565b506084356001600160401b03811161017f57610797903690600401610268565b5060405163bc197c8160e01b815280602081015b0390f35b3461017f57602036600319011261017f577f6ad3188ba8f430fba0656cb0a7e839ab2020d5586ba11a1477d18f7092f8bece6004356107ed816101cc565b6107f5610dbd565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152602090a1005b3461017f575f36600319011261017f576020600554604051908152f35b3461017f5761001861084e366102df565b91610c0e565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017f575f36600319011261017f576040515f6004548060011c9060018116908115610963575b60208310821461094f57828552602085019190811561093657506001146108e4575b6107ab846108d8818603826101f1565b60405191829182610854565b60045f9081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818410610922575050016108d8826108c8565b80548484015260209093019260010161090f565b60ff191682525090151560051b0190506108d8826108c8565b634e487b7160e01b5f52602260045260245ffd5b91607f16916108a6565b3461017f5760a036600319011261017f576109896004356101cc565b6109946024356101cc565b6084356001600160401b03811161017f576109b3903690600401610268565b5060405163f23a6e6160e01b8152602090f35b3461017f57602036600319011261017f576004356109e3816101cc565b6109eb610dbd565b6001600160a01b03168015610a3c575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b916020820191603f610a618483610c2c565b905003610b17576001600160401b03610a80610a889483969496610c2c565b949092610b26565b16935f925b84841015610ade57610ac56001918560051b85013590838916155f14610ace5790610abe915f5260205260405f2090565b9660011c90565b93019294610a8d565b610abe915f5260205260405f2090565b9350939050610aee915015610de3565b610afe610afa82610c61565b1590565b610b055750565b6344a192ff60e01b5f5260045260245ffd5b635d2c5e9b60e11b5f5260045ffd5b356001600160401b038116810361017f5790565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610283938181520191610b3a565b9060041161017f5790600490565b909291928360041161017f57831161017f57600401916003190190565b356001600160e01b0319811692919060048210610bb1575050565b6001600160e01b031960049290920360031b82901b16169150565b5f198114610bda5760010190565b634e487b7160e01b5f52601160045260245ffd5b6040906001600160401b0361028395931681528160208201520191610b3a565b610c1e90610c2a93923691610232565b60208151910120610a4f565b565b903590601e198136030182121561017f57018035906001600160401b03821161017f57602001918160051b3603831361017f57565b600354604051633973219960e21b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115610cdd575f91610ca5575090565b90506020813d602011610cd5575b81610cc0602093836101f1565b8101031261017f5751801515810361017f5790565b3d9150610cb3565b6040513d5f823e3d90fd5b9081019060408183031261017f578035610d01816101cc565b6020820135916001600160401b03831161017f575f938493610d239201610268565b8051916020909101906001600160a01b03165af4610d3f610e2e565b9015610d485750565b610e94565b90810160608282031261017f578135610d65816101cc565b6020830135926040810135906001600160401b03821161017f57610d9e938592610d8f9201610268565b916001600160a01b0316610e5d565b919015610da9575050565b62fae2d560e21b5f5260045260245260445ffd5b5f546001600160a01b03163303610dd057565b63118cdaa760e01b5f523360045260245ffd5b15610dea57565b606460405162461bcd60e51b815260206004820152602060248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e64736044820152fd5b3d15610e58573d90610e3f82610217565b91610e4d60405193846101f1565b82523d5f602084013e565b606090565b909291924793848211610e8c575f928392602083519301915af1610e7f610e2e565b9015610d48575060019190565b5050505f9190565b80519081610ea0575f80fd5b602001fdfea2646970667358221220792581cdb4c619bae279f0c92e047aad61eb4cf6dc6fa58277baeef42718d57d64736f6c634300081e0033","sourceMap":"1022:7181:37:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;-1:-1:-1;;1022:7181:37;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;;;;;1273:26:0;;1269:95;;-1:-1:-1;1022:7181:37;;-1:-1:-1;;;;;;1022:7181:37;;;;;;-1:-1:-1;;;;;1022:7181:37;;3052:40:0;;-1:-1:-1;3052:40:0;1022:7181:37;1857:1:15;;1355:12:37;1022:7181;1355:12;2755:28;;2793:56;1022:7181;;-1:-1:-1;;;;;;1022:7181:37;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;2859:36;1022:7181;;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;;;;;2793:56;1022:7181;;;;;2859:36;1022:7181;;;;;;;;;;;;;;;;2755:28;1022:7181;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;;2859:36;-1:-1:-1;1022:7181:37;;-1:-1:-1;1022:7181:37;;-1:-1:-1;1022:7181:37;;;;;;;;;;;;;;;;;;;;2859:36;1022:7181;;;;;;;;;;2793:56;1022:7181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2859:36;-1:-1:-1;1022:7181:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;-1:-1:-1;1022:7181:37;;2859:36;1022:7181;;-1:-1:-1;1022:7181:37;;;;;;;;;;;;-1:-1:-1;1022:7181:37;;2859:36;1022:7181;;-1:-1:-1;1022:7181:37;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;1022:7181:37;;-1:-1:-1;1322:31:0;1022:7181:37;-1:-1:-1;1022:7181:37;;;;;;;;;-1:-1:-1;;1022:7181:37;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301ffc9a71461012957806308eb89ab14610124578063150b7a021461011f57806333137b761461011a57806361b12c6614610115578063715018a61461011057806371891db01461010b5780638da5cb5b14610106578063a94dfc5a14610101578063b3a1acd8146100fc578063bc197c81146100f7578063bf8abff8146100f2578063e64fab4d146100ed578063e88d39c0146100e8578063f02478de146100e3578063f23a6e61146100de5763f2fde38b0361000e576109c6565b61096d565b61087e565b61083d565b610820565b6107af565b610711565b610670565b610648565b610621565b6105e1565b61058a565b610550565b61034b565b610286565b610191565b3461017f57602036600319011261017f5760043563ffffffff60e01b811680910361017f57602090630271189760e51b811490811561016e575b506040519015158152f35b6301ffc9a760e01b1490505f610163565b5f80fd5b9081604091031261017f5790565b3461017f57604036600319011261017f576024356001600160401b03811161017f576101c4610018913690600401610183565b600435610a4f565b6001600160a01b0381160361017f57565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761021257604052565b6101dd565b6001600160401b03811161021257601f01601f191660200190565b92919261023e82610217565b9161024c60405193846101f1565b82948184528183011161017f578281602093845f960137010152565b9080601f8301121561017f5781602061028393359101610232565b90565b3461017f57608036600319011261017f576102a26004356101cc565b6102ad6024356101cc565b6064356001600160401b03811161017f576102cc903690600401610268565b50604051630a85bd0160e11b8152602090f35b604060031982011261017f57600435916001600160401b03831161017f578160238401121561017f578260040135926001600160401b03841161017f57826024858301011161017f576024019291602435906001600160401b03821161017f5761028391600401610183565b3461017f57610359366102df565b6002600193929354146105415761037f90600260015561037a818585610c0e565b610b26565b600483106105245761039a6103948484610b6b565b90610b96565b6103a5848085610b79565b916001600160e01b03191663237a816f60e01b810361049557506103e96001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b610471579361041c610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610d4d565b6104466001600160401b0384168060081c5f526002602052600160ff60405f2092161b8154179055565b610459610454600554610bcc565b600555565b60405193849384610bee565b0390a161001860018055565b5050604051637b97a6bb60e01b8152928392610491925060048401610b5a565b0390fd5b6310321e8b60e01b03610504576104cc6001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b61047157936104ff610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610ce8565b61041c565b5050604051636942600f60e11b8152928392610491925060048401610b5a565b50610491604051928392636942600f60e11b845260048401610b5a565b633ee5aeb560e01b5f5260045ffd5b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461017f575f36600319011261017f576105a2610dbd565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017f57602036600319011261017f57602061061760043560ff6001918060081c5f526002602052161b60405f205416151590565b6040519015158152f35b3461017f575f36600319011261017f575f546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f576003546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b9080601f8301121561017f578135916001600160401b038311610212578260051b90604051936106dd60208401866101f1565b845260208085019282010192831161017f57602001905b8282106107015750505090565b81358152602091820191016106f4565b3461017f5760a036600319011261017f5761072d6004356101cc565b6107386024356101cc565b6044356001600160401b03811161017f576107579036906004016106aa565b506064356001600160401b03811161017f576107779036906004016106aa565b506084356001600160401b03811161017f57610797903690600401610268565b5060405163bc197c8160e01b815280602081015b0390f35b3461017f57602036600319011261017f577f6ad3188ba8f430fba0656cb0a7e839ab2020d5586ba11a1477d18f7092f8bece6004356107ed816101cc565b6107f5610dbd565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152602090a1005b3461017f575f36600319011261017f576020600554604051908152f35b3461017f5761001861084e366102df565b91610c0e565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017f575f36600319011261017f576040515f6004548060011c9060018116908115610963575b60208310821461094f57828552602085019190811561093657506001146108e4575b6107ab846108d8818603826101f1565b60405191829182610854565b60045f9081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818410610922575050016108d8826108c8565b80548484015260209093019260010161090f565b60ff191682525090151560051b0190506108d8826108c8565b634e487b7160e01b5f52602260045260245ffd5b91607f16916108a6565b3461017f5760a036600319011261017f576109896004356101cc565b6109946024356101cc565b6084356001600160401b03811161017f576109b3903690600401610268565b5060405163f23a6e6160e01b8152602090f35b3461017f57602036600319011261017f576004356109e3816101cc565b6109eb610dbd565b6001600160a01b03168015610a3c575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b916020820191603f610a618483610c2c565b905003610b17576001600160401b03610a80610a889483969496610c2c565b949092610b26565b16935f925b84841015610ade57610ac56001918560051b85013590838916155f14610ace5790610abe915f5260205260405f2090565b9660011c90565b93019294610a8d565b610abe915f5260205260405f2090565b9350939050610aee915015610de3565b610afe610afa82610c61565b1590565b610b055750565b6344a192ff60e01b5f5260045260245ffd5b635d2c5e9b60e11b5f5260045ffd5b356001600160401b038116810361017f5790565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610283938181520191610b3a565b9060041161017f5790600490565b909291928360041161017f57831161017f57600401916003190190565b356001600160e01b0319811692919060048210610bb1575050565b6001600160e01b031960049290920360031b82901b16169150565b5f198114610bda5760010190565b634e487b7160e01b5f52601160045260245ffd5b6040906001600160401b0361028395931681528160208201520191610b3a565b610c1e90610c2a93923691610232565b60208151910120610a4f565b565b903590601e198136030182121561017f57018035906001600160401b03821161017f57602001918160051b3603831361017f57565b600354604051633973219960e21b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115610cdd575f91610ca5575090565b90506020813d602011610cd5575b81610cc0602093836101f1565b8101031261017f5751801515810361017f5790565b3d9150610cb3565b6040513d5f823e3d90fd5b9081019060408183031261017f578035610d01816101cc565b6020820135916001600160401b03831161017f575f938493610d239201610268565b8051916020909101906001600160a01b03165af4610d3f610e2e565b9015610d485750565b610e94565b90810160608282031261017f578135610d65816101cc565b6020830135926040810135906001600160401b03821161017f57610d9e938592610d8f9201610268565b916001600160a01b0316610e5d565b919015610da9575050565b62fae2d560e21b5f5260045260245260445ffd5b5f546001600160a01b03163303610dd057565b63118cdaa760e01b5f523360045260245ffd5b15610dea57565b606460405162461bcd60e51b815260206004820152602060248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e64736044820152fd5b3d15610e58573d90610e3f82610217565b91610e4d60405193846101f1565b82523d5f602084013e565b606090565b909291924793848211610e8c575f928392602083519301915af1610e7f610e2e565b9015610d48575060019190565b5050505f9190565b80519081610ea0575f80fd5b602001fdfea2646970667358221220792581cdb4c619bae279f0c92e047aad61eb4cf6dc6fa58277baeef42718d57d64736f6c634300081e0033","sourceMap":"1022:7181:37:-:0;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;775:49:6;;;:89;;;;1022:7181:37;;;;;;;;;;775:89:6;-1:-1:-1;;;862:40:16;;-1:-1:-1;775:89:6;;;1022:7181:37;-1:-1:-1;1022:7181:37;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1022:7181:37;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;1022:7181:37;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;:::o;:::-;;:::i;:::-;-1:-1:-1;;;;;1022:7181:37;;;;;;-1:-1:-1;;1022:7181:37;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;:::i;:::-;-1:-1:-1;1022:7181:37;;-1:-1:-1;;;1022:7181:37;;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;1899:1:15;2702:7;1022:7181:37;;;;2702:18:15;2698:86;;3390:17:37;1022:7181;1899:1:15;2702:7;1022:7181:37;3352:5;;;;;:::i;:::-;3390:17;:::i;:::-;1022:7181;3422:17;;3418:82;;3528:18;3535:10;;;;:::i;:::-;3528:18;;:::i;:::-;3583:10;;;;;:::i;:::-;1022:7181;-1:-1:-1;;;;;;1022:7181:37;-1:-1:-1;;;3608:36:37;;3620:24;;1022:7181;3664:26;-1:-1:-1;;;;;1022:7181:37;;;1170:1:18;1028:217;1022:7181:37;1144:1:18;1022:7181:37;-1:-1:-1;1022:7181:37;1899:1:15;1022:7181:37;;1176:12:18;1022:7181:37;;-1:-1:-1;1022:7181:37;;1206:27:18;:32;;1028:217;;3664:26:37;3660:101;;3790:9;;4197:35;3790:9;4197:35;3790:9;;:::i;:::-;4123:26;-1:-1:-1;;;;;1022:7181:37;;;1677:1:18;1022:7181:37;-1:-1:-1;1022:7181:37;1899:1:15;1022:7181:37;;1703:1:18;1022:7181:37;;-1:-1:-1;1022:7181:37;1709:12:18;;1022:7181:37;;;1732:28:18;1022:7181:37;;1581:186:18;4123:26:37;4159:23;;;1022:7181;4159:23;:::i;:::-;;1022:7181;;4159:23;1022:7181;;4197:35;;;;;:::i;:::-;;;;2531:1:15;1857;1022:7181:37;;2888:208:15;3660:101:37;-1:-1:-1;;1022:7181:37;;-1:-1:-1;;;3717:29:37;;1022:7181;;;3717:29;;-1:-1:-1;1022:7181:37;3717:29;;;:::i;:::-;;;;3604:509;-1:-1:-1;;;3821:48:37;3833:36;;3889:26;-1:-1:-1;;;;;1022:7181:37;;;1170:1:18;1028:217;1022:7181:37;1144:1:18;1022:7181:37;-1:-1:-1;1022:7181:37;1899:1:15;1022:7181:37;;1176:12:18;1022:7181:37;;-1:-1:-1;1022:7181:37;;1206:27:18;:32;;1028:217;;3889:26:37;3885:101;;4027:9;;4197:35;4027:9;4197:35;4027:9;;:::i;:::-;3604:509;;3817:296;-1:-1:-1;;1022:7181:37;;-1:-1:-1;;;4075:27:37;;1022:7181;;;4075:27;;-1:-1:-1;1022:7181:37;4075:27;;;:::i;3418:82::-;1022:7181;3462:27;1022:7181;;3462:27;;;;;;;;1022:7181;3462:27;;;:::i;2698:86:15:-;2743:30;;;-1:-1:-1;2743:30:15;1022:7181:37;-1:-1:-1;2743:30:15;1022:7181:37;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;5678:13;1022:7181;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;1500:62:0;;:::i;:::-;1022:7181:37;;;-1:-1:-1;;;;;;1022:7181:37;;;;-1:-1:-1;;;;;1022:7181:37;3052:40:0;1022:7181:37;;3052:40:0;1022:7181:37;;;;;;;-1:-1:-1;;1022:7181:37;;;;;4771:26;1022:7181;;;1170:1:18;1028:217;1022:7181:37;1144:1:18;1022:7181:37;-1:-1:-1;1022:7181:37;1899:1:15;1022:7181:37;;1176:12:18;1022:7181:37;;-1:-1:-1;1022:7181:37;;1206:27:18;:32;;1028:217;;4771:26:37;1022:7181;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;5892:27;1022:7181;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;6216:23;1022:7181;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;:::i;:::-;-1:-1:-1;1022:7181:37;;-1:-1:-1;;;1022:7181:37;;;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;4522:64;1022:7181;;;;;:::i;:::-;1500:62:0;;:::i;:::-;4448:59:37;1022:7181;;-1:-1:-1;;;;;;1022:7181:37;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;;;4522:64;1022:7181;;;;;;;-1:-1:-1;;1022:7181:37;;;;;6381:21;1022:7181;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;:::o;:::-;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;-1:-1:-1;1022:7181:37;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;:::i;:::-;-1:-1:-1;1022:7181:37;;-1:-1:-1;;;1022:7181:37;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;-1:-1:-1;;;;;1022:7181:37;2627:22:0;;2623:91;;-1:-1:-1;1022:7181:37;;-1:-1:-1;;;;;;1022:7181:37;;;;;;-1:-1:-1;;;;;1022:7181:37;;3052:40:0;;-1:-1:-1;3052:40:0;1022:7181:37;2623:91:0;2672:31;;;-1:-1:-1;2672:31:0;-1:-1:-1;1022:7181:37;;;-1:-1:-1;2672:31:0;5075:479:37;;533:22:49;;;;557:2:20;533:22:49;;;;:::i;:::-;:66;;;5218:113:37;;-1:-1:-1;;;;;787:22:49;837:13;787:22;;;;;;:::i;:::-;837:13;;;;:::i;:::-;1022:7181:37;2947:9:48;-1:-1:-1;2942:269:48;2970:3;2958:10;;;;;;3189:11;3040:1;1022:7181:37;;;;;;;3032:9:48;;;;:14;3028:148;3040:1;;;3073:21;;;3705:139;;;;;;;3528:322;;3073:21;3028:148;1022:7181:37;;;;3189:11:48;2970:3;1022:7181:37;2947:9:48;;;;3028:148;3140:21;;3705:139;;;;;;;3528:322;;2958:10;;;;;;3220:55;2958:10;;3228;3220:55;:::i;:::-;5426:45:37;5427:44;;;:::i;:::-;5426:45;;1022:7181;5426:45;5422:126;;5075:479;:::o;5422:126::-;-1:-1:-1;;;;5494:43:37;;1022:7181;;-1:-1:-1;5494:43:37;5218:113;5280:40;;;-1:-1:-1;5280:40:37;;-1:-1:-1;5280:40:37;1022:7181;;-1:-1:-1;;;;;1022:7181:37;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1022:7181:37;;;;;;;;-1:-1:-1;;1022:7181:37;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;1022:7181:37;;:::o;:::-;;-1:-1:-1;;;;;;1022:7181:37;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;1022:7181:37;;;;;;;;;;;;;-1:-1:-1;1022:7181:37:o;:::-;-1:-1:-1;;1022:7181:37;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;:::i;4843:193::-;1022:7181;4843:193;5023:5;4843:193;;1022:7181;;;:::i;:::-;;;;;;5004:17;5023:5;:::i;:::-;4843:193::o;1022:7181::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;;;;;;;;;;;;;:::o;7043:251::-;7179:27;1022:7181;;;-1:-1:-1;;;7179:108:37;;7253:4;7179:108;;;1022:7181;;;;;;;;;;;;7179:108;;1022:7181;;-1:-1:-1;;;;;1022:7181:37;7179:108;;;;;;;-1:-1:-1;7179:108:37;;;7172:115;7043:251;:::o;7179:108::-;;;1022:7181;7179:108;;1022:7181;7179:108;;;;;;1022:7181;7179:108;;;:::i;:::-;;;1022:7181;;;;;;;;;;;;7043:251;:::o;7179:108::-;;;-1:-1:-1;7179:108:37;;;1022:7181;;;-1:-1:-1;1022:7181:37;;;;;7940:261;;8107:39;;1022:7181;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;-1:-1:-1;1022:7181:37;;;;;;;:::i;:::-;1598:33:46;;;1022:7181:37;1598:33:46;;;;-1:-1:-1;;;;;1022:7181:37;1598:33:46;;;;:::i;:::-;1646:8;;1642:57;;7940:261:37;:::o;1642:57:46:-;1670:16;:::i;7382:457:37:-;;7567:48;;1022:7181;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1022:7181:37;;;;7703:36;1022:7181;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1022:7181:37;7703:36;:::i;:::-;7754:12;;;7750:83;;7382:457;;:::o;7750:83::-;7789:33;;;-1:-1:-1;7789:33:37;;1022:7181;;;;-1:-1:-1;7789:33:37;1796:162:0;1710:6;1022:7181:37;-1:-1:-1;;;;;1022:7181:37;735:10:12;1855:23:0;1851:101;;1796:162::o;1851:101::-;1901:40;;;1710:6;1901:40;735:10:12;1901:40:0;1022:7181:37;;1710:6:0;1901:40;1022:7181:37;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1022:7181:37;;;;:::o;:::-;;;:::o;660:527:46:-;;;;;857:14;886:15;;;;882:69;;-1:-1:-1;1041:39:46;;;;;;;;;;;;;:::i;:::-;1095:8;;1091:57;;1158:22;1166:4;1158:22;660:527;:::o;882:69::-;917:23;;;925:5;917:23;;:::o;251:244:47:-;1022:7181:37;;;318:21:47;;;338:1;355:8;;314:175;394:85;;","linkReferences":{},"immutableReferences":{"3163":[{"start":1671,"length":32}],"3166":[{"start":1383,"length":32}]}},"methodIdentifiers":{"executeOutput(bytes,(uint64,bytes32[]))":"33137b76","getDataAvailability()":"f02478de","getDeploymentBlockNumber()":"b3a1acd8","getNumberOfExecutedOutputs()":"e64fab4d","getOutputsMerkleRootValidator()":"a94dfc5a","getTemplateHash()":"61b12c66","migrateToOutputsMerkleRootValidator(address)":"bf8abff8","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","owner()":"8da5cb5b","renounceOwnership()":"715018a6","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validateOutput(bytes,(uint64,bytes32[]))":"e88d39c0","validateOutputHash(bytes32,(uint64,bytes32[]))":"08eb89ab","wasOutputExecuted(uint256)":"71891db0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"outputsMerkleRootValidator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"templateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dataAvailability\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOutputHashesSiblingsArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"outputsMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"InvalidOutputsMerkleRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"}],\"name\":\"OutputNotExecutable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"}],\"name\":\"OutputNotReexecutable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"outputIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"}],\"name\":\"OutputExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"newOutputsMerkleRootValidator\",\"type\":\"address\"}],\"name\":\"OutputsMerkleRootValidatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"outputIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32[]\",\"name\":\"outputHashesSiblings\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct OutputValidityProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"executeOutput\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDataAvailability\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeploymentBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumberOfExecutedOutputs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOutputsMerkleRootValidator\",\"outputs\":[{\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTemplateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOutputsMerkleRootValidator\",\"name\":\"newOutputsMerkleRootValidator\",\"type\":\"address\"}],\"name\":\"migrateToOutputsMerkleRootValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"output\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"outputIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32[]\",\"name\":\"outputHashesSiblings\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct OutputValidityProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"validateOutput\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"outputHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"outputIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32[]\",\"name\":\"outputHashesSiblings\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct OutputValidityProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"validateOutputHash\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputIndex\",\"type\":\"uint256\"}],\"name\":\"wasOutputExecuted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"InsufficientFunds(uint256,uint256)\":[{\"params\":{\"balance\":\"The current application contract balance\",\"value\":\"The amount of Wei necessary for the execution of the output\"}}],\"InvalidOutputHashesSiblingsArrayLength()\":[{\"details\":\"Please consult `CanonicalMachine` for the maximum number of outputs.\"}],\"OutputNotExecutable(bytes)\":[{\"params\":{\"output\":\"The output\"}}],\"OutputNotReexecutable(bytes)\":[{\"params\":{\"output\":\"The output\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"OutputExecuted(uint64,bytes)\":{\"params\":{\"output\":\"The output\",\"outputIndex\":\"The index of the output\"}},\"OutputsMerkleRootValidatorChanged(address)\":{\"params\":{\"newOutputsMerkleRootValidator\":\"The new outputs Merkle root validator\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Reverts if the initial application owner address is zero.\",\"params\":{\"initialOwner\":\"The initial application owner\",\"outputsMerkleRootValidator\":\"The initial outputs Merkle root validator contract\",\"templateHash\":\"The initial machine state hash\"}},\"executeOutput(bytes,(uint64,bytes32[]))\":{\"details\":\"On a successful execution, emits a `OutputExecuted` event.May raise any of the errors raised by `validateOutput`, as well as `OutputNotExecutable` and `OutputNotReexecutable`.\",\"params\":{\"output\":\"The output\",\"proof\":\"The proof used to validate the output against              a claim accepted to the current outputs Merkle root validator contract\"}},\"getDataAvailability()\":{\"returns\":{\"_0\":\"Solidity ABI-encoded function call that describes the source of inputs that should be fed to the application.\"}},\"getOutputsMerkleRootValidator()\":{\"returns\":{\"_0\":\"The current outputs Merkle root validator\"}},\"getTemplateHash()\":{\"returns\":{\"_0\":\"The application's template hash\"}},\"migrateToOutputsMerkleRootValidator(address)\":{\"details\":\"Can only be called by the application owner.\",\"params\":{\"newOutputsMerkleRootValidator\":\"The new outputs Merkle root validator\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"validateOutput(bytes,(uint64,bytes32[]))\":{\"details\":\"May raise any of the errors raised by `validateOutputHash`.\",\"params\":{\"output\":\"The output\",\"proof\":\"The proof used to validate the output against              a claim accepted to the current outputs Merkle root validator contract\"}},\"validateOutputHash(bytes32,(uint64,bytes32[]))\":{\"details\":\"May raise `InvalidOutputHashesSiblingsArrayLength` or `InvalidOutputsMerkleRoot`.\",\"params\":{\"outputHash\":\"The output hash\",\"proof\":\"The proof used to validate the output against              a claim accepted to the current outputs Merkle root validator contract\"}},\"wasOutputExecuted(uint256)\":{\"params\":{\"outputIndex\":\"The index of output\"},\"returns\":{\"_0\":\"Whether the output has been executed before\"}}},\"stateVariables\":{\"TEMPLATE_HASH\":{\"details\":\"See the `getTemplateHash` function.\"},\"_dataAvailability\":{\"details\":\"See the `getDataAvailability` function.\"},\"_executed\":{\"details\":\"See the `wasOutputExecuted` function.\"},\"_numOfExecutedOutputs\":{\"details\":\"See the `numberOfOutputsExecuted` function.\"},\"_outputsMerkleRootValidator\":{\"details\":\"See the `getOutputsMerkleRootValidator` and `migrateToOutputsMerkleRootValidator` functions.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientFunds(uint256,uint256)\":[{\"notice\":\"Could not execute an output, because the application contract doesn't have enough Ether.\"}],\"InvalidOutputHashesSiblingsArrayLength()\":[{\"notice\":\"Raised when the output hashes siblings array has an invalid size.\"}],\"InvalidOutputsMerkleRoot(bytes32)\":[{\"notice\":\"Raised when the computed outputs Merkle root is invalid, according to the current outputs Merkle root validator.\"}],\"OutputNotExecutable(bytes)\":[{\"notice\":\"Could not execute an output, because the application contract doesn't know how to.\"}],\"OutputNotReexecutable(bytes)\":[{\"notice\":\"Could not execute an output, because it was already executed.\"}]},\"events\":{\"OutputExecuted(uint64,bytes)\":{\"notice\":\"MUST trigger when an output is executed.\"},\"OutputsMerkleRootValidatorChanged(address)\":{\"notice\":\"MUST trigger when a new outputs Merkle root validator is chosen.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Creates an `Application` contract.\"},\"executeOutput(bytes,(uint64,bytes32[]))\":{\"notice\":\"Execute an output.\"},\"getDataAvailability()\":{\"notice\":\"Get the data availability solution used by application.\"},\"getDeploymentBlockNumber()\":{\"notice\":\"Get number of block in which contract was deployed\"},\"getNumberOfExecutedOutputs()\":{\"notice\":\"Get number of outputs executed by the application.\"},\"getOutputsMerkleRootValidator()\":{\"notice\":\"Get the current outputs Merkle root validator.\"},\"getTemplateHash()\":{\"notice\":\"Get the application's template hash.\"},\"migrateToOutputsMerkleRootValidator(address)\":{\"notice\":\"Migrate the application to a new outputs Merkle root validator.\"},\"validateOutput(bytes,(uint64,bytes32[]))\":{\"notice\":\"Validate an output.\"},\"validateOutputHash(bytes32,(uint64,bytes32[]))\":{\"notice\":\"Validate an output hash.\"},\"wasOutputExecuted(uint256)\":{\"notice\":\"Check whether an output has been executed.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dapp/Application.sol\":\"Application\"},\"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/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/IApplication.sol\":{\"keccak256\":\"0x2f8e32fd984129fa6e95ff57a6eae42f84a5613643289af75b68f9fedda26e86\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://7b334fc95577418cdbb323118b6078cec1289075b8b72fb794828150fbc681e5\",\"dweb:/ipfs/QmNpyKbFyNdmpPXfzfH4bPj4we1A3Q1qKxGpY18rJpgx3Y\"]},\"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"},{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"bytes32","name":"templateHash","type":"bytes32"},{"internalType":"bytes","name":"dataAvailability","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidOutputHashesSiblingsArrayLength"},{"inputs":[{"internalType":"bytes32","name":"outputsMerkleRoot","type":"bytes32"}],"type":"error","name":"InvalidOutputsMerkleRoot"},{"inputs":[{"internalType":"bytes","name":"output","type":"bytes"}],"type":"error","name":"OutputNotExecutable"},{"inputs":[{"internalType":"bytes","name":"output","type":"bytes"}],"type":"error","name":"OutputNotReexecutable"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"outputIndex","type":"uint64","indexed":false},{"internalType":"bytes","name":"output","type":"bytes","indexed":false}],"type":"event","name":"OutputExecuted","anonymous":false},{"inputs":[{"internalType":"contract IOutputsMerkleRootValidator","name":"newOutputsMerkleRootValidator","type":"address","indexed":false}],"type":"event","name":"OutputsMerkleRootValidatorChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"struct OutputValidityProof","name":"proof","type":"tuple","components":[{"internalType":"uint64","name":"outputIndex","type":"uint64"},{"internalType":"bytes32[]","name":"outputHashesSiblings","type":"bytes32[]"}]}],"stateMutability":"nonpayable","type":"function","name":"executeOutput"},{"inputs":[],"stateMutability":"view","type":"function","name":"getDataAvailability","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDeploymentBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNumberOfExecutedOutputs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOutputsMerkleRootValidator","outputs":[{"internalType":"contract IOutputsMerkleRootValidator","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTemplateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"contract IOutputsMerkleRootValidator","name":"newOutputsMerkleRootValidator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"migrateToOutputsMerkleRootValidator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"struct OutputValidityProof","name":"proof","type":"tuple","components":[{"internalType":"uint64","name":"outputIndex","type":"uint64"},{"internalType":"bytes32[]","name":"outputHashesSiblings","type":"bytes32[]"}]}],"stateMutability":"view","type":"function","name":"validateOutput"},{"inputs":[{"internalType":"bytes32","name":"outputHash","type":"bytes32"},{"internalType":"struct OutputValidityProof","name":"proof","type":"tuple","components":[{"internalType":"uint64","name":"outputIndex","type":"uint64"},{"internalType":"bytes32[]","name":"outputHashesSiblings","type":"bytes32[]"}]}],"stateMutability":"view","type":"function","name":"validateOutputHash"},{"inputs":[{"internalType":"uint256","name":"outputIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"wasOutputExecuted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Reverts if the initial application owner address is zero.","params":{"initialOwner":"The initial application owner","outputsMerkleRootValidator":"The initial outputs Merkle root validator contract","templateHash":"The initial machine state hash"}},"executeOutput(bytes,(uint64,bytes32[]))":{"details":"On a successful execution, emits a `OutputExecuted` event.May raise any of the errors raised by `validateOutput`, as well as `OutputNotExecutable` and `OutputNotReexecutable`.","params":{"output":"The output","proof":"The proof used to validate the output against              a claim accepted to the current outputs Merkle root validator contract"}},"getDataAvailability()":{"returns":{"_0":"Solidity ABI-encoded function call that describes the source of inputs that should be fed to the application."}},"getOutputsMerkleRootValidator()":{"returns":{"_0":"The current outputs Merkle root validator"}},"getTemplateHash()":{"returns":{"_0":"The application's template hash"}},"migrateToOutputsMerkleRootValidator(address)":{"details":"Can only be called by the application owner.","params":{"newOutputsMerkleRootValidator":"The new outputs Merkle root validator"}},"onERC721Received(address,address,uint256,bytes)":{"details":"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"validateOutput(bytes,(uint64,bytes32[]))":{"details":"May raise any of the errors raised by `validateOutputHash`.","params":{"output":"The output","proof":"The proof used to validate the output against              a claim accepted to the current outputs Merkle root validator contract"}},"validateOutputHash(bytes32,(uint64,bytes32[]))":{"details":"May raise `InvalidOutputHashesSiblingsArrayLength` or `InvalidOutputsMerkleRoot`.","params":{"outputHash":"The output hash","proof":"The proof used to validate the output against              a claim accepted to the current outputs Merkle root validator contract"}},"wasOutputExecuted(uint256)":{"params":{"outputIndex":"The index of output"},"returns":{"_0":"Whether the output has been executed before"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Creates an `Application` contract."},"executeOutput(bytes,(uint64,bytes32[]))":{"notice":"Execute an output."},"getDataAvailability()":{"notice":"Get the data availability solution used by application."},"getDeploymentBlockNumber()":{"notice":"Get number of block in which contract was deployed"},"getNumberOfExecutedOutputs()":{"notice":"Get number of outputs executed by the application."},"getOutputsMerkleRootValidator()":{"notice":"Get the current outputs Merkle root validator."},"getTemplateHash()":{"notice":"Get the application's template hash."},"migrateToOutputsMerkleRootValidator(address)":{"notice":"Migrate the application to a new outputs Merkle root validator."},"validateOutput(bytes,(uint64,bytes32[]))":{"notice":"Validate an output."},"validateOutputHash(bytes32,(uint64,bytes32[]))":{"notice":"Validate an output hash."},"wasOutputExecuted(uint256)":{"notice":"Check whether an output has been executed."}},"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/Application.sol":"Application"},"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/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/IApplication.sol":{"keccak256":"0x2f8e32fd984129fa6e95ff57a6eae42f84a5613643289af75b68f9fedda26e86","urls":["bzz-raw://7b334fc95577418cdbb323118b6078cec1289075b8b72fb794828150fbc681e5","dweb:/ipfs/QmNpyKbFyNdmpPXfzfH4bPj4we1A3Q1qKxGpY18rJpgx3Y"],"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":37}