// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import "../AgentIdMembershipVerifier.sol"; import "./TimeoutRefundRoundBootstrapper.sol"; /// @notice Constructor-only BNB mainnet deployment of the verifier, adapter and one round. /// @dev Registry provenance must be established separately; code presence is not issuer authentication. /// The immutable treasury receives service revenue under the round's published rules. contract TimeoutRefundLotteryDeployment { address public immutable verifier; address public immutable bootstrapper; address public immutable adapter; address public immutable round; error InvalidConfig(); constructor( address registry, TimeoutRefundUsdtLotteryRound.Config memory c, TimeoutRefundVrfAdapter.Config memory oracle ) payable { if (block.chainid != 56 || c.verifier != address(0) || c.randomness != address(0)) { revert InvalidConfig(); } address deployedVerifier = address(new AgentIdMembershipVerifier(registry, 56)); c.verifier = deployedVerifier; TimeoutRefundRoundBootstrapper deployed = new TimeoutRefundRoundBootstrapper{value: msg.value}(c, oracle); verifier = deployedVerifier; bootstrapper = address(deployed); adapter = deployed.adapter(); round = deployed.round(); } }