{"abi":[{"type":"function","name":"calculateQuorumAddress","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"epochLength","type":"uint256","internalType":"uint256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"newQuorum","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"epochLength","type":"uint256","internalType":"uint256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract IQuorum"}],"stateMutability":"nonpayable"},{"type":"function","name":"newQuorum","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"epochLength","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"contract IQuorum"}],"stateMutability":"nonpayable"},{"type":"event","name":"QuorumCreated","inputs":[{"name":"quorum","type":"address","indexed":false,"internalType":"contract IQuorum"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601557610c8d908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081632f74f862146101c957508063ca8f271c1461010b5763d4af3bc81461003d575f80fd5b346101075760403660031901126101075760043567ffffffffffffffff81116101075761006e90369060040161024c565b906040519161092f908184019084821067ffffffffffffffff8311176100f35784936100a2936103298639602435926102b4565b03905ff080156100e85760209060018060a01b03167f446698b70271bce331e53210572bd37ac8c590b6cdca2e6763e6448243cba80282604051838152a1604051908152f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b34610107576020600b61019a6101203661027d565b939091928661092f916101696040519661013c84860189610306565b84885283880194610329863961015b60405197889286840195866102b4565b03601f198101875286610306565b60405194859383850197518091895e840190838201905f8252519283915e01015f815203601f198101835282610306565b51902090604051916040830152838201523081520160ff8153605590206040516001600160a01b039091168152f35b34610107576101d73661027d565b9392919061092f918285019385851067ffffffffffffffff8611176100f35785946102069461032987396102b4565b03905ff580156100e85760209060018060a01b03167f446698b70271bce331e53210572bd37ac8c590b6cdca2e6763e6448243cba80282604051838152a1604051908152f35b9181601f840112156101075782359167ffffffffffffffff8311610107576020808501948460051b01011161010757565b6060600319820112610107576004359067ffffffffffffffff8211610107576102a89160040161024c565b90916024359060443590565b6040808252810183905293929160608501905f905b8082106102db57505060209150930152565b909183356001600160a01b0381169190829003610107579081526020938401930191600101906102c9565b90601f8019910116810190811067ffffffffffffffff8211176100f35760405256fe60c0604052346101ba5761092f80380380610019816101d2565b9283398101906040818303126101ba5780516001600160401b0381116101ba57810182601f820112156101ba578051926001600160401b0384116101be578360051b9160208061006a8186016101d2565b8097815201938201019182116101ba57602001915b81831061019a578460208501518015610155576080525f905f5b81518110156101225760018060a01b0360208260051b8401015116805f52600360205260405f2054156100d0575b50600101610099565b92905f19821461010e57600180920193805f5260036020528460405f2055845f52600460205260405f2090838060a01b0319825416179055906100c7565b634e487b7160e01b5f52601160045260245ffd5b8260a05260405161073790816101f8823960805181818161014801526101d0015260a05181818161034401526105b90152f35b60405162461bcd60e51b815260206004820152601d60248201527f65706f6368206c656e677468206d757374206e6f74206265207a65726f0000006044820152606490fd5b82516001600160a01b03811681036101ba5781526020928301920161007f565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176101be5760405256fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610646575080630a6f1fe81461060e5780631c45396a146105dc5780631e526e45146105a2578063446ccbf01461055e5780634b53459c146104fe5780634b84231c146104885780636470af00146101ac5780637051bfd51461016b578063cfe8a73b14610131578063d574f4d714610114578063e5cc8664146100cc5763ee5e0faa146100ab575f80fd5b346100c8575f3660031901126100c8576020600254604051908152f35b5f80fd5b346100c85760403660031901126100c8576001600160a01b036100ed6106b3565b165f525f60205260405f206024355f52602052602060ff60405f2054166040519015158152f35b346100c8575f3660031901126100c8576020600154604051908152f35b346100c8575f3660031901126100c85760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346100c857610179366106c9565b9160018060a01b03165f52600660205260405f20905f5260205260405f20905f52602052602060405f2054604051908152f35b346100c8576101ba366106c9565b335f52600360205260405f2054928315610443577f0000000000000000000000000000000000000000000000000000000000000000801561042f575f1981018181116103d757818506036104195750438310156104025760018060a01b031692835f52600660205260405f20835f5260205260405f20825f5260205260405f2090845f52600560205260405f20845f5260205260405f206001830190610277838360019160ff918160081c5f52602052161b60405f205416151590565b1561027e57005b600181016102a3848260019160ff918160081c5f52602052161b60405f205416151590565b6103eb579061030e846103359594938a6040518b81528a60208201527ff4ff953641f10e17dd93c0bc51334cb1f711fdcb4e37992021a5973f7a958f0960403392a36102f06002546106f3565b6002558160081c5f52602052600160ff60405f2092161b8154179055565b61031881546106f3565b90558160081c5f52602052600160ff60405f2092161b8154179055565b61033f81546106f3565b8091557f000000000000000000000000000000000000000000000000000000000000000060011c60010190816001116103d7571461037957005b7f0f2cd00a405c0d1a66050307b6722c4788db6ed57aa3589a5c38da535cc3ce6391604091845f525f602052825f20815f52602052825f20600160ff1982541617905582519182526020820152a26103d26001546106f3565b600155005b634e487b7160e01b5f52601160045260245ffd5b8688637e94264560e01b5f5260045260245260445ffd5b8263d804a6a160e01b5f526004524360245260445ffd5b8363c92a0d6960e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601260045260245ffd5b60405162461bcd60e51b815260206004820152601f60248201527f51756f72756d3a2063616c6c6572206973206e6f742076616c696461746f72006044820152606490fd5b346100c85760803660031901126100c8576001600160a01b036104a96106b3565b165f52600660205260405f206024355f5260205260405f206044355f5260205260206104f4606435600160405f200160019160ff918160081c5f52602052161b60405f205416151590565b6040519015158152f35b346100c85760603660031901126100c8576001600160a01b0361051f6106b3565b165f52600560205260405f206024355f5260205260206104f4604435600160405f200160019160ff918160081c5f52602052161b60405f205416151590565b346100c85760403660031901126100c8576001600160a01b0361057f6106b3565b165f52600560205260405f206024355f52602052602060405f2054604051908152f35b346100c8575f3660031901126100c85760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346100c85760203660031901126100c8576004355f526004602052602060018060a01b0360405f205416604051908152f35b346100c85760203660031901126100c8576001600160a01b0361062f6106b3565b165f526003602052602060405f2054604051908152f35b346100c85760203660031901126100c8576004359063ffffffff60e01b82168092036100c857602091631e492d3160e11b8114908115610688575b5015158152f35b63485979a360e11b8114915081156106a2575b5083610681565b6301ffc9a760e01b1490508361069b565b600435906001600160a01b03821682036100c857565b60609060031901126100c8576004356001600160a01b03811681036100c857906024359060443590565b5f1981146103d7576001019056fea264697066735822122052abc5dd27fcc600285a47c6d62715d285b536f9402181559d3da36521ba611d64736f6c634300081e0033a2646970667358221220299a71046938646d2a95fc9002749639df82b216268c06721a1b73db8e6f543b64736f6c634300081e0033","sourceMap":"432:1033:36:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081632f74f862146101c957508063ca8f271c1461010b5763d4af3bc81461003d575f80fd5b346101075760403660031901126101075760043567ffffffffffffffff81116101075761006e90369060040161024c565b906040519161092f908184019084821067ffffffffffffffff8311176100f35784936100a2936103298639602435926102b4565b03905ff080156100e85760209060018060a01b03167f446698b70271bce331e53210572bd37ac8c590b6cdca2e6763e6448243cba80282604051838152a1604051908152f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b34610107576020600b61019a6101203661027d565b939091928661092f916101696040519661013c84860189610306565b84885283880194610329863961015b60405197889286840195866102b4565b03601f198101875286610306565b60405194859383850197518091895e840190838201905f8252519283915e01015f815203601f198101835282610306565b51902090604051916040830152838201523081520160ff8153605590206040516001600160a01b039091168152f35b34610107576101d73661027d565b9392919061092f918285019385851067ffffffffffffffff8611176100f35785946102069461032987396102b4565b03905ff580156100e85760209060018060a01b03167f446698b70271bce331e53210572bd37ac8c590b6cdca2e6763e6448243cba80282604051838152a1604051908152f35b9181601f840112156101075782359167ffffffffffffffff8311610107576020808501948460051b01011161010757565b6060600319820112610107576004359067ffffffffffffffff8211610107576102a89160040161024c565b90916024359060443590565b6040808252810183905293929160608501905f905b8082106102db57505060209150930152565b909183356001600160a01b0381169190829003610107579081526020938401930191600101906102c9565b90601f8019910116810190811067ffffffffffffffff8211176100f35760405256fe60c0604052346101ba5761092f80380380610019816101d2565b9283398101906040818303126101ba5780516001600160401b0381116101ba57810182601f820112156101ba578051926001600160401b0384116101be578360051b9160208061006a8186016101d2565b8097815201938201019182116101ba57602001915b81831061019a578460208501518015610155576080525f905f5b81518110156101225760018060a01b0360208260051b8401015116805f52600360205260405f2054156100d0575b50600101610099565b92905f19821461010e57600180920193805f5260036020528460405f2055845f52600460205260405f2090838060a01b0319825416179055906100c7565b634e487b7160e01b5f52601160045260245ffd5b8260a05260405161073790816101f8823960805181818161014801526101d0015260a05181818161034401526105b90152f35b60405162461bcd60e51b815260206004820152601d60248201527f65706f6368206c656e677468206d757374206e6f74206265207a65726f0000006044820152606490fd5b82516001600160a01b03811681036101ba5781526020928301920161007f565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176101be5760405256fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610646575080630a6f1fe81461060e5780631c45396a146105dc5780631e526e45146105a2578063446ccbf01461055e5780634b53459c146104fe5780634b84231c146104885780636470af00146101ac5780637051bfd51461016b578063cfe8a73b14610131578063d574f4d714610114578063e5cc8664146100cc5763ee5e0faa146100ab575f80fd5b346100c8575f3660031901126100c8576020600254604051908152f35b5f80fd5b346100c85760403660031901126100c8576001600160a01b036100ed6106b3565b165f525f60205260405f206024355f52602052602060ff60405f2054166040519015158152f35b346100c8575f3660031901126100c8576020600154604051908152f35b346100c8575f3660031901126100c85760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346100c857610179366106c9565b9160018060a01b03165f52600660205260405f20905f5260205260405f20905f52602052602060405f2054604051908152f35b346100c8576101ba366106c9565b335f52600360205260405f2054928315610443577f0000000000000000000000000000000000000000000000000000000000000000801561042f575f1981018181116103d757818506036104195750438310156104025760018060a01b031692835f52600660205260405f20835f5260205260405f20825f5260205260405f2090845f52600560205260405f20845f5260205260405f206001830190610277838360019160ff918160081c5f52602052161b60405f205416151590565b1561027e57005b600181016102a3848260019160ff918160081c5f52602052161b60405f205416151590565b6103eb579061030e846103359594938a6040518b81528a60208201527ff4ff953641f10e17dd93c0bc51334cb1f711fdcb4e37992021a5973f7a958f0960403392a36102f06002546106f3565b6002558160081c5f52602052600160ff60405f2092161b8154179055565b61031881546106f3565b90558160081c5f52602052600160ff60405f2092161b8154179055565b61033f81546106f3565b8091557f000000000000000000000000000000000000000000000000000000000000000060011c60010190816001116103d7571461037957005b7f0f2cd00a405c0d1a66050307b6722c4788db6ed57aa3589a5c38da535cc3ce6391604091845f525f602052825f20815f52602052825f20600160ff1982541617905582519182526020820152a26103d26001546106f3565b600155005b634e487b7160e01b5f52601160045260245ffd5b8688637e94264560e01b5f5260045260245260445ffd5b8263d804a6a160e01b5f526004524360245260445ffd5b8363c92a0d6960e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601260045260245ffd5b60405162461bcd60e51b815260206004820152601f60248201527f51756f72756d3a2063616c6c6572206973206e6f742076616c696461746f72006044820152606490fd5b346100c85760803660031901126100c8576001600160a01b036104a96106b3565b165f52600660205260405f206024355f5260205260405f206044355f5260205260206104f4606435600160405f200160019160ff918160081c5f52602052161b60405f205416151590565b6040519015158152f35b346100c85760603660031901126100c8576001600160a01b0361051f6106b3565b165f52600560205260405f206024355f5260205260206104f4604435600160405f200160019160ff918160081c5f52602052161b60405f205416151590565b346100c85760403660031901126100c8576001600160a01b0361057f6106b3565b165f52600560205260405f206024355f52602052602060405f2054604051908152f35b346100c8575f3660031901126100c85760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346100c85760203660031901126100c8576004355f526004602052602060018060a01b0360405f205416604051908152f35b346100c85760203660031901126100c8576001600160a01b0361062f6106b3565b165f526003602052602060405f2054604051908152f35b346100c85760203660031901126100c8576004359063ffffffff60e01b82168092036100c857602091631e492d3160e11b8114908115610688575b5015158152f35b63485979a360e11b8114915081156106a2575b5083610681565b6301ffc9a760e01b1490508361069b565b600435906001600160a01b03821682036100c857565b60609060031901126100c8576004356001600160a01b03811681036100c857906024359060443590565b5f1981146103d7576001019056fea264697066735822122052abc5dd27fcc600285a47c6d62715d285b536f9402181559d3da36521ba611d64736f6c634300081e0033a2646970667358221220299a71046938646d2a95fc9002749639df82b216268c06721a1b73db8e6f543b64736f6c634300081e0033","sourceMap":"432:1033:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1352:25;;;432:1033;;;;;;;;;-1:-1:-1;;432:1033:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;;641:35;;;;;;;;;;432:1033;641:35;;;;;;;;;;;;432:1033;;641:35;;:::i;:::-;;;432:1033;641:35;;;;;432:1033;;926:47;432:1033;;;;;692:21;432:1033;;;;;;692:21;432:1033;;;;;;641:35;432:1033;;;;;;;;;641:35;432:1033;;;;;;;;;;;;;;;;;;;1352:25;2794:1663:13;1314:118:36;432:1033;;;:::i;:::-;1352:25;;;;;;432:1033;1379:35;432:1033;;1352:25;432:1033;1352:25;;;432:1033;;:::i;:::-;1352:25;;;;;;;;;;1379:35;432:1033;;1379:35;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;432:1033;;1314:118;;;;;;432:1033;;;;;;;;;;;;;;;;;;;;;;;;;;1314:118;1379:35;;1314:118;;;;;;:::i;:::-;432:1033;1287:159;;2794:1663:13;432:1033:36;2794:1663:13;;432:1033:36;2794:1663:13;;;;;;;2413:4;2794:1663;;;;;;;;;-1:-1:-1;432:1033:36;-1:-1:-1;;;;;2794:1663:13;;;432:1033:36;;;;;;;;;;:::i;:::-;926:47;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;432:1033;926:47;;;;;432:1033;;926:47;432:1033;;;;;989:21;432:1033;;;;;;989:21;432:1033;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;432:1033:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;432:1033:36;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;432:1033:36;;;;;;;;;;;;;;;;;;;;;;;;;;;1379:35;;432:1033;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"calculateQuorumAddress(address[],uint256,bytes32)":"ca8f271c","newQuorum(address[],uint256)":"d4af3bc8","newQuorum(address[],uint256,bytes32)":"2f74f862"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IQuorum\",\"name\":\"quorum\",\"type\":\"address\"}],\"name\":\"QuorumCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"epochLength\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"calculateQuorumAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"epochLength\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"newQuorum\",\"outputs\":[{\"internalType\":\"contract IQuorum\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"epochLength\",\"type\":\"uint256\"}],\"name\":\"newQuorum\",\"outputs\":[{\"internalType\":\"contract IQuorum\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"QuorumCreated(address)\":{\"details\":\"MUST be triggered on a successful call to `newQuorum`.\",\"params\":{\"quorum\":\"The quorum\"}}},\"kind\":\"dev\",\"methods\":{\"calculateQuorumAddress(address[],uint256,bytes32)\":{\"details\":\"Beware that only the `newQuorum` function with the `salt` parameter      is able to deterministically deploy a quorum.\",\"params\":{\"epochLength\":\"The epoch length\",\"salt\":\"The salt used to deterministically generate the quorum address\",\"validators\":\"the list of validators\"},\"returns\":{\"_0\":\"The deterministic quorum address\"}},\"newQuorum(address[],uint256)\":{\"details\":\"On success, MUST emit a `QuorumCreated` event.Duplicates in the `validators` array are ignored.Reverts if the epoch length is zero.\",\"params\":{\"epochLength\":\"The epoch length\",\"validators\":\"the list of validators\"},\"returns\":{\"_0\":\"The quorum\"}},\"newQuorum(address[],uint256,bytes32)\":{\"details\":\"On success, MUST emit a `QuorumCreated` event.Duplicates in the `validators` array are ignored.Reverts if the epoch length is zero.\",\"params\":{\"epochLength\":\"The epoch length\",\"salt\":\"The salt used to deterministically generate the quorum address\",\"validators\":\"the list of validators\"},\"returns\":{\"_0\":\"The quorum\"}}},\"title\":\"Quorum Factory\",\"version\":1},\"userdoc\":{\"events\":{\"QuorumCreated(address)\":{\"notice\":\"A new quorum was deployed.\"}},\"kind\":\"user\",\"methods\":{\"calculateQuorumAddress(address[],uint256,bytes32)\":{\"notice\":\"Calculate the address of a quorum to be deployed deterministically.\"},\"newQuorum(address[],uint256)\":{\"notice\":\"Deploy a new quorum.\"},\"newQuorum(address[],uint256,bytes32)\":{\"notice\":\"Deploy a new quorum deterministically.\"}},\"notice\":\"Allows anyone to reliably deploy a new `IQuorum` contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/consensus/quorum/QuorumFactory.sol\":\"QuorumFactory\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.2.0/=dependencies/@openzeppelin-contracts-5.2.0/\",\":forge-std-1.9.6/=dependencies/forge-std-1.9.6/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.2.0/utils/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/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/consensus/AbstractConsensus.sol\":{\"keccak256\":\"0x1455e92481df72c9828cccf4054c43240939ba25b63ef230e7a479dd385367d2\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://69266ee1ccec16fd0ff1b8fd56daae37bcfb8426a1f59ca57319b03def84d3c5\",\"dweb:/ipfs/QmXK3VX5JXk3XHk8rMiyUEgJAWErtDKqtPuiKVqYZCnz9C\"]},\"src/consensus/IConsensus.sol\":{\"keccak256\":\"0x26491d6a13136dfed5c07b4553c86f8ec3ec2e0de803085620523db9c4f94dd3\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://6a0efccda9973ca9da9b8a1fa18fba0df9a457a3b46c6d101ee06f6da43eb468\",\"dweb:/ipfs/QmehZJHU6fEmGuA2QkthA9Mka38phw4q4ioX34rqXKp9Pi\"]},\"src/consensus/IOutputsMerkleRootValidator.sol\":{\"keccak256\":\"0x133dfa71847fd6478489e983d53b08b22f5f578634c2103e96a11cd128e81d68\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://eb43c0a4aa7cd21753a3b92820da37ef58cf29aa4ef5c18a6f2face3e6e94e25\",\"dweb:/ipfs/QmezZmVZV1cfygDYPC8XheVVxaSZt92xQNdEpnRV6Xdh3M\"]},\"src/consensus/quorum/IQuorum.sol\":{\"keccak256\":\"0x32a8ba536cdd6e727f7f0046e4daf77a937fa2c5f132c5584086e3a1f042bee1\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://db9343aa57c1816640f8b05fe6d923ca5ef08ef28cbfdff4c133a74a6e3a0278\",\"dweb:/ipfs/QmYPA4CcB7fiEQFRGtoRqPnCdTwXGGCHCapX15NedEqwwP\"]},\"src/consensus/quorum/IQuorumFactory.sol\":{\"keccak256\":\"0x41c9dd5d796eb946d933251f16807602177cf971b4fa0ee7ee3d4aa5c0335653\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://c7749491f80c6d91f2729284d5e4a1bad6a3c946668b6eed1ebf5286a31ef549\",\"dweb:/ipfs/QmQqTv2DYsTtDxbZS6YJ3JmbFm5mGTvXCdxUAsAEYM2wPT\"]},\"src/consensus/quorum/Quorum.sol\":{\"keccak256\":\"0x8bf69542f9e335720e162b972cac272496d3bc7a39d0096fffd7715d588004f7\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://784319dad0d8082451ddad1f30d2e5881da1163ab6931edfa07b2d7a882b1a6e\",\"dweb:/ipfs/QmaaafKfHmchKXzFt4Jvd8o7eKEKStYdAxvk7c6MvsTzFQ\"]},\"src/consensus/quorum/QuorumFactory.sol\":{\"keccak256\":\"0x2615e7b1c731f0ceac17b618758c6c46789f2e94a8767f2973569a92f381a6a9\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://d36223116fd0f130dcbaef1d1dd221f67fb74861a090065f57e76a1944f0158d\",\"dweb:/ipfs/QmPU9dSbB8Nku3Giii5qPKpwVKU3JzzQfmJxeUaZmNMY2d\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IQuorum","name":"quorum","type":"address","indexed":false}],"type":"event","name":"QuorumCreated","anonymous":false},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"epochLength","type":"uint256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"view","type":"function","name":"calculateQuorumAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"epochLength","type":"uint256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"newQuorum","outputs":[{"internalType":"contract IQuorum","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"epochLength","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"newQuorum","outputs":[{"internalType":"contract IQuorum","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"calculateQuorumAddress(address[],uint256,bytes32)":{"details":"Beware that only the `newQuorum` function with the `salt` parameter      is able to deterministically deploy a quorum.","params":{"epochLength":"The epoch length","salt":"The salt used to deterministically generate the quorum address","validators":"the list of validators"},"returns":{"_0":"The deterministic quorum address"}},"newQuorum(address[],uint256)":{"details":"On success, MUST emit a `QuorumCreated` event.Duplicates in the `validators` array are ignored.Reverts if the epoch length is zero.","params":{"epochLength":"The epoch length","validators":"the list of validators"},"returns":{"_0":"The quorum"}},"newQuorum(address[],uint256,bytes32)":{"details":"On success, MUST emit a `QuorumCreated` event.Duplicates in the `validators` array are ignored.Reverts if the epoch length is zero.","params":{"epochLength":"The epoch length","salt":"The salt used to deterministically generate the quorum address","validators":"the list of validators"},"returns":{"_0":"The quorum"}}},"version":1},"userdoc":{"kind":"user","methods":{"calculateQuorumAddress(address[],uint256,bytes32)":{"notice":"Calculate the address of a quorum to be deployed deterministically."},"newQuorum(address[],uint256)":{"notice":"Deploy a new quorum."},"newQuorum(address[],uint256,bytes32)":{"notice":"Deploy a new quorum 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/consensus/quorum/QuorumFactory.sol":"QuorumFactory"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"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/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/consensus/AbstractConsensus.sol":{"keccak256":"0x1455e92481df72c9828cccf4054c43240939ba25b63ef230e7a479dd385367d2","urls":["bzz-raw://69266ee1ccec16fd0ff1b8fd56daae37bcfb8426a1f59ca57319b03def84d3c5","dweb:/ipfs/QmXK3VX5JXk3XHk8rMiyUEgJAWErtDKqtPuiKVqYZCnz9C"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/IConsensus.sol":{"keccak256":"0x26491d6a13136dfed5c07b4553c86f8ec3ec2e0de803085620523db9c4f94dd3","urls":["bzz-raw://6a0efccda9973ca9da9b8a1fa18fba0df9a457a3b46c6d101ee06f6da43eb468","dweb:/ipfs/QmehZJHU6fEmGuA2QkthA9Mka38phw4q4ioX34rqXKp9Pi"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/IOutputsMerkleRootValidator.sol":{"keccak256":"0x133dfa71847fd6478489e983d53b08b22f5f578634c2103e96a11cd128e81d68","urls":["bzz-raw://eb43c0a4aa7cd21753a3b92820da37ef58cf29aa4ef5c18a6f2face3e6e94e25","dweb:/ipfs/QmezZmVZV1cfygDYPC8XheVVxaSZt92xQNdEpnRV6Xdh3M"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/quorum/IQuorum.sol":{"keccak256":"0x32a8ba536cdd6e727f7f0046e4daf77a937fa2c5f132c5584086e3a1f042bee1","urls":["bzz-raw://db9343aa57c1816640f8b05fe6d923ca5ef08ef28cbfdff4c133a74a6e3a0278","dweb:/ipfs/QmYPA4CcB7fiEQFRGtoRqPnCdTwXGGCHCapX15NedEqwwP"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/quorum/IQuorumFactory.sol":{"keccak256":"0x41c9dd5d796eb946d933251f16807602177cf971b4fa0ee7ee3d4aa5c0335653","urls":["bzz-raw://c7749491f80c6d91f2729284d5e4a1bad6a3c946668b6eed1ebf5286a31ef549","dweb:/ipfs/QmQqTv2DYsTtDxbZS6YJ3JmbFm5mGTvXCdxUAsAEYM2wPT"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/quorum/Quorum.sol":{"keccak256":"0x8bf69542f9e335720e162b972cac272496d3bc7a39d0096fffd7715d588004f7","urls":["bzz-raw://784319dad0d8082451ddad1f30d2e5881da1163ab6931edfa07b2d7a882b1a6e","dweb:/ipfs/QmaaafKfHmchKXzFt4Jvd8o7eKEKStYdAxvk7c6MvsTzFQ"],"license":"Apache-2.0 (see LICENSE)"},"src/consensus/quorum/QuorumFactory.sol":{"keccak256":"0x2615e7b1c731f0ceac17b618758c6c46789f2e94a8767f2973569a92f381a6a9","urls":["bzz-raw://d36223116fd0f130dcbaef1d1dd221f67fb74861a090065f57e76a1944f0158d","dweb:/ipfs/QmPU9dSbB8Nku3Giii5qPKpwVKU3JzzQfmJxeUaZmNMY2d"],"license":"Apache-2.0 (see LICENSE)"}},"version":1},"id":36}