[{"type":"constructor","inputs":[{"name":"manager_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"EXECUTION_WINDOW","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"REVIEW_DELAY","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"activate","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancel","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAdmitted","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"adapter","type":"address","internalType":"address"},{"name":"family","type":"uint8","internalType":"uint8"},{"name":"network","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"manager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profileId","inputs":[{"name":"profile","type":"tuple","internalType":"struct KeelProofUpgradeController.Profile","components":[{"name":"family","type":"uint8","internalType":"uint8"},{"name":"network","type":"uint32","internalType":"uint32"},{"name":"adapter","type":"address","internalType":"address"},{"name":"codeHash","type":"bytes32","internalType":"bytes32"},{"name":"manifestHash","type":"bytes32","internalType":"bytes32"},{"name":"configHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"proposal","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct KeelProofUpgradeController.Proposal","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"suspended","type":"bool","internalType":"bool"},{"name":"readyAt","type":"uint64","internalType":"uint64"},{"name":"expiresAt","type":"uint64","internalType":"uint64"},{"name":"activatedAt","type":"uint64","internalType":"uint64"},{"name":"proposer","type":"address","internalType":"address"},{"name":"profile","type":"tuple","internalType":"struct KeelProofUpgradeController.Profile","components":[{"name":"family","type":"uint8","internalType":"uint8"},{"name":"network","type":"uint32","internalType":"uint32"},{"name":"adapter","type":"address","internalType":"address"},{"name":"codeHash","type":"bytes32","internalType":"bytes32"},{"name":"manifestHash","type":"bytes32","internalType":"bytes32"},{"name":"configHash","type":"bytes32","internalType":"bytes32"}]}]}],"stateMutability":"view"},{"type":"function","name":"propose","inputs":[{"name":"profile","type":"tuple","internalType":"struct KeelProofUpgradeController.Profile","components":[{"name":"family","type":"uint8","internalType":"uint8"},{"name":"network","type":"uint32","internalType":"uint32"},{"name":"adapter","type":"address","internalType":"address"},{"name":"codeHash","type":"bytes32","internalType":"bytes32"},{"name":"manifestHash","type":"bytes32","internalType":"bytes32"},{"name":"configHash","type":"bytes32","internalType":"bytes32"}]},{"name":"manifestURI","type":"string","internalType":"string"}],"outputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"recommended","inputs":[{"name":"route","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"routeId","inputs":[{"name":"family","type":"uint8","internalType":"uint8"},{"name":"network","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"suspend","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Activated","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"route","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Approved","inputs":[{"name":"readyAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"expiresAt","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Cancelled","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Proposed","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"proposer","type":"address","indexed":true,"internalType":"address"},{"name":"profile","type":"tuple","indexed":false,"internalType":"struct KeelProofUpgradeController.Profile","components":[{"name":"family","type":"uint8","internalType":"uint8"},{"name":"network","type":"uint32","internalType":"uint32"},{"name":"adapter","type":"address","internalType":"address"},{"name":"codeHash","type":"bytes32","internalType":"bytes32"},{"name":"manifestHash","type":"bytes32","internalType":"bytes32"},{"name":"configHash","type":"bytes32","internalType":"bytes32"}]},{"name":"manifestURI","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Suspended","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"CodeChanged","inputs":[]},{"type":"error","name":"DuplicateProfile","inputs":[]},{"type":"error","name":"InvalidProfile","inputs":[]},{"type":"error","name":"InvalidState","inputs":[]},{"type":"error","name":"NotReady","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"UnknownProfile","inputs":[]}]
