[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"NotAuthorised","type":"error"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"SetNotActive","type":"error"},{"inputs":[{"internalType":"string","name":"field","type":"string"}],"name":"UnsoundParameter","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"controller","type":"address"}],"name":"ControllerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"class","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"grace","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"factor","type":"uint256"}],"name":"DecayUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"current","type":"address"},{"indexed":true,"internalType":"address","name":"pending","type":"address"}],"name":"OwnershipProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"hash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"fromEpoch","type":"uint256"}],"name":"ParametersActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"hash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"ParametersRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"ParametersRetired","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"name":"at","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"class","type":"uint8"}],"name":"decay","outputs":[{"components":[{"internalType":"uint256","name":"grace","type":"uint256"},{"internalType":"uint256","name":"factor","type":"uint256"}],"internalType":"struct Types.Decay","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decayHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decayTable","outputs":[{"components":[{"internalType":"uint256","name":"grace","type":"uint256"},{"internalType":"uint256","name":"factor","type":"uint256"}],"internalType":"struct Types.Decay[5]","name":"","type":"tuple[5]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"epochRecorded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"name":"get","outputs":[{"components":[{"internalType":"uint256","name":"z","type":"uint256"},{"internalType":"uint256","name":"lambda","type":"uint256"},{"internalType":"uint256","name":"hCap","type":"uint256"},{"internalType":"uint256","name":"gamma","type":"uint256"},{"internalType":"uint256","name":"hTarget","type":"uint256"},{"internalType":"uint256","name":"cMax","type":"uint256"},{"internalType":"uint256","name":"epsilon","type":"uint256"},{"internalType":"uint256","name":"quorumNum","type":"uint256"},{"internalType":"uint256","name":"graceBlocks","type":"uint256"},{"internalType":"uint256","name":"blocksPerEpoch","type":"uint256"},{"internalType":"uint256","name":"commitBlocks","type":"uint256"},{"internalType":"uint256","name":"revealBlocks","type":"uint256"},{"internalType":"uint8","name":"requiredMask","type":"uint8"}],"internalType":"struct Types.Params","name":"p","type":"tuple"},{"components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"registeredAt","type":"uint48"},{"internalType":"bool","name":"active","type":"bool"},{"internalType":"bool","name":"retired","type":"bool"}],"internalType":"struct ParameterSet.Registered","name":"r","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"z","type":"uint256"},{"internalType":"uint256","name":"lambda","type":"uint256"},{"internalType":"uint256","name":"hCap","type":"uint256"},{"internalType":"uint256","name":"gamma","type":"uint256"},{"internalType":"uint256","name":"hTarget","type":"uint256"},{"internalType":"uint256","name":"cMax","type":"uint256"},{"internalType":"uint256","name":"epsilon","type":"uint256"},{"internalType":"uint256","name":"quorumNum","type":"uint256"},{"internalType":"uint256","name":"graceBlocks","type":"uint256"},{"internalType":"uint256","name":"blocksPerEpoch","type":"uint256"},{"internalType":"uint256","name":"commitBlocks","type":"uint256"},{"internalType":"uint256","name":"revealBlocks","type":"uint256"},{"internalType":"uint8","name":"requiredMask","type":"uint8"}],"internalType":"struct Types.Params","name":"p","type":"tuple"}],"name":"hashOf","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"name":"paramsFor","outputs":[{"components":[{"internalType":"uint256","name":"z","type":"uint256"},{"internalType":"uint256","name":"lambda","type":"uint256"},{"internalType":"uint256","name":"hCap","type":"uint256"},{"internalType":"uint256","name":"gamma","type":"uint256"},{"internalType":"uint256","name":"hTarget","type":"uint256"},{"internalType":"uint256","name":"cMax","type":"uint256"},{"internalType":"uint256","name":"epsilon","type":"uint256"},{"internalType":"uint256","name":"quorumNum","type":"uint256"},{"internalType":"uint256","name":"graceBlocks","type":"uint256"},{"internalType":"uint256","name":"blocksPerEpoch","type":"uint256"},{"internalType":"uint256","name":"commitBlocks","type":"uint256"},{"internalType":"uint256","name":"revealBlocks","type":"uint256"},{"internalType":"uint8","name":"requiredMask","type":"uint8"}],"internalType":"struct Types.Params","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"paramsUsedAt","outputs":[{"components":[{"internalType":"uint256","name":"z","type":"uint256"},{"internalType":"uint256","name":"lambda","type":"uint256"},{"internalType":"uint256","name":"hCap","type":"uint256"},{"internalType":"uint256","name":"gamma","type":"uint256"},{"internalType":"uint256","name":"hTarget","type":"uint256"},{"internalType":"uint256","name":"cMax","type":"uint256"},{"internalType":"uint256","name":"epsilon","type":"uint256"},{"internalType":"uint256","name":"quorumNum","type":"uint256"},{"internalType":"uint256","name":"graceBlocks","type":"uint256"},{"internalType":"uint256","name":"blocksPerEpoch","type":"uint256"},{"internalType":"uint256","name":"commitBlocks","type":"uint256"},{"internalType":"uint256","name":"revealBlocks","type":"uint256"},{"internalType":"uint8","name":"requiredMask","type":"uint8"}],"internalType":"struct Types.Params","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"next","type":"address"}],"name":"proposeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"bytes32","name":"h","type":"bytes32"}],"name":"recordEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"z","type":"uint256"},{"internalType":"uint256","name":"lambda","type":"uint256"},{"internalType":"uint256","name":"hCap","type":"uint256"},{"internalType":"uint256","name":"gamma","type":"uint256"},{"internalType":"uint256","name":"hTarget","type":"uint256"},{"internalType":"uint256","name":"cMax","type":"uint256"},{"internalType":"uint256","name":"epsilon","type":"uint256"},{"internalType":"uint256","name":"quorumNum","type":"uint256"},{"internalType":"uint256","name":"graceBlocks","type":"uint256"},{"internalType":"uint256","name":"blocksPerEpoch","type":"uint256"},{"internalType":"uint256","name":"commitBlocks","type":"uint256"},{"internalType":"uint256","name":"revealBlocks","type":"uint256"},{"internalType":"uint8","name":"requiredMask","type":"uint8"}],"internalType":"struct Types.Params","name":"p","type":"tuple"}],"name":"register","outputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"registered","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"registeredAt","type":"uint48"},{"internalType":"bool","name":"active","type":"bool"},{"internalType":"bool","name":"retired","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"name":"retire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"next","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"class","type":"uint8"},{"components":[{"internalType":"uint256","name":"grace","type":"uint256"},{"internalType":"uint256","name":"factor","type":"uint256"}],"internalType":"struct Types.Decay","name":"d","type":"tuple"}],"name":"setDecay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"setForEpoch","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"z","type":"uint256"},{"internalType":"uint256","name":"lambda","type":"uint256"},{"internalType":"uint256","name":"hCap","type":"uint256"},{"internalType":"uint256","name":"gamma","type":"uint256"},{"internalType":"uint256","name":"hTarget","type":"uint256"},{"internalType":"uint256","name":"cMax","type":"uint256"},{"internalType":"uint256","name":"epsilon","type":"uint256"},{"internalType":"uint256","name":"quorumNum","type":"uint256"},{"internalType":"uint256","name":"graceBlocks","type":"uint256"},{"internalType":"uint256","name":"blocksPerEpoch","type":"uint256"},{"internalType":"uint256","name":"commitBlocks","type":"uint256"},{"internalType":"uint256","name":"revealBlocks","type":"uint256"},{"internalType":"uint8","name":"requiredMask","type":"uint8"}],"internalType":"struct Types.Params","name":"p","type":"tuple"}],"name":"validate","outputs":[],"stateMutability":"pure","type":"function"}]
