@aztec-foundation/l1-artifacts 6.0.0-rc.2 → 6.0.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/AttesterExitExtLibAbi.d.ts +12 -48
- package/dest/AttesterExitExtLibAbi.d.ts.map +1 -1
- package/dest/AttesterExitExtLibAbi.js +16 -64
- package/dest/AttesterExitExtLibAbi.js.map +1 -1
- package/dest/AttesterExitExtLibBytecode.d.ts +1 -1
- package/dest/AttesterExitExtLibBytecode.js +1 -1
- package/dest/CoinIssuerAbi.d.ts +12 -48
- package/dest/CoinIssuerAbi.d.ts.map +1 -1
- package/dest/CoinIssuerAbi.js +16 -64
- package/dest/CoinIssuerAbi.js.map +1 -1
- package/dest/DateGatedRelayerAbi.d.ts +12 -48
- package/dest/DateGatedRelayerAbi.d.ts.map +1 -1
- package/dest/DateGatedRelayerAbi.js +16 -64
- package/dest/DateGatedRelayerAbi.js.map +1 -1
- package/dest/EmpireBaseAbi.d.ts +12 -48
- package/dest/EmpireBaseAbi.d.ts.map +1 -1
- package/dest/EmpireBaseAbi.js +16 -64
- package/dest/EmpireBaseAbi.js.map +1 -1
- package/dest/EpochProofExtLibAbi.d.ts +12 -48
- package/dest/EpochProofExtLibAbi.d.ts.map +1 -1
- package/dest/EpochProofExtLibAbi.js +16 -64
- package/dest/EpochProofExtLibAbi.js.map +1 -1
- package/dest/EpochProofExtLibBytecode.d.ts +1 -1
- package/dest/EpochProofExtLibBytecode.d.ts.map +1 -1
- package/dest/EpochProofExtLibBytecode.js +1 -1
- package/dest/EpochProofExtLibBytecode.js.map +1 -1
- package/dest/ErrorsAbi.d.ts +12 -48
- package/dest/ErrorsAbi.d.ts.map +1 -1
- package/dest/ErrorsAbi.js +16 -64
- package/dest/ErrorsAbi.js.map +1 -1
- package/dest/EscapeHatchAbi.d.ts +12 -48
- package/dest/EscapeHatchAbi.d.ts.map +1 -1
- package/dest/EscapeHatchAbi.js +16 -64
- package/dest/EscapeHatchAbi.js.map +1 -1
- package/dest/EscapeHatchBytecode.d.ts +1 -1
- package/dest/EscapeHatchBytecode.js +1 -1
- package/dest/EscapeHatchStorage.d.ts +2 -2
- package/dest/EscapeHatchStorage.js +2 -2
- package/dest/FeeAssetHandlerAbi.d.ts +12 -48
- package/dest/FeeAssetHandlerAbi.d.ts.map +1 -1
- package/dest/FeeAssetHandlerAbi.js +16 -64
- package/dest/FeeAssetHandlerAbi.js.map +1 -1
- package/dest/FeeJuicePortalAbi.d.ts +12 -48
- package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
- package/dest/FeeJuicePortalAbi.js +16 -64
- package/dest/FeeJuicePortalAbi.js.map +1 -1
- package/dest/FeeJuicePortalBytecode.d.ts +1 -1
- package/dest/FeeJuicePortalBytecode.js +1 -1
- package/dest/GSEAbi.d.ts +12 -48
- package/dest/GSEAbi.d.ts.map +1 -1
- package/dest/GSEAbi.js +16 -64
- package/dest/GSEAbi.js.map +1 -1
- package/dest/GovernanceAbi.d.ts +12 -48
- package/dest/GovernanceAbi.d.ts.map +1 -1
- package/dest/GovernanceAbi.js +16 -64
- package/dest/GovernanceAbi.js.map +1 -1
- package/dest/GovernanceProposerAbi.d.ts +12 -48
- package/dest/GovernanceProposerAbi.d.ts.map +1 -1
- package/dest/GovernanceProposerAbi.js +16 -64
- package/dest/GovernanceProposerAbi.js.map +1 -1
- package/dest/HonkVerifierAbi.d.ts +12 -48
- package/dest/HonkVerifierAbi.d.ts.map +1 -1
- package/dest/HonkVerifierAbi.js +16 -64
- package/dest/HonkVerifierAbi.js.map +1 -1
- package/dest/IERC20Abi.d.ts +12 -48
- package/dest/IERC20Abi.d.ts.map +1 -1
- package/dest/IERC20Abi.js +16 -64
- package/dest/IERC20Abi.js.map +1 -1
- package/dest/ISequencerRewardCalculatorAbi.d.ts +2607 -0
- package/dest/ISequencerRewardCalculatorAbi.d.ts.map +1 -0
- package/dest/ISequencerRewardCalculatorAbi.js +3473 -0
- package/dest/ISequencerRewardCalculatorAbi.js.map +1 -0
- package/dest/ISequencerRewardCalculatorBytecode.d.ts +9 -0
- package/dest/ISequencerRewardCalculatorBytecode.d.ts.map +1 -0
- package/dest/ISequencerRewardCalculatorBytecode.js +9 -0
- package/dest/ISequencerRewardCalculatorBytecode.js.map +1 -0
- package/dest/IVerifierAbi.d.ts +12 -48
- package/dest/IVerifierAbi.d.ts.map +1 -1
- package/dest/IVerifierAbi.js +16 -64
- package/dest/IVerifierAbi.js.map +1 -1
- package/dest/InboxAbi.d.ts +12 -48
- package/dest/InboxAbi.d.ts.map +1 -1
- package/dest/InboxAbi.js +16 -64
- package/dest/InboxAbi.js.map +1 -1
- package/dest/InboxBytecode.d.ts +1 -1
- package/dest/InboxBytecode.js +1 -1
- package/dest/MockVerifierAbi.d.ts +12 -48
- package/dest/MockVerifierAbi.d.ts.map +1 -1
- package/dest/MockVerifierAbi.js +16 -64
- package/dest/MockVerifierAbi.js.map +1 -1
- package/dest/MockZKPassportVerifierAbi.d.ts +12 -48
- package/dest/MockZKPassportVerifierAbi.d.ts.map +1 -1
- package/dest/MockZKPassportVerifierAbi.js +16 -64
- package/dest/MockZKPassportVerifierAbi.js.map +1 -1
- package/dest/MultiAdderAbi.d.ts +12 -48
- package/dest/MultiAdderAbi.d.ts.map +1 -1
- package/dest/MultiAdderAbi.js +16 -64
- package/dest/MultiAdderAbi.js.map +1 -1
- package/dest/MultiAdderBytecode.d.ts +1 -1
- package/dest/MultiAdderBytecode.js +1 -1
- package/dest/NewGovernanceProposerPayloadAbi.d.ts +12 -48
- package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
- package/dest/NewGovernanceProposerPayloadAbi.js +16 -64
- package/dest/NewGovernanceProposerPayloadAbi.js.map +1 -1
- package/dest/OutboxAbi.d.ts +12 -48
- package/dest/OutboxAbi.d.ts.map +1 -1
- package/dest/OutboxAbi.js +16 -64
- package/dest/OutboxAbi.js.map +1 -1
- package/dest/OutboxBytecode.d.ts +1 -1
- package/dest/OutboxBytecode.js +1 -1
- package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +12 -48
- package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
- package/dest/RegisterNewRollupVersionPayloadAbi.js +16 -64
- package/dest/RegisterNewRollupVersionPayloadAbi.js.map +1 -1
- package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +1 -1
- package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
- package/dest/RegistryAbi.d.ts +12 -48
- package/dest/RegistryAbi.d.ts.map +1 -1
- package/dest/RegistryAbi.js +16 -64
- package/dest/RegistryAbi.js.map +1 -1
- package/dest/RewardDistributorAbi.d.ts +12 -48
- package/dest/RewardDistributorAbi.d.ts.map +1 -1
- package/dest/RewardDistributorAbi.js +16 -64
- package/dest/RewardDistributorAbi.js.map +1 -1
- package/dest/RewardExtLibAbi.d.ts +59 -48
- package/dest/RewardExtLibAbi.d.ts.map +1 -1
- package/dest/RewardExtLibAbi.js +77 -64
- package/dest/RewardExtLibAbi.js.map +1 -1
- package/dest/RewardExtLibBytecode.d.ts +1 -1
- package/dest/RewardExtLibBytecode.d.ts.map +1 -1
- package/dest/RewardExtLibBytecode.js +1 -1
- package/dest/RewardExtLibBytecode.js.map +1 -1
- package/dest/RollupAbi.d.ts +72 -79
- package/dest/RollupAbi.d.ts.map +1 -1
- package/dest/RollupAbi.js +93 -104
- package/dest/RollupAbi.js.map +1 -1
- package/dest/RollupBytecode.d.ts +91 -82
- package/dest/RollupBytecode.d.ts.map +1 -1
- package/dest/RollupBytecode.js +94 -82
- package/dest/RollupBytecode.js.map +1 -1
- package/dest/RollupOperationsExtLibAbi.d.ts +12 -48
- package/dest/RollupOperationsExtLibAbi.d.ts.map +1 -1
- package/dest/RollupOperationsExtLibAbi.js +16 -64
- package/dest/RollupOperationsExtLibAbi.js.map +1 -1
- package/dest/RollupOperationsExtLibBytecode.d.ts +1 -1
- package/dest/RollupOperationsExtLibBytecode.d.ts.map +1 -1
- package/dest/RollupOperationsExtLibBytecode.js +1 -1
- package/dest/RollupOperationsExtLibBytecode.js.map +1 -1
- package/dest/RollupStorage.d.ts +2 -2
- package/dest/RollupStorage.js +2 -2
- package/dest/SlasherAbi.d.ts +12 -48
- package/dest/SlasherAbi.d.ts.map +1 -1
- package/dest/SlasherAbi.js +16 -64
- package/dest/SlasherAbi.js.map +1 -1
- package/dest/SlasherDeploymentExtLibAbi.d.ts +12 -48
- package/dest/SlasherDeploymentExtLibAbi.d.ts.map +1 -1
- package/dest/SlasherDeploymentExtLibAbi.js +16 -64
- package/dest/SlasherDeploymentExtLibAbi.js.map +1 -1
- package/dest/SlasherDeploymentExtLibBytecode.d.ts +1 -1
- package/dest/SlasherDeploymentExtLibBytecode.d.ts.map +1 -1
- package/dest/SlasherDeploymentExtLibBytecode.js +1 -1
- package/dest/SlasherDeploymentExtLibBytecode.js.map +1 -1
- package/dest/SlashingProposerAbi.d.ts +12 -48
- package/dest/SlashingProposerAbi.d.ts.map +1 -1
- package/dest/SlashingProposerAbi.js +16 -64
- package/dest/SlashingProposerAbi.js.map +1 -1
- package/dest/SlashingProposerBytecode.d.ts +1 -1
- package/dest/SlashingProposerBytecode.js +1 -1
- package/dest/StakingAssetHandlerAbi.d.ts +12 -48
- package/dest/StakingAssetHandlerAbi.d.ts.map +1 -1
- package/dest/StakingAssetHandlerAbi.js +16 -64
- package/dest/StakingAssetHandlerAbi.js.map +1 -1
- package/dest/TestERC20Abi.d.ts +12 -48
- package/dest/TestERC20Abi.d.ts.map +1 -1
- package/dest/TestERC20Abi.js +16 -64
- package/dest/TestERC20Abi.js.map +1 -1
- package/dest/TokenPortalAbi.d.ts +12 -48
- package/dest/TokenPortalAbi.d.ts.map +1 -1
- package/dest/TokenPortalAbi.js +16 -64
- package/dest/TokenPortalAbi.js.map +1 -1
- package/dest/TokenPortalBytecode.d.ts +1 -1
- package/dest/TokenPortalBytecode.js +1 -1
- package/dest/UniswapPortalAbi.d.ts +12 -48
- package/dest/UniswapPortalAbi.d.ts.map +1 -1
- package/dest/UniswapPortalAbi.js +16 -64
- package/dest/UniswapPortalAbi.js.map +1 -1
- package/dest/UniswapPortalBytecode.d.ts +1 -1
- package/dest/UniswapPortalBytecode.js +1 -1
- package/dest/ValidatorOperationsExtLibAbi.d.ts +12 -48
- package/dest/ValidatorOperationsExtLibAbi.d.ts.map +1 -1
- package/dest/ValidatorOperationsExtLibAbi.js +16 -64
- package/dest/ValidatorOperationsExtLibAbi.js.map +1 -1
- package/dest/ValidatorOperationsExtLibBytecode.d.ts +1 -1
- package/dest/ValidatorOperationsExtLibBytecode.d.ts.map +1 -1
- package/dest/ValidatorOperationsExtLibBytecode.js +1 -1
- package/dest/ValidatorOperationsExtLibBytecode.js.map +1 -1
- package/dest/ValidatorSelectionLibAbi.d.ts +12 -48
- package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
- package/dest/ValidatorSelectionLibAbi.js +16 -64
- package/dest/ValidatorSelectionLibAbi.js.map +1 -1
- package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
- package/dest/ValidatorSelectionLibBytecode.js +1 -1
- package/dest/checksum.d.ts +1 -1
- package/dest/checksum.js +1 -1
- package/dest/index.d.ts +2 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -0
- package/dest/index.js.map +1 -1
- package/l1-contracts/cache/solidity-files-cache.json +1 -1
- package/l1-contracts/foundry.toml +1 -1
- package/l1-contracts/out/AddressSnapshotLib.sol/AddressSnapshotLib.json +1 -1
- package/l1-contracts/out/AttestationLib.sol/AttestationLib.json +1 -1
- package/l1-contracts/out/AttesterExitExtLib.sol/AttesterExitExtLib.json +1 -1
- package/l1-contracts/out/BN254Lib.sol/BN254Lib.json +1 -1
- package/l1-contracts/out/Ballot.sol/BallotLib.json +1 -1
- package/l1-contracts/out/BlobLib.sol/BlobLib.json +1 -1
- package/l1-contracts/out/Bn254LibWrapper.sol/Bn254LibWrapper.json +1 -1
- package/l1-contracts/out/CheckpointLog.sol/CompressedTempCheckpointLogLib.json +1 -1
- package/l1-contracts/out/CheckpointedUintLib.sol/CheckpointedUintLib.json +1 -1
- package/l1-contracts/out/CoinIssuer.sol/CoinIssuer.json +1 -1
- package/l1-contracts/out/CompressedTimeMath.sol/CompressedTimeMath.json +1 -1
- package/l1-contracts/out/Configuration.sol/CompressedConfigurationLib.json +1 -1
- package/l1-contracts/out/ConfigurationLib.sol/ConfigurationLib.json +1 -1
- package/l1-contracts/out/ConstantsGen.sol/Constants.json +1 -1
- package/l1-contracts/out/CoordinationSignatureLib.sol/CoordinationSignatureLib.json +1 -1
- package/l1-contracts/out/DataStructures.sol/DataStructures.json +1 -1
- package/l1-contracts/out/DateGatedRelayer.sol/DateGatedRelayer.json +1 -1
- package/l1-contracts/out/DeployAztecL1Contracts.s.sol/DeployAztecL1Contracts.json +1 -1
- package/l1-contracts/out/DeployRollupForUpgrade.s.sol/DeployRollupForUpgrade.json +1 -1
- package/l1-contracts/out/DeployRollupLib.sol/DeployRollupLib.json +1 -1
- package/l1-contracts/out/DeploymentConfiguration.sol/DeploymentConfiguration.json +1 -1
- package/l1-contracts/out/DeploymentConfiguration.sol/IDeploymentConfiguration.json +1 -1
- package/l1-contracts/out/DepositDelegationLib.sol/DepositDelegationLib.json +1 -1
- package/l1-contracts/out/EmpireBase.sol/EmpireBase.json +1 -1
- package/l1-contracts/out/EpochProofExtLib.sol/EpochProofExtLib.json +1 -1
- package/l1-contracts/out/EpochProofLib.sol/EpochProofLib.json +1 -1
- package/l1-contracts/out/Errors.sol/Errors.json +1 -1
- package/l1-contracts/out/EscapeHatch.sol/EscapeHatch.json +1 -1
- package/l1-contracts/out/FeeAssetHandler.sol/FeeAssetHandler.json +1 -1
- package/l1-contracts/out/FeeAssetHandler.sol/IFeeAssetHandler.json +1 -1
- package/l1-contracts/out/FeeConfig.sol/FeeConfigLib.json +1 -1
- package/l1-contracts/out/FeeConfig.sol/PriceLib.json +1 -1
- package/l1-contracts/out/FeeJuicePortal.sol/FeeJuicePortal.json +1 -1
- package/l1-contracts/out/FeeLib.sol/FeeLib.json +1 -1
- package/l1-contracts/out/FeeStructs.sol/FeeHeaderLib.json +1 -1
- package/l1-contracts/out/FeeStructs.sol/FeeStructsLib.json +1 -1
- package/l1-contracts/out/FieldLib.sol/FieldLib.json +1 -1
- package/l1-contracts/out/FlushRewarder.sol/FlushRewarder.json +1 -1
- package/l1-contracts/out/GSE.sol/GSE.json +1 -1
- package/l1-contracts/out/GSE.sol/GSECore.json +1 -1
- package/l1-contracts/out/GSE.sol/IGSE.json +1 -1
- package/l1-contracts/out/GSE.sol/IGSECore.json +1 -1
- package/l1-contracts/out/GSEPayload.sol/GSEPayload.json +1 -1
- package/l1-contracts/out/Governance.sol/Governance.json +1 -1
- package/l1-contracts/out/GovernanceProposer.sol/GovernanceProposer.json +1 -1
- package/l1-contracts/out/Hash.sol/Hash.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/HonkVerifier.json +1 -1
- package/l1-contracts/out/IBn254LibWrapper.sol/IBn254LibWrapper.json +1 -1
- package/l1-contracts/out/ICoinIssuer.sol/ICoinIssuer.json +1 -1
- package/l1-contracts/out/IDateGatedRelayer.sol/IDateGatedRelayer.json +1 -1
- package/l1-contracts/out/IEmpire.sol/IEmperor.json +1 -1
- package/l1-contracts/out/IEmpire.sol/IEmpire.json +1 -1
- package/l1-contracts/out/IFeeJuicePortal.sol/IFeeJuicePortal.json +1 -1
- package/l1-contracts/out/IFlushRewarder.sol/IFlushRewarder.json +1 -1
- package/l1-contracts/out/IGovernance.sol/IGovernance.json +1 -1
- package/l1-contracts/out/IGovernanceProposer.sol/IGovernanceProposer.json +1 -1
- package/l1-contracts/out/IInbox.sol/IInbox.json +1 -1
- package/l1-contracts/out/IInstance.sol/IInstance.json +1 -1
- package/l1-contracts/out/IMintableERC20.sol/IMintableERC20.json +1 -1
- package/l1-contracts/out/IOutbox.sol/IOutbox.json +1 -1
- package/l1-contracts/out/IPayload.sol/IPayload.json +1 -1
- package/l1-contracts/out/IProposerPayload.sol/IProposerPayload.json +1 -1
- package/l1-contracts/out/IRegistry.sol/IHaveVersion.json +1 -1
- package/l1-contracts/out/IRegistry.sol/IRegistry.json +1 -1
- package/l1-contracts/out/IRewardDistributor.sol/IRewardDistributor.json +1 -1
- package/l1-contracts/out/IRollup.sol/IRollup.json +1 -1
- package/l1-contracts/out/IRollup.sol/IRollupCore.json +1 -1
- package/l1-contracts/out/IRootRegistry.sol/IRootRegistry.json +1 -1
- package/l1-contracts/out/ISequencerRewardCalculator.sol/ISequencerRewardCalculator.json +1 -0
- package/l1-contracts/out/ISlasher.sol/ISlasher.json +1 -1
- package/l1-contracts/out/IStaking.sol/IStaking.json +1 -1
- package/l1-contracts/out/IStaking.sol/IStakingCore.json +1 -1
- package/l1-contracts/out/IValidatorSelection.sol/IValidatorSelection.json +1 -1
- package/l1-contracts/out/IValidatorSelection.sol/IValidatorSelectionCore.json +1 -1
- package/l1-contracts/out/IVerifier.sol/IVerifier.json +1 -1
- package/l1-contracts/out/Inbox.sol/Inbox.json +1 -1
- package/l1-contracts/out/InputsExtractor.sol/InputsExtractor.json +1 -1
- package/l1-contracts/out/InvalidateLib.sol/InvalidateLib.json +1 -1
- package/l1-contracts/out/MerkleLib.sol/MerkleLib.json +1 -1
- package/l1-contracts/out/MockERC20.sol/MockERC20.json +1 -1
- package/l1-contracts/out/MockERC721.sol/MockERC721.json +1 -1
- package/l1-contracts/out/MockFeeJuicePortal.sol/MockFeeJuicePortal.json +1 -1
- package/l1-contracts/out/MockVerifier.sol/MockVerifier.json +1 -1
- package/l1-contracts/out/MockZKPassportVerifier.sol/IZKPassportVerifier.json +1 -1
- package/l1-contracts/out/MockZKPassportVerifier.sol/MockZKPassportVerifier.json +1 -1
- package/l1-contracts/out/MultiAdder.sol/IMultiAdder.json +1 -1
- package/l1-contracts/out/MultiAdder.sol/MultiAdder.json +1 -1
- package/l1-contracts/out/Outbox.sol/Outbox.json +1 -1
- package/l1-contracts/out/OuterCount8.sol/HonkVerifier.json +1 -1
- package/l1-contracts/out/Proposal.sol/CompressedProposalLib.json +1 -1
- package/l1-contracts/out/ProposalLib.sol/ProposalLib.json +1 -1
- package/l1-contracts/out/ProposeLib.sol/ProposeLib.json +1 -1
- package/l1-contracts/out/ProposedHeaderLib.sol/ProposedHeaderLib.json +1 -1
- package/l1-contracts/out/RegisterNewRollupVersionPayload.sol/RegisterNewRollupVersionPayload.json +1 -1
- package/l1-contracts/out/Registry.sol/Registry.json +1 -1
- package/l1-contracts/out/RewardBooster.sol/IBooster.json +1 -1
- package/l1-contracts/out/RewardBooster.sol/IBoosterCore.json +1 -1
- package/l1-contracts/out/RewardBooster.sol/RewardBooster.json +1 -1
- package/l1-contracts/out/RewardDistributor.sol/RewardDistributor.json +1 -1
- package/l1-contracts/out/RewardExtLib.sol/RewardExtLib.json +1 -1
- package/l1-contracts/out/RewardLib.sol/BpsLib.json +1 -1
- package/l1-contracts/out/RewardLib.sol/RewardLib.json +1 -1
- package/l1-contracts/out/Rollup.sol/Rollup.json +1 -1
- package/l1-contracts/out/RollupConfiguration.sol/IRollupConfiguration.json +1 -1
- package/l1-contracts/out/RollupConfiguration.sol/RollupConfiguration.json +1 -1
- package/l1-contracts/out/RollupCore.sol/RollupCore.json +1 -1
- package/l1-contracts/out/RollupOperationsExtLib.sol/RollupOperationsExtLib.json +1 -1
- package/l1-contracts/out/STFLib.sol/STFLib.json +1 -1
- package/l1-contracts/out/SampleLib.sol/SampleLib.json +1 -1
- package/l1-contracts/out/SequencerRewardCalculatorLib.sol/SequencerRewardCalculatorLib.json +1 -0
- package/l1-contracts/out/SignatureLib.sol/SignatureLib.json +1 -1
- package/l1-contracts/out/SlashPayload.sol/SlashPayload.json +1 -1
- package/l1-contracts/out/SlashPayloadCloneable.sol/SlashPayloadCloneable.json +1 -1
- package/l1-contracts/out/SlashPayloadLib.sol/SlashPayloadLib.json +1 -1
- package/l1-contracts/out/SlashRoundLib.sol/CompressedSlashRoundMath.json +1 -1
- package/l1-contracts/out/Slasher.sol/Slasher.json +1 -1
- package/l1-contracts/out/SlasherDeploymentExtLib.sol/SlasherDeploymentExtLib.json +1 -1
- package/l1-contracts/out/SlashingProposer.sol/SlashingProposer.json +1 -1
- package/l1-contracts/out/StakingAssetHandler.sol/IStakingAssetHandler.json +1 -1
- package/l1-contracts/out/StakingAssetHandler.sol/StakingAssetHandler.json +1 -1
- package/l1-contracts/out/StakingLib.sol/StakingLib.json +1 -1
- package/l1-contracts/out/StakingQueue.sol/StakingQueueLib.json +1 -1
- package/l1-contracts/out/StakingQueueConfig.sol/StakingQueueConfigLib.json +1 -1
- package/l1-contracts/out/StdError.sol/stdError.json +1 -1
- package/l1-contracts/out/TestERC20.sol/TestERC20.json +1 -1
- package/l1-contracts/out/TestPayloads.sol/CallAssetPayload.json +1 -1
- package/l1-contracts/out/TestPayloads.sol/CallRevertingPayload.json +1 -1
- package/l1-contracts/out/TestPayloads.sol/EmptyPayload.json +1 -1
- package/l1-contracts/out/TestPayloads.sol/FakeRollup.json +1 -1
- package/l1-contracts/out/TestPayloads.sol/RevertingCall.json +1 -1
- package/l1-contracts/out/TestPayloads.sol/UpgradePayload.json +1 -1
- package/l1-contracts/out/TimeLib.sol/TimeLib.json +1 -1
- package/l1-contracts/out/Tips.sol/ChainTipsLib.json +1 -1
- package/l1-contracts/out/ValidatorOperationsExtLib.sol/ValidatorOperationsExtLib.json +1 -1
- package/l1-contracts/out/ValidatorSelectionLib.sol/ValidatorSelectionLib.json +1 -1
- package/l1-contracts/out/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
- package/l1-contracts/out/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
- package/l1-contracts/out/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
- package/l1-contracts/out/build-info/4cb7b5442b848dcc.json +1 -0
- package/l1-contracts/out/generated/HonkVerifier.sol/HonkVerifier.json +1 -1
- package/l1-contracts/out/libraries/Errors.sol/Errors.json +1 -1
- package/l1-contracts/out/rollup/BlobLib.sol/BlobLib.json +1 -1
- package/l1-contracts/out/src/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
- package/l1-contracts/out/src/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
- package/l1-contracts/out/src/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
- package/l1-contracts/script/deploy/RollupConfiguration.sol +5 -19
- package/l1-contracts/scripts/network-defaults.json +1 -2
- package/l1-contracts/src/core/Rollup.sol +18 -12
- package/l1-contracts/src/core/RollupCore.sol +14 -27
- package/l1-contracts/src/core/interfaces/IRollup.sol +7 -11
- package/l1-contracts/src/core/interfaces/ISequencerRewardCalculator.sol +39 -0
- package/l1-contracts/src/core/interfaces/IValidatorSelection.sol +0 -2
- package/l1-contracts/src/core/libraries/Errors.sol +3 -6
- package/l1-contracts/src/core/libraries/rollup/BlobLib.sol +16 -6
- package/l1-contracts/src/core/libraries/rollup/EpochProofExtLib.sol +2 -7
- package/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol +4 -12
- package/l1-contracts/src/core/libraries/rollup/RewardExtLib.sol +30 -12
- package/l1-contracts/src/core/libraries/rollup/RewardLib.sol +187 -250
- package/l1-contracts/src/core/libraries/rollup/SequencerRewardCalculatorLib.sol +110 -0
- package/l1-contracts/src/core/libraries/rollup/ValidatorSelectionLib.sol +2 -4
- package/package.json +1 -1
- package/l1-contracts/out/RewardLib.sol/IATP.json +0 -1
- package/l1-contracts/out/RewardLib.sol/IATPStaker.json +0 -1
- package/l1-contracts/out/build-info/f88e638ee47a1ead.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"_rollup","type":"address","internalType":"contract IValidatorSelection"},{"name":"_config","type":"tuple","internalType":"struct RewardBoostConfig","components":[{"name":"increment","type":"uint32","internalType":"uint32"},{"name":"maxScore","type":"uint32","internalType":"uint32"},{"name":"a","type":"uint32","internalType":"uint32"},{"name":"minimum","type":"uint32","internalType":"uint32"},{"name":"k","type":"uint32","internalType":"uint32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"ROLLUP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IValidatorSelection"}],"stateMutability":"view"},{"type":"function","name":"getActivityScore","inputs":[{"name":"_prover","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ActivityScore","components":[{"name":"time","type":"uint256","internalType":"Epoch"},{"name":"value","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct RewardBoostConfig","components":[{"name":"increment","type":"uint32","internalType":"uint32"},{"name":"maxScore","type":"uint32","internalType":"uint32"},{"name":"a","type":"uint32","internalType":"uint32"},{"name":"minimum","type":"uint32","internalType":"uint32"},{"name":"k","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getSharesFor","inputs":[{"name":"_prover","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateAndGetShares","inputs":[{"name":"_prover","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"error","name":"RewardBooster__InvalidConfig","inputs":[]},{"type":"error","name":"RewardBooster__OnlyRollup","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610140604052348015610010575f5ffd5b50604051610b81380380610b8183398101604081905261002f91610143565b5f816080015163ffffffff1611610059576040516318dbcf2b60e21b815260040160405180910390fd5b5f816060015163ffffffff1611610083576040516318dbcf2b60e21b815260040160405180910390fd5b5f816020015163ffffffff16116100ad576040516318dbcf2b60e21b815260040160405180910390fd5b806080015163ffffffff16816060015163ffffffff1611156100e2576040516318dbcf2b60e21b815260040160405180910390fd5b6001600160a01b039091166080908152815163ffffffff90811660a0526020830151811660c0526040830151811660e0526060830151811661010052910151166101205261020d565b805163ffffffff8116811461013e575f5ffd5b919050565b5f5f82840360c0811215610155575f5ffd5b83516001600160a01b038116811461016b575f5ffd5b925060a0601f198201121561017e575f5ffd5b5060405160a081016001600160401b03811182821017156101ad57634e487b7160e01b5f52604160045260245ffd5b6040526101bc6020850161012b565b81526101ca6040850161012b565b60208201526101db6060850161012b565b60408201526101ec6080850161012b565b60608201526101fd60a0850161012b565b6080820152809150509250929050565b60805160a05160c05160e05161010051610120516108d36102ae5f395f8181610520015281816106800152818161071c015261077301525f81816104ec01528181610744015261079901525f81816104b801526106df01525f818161038a015281816104840152818161065801526106ab01525f8181610354015261045001525f818160b8015281816101a60152818161023b015261028f01526108d35ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80634fd90e56146100595780638e3356ce146100925780639611c5c2146100b3578063c3f909d4146100f2578063dfff3ebc14610159575b5f5ffd5b61006c6100673660046107d4565b61016c565b604080518251815260209283015163ffffffff1692810192909252015b60405180910390f35b6100a56100a03660046107d4565b61022f565b604051908152602001610089565b6100da7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610089565b6100fa610416565b60405161008991905f60a08201905063ffffffff835116825263ffffffff602084015116602083015263ffffffff604084015116604083015263ffffffff606084015116606083015263ffffffff608084015116608083015292915050565b6100a56101673660046107d4565b610551565b604080518082019091525f80825260208201526102295f5f846001600160a01b03166001600160a01b031681526020019081526020015f207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610200573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022491906107fa565b61056d565b92915050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461028b5760405163fe671df560e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d91906107fa565b6001600160a01b0384165f908152602081905260408120919250610331828461056d565b805183549192506103479163ffffffff16141590565b156103f5576103b36103ae7f0000000000000000000000000000000000000000000000000000000000000000836020015163ffffffff166103889190610825565b7f0000000000000000000000000000000000000000000000000000000000000000610605565b610617565b825463ffffffff91909116600160201b0267ffffffff000000001990911617825580516103df9061064b565b825463ffffffff191663ffffffff919091161782555b815461040d90600160201b900463ffffffff16610655565b95945050505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526040518060a001604052806104747f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104a87f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104dc7f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105107f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105447f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff169052919050565b5f61022961055e8361016c565b6020015163ffffffff16610655565b604080518082019091525f808252602082015282545f9063ffffffff166105949084610838565b6105a190620186a061084b565b604080518082019091528481528554919250906020820190600160201b900463ffffffff1683116105f3576105d583610617565b86546105ee9190600160201b900463ffffffff16610862565b6105f5565b5f5b63ffffffff169052949350505050565b5f8282188284100282185b9392505050565b5f63ffffffff821115610647576040516306dfcc6560e41b81526020600482015260248101839052604401610282565b5090565b5f61022982610617565b5f7f000000000000000000000000000000000000000000000000000000000000000082106106a457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5f6106cf837f0000000000000000000000000000000000000000000000000000000000000000610838565b90505f6402540be40082610703817f000000000000000000000000000000000000000000000000000000000000000061084b565b61070d919061084b565b610717919061087e565b9050807f0000000000000000000000000000000000000000000000000000000000000000101561076a57507f00000000000000000000000000000000000000000000000000000000000000009392505050565b6107bd610797827f0000000000000000000000000000000000000000000000000000000000000000610838565b7f00000000000000000000000000000000000000000000000000000000000000006107c5565b949350505050565b5f828218828411028218610610565b5f602082840312156107e4575f5ffd5b81356001600160a01b0381168114610610575f5ffd5b5f6020828403121561080a575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561022957610229610811565b8181038181111561022957610229610811565b808202811582820484141761022957610229610811565b63ffffffff828116828216039081111561022957610229610811565b5f8261089857634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122030ef18002dc9d2e9e5cca970c14cbd35af325346dbe4df9a9fbc2e5fcc2d16a564736f6c634300081e0033","sourceMap":"1265:3774:123:-:0;;;1888:1105;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2521:1;2509:7;:9;;;:13;;;2501:61;;;;-1:-1:-1;;;2501:61:123;;;;;;;;;;;;2594:1;2576:7;:15;;;:19;;;2568:67;;;;-1:-1:-1;;;2568:67:123;;;;;;;;;;;;2668:1;2649:7;:16;;;:20;;;2641:68;;;;-1:-1:-1;;;2641:68:123;;;;;;;;;;;;2742:7;:9;;;2723:28;;:7;:15;;;:28;;;;2715:76;;;;-1:-1:-1;;;2715:76:123;;;;;;;;;;;;-1:-1:-1;;;;;2798:16:123;;;;;;;2840:17;;2821:36;;;;;;2882:16;;;;2863:35;;;;2915:9;;;;2904:20;;;;2947:15;;;;2930:32;;;;2979:9;;;2968:20;;;1265:3774;;14:167:182;92:13;;145:10;134:22;;124:33;;114:61;;171:1;168;161:12;114:61;14:167;;;:::o;186:1181::-;330:6;338;382:9;373:7;369:23;412:3;408:2;404:12;401:32;;;429:1;426;419:12;401:32;455:16;;-1:-1:-1;;;;;500:31:182;;490:42;;480:70;;546:1;543;536:12;480:70;569:5;-1:-1:-1;608:4:182;-1:-1:-1;;590:16:182;;586:27;583:47;;;626:1;623;616:12;583:47;-1:-1:-1;659:2:182;653:9;701:4;689:17;;-1:-1:-1;;;;;721:34:182;;757:22;;;718:62;715:185;;;822:10;817:3;813:20;810:1;803:31;857:4;854:1;847:15;885:4;882:1;875:15;715:185;916:2;909:22;955:48;999:2;984:18;;955:48;:::i;:::-;947:6;940:64;1037:48;1081:2;1070:9;1066:18;1037:48;:::i;:::-;1032:2;1024:6;1020:15;1013:73;1119:48;1163:2;1152:9;1148:18;1119:48;:::i;:::-;1114:2;1106:6;1102:15;1095:73;1201:49;1245:3;1234:9;1230:19;1201:49;:::i;:::-;1196:2;1188:6;1184:15;1177:74;1285:50;1329:4;1318:9;1314:20;1285:50;:::i;:::-;1279:3;1271:6;1267:16;1260:76;1355:6;1345:16;;;186:1181;;;;;:::o;:::-;1265:3774:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80634fd90e56146100595780638e3356ce146100925780639611c5c2146100b3578063c3f909d4146100f2578063dfff3ebc14610159575b5f5ffd5b61006c6100673660046107d4565b61016c565b604080518251815260209283015163ffffffff1692810192909252015b60405180910390f35b6100a56100a03660046107d4565b61022f565b604051908152602001610089565b6100da7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610089565b6100fa610416565b60405161008991905f60a08201905063ffffffff835116825263ffffffff602084015116602083015263ffffffff604084015116604083015263ffffffff606084015116606083015263ffffffff608084015116608083015292915050565b6100a56101673660046107d4565b610551565b604080518082019091525f80825260208201526102295f5f846001600160a01b03166001600160a01b031681526020019081526020015f207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610200573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022491906107fa565b61056d565b92915050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461028b5760405163fe671df560e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d91906107fa565b6001600160a01b0384165f908152602081905260408120919250610331828461056d565b805183549192506103479163ffffffff16141590565b156103f5576103b36103ae7f0000000000000000000000000000000000000000000000000000000000000000836020015163ffffffff166103889190610825565b7f0000000000000000000000000000000000000000000000000000000000000000610605565b610617565b825463ffffffff91909116600160201b0267ffffffff000000001990911617825580516103df9061064b565b825463ffffffff191663ffffffff919091161782555b815461040d90600160201b900463ffffffff16610655565b95945050505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526040518060a001604052806104747f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104a87f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104dc7f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105107f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105447f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff169052919050565b5f61022961055e8361016c565b6020015163ffffffff16610655565b604080518082019091525f808252602082015282545f9063ffffffff166105949084610838565b6105a190620186a061084b565b604080518082019091528481528554919250906020820190600160201b900463ffffffff1683116105f3576105d583610617565b86546105ee9190600160201b900463ffffffff16610862565b6105f5565b5f5b63ffffffff169052949350505050565b5f8282188284100282185b9392505050565b5f63ffffffff821115610647576040516306dfcc6560e41b81526020600482015260248101839052604401610282565b5090565b5f61022982610617565b5f7f000000000000000000000000000000000000000000000000000000000000000082106106a457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5f6106cf837f0000000000000000000000000000000000000000000000000000000000000000610838565b90505f6402540be40082610703817f000000000000000000000000000000000000000000000000000000000000000061084b565b61070d919061084b565b610717919061087e565b9050807f0000000000000000000000000000000000000000000000000000000000000000101561076a57507f00000000000000000000000000000000000000000000000000000000000000009392505050565b6107bd610797827f0000000000000000000000000000000000000000000000000000000000000000610838565b7f00000000000000000000000000000000000000000000000000000000000000006107c5565b949350505050565b5f828218828411028218610610565b5f602082840312156107e4575f5ffd5b81356001600160a01b0381168114610610575f5ffd5b5f6020828403121561080a575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561022957610229610811565b8181038181111561022957610229610811565b808202811582820484141761022957610229610811565b63ffffffff828116828216039081111561022957610229610811565b5f8261089857634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122030ef18002dc9d2e9e5cca970c14cbd35af325346dbe4df9a9fbc2e5fcc2d16a564736f6c634300081e0033","sourceMap":"1265:3774:123:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4095:190;;;;;;:::i;:::-;;:::i;:::-;;;;533:13:182;;515:32;;607:4;595:17;;;589:24;615:10;585:41;563:20;;;556:71;;;;488:18;4095:190:123;;;;;;;;2997:607;;;;;;:::i;:::-;;:::i;:::-;;;784:25:182;;;772:2;757:18;2997:607:123;638:177:182;1421:43:123;;;;;;;;-1:-1:-1;;;;;1013:32:182;;;995:51;;983:2;968:18;1421:43:123;820:232:182;3608:325:123;;;:::i;:::-;;;;;;1221:4:182;1263:3;1252:9;1248:19;1240:27;;1313:10;1304:6;1298:13;1294:30;1283:9;1276:49;1393:10;1385:4;1377:6;1373:17;1367:24;1363:41;1356:4;1345:9;1341:20;1334:71;1473:10;1465:4;1457:6;1453:17;1447:24;1443:41;1436:4;1425:9;1421:20;1414:71;1553:10;1545:4;1537:6;1533:17;1527:24;1523:41;1516:4;1505:9;1501:20;1494:71;1633:10;1625:4;1617:6;1613:17;1607:24;1603:41;1596:4;1585:9;1581:20;1574:71;1057:594;;;;;3937:154:123;;;;;;:::i;:::-;;:::i;4095:190::-;-1:-1:-1;;;;;;;;;;;;;;;;;4213:67:123;4230:14;:23;4245:7;-1:-1:-1;;;;;4230:23:123;-1:-1:-1;;;;;4230:23:123;;;;;;;;;;;;4255:6;-1:-1:-1;;;;;4255:22:123;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4213:16;:67::i;:::-;4206:74;4095:190;-1:-1:-1;;4095:190:123:o;2997:607::-;3094:7;1796:10;-1:-1:-1;;;;;1818:6:123;1796:29;;;1788:84;;;;-1:-1:-1;;;1788:84:123;;-1:-1:-1;;;;;1013:32:182;;;1788:84:123;;;995:51:182;968:18;;1788:84:123;;;;;;;;;;3109:18:::1;3130:6;-1:-1:-1::0;;;;;3130:22:123::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3201:23:123;::::1;3161:37;3201:23:::0;;;::::1;::::0;;;;;;3109:45;;-1:-1:-1;3258:37:123::1;3201:23:::0;3109:45;3258:16:::1;:37::i;:::-;3388:9:::0;;3401:10;;3388:9;;-1:-1:-1;3388:36:123::1;::::0;3401:10:::1;;2298:36:180::0;;;2229:108;3388:36:123::1;3384:180;;;3448:68;:57;3470:16;3457:4;:10;;;:29;;;;;;:::i;:::-;3488:16;3448:8;:57::i;:::-;:66;:68::i;:::-;3434:82:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;3434:82:123::1;-1:-1:-1::0;;3434:82:123;;::::1;;::::0;;3537:9;;:20:::1;::::0;:18:::1;:20::i;:::-;3524:33:::0;;-1:-1:-1;;3524:33:123::1;;::::0;;;::::1;;::::0;;3384:180:::1;3587:11:::0;;3577:22:::1;::::0;-1:-1:-1;;;3587:11:123;::::1;;;3577:9;:22::i;:::-;3570:29:::0;2997:607;-1:-1:-1;;;;;2997:607:123:o;3608:325::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3710:218:123;;;;;;;;3747:27;:16;:25;:27::i;:::-;3710:218;;;;;;3792:27;:16;:25;:27::i;:::-;3710:218;;;;;;3830:19;:8;:17;:19::i;:::-;3710:218;;;;;;3866:25;:14;:23;:25::i;:::-;3710:218;;;;;;3902:19;:8;:17;:19::i;:::-;3710:218;;;;3703:225;3608:325;-1:-1:-1;3608:325:123:o;3937:154::-;4022:7;4044:42;4054:25;4071:7;4054:16;:25::i;:::-;:31;;;4044:42;;:9;:42::i;4289:368::-;-1:-1:-1;;;;;;;;;;;;;;;;;4490:11:123;;4434:16;;4490:11;;4454:61;;4467:6;4454:61;:::i;:::-;4453:69;;4519:3;4453:69;:::i;:::-;4541:111;;;;;;;;;;;;4582:12;;4434:88;;-1:-1:-1;4541:111:123;;;;;-1:-1:-1;;;4582:12:123;;;;4563:32;;:73;;4617:19;:8;:17;:19::i;:::-;4602:12;;:34;;;-1:-1:-1;;;4602:12:123;;;;:34;:::i;:::-;4563:73;;;4598:1;4563:73;4541:111;;;;4528:124;4289:368;-1:-1:-1;;;;4289:368:123:o;3371:111:61:-;3429:7;3066:5;;;3463;;;3065:36;3060:42;;3455:20;3448:27;3371:111;-1:-1:-1;;;3371:111:61:o;15296:213:62:-;15352:6;15382:16;15374:24;;15370:103;;;15421:41;;-1:-1:-1;;;15421:41:62;;15452:2;15421:41;;;3005:36:182;3057:18;;;3050:34;;;2978:18;;15421:41:62;2824:266:182;15370:103:62;-1:-1:-1;15496:5:62;15296:213::o;667:151:178:-;722:15;773:39;804:6;773:17;:39::i;4661:376:123:-;4719:7;4748:16;4738:6;:26;4734:62;;-1:-1:-1;4781:8:123;;4661:376;-1:-1:-1;4661:376:123:o;4734:62::-;4801:9;4814:25;4833:6;4814:16;:25;:::i;:::-;4801:39;-1:-1:-1;4846:11:123;4879:4;4801:39;4860:12;4801:39;4860:8;:12;:::i;:::-;:16;;;;:::i;:::-;:23;;;;:::i;:::-;4846:37;;4938:3;4927:8;:14;4923:56;;;-1:-1:-1;4958:14:123;;4661:376;-1:-1:-1;;;4661:376:123:o;4923:56::-;4992:40;5001:14;5012:3;5001:8;:14;:::i;:::-;5017;4992:8;:40::i;:::-;4985:47;4661:376;-1:-1:-1;;;;4661:376:123:o;3189:111:61:-;3247:7;3066:5;;;3281;;;3065:36;3060:42;;3273:20;2825:294;14:286:182;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:182;;210:42;;200:70;;266:1;263;256:12;1656:212;1754:6;1807:2;1795:9;1786:7;1782:23;1778:32;1775:52;;;1823:1;1820;1813:12;1775:52;-1:-1:-1;1846:16:182;;1656:212;-1:-1:-1;1656:212:182:o;2081:127::-;2142:10;2137:3;2133:20;2130:1;2123:31;2173:4;2170:1;2163:15;2197:4;2194:1;2187:15;2213:125;2278:9;;;2299:10;;;2296:36;;;2312:18;;:::i;2343:128::-;2410:9;;;2431:11;;;2428:37;;;2445:18;;:::i;2476:168::-;2549:9;;;2580;;2597:15;;;2591:22;;2577:37;2567:71;;2618:18;;:::i;2649:170::-;2746:10;2739:18;;;2719;;;2715:43;;2770:20;;2767:46;;;2793:18;;:::i;3095:217::-;3135:1;3161;3151:132;;3205:10;3200:3;3196:20;3193:1;3186:31;3240:4;3237:1;3230:15;3268:4;3265:1;3258:15;3151:132;-1:-1:-1;3297:9:182;;3095:217::o","linkReferences":{},"immutableReferences":{"89437":[{"start":184,"length":32},{"start":422,"length":32},{"start":571,"length":32},{"start":655,"length":32}],"89439":[{"start":852,"length":32},{"start":1104,"length":32}],"89441":[{"start":906,"length":32},{"start":1156,"length":32},{"start":1624,"length":32},{"start":1707,"length":32}],"89443":[{"start":1208,"length":32},{"start":1759,"length":32}],"89445":[{"start":1260,"length":32},{"start":1860,"length":32},{"start":1945,"length":32}],"89447":[{"start":1312,"length":32},{"start":1664,"length":32},{"start":1820,"length":32},{"start":1907,"length":32}]}},"methodIdentifiers":{"ROLLUP()":"9611c5c2","getActivityScore(address)":"4fd90e56","getConfig()":"c3f909d4","getSharesFor(address)":"dfff3ebc","updateAndGetShares(address)":"8e3356ce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IValidatorSelection\",\"name\":\"_rollup\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"increment\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxScore\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"a\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimum\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"k\",\"type\":\"uint32\"}],\"internalType\":\"struct RewardBoostConfig\",\"name\":\"_config\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"RewardBooster__InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"RewardBooster__OnlyRollup\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ROLLUP\",\"outputs\":[{\"internalType\":\"contract IValidatorSelection\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_prover\",\"type\":\"address\"}],\"name\":\"getActivityScore\",\"outputs\":[{\"components\":[{\"internalType\":\"Epoch\",\"name\":\"time\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"value\",\"type\":\"uint32\"}],\"internalType\":\"struct ActivityScore\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"increment\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxScore\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"a\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimum\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"k\",\"type\":\"uint32\"}],\"internalType\":\"struct RewardBoostConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_prover\",\"type\":\"address\"}],\"name\":\"getSharesFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_prover\",\"type\":\"address\"}],\"name\":\"updateAndGetShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"RewardBooster\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstracts the accounting related to rewards boosting from the POV of the rollup.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/reward-boost/RewardBooster.sol\":\"RewardBooster\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167\",\"dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"src/core/interfaces/IEscapeHatch.sol\":{\"keccak256\":\"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c\",\"dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ\"]},\"src/core/interfaces/IValidatorSelection.sol\":{\"keccak256\":\"0x880355d12ccf03d98667fe24763c8145abbd8ca8ea9faf8a30a967311dcac7ed\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c98e9fd3b3abb044b084d559e9e50cab0d58e08ab880fcbf8f52d9d93cac8ffd\",\"dweb:/ipfs/Qmd3nRejx4X57zgehytxvjdYrL5X61nM3bdfJKySAwDMoS\"]},\"src/core/libraries/Errors.sol\":{\"keccak256\":\"0x5de665a9151b837e2e179ea55c9c54577981d385cffea2fe046d6f70624497b2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://53645107af6da2cf033f7e16a1a5f8922a63db2e332ba769a72128ee0a30ff3e\",\"dweb:/ipfs/QmYyNYvZwtYNUiwW422pNfqERp8Tf76DQCnRFiiYZS85w8\"]},\"src/core/libraries/HatchMath.sol\":{\"keccak256\":\"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2\",\"dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd\"]},\"src/core/libraries/SlashRoundLib.sol\":{\"keccak256\":\"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6\",\"dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9\"]},\"src/core/libraries/TimeLib.sol\":{\"keccak256\":\"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b\",\"dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P\"]},\"src/core/reward-boost/RewardBooster.sol\":{\"keccak256\":\"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1\",\"dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb\"]},\"src/governance/interfaces/IEmpire.sol\":{\"keccak256\":\"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a\",\"dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo\"]},\"src/governance/interfaces/IPayload.sol\":{\"keccak256\":\"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c\",\"dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin\"]},\"src/shared/libraries/CompressedTimeMath.sol\":{\"keccak256\":\"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3\",\"dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB\"]},\"src/shared/libraries/SignatureLib.sol\":{\"keccak256\":\"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c\",\"dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2\"]},\"src/shared/libraries/TimeMath.sol\":{\"keccak256\":\"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914\",\"dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IValidatorSelection","name":"_rollup","type":"address"},{"internalType":"struct RewardBoostConfig","name":"_config","type":"tuple","components":[{"internalType":"uint32","name":"increment","type":"uint32"},{"internalType":"uint32","name":"maxScore","type":"uint32"},{"internalType":"uint32","name":"a","type":"uint32"},{"internalType":"uint32","name":"minimum","type":"uint32"},{"internalType":"uint32","name":"k","type":"uint32"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"RewardBooster__InvalidConfig"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"RewardBooster__OnlyRollup"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLLUP","outputs":[{"internalType":"contract IValidatorSelection","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_prover","type":"address"}],"stateMutability":"view","type":"function","name":"getActivityScore","outputs":[{"internalType":"struct ActivityScore","name":"","type":"tuple","components":[{"internalType":"Epoch","name":"time","type":"uint256"},{"internalType":"uint32","name":"value","type":"uint32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"struct RewardBoostConfig","name":"","type":"tuple","components":[{"internalType":"uint32","name":"increment","type":"uint32"},{"internalType":"uint32","name":"maxScore","type":"uint32"},{"internalType":"uint32","name":"a","type":"uint32"},{"internalType":"uint32","name":"minimum","type":"uint32"},{"internalType":"uint32","name":"k","type":"uint32"}]}]},{"inputs":[{"internalType":"address","name":"_prover","type":"address"}],"stateMutability":"view","type":"function","name":"getSharesFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_prover","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateAndGetShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/reward-boost/RewardBooster.sol":"RewardBooster"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f","urls":["bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167","dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"src/core/interfaces/IEscapeHatch.sol":{"keccak256":"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747","urls":["bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c","dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ"],"license":"Apache-2.0"},"src/core/interfaces/IValidatorSelection.sol":{"keccak256":"0x880355d12ccf03d98667fe24763c8145abbd8ca8ea9faf8a30a967311dcac7ed","urls":["bzz-raw://c98e9fd3b3abb044b084d559e9e50cab0d58e08ab880fcbf8f52d9d93cac8ffd","dweb:/ipfs/Qmd3nRejx4X57zgehytxvjdYrL5X61nM3bdfJKySAwDMoS"],"license":"Apache-2.0"},"src/core/libraries/Errors.sol":{"keccak256":"0x5de665a9151b837e2e179ea55c9c54577981d385cffea2fe046d6f70624497b2","urls":["bzz-raw://53645107af6da2cf033f7e16a1a5f8922a63db2e332ba769a72128ee0a30ff3e","dweb:/ipfs/QmYyNYvZwtYNUiwW422pNfqERp8Tf76DQCnRFiiYZS85w8"],"license":"Apache-2.0"},"src/core/libraries/HatchMath.sol":{"keccak256":"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4","urls":["bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2","dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd"],"license":"Apache-2.0"},"src/core/libraries/SlashRoundLib.sol":{"keccak256":"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e","urls":["bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6","dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9"],"license":"Apache-2.0"},"src/core/libraries/TimeLib.sol":{"keccak256":"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab","urls":["bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b","dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P"],"license":"Apache-2.0"},"src/core/reward-boost/RewardBooster.sol":{"keccak256":"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0","urls":["bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1","dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb"],"license":"Apache-2.0"},"src/governance/interfaces/IEmpire.sol":{"keccak256":"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3","urls":["bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a","dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo"],"license":"Apache-2.0"},"src/governance/interfaces/IPayload.sol":{"keccak256":"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3","urls":["bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c","dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin"],"license":"Apache-2.0"},"src/shared/libraries/CompressedTimeMath.sol":{"keccak256":"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1","urls":["bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3","dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB"],"license":"Apache-2.0"},"src/shared/libraries/SignatureLib.sol":{"keccak256":"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a","urls":["bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c","dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2"],"license":"Apache-2.0"},"src/shared/libraries/TimeMath.sol":{"keccak256":"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f","urls":["bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914","dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3"],"license":"Apache-2.0"}},"version":1},"id":123}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_rollup","type":"address","internalType":"contract IValidatorSelection"},{"name":"_config","type":"tuple","internalType":"struct RewardBoostConfig","components":[{"name":"increment","type":"uint32","internalType":"uint32"},{"name":"maxScore","type":"uint32","internalType":"uint32"},{"name":"a","type":"uint32","internalType":"uint32"},{"name":"minimum","type":"uint32","internalType":"uint32"},{"name":"k","type":"uint32","internalType":"uint32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"ROLLUP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IValidatorSelection"}],"stateMutability":"view"},{"type":"function","name":"getActivityScore","inputs":[{"name":"_prover","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ActivityScore","components":[{"name":"time","type":"uint256","internalType":"Epoch"},{"name":"value","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct RewardBoostConfig","components":[{"name":"increment","type":"uint32","internalType":"uint32"},{"name":"maxScore","type":"uint32","internalType":"uint32"},{"name":"a","type":"uint32","internalType":"uint32"},{"name":"minimum","type":"uint32","internalType":"uint32"},{"name":"k","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getSharesFor","inputs":[{"name":"_prover","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateAndGetShares","inputs":[{"name":"_prover","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"error","name":"RewardBooster__InvalidConfig","inputs":[]},{"type":"error","name":"RewardBooster__OnlyRollup","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610140604052348015610010575f5ffd5b50604051610b81380380610b8183398101604081905261002f91610143565b5f816080015163ffffffff1611610059576040516318dbcf2b60e21b815260040160405180910390fd5b5f816060015163ffffffff1611610083576040516318dbcf2b60e21b815260040160405180910390fd5b5f816020015163ffffffff16116100ad576040516318dbcf2b60e21b815260040160405180910390fd5b806080015163ffffffff16816060015163ffffffff1611156100e2576040516318dbcf2b60e21b815260040160405180910390fd5b6001600160a01b039091166080908152815163ffffffff90811660a0526020830151811660c0526040830151811660e0526060830151811661010052910151166101205261020d565b805163ffffffff8116811461013e575f5ffd5b919050565b5f5f82840360c0811215610155575f5ffd5b83516001600160a01b038116811461016b575f5ffd5b925060a0601f198201121561017e575f5ffd5b5060405160a081016001600160401b03811182821017156101ad57634e487b7160e01b5f52604160045260245ffd5b6040526101bc6020850161012b565b81526101ca6040850161012b565b60208201526101db6060850161012b565b60408201526101ec6080850161012b565b60608201526101fd60a0850161012b565b6080820152809150509250929050565b60805160a05160c05160e05161010051610120516108d36102ae5f395f8181610520015281816106800152818161071c015261077301525f81816104ec01528181610744015261079901525f81816104b801526106df01525f818161038a015281816104840152818161065801526106ab01525f8181610354015261045001525f818160b8015281816101a60152818161023b015261028f01526108d35ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80634fd90e56146100595780638e3356ce146100925780639611c5c2146100b3578063c3f909d4146100f2578063dfff3ebc14610159575b5f5ffd5b61006c6100673660046107d4565b61016c565b604080518251815260209283015163ffffffff1692810192909252015b60405180910390f35b6100a56100a03660046107d4565b61022f565b604051908152602001610089565b6100da7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610089565b6100fa610416565b60405161008991905f60a08201905063ffffffff835116825263ffffffff602084015116602083015263ffffffff604084015116604083015263ffffffff606084015116606083015263ffffffff608084015116608083015292915050565b6100a56101673660046107d4565b610551565b604080518082019091525f80825260208201526102295f5f846001600160a01b03166001600160a01b031681526020019081526020015f207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610200573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022491906107fa565b61056d565b92915050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461028b5760405163fe671df560e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d91906107fa565b6001600160a01b0384165f908152602081905260408120919250610331828461056d565b805183549192506103479163ffffffff16141590565b156103f5576103b36103ae7f0000000000000000000000000000000000000000000000000000000000000000836020015163ffffffff166103889190610825565b7f0000000000000000000000000000000000000000000000000000000000000000610605565b610617565b825463ffffffff91909116600160201b0267ffffffff000000001990911617825580516103df9061064b565b825463ffffffff191663ffffffff919091161782555b815461040d90600160201b900463ffffffff16610655565b95945050505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526040518060a001604052806104747f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104a87f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104dc7f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105107f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105447f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff169052919050565b5f61022961055e8361016c565b6020015163ffffffff16610655565b604080518082019091525f808252602082015282545f9063ffffffff166105949084610838565b6105a190620186a061084b565b604080518082019091528481528554919250906020820190600160201b900463ffffffff1683116105f3576105d583610617565b86546105ee9190600160201b900463ffffffff16610862565b6105f5565b5f5b63ffffffff169052949350505050565b5f8282188284100282185b9392505050565b5f63ffffffff821115610647576040516306dfcc6560e41b81526020600482015260248101839052604401610282565b5090565b5f61022982610617565b5f7f000000000000000000000000000000000000000000000000000000000000000082106106a457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5f6106cf837f0000000000000000000000000000000000000000000000000000000000000000610838565b90505f6402540be40082610703817f000000000000000000000000000000000000000000000000000000000000000061084b565b61070d919061084b565b610717919061087e565b9050807f0000000000000000000000000000000000000000000000000000000000000000101561076a57507f00000000000000000000000000000000000000000000000000000000000000009392505050565b6107bd610797827f0000000000000000000000000000000000000000000000000000000000000000610838565b7f00000000000000000000000000000000000000000000000000000000000000006107c5565b949350505050565b5f828218828411028218610610565b5f602082840312156107e4575f5ffd5b81356001600160a01b0381168114610610575f5ffd5b5f6020828403121561080a575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561022957610229610811565b8181038181111561022957610229610811565b808202811582820484141761022957610229610811565b63ffffffff828116828216039081111561022957610229610811565b5f8261089857634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122036a2966f46b9c90f837b54cb23afe8fceffae61c90e86ea8fb890a9392426bfd64736f6c634300081e0033","sourceMap":"1265:3774:125:-:0;;;1888:1105;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2521:1;2509:7;:9;;;:13;;;2501:61;;;;-1:-1:-1;;;2501:61:125;;;;;;;;;;;;2594:1;2576:7;:15;;;:19;;;2568:67;;;;-1:-1:-1;;;2568:67:125;;;;;;;;;;;;2668:1;2649:7;:16;;;:20;;;2641:68;;;;-1:-1:-1;;;2641:68:125;;;;;;;;;;;;2742:7;:9;;;2723:28;;:7;:15;;;:28;;;;2715:76;;;;-1:-1:-1;;;2715:76:125;;;;;;;;;;;;-1:-1:-1;;;;;2798:16:125;;;;;;;2840:17;;2821:36;;;;;;2882:16;;;;2863:35;;;;2915:9;;;;2904:20;;;;2947:15;;;;2930:32;;;;2979:9;;;2968:20;;;1265:3774;;14:167:184;92:13;;145:10;134:22;;124:33;;114:61;;171:1;168;161:12;114:61;14:167;;;:::o;186:1181::-;330:6;338;382:9;373:7;369:23;412:3;408:2;404:12;401:32;;;429:1;426;419:12;401:32;455:16;;-1:-1:-1;;;;;500:31:184;;490:42;;480:70;;546:1;543;536:12;480:70;569:5;-1:-1:-1;608:4:184;-1:-1:-1;;590:16:184;;586:27;583:47;;;626:1;623;616:12;583:47;-1:-1:-1;659:2:184;653:9;701:4;689:17;;-1:-1:-1;;;;;721:34:184;;757:22;;;718:62;715:185;;;822:10;817:3;813:20;810:1;803:31;857:4;854:1;847:15;885:4;882:1;875:15;715:185;916:2;909:22;955:48;999:2;984:18;;955:48;:::i;:::-;947:6;940:64;1037:48;1081:2;1070:9;1066:18;1037:48;:::i;:::-;1032:2;1024:6;1020:15;1013:73;1119:48;1163:2;1152:9;1148:18;1119:48;:::i;:::-;1114:2;1106:6;1102:15;1095:73;1201:49;1245:3;1234:9;1230:19;1201:49;:::i;:::-;1196:2;1188:6;1184:15;1177:74;1285:50;1329:4;1318:9;1314:20;1285:50;:::i;:::-;1279:3;1271:6;1267:16;1260:76;1355:6;1345:16;;;186:1181;;;;;:::o;:::-;1265:3774:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80634fd90e56146100595780638e3356ce146100925780639611c5c2146100b3578063c3f909d4146100f2578063dfff3ebc14610159575b5f5ffd5b61006c6100673660046107d4565b61016c565b604080518251815260209283015163ffffffff1692810192909252015b60405180910390f35b6100a56100a03660046107d4565b61022f565b604051908152602001610089565b6100da7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610089565b6100fa610416565b60405161008991905f60a08201905063ffffffff835116825263ffffffff602084015116602083015263ffffffff604084015116604083015263ffffffff606084015116606083015263ffffffff608084015116608083015292915050565b6100a56101673660046107d4565b610551565b604080518082019091525f80825260208201526102295f5f846001600160a01b03166001600160a01b031681526020019081526020015f207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610200573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022491906107fa565b61056d565b92915050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461028b5760405163fe671df560e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b97dd9e26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d91906107fa565b6001600160a01b0384165f908152602081905260408120919250610331828461056d565b805183549192506103479163ffffffff16141590565b156103f5576103b36103ae7f0000000000000000000000000000000000000000000000000000000000000000836020015163ffffffff166103889190610825565b7f0000000000000000000000000000000000000000000000000000000000000000610605565b610617565b825463ffffffff91909116600160201b0267ffffffff000000001990911617825580516103df9061064b565b825463ffffffff191663ffffffff919091161782555b815461040d90600160201b900463ffffffff16610655565b95945050505050565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526040518060a001604052806104747f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104a87f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016104dc7f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105107f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff1681526020016105447f0000000000000000000000000000000000000000000000000000000000000000610617565b63ffffffff169052919050565b5f61022961055e8361016c565b6020015163ffffffff16610655565b604080518082019091525f808252602082015282545f9063ffffffff166105949084610838565b6105a190620186a061084b565b604080518082019091528481528554919250906020820190600160201b900463ffffffff1683116105f3576105d583610617565b86546105ee9190600160201b900463ffffffff16610862565b6105f5565b5f5b63ffffffff169052949350505050565b5f8282188284100282185b9392505050565b5f63ffffffff821115610647576040516306dfcc6560e41b81526020600482015260248101839052604401610282565b5090565b5f61022982610617565b5f7f000000000000000000000000000000000000000000000000000000000000000082106106a457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5f6106cf837f0000000000000000000000000000000000000000000000000000000000000000610838565b90505f6402540be40082610703817f000000000000000000000000000000000000000000000000000000000000000061084b565b61070d919061084b565b610717919061087e565b9050807f0000000000000000000000000000000000000000000000000000000000000000101561076a57507f00000000000000000000000000000000000000000000000000000000000000009392505050565b6107bd610797827f0000000000000000000000000000000000000000000000000000000000000000610838565b7f00000000000000000000000000000000000000000000000000000000000000006107c5565b949350505050565b5f828218828411028218610610565b5f602082840312156107e4575f5ffd5b81356001600160a01b0381168114610610575f5ffd5b5f6020828403121561080a575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561022957610229610811565b8181038181111561022957610229610811565b808202811582820484141761022957610229610811565b63ffffffff828116828216039081111561022957610229610811565b5f8261089857634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122036a2966f46b9c90f837b54cb23afe8fceffae61c90e86ea8fb890a9392426bfd64736f6c634300081e0033","sourceMap":"1265:3774:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4095:190;;;;;;:::i;:::-;;:::i;:::-;;;;533:13:184;;515:32;;607:4;595:17;;;589:24;615:10;585:41;563:20;;;556:71;;;;488:18;4095:190:125;;;;;;;;2997:607;;;;;;:::i;:::-;;:::i;:::-;;;784:25:184;;;772:2;757:18;2997:607:125;638:177:184;1421:43:125;;;;;;;;-1:-1:-1;;;;;1013:32:184;;;995:51;;983:2;968:18;1421:43:125;820:232:184;3608:325:125;;;:::i;:::-;;;;;;1221:4:184;1263:3;1252:9;1248:19;1240:27;;1313:10;1304:6;1298:13;1294:30;1283:9;1276:49;1393:10;1385:4;1377:6;1373:17;1367:24;1363:41;1356:4;1345:9;1341:20;1334:71;1473:10;1465:4;1457:6;1453:17;1447:24;1443:41;1436:4;1425:9;1421:20;1414:71;1553:10;1545:4;1537:6;1533:17;1527:24;1523:41;1516:4;1505:9;1501:20;1494:71;1633:10;1625:4;1617:6;1613:17;1607:24;1603:41;1596:4;1585:9;1581:20;1574:71;1057:594;;;;;3937:154:125;;;;;;:::i;:::-;;:::i;4095:190::-;-1:-1:-1;;;;;;;;;;;;;;;;;4213:67:125;4230:14;:23;4245:7;-1:-1:-1;;;;;4230:23:125;-1:-1:-1;;;;;4230:23:125;;;;;;;;;;;;4255:6;-1:-1:-1;;;;;4255:22:125;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4213:16;:67::i;:::-;4206:74;4095:190;-1:-1:-1;;4095:190:125:o;2997:607::-;3094:7;1796:10;-1:-1:-1;;;;;1818:6:125;1796:29;;;1788:84;;;;-1:-1:-1;;;1788:84:125;;-1:-1:-1;;;;;1013:32:184;;;1788:84:125;;;995:51:184;968:18;;1788:84:125;;;;;;;;;;3109:18:::1;3130:6;-1:-1:-1::0;;;;;3130:22:125::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3201:23:125;::::1;3161:37;3201:23:::0;;;::::1;::::0;;;;;;3109:45;;-1:-1:-1;3258:37:125::1;3201:23:::0;3109:45;3258:16:::1;:37::i;:::-;3388:9:::0;;3401:10;;3388:9;;-1:-1:-1;3388:36:125::1;::::0;3401:10:::1;;2298:36:182::0;;;2229:108;3388:36:125::1;3384:180;;;3448:68;:57;3470:16;3457:4;:10;;;:29;;;;;;:::i;:::-;3488:16;3448:8;:57::i;:::-;:66;:68::i;:::-;3434:82:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;3434:82:125::1;-1:-1:-1::0;;3434:82:125;;::::1;;::::0;;3537:9;;:20:::1;::::0;:18:::1;:20::i;:::-;3524:33:::0;;-1:-1:-1;;3524:33:125::1;;::::0;;;::::1;;::::0;;3384:180:::1;3587:11:::0;;3577:22:::1;::::0;-1:-1:-1;;;3587:11:125;::::1;;;3577:9;:22::i;:::-;3570:29:::0;2997:607;-1:-1:-1;;;;;2997:607:125:o;3608:325::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3710:218:125;;;;;;;;3747:27;:16;:25;:27::i;:::-;3710:218;;;;;;3792:27;:16;:25;:27::i;:::-;3710:218;;;;;;3830:19;:8;:17;:19::i;:::-;3710:218;;;;;;3866:25;:14;:23;:25::i;:::-;3710:218;;;;;;3902:19;:8;:17;:19::i;:::-;3710:218;;;;3703:225;3608:325;-1:-1:-1;3608:325:125:o;3937:154::-;4022:7;4044:42;4054:25;4071:7;4054:16;:25::i;:::-;:31;;;4044:42;;:9;:42::i;4289:368::-;-1:-1:-1;;;;;;;;;;;;;;;;;4490:11:125;;4434:16;;4490:11;;4454:61;;4467:6;4454:61;:::i;:::-;4453:69;;4519:3;4453:69;:::i;:::-;4541:111;;;;;;;;;;;;4582:12;;4434:88;;-1:-1:-1;4541:111:125;;;;;-1:-1:-1;;;4582:12:125;;;;4563:32;;:73;;4617:19;:8;:17;:19::i;:::-;4602:12;;:34;;;-1:-1:-1;;;4602:12:125;;;;:34;:::i;:::-;4563:73;;;4598:1;4563:73;4541:111;;;;4528:124;4289:368;-1:-1:-1;;;;4289:368:125:o;3371:111:61:-;3429:7;3066:5;;;3463;;;3065:36;3060:42;;3455:20;3448:27;3371:111;-1:-1:-1;;;3371:111:61:o;15296:213:62:-;15352:6;15382:16;15374:24;;15370:103;;;15421:41;;-1:-1:-1;;;15421:41:62;;15452:2;15421:41;;;3005:36:184;3057:18;;;3050:34;;;2978:18;;15421:41:62;2824:266:184;15370:103:62;-1:-1:-1;15496:5:62;15296:213::o;667:151:180:-;722:15;773:39;804:6;773:17;:39::i;4661:376:125:-;4719:7;4748:16;4738:6;:26;4734:62;;-1:-1:-1;4781:8:125;;4661:376;-1:-1:-1;4661:376:125:o;4734:62::-;4801:9;4814:25;4833:6;4814:16;:25;:::i;:::-;4801:39;-1:-1:-1;4846:11:125;4879:4;4801:39;4860:12;4801:39;4860:8;:12;:::i;:::-;:16;;;;:::i;:::-;:23;;;;:::i;:::-;4846:37;;4938:3;4927:8;:14;4923:56;;;-1:-1:-1;4958:14:125;;4661:376;-1:-1:-1;;;4661:376:125:o;4923:56::-;4992:40;5001:14;5012:3;5001:8;:14;:::i;:::-;5017;4992:8;:40::i;:::-;4985:47;4661:376;-1:-1:-1;;;;4661:376:125:o;3189:111:61:-;3247:7;3066:5;;;3281;;;3065:36;3060:42;;3273:20;2825:294;14:286:184;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:184;;210:42;;200:70;;266:1;263;256:12;1656:212;1754:6;1807:2;1795:9;1786:7;1782:23;1778:32;1775:52;;;1823:1;1820;1813:12;1775:52;-1:-1:-1;1846:16:184;;1656:212;-1:-1:-1;1656:212:184:o;2081:127::-;2142:10;2137:3;2133:20;2130:1;2123:31;2173:4;2170:1;2163:15;2197:4;2194:1;2187:15;2213:125;2278:9;;;2299:10;;;2296:36;;;2312:18;;:::i;2343:128::-;2410:9;;;2431:11;;;2428:37;;;2445:18;;:::i;2476:168::-;2549:9;;;2580;;2597:15;;;2591:22;;2577:37;2567:71;;2618:18;;:::i;2649:170::-;2746:10;2739:18;;;2719;;;2715:43;;2770:20;;2767:46;;;2793:18;;:::i;3095:217::-;3135:1;3161;3151:132;;3205:10;3200:3;3196:20;3193:1;3186:31;3240:4;3237:1;3230:15;3268:4;3265:1;3258:15;3151:132;-1:-1:-1;3297:9:184;;3095:217::o","linkReferences":{},"immutableReferences":{"89282":[{"start":184,"length":32},{"start":422,"length":32},{"start":571,"length":32},{"start":655,"length":32}],"89284":[{"start":852,"length":32},{"start":1104,"length":32}],"89286":[{"start":906,"length":32},{"start":1156,"length":32},{"start":1624,"length":32},{"start":1707,"length":32}],"89288":[{"start":1208,"length":32},{"start":1759,"length":32}],"89290":[{"start":1260,"length":32},{"start":1860,"length":32},{"start":1945,"length":32}],"89292":[{"start":1312,"length":32},{"start":1664,"length":32},{"start":1820,"length":32},{"start":1907,"length":32}]}},"methodIdentifiers":{"ROLLUP()":"9611c5c2","getActivityScore(address)":"4fd90e56","getConfig()":"c3f909d4","getSharesFor(address)":"dfff3ebc","updateAndGetShares(address)":"8e3356ce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IValidatorSelection\",\"name\":\"_rollup\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"increment\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxScore\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"a\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimum\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"k\",\"type\":\"uint32\"}],\"internalType\":\"struct RewardBoostConfig\",\"name\":\"_config\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"RewardBooster__InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"RewardBooster__OnlyRollup\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ROLLUP\",\"outputs\":[{\"internalType\":\"contract IValidatorSelection\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_prover\",\"type\":\"address\"}],\"name\":\"getActivityScore\",\"outputs\":[{\"components\":[{\"internalType\":\"Epoch\",\"name\":\"time\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"value\",\"type\":\"uint32\"}],\"internalType\":\"struct ActivityScore\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"increment\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxScore\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"a\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minimum\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"k\",\"type\":\"uint32\"}],\"internalType\":\"struct RewardBoostConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_prover\",\"type\":\"address\"}],\"name\":\"getSharesFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_prover\",\"type\":\"address\"}],\"name\":\"updateAndGetShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"RewardBooster\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstracts the accounting related to rewards boosting from the POV of the rollup.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/reward-boost/RewardBooster.sol\":\"RewardBooster\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167\",\"dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"src/core/interfaces/IEscapeHatch.sol\":{\"keccak256\":\"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c\",\"dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ\"]},\"src/core/interfaces/IValidatorSelection.sol\":{\"keccak256\":\"0xe22dc335f3fd5f5cbf10928fa7e9e945ea8a04fa99362ec6e2022c862d7baca4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e26be09d3c823c545a2252467e13b68d366f3e711e15085be09f565ac436acc9\",\"dweb:/ipfs/QmS1ddcZteAjeojaJJz1ZgRPdynzpNu1HSSPbmEjJNe99G\"]},\"src/core/libraries/Errors.sol\":{\"keccak256\":\"0x282e22d0eb9cd8f22f7bfaef3c3e3cad5461734d6e421f392b372a146c83d467\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5c250d031a44b257109f81417bb89c0e5b99d44bb17a55379695061afa9d3ef1\",\"dweb:/ipfs/QmenxQJyukQT7KkCsfXV6by3VU6qumEUnK4EH4mqHAw6iK\"]},\"src/core/libraries/HatchMath.sol\":{\"keccak256\":\"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2\",\"dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd\"]},\"src/core/libraries/SlashRoundLib.sol\":{\"keccak256\":\"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6\",\"dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9\"]},\"src/core/libraries/TimeLib.sol\":{\"keccak256\":\"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b\",\"dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P\"]},\"src/core/reward-boost/RewardBooster.sol\":{\"keccak256\":\"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1\",\"dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb\"]},\"src/governance/interfaces/IEmpire.sol\":{\"keccak256\":\"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a\",\"dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo\"]},\"src/governance/interfaces/IPayload.sol\":{\"keccak256\":\"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c\",\"dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin\"]},\"src/shared/libraries/CompressedTimeMath.sol\":{\"keccak256\":\"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3\",\"dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB\"]},\"src/shared/libraries/SignatureLib.sol\":{\"keccak256\":\"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c\",\"dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2\"]},\"src/shared/libraries/TimeMath.sol\":{\"keccak256\":\"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914\",\"dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IValidatorSelection","name":"_rollup","type":"address"},{"internalType":"struct RewardBoostConfig","name":"_config","type":"tuple","components":[{"internalType":"uint32","name":"increment","type":"uint32"},{"internalType":"uint32","name":"maxScore","type":"uint32"},{"internalType":"uint32","name":"a","type":"uint32"},{"internalType":"uint32","name":"minimum","type":"uint32"},{"internalType":"uint32","name":"k","type":"uint32"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"RewardBooster__InvalidConfig"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"RewardBooster__OnlyRollup"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLLUP","outputs":[{"internalType":"contract IValidatorSelection","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_prover","type":"address"}],"stateMutability":"view","type":"function","name":"getActivityScore","outputs":[{"internalType":"struct ActivityScore","name":"","type":"tuple","components":[{"internalType":"Epoch","name":"time","type":"uint256"},{"internalType":"uint32","name":"value","type":"uint32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"struct RewardBoostConfig","name":"","type":"tuple","components":[{"internalType":"uint32","name":"increment","type":"uint32"},{"internalType":"uint32","name":"maxScore","type":"uint32"},{"internalType":"uint32","name":"a","type":"uint32"},{"internalType":"uint32","name":"minimum","type":"uint32"},{"internalType":"uint32","name":"k","type":"uint32"}]}]},{"inputs":[{"internalType":"address","name":"_prover","type":"address"}],"stateMutability":"view","type":"function","name":"getSharesFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_prover","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateAndGetShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/reward-boost/RewardBooster.sol":"RewardBooster"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f","urls":["bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167","dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"src/core/interfaces/IEscapeHatch.sol":{"keccak256":"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747","urls":["bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c","dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ"],"license":"Apache-2.0"},"src/core/interfaces/IValidatorSelection.sol":{"keccak256":"0xe22dc335f3fd5f5cbf10928fa7e9e945ea8a04fa99362ec6e2022c862d7baca4","urls":["bzz-raw://e26be09d3c823c545a2252467e13b68d366f3e711e15085be09f565ac436acc9","dweb:/ipfs/QmS1ddcZteAjeojaJJz1ZgRPdynzpNu1HSSPbmEjJNe99G"],"license":"Apache-2.0"},"src/core/libraries/Errors.sol":{"keccak256":"0x282e22d0eb9cd8f22f7bfaef3c3e3cad5461734d6e421f392b372a146c83d467","urls":["bzz-raw://5c250d031a44b257109f81417bb89c0e5b99d44bb17a55379695061afa9d3ef1","dweb:/ipfs/QmenxQJyukQT7KkCsfXV6by3VU6qumEUnK4EH4mqHAw6iK"],"license":"Apache-2.0"},"src/core/libraries/HatchMath.sol":{"keccak256":"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4","urls":["bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2","dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd"],"license":"Apache-2.0"},"src/core/libraries/SlashRoundLib.sol":{"keccak256":"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e","urls":["bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6","dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9"],"license":"Apache-2.0"},"src/core/libraries/TimeLib.sol":{"keccak256":"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab","urls":["bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b","dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P"],"license":"Apache-2.0"},"src/core/reward-boost/RewardBooster.sol":{"keccak256":"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0","urls":["bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1","dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb"],"license":"Apache-2.0"},"src/governance/interfaces/IEmpire.sol":{"keccak256":"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3","urls":["bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a","dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo"],"license":"Apache-2.0"},"src/governance/interfaces/IPayload.sol":{"keccak256":"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3","urls":["bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c","dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin"],"license":"Apache-2.0"},"src/shared/libraries/CompressedTimeMath.sol":{"keccak256":"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1","urls":["bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3","dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB"],"license":"Apache-2.0"},"src/shared/libraries/SignatureLib.sol":{"keccak256":"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a","urls":["bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c","dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2"],"license":"Apache-2.0"},"src/shared/libraries/TimeMath.sol":{"keccak256":"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f","urls":["bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914","dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3"],"license":"Apache-2.0"}},"version":1},"id":125}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"_asset","type":"address","internalType":"contract IERC20"},{"name":"_registry","type":"address","internalType":"contract IRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"availableTo","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"canonicalRollup","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverWrongAsset","inputs":[{"name":"_asset","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"specificRecipientBalance","inputs":[{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"subsidizeAddress","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEarmarkedBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Distributed","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"implicitAmountUsed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"earmarkedAmountUsed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Subsidized","inputs":[{"name":"funder","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"RewardDistributor__InsufficientAvailable","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RewardDistributor__InvalidCaller","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"canonical","type":"address","internalType":"address"}]},{"type":"error","name":"RewardDistributor__WrongRecoverMechanism","inputs":[]},{"type":"error","name":"RewardDistributor__ZeroRollup","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c060405234801561000f575f5ffd5b50604051610c01380380610c0183398101604081905261002e9161005c565b6001600160a01b039182166080521660a052610094565b6001600160a01b0381168114610059575f5ffd5b50565b5f5f6040838503121561006d575f5ffd5b825161007881610045565b602084015190925061008981610045565b809150509250929050565b60805160a051610b0e6100f35f395f818160c2015281816101a50152818161031c01526103f501525f818161010a0152818161026e015281816104b7015281816105a301528181610654015281816106e801526108330152610b0e5ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80637a8f3a75116100635780637a8f3a7514610141578063aad3ec9614610154578063bbdb82f014610167578063c3d988d71461017a578063dee4bc2314610199575f5ffd5b8063026cd0dc1461009f57806306433b1b146100bd5780632db9395a146100e45780634800d97f1461010557806379cc0e101461012c575b5f5ffd5b6100a76101a2565b6040516100b491906109b1565b60405180910390f35b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b6100f76100f23660046109dc565b610228565b6040519081526020016100b4565b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b61013f61013a3660046109fe565b610319565b005b61013f61014f3660046109fe565b6103f2565b61013f610162366004610a3c565b61051b565b61013f610175366004610a3c565b61052a565b6100f76101883660046109dc565b5f6020819052908152604090205481565b6100f760015481565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663971b0e6b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102239190610a66565b905090565b5f5f6102326101a2565b90505f816001600160a01b0316846001600160a01b031614610254575f6102ec565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906102a39030906004016109b1565b602060405180830381865afa1580156102be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e29190610a81565b6102ec9190610aac565b6001600160a01b0385165f908152602081905260409020549091506103119082610ac5565b949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610376573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039a9190610a66565b905033816001600160a01b03811682146103df5760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b50506103ec84848461060f565b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104739190610a66565b905033816001600160a01b03811682146104b35760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044016103d6565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361050757604051633fa061a960e01b815260040160405180910390fd5b6103ec6001600160a01b03851684846108b5565b61052633838361060f565b5050565b6001600160a01b0382166105515760405163381b18df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604081208054839290610578908490610ac5565b925050819055508060015f8282546105909190610ac5565b909155506105cb90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610919565b6040518181526001600160a01b0383169033907f9acd1c90213a47eabf932595f3ca414fa42db50a437f5bd384d5813fa9e1a1f39060200160405180910390a35050565b5f6106186101a2565b90505f816001600160a01b0316856001600160a01b03161461063a575f6106d2565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906106899030906004016109b1565b602060405180830381865afa1580156106a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c89190610a81565b6106d29190610aac565b90508083116107765761070f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685856108b5565b836001600160a01b0316856001600160a01b03167f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c85865f604051610767939291909283526020830191909152604082015260600190565b60405180910390a35050505050565b6001600160a01b0385165f90815260208190526040812054906107998284610ac5565b90508481818110156107c757604051631f15a0b960e01b8152600481019290925260248201526044016103d6565b505f90506107d58487610aac565b9050805f5f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f8282546108089190610aac565b925050819055508060015f8282546108209190610aac565b9091555061085a90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001688886108b5565b60408051878152602081018690529081018290526001600160a01b0380891691908a16907f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c9060600160405180910390a35050505050505050565b6040516001600160a01b0383811660248301526044820183905261091491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610952565b505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526103ec9186918216906323b872dd906084016108e2565b5f5f60205f8451602086015f885af180610971576040513d5f823e3d81fd5b50505f513d91508115610988578060011415610995565b6001600160a01b0384163b155b156103ec5783604051635274afe760e01b81526004016103d691905b6001600160a01b0391909116815260200190565b6001600160a01b03811681146109d9575f5ffd5b50565b5f602082840312156109ec575f5ffd5b81356109f7816109c5565b9392505050565b5f5f5f60608486031215610a10575f5ffd5b8335610a1b816109c5565b92506020840135610a2b816109c5565b929592945050506040919091013590565b5f5f60408385031215610a4d575f5ffd5b8235610a58816109c5565b946020939093013593505050565b5f60208284031215610a76575f5ffd5b81516109f7816109c5565b5f60208284031215610a91575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf610a98565b92915050565b80820180821115610abf57610abf610a9856fea26469706673582212209531db209fafb38c14481b4d3253bb7b0a0df194c0318ccb305532cfa1c733ce64736f6c634300081e0033","sourceMap":"1415:7481:132:-:0;;;2406:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2460:14:132;;;;;2480:20;;;1415:7481;;14:139:182;-1:-1:-1;;;;;97:31:182;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:436::-;272:6;280;333:2;321:9;312:7;308:23;304:32;301:52;;;349:1;346;339:12;301:52;381:9;375:16;400:39;433:5;400:39;:::i;:::-;508:2;493:18;;487:25;458:5;;-1:-1:-1;521:41:182;487:25;521:41;:::i;:::-;581:7;571:17;;;158:436;;;;;:::o;:::-;1415:7481:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80637a8f3a75116100635780637a8f3a7514610141578063aad3ec9614610154578063bbdb82f014610167578063c3d988d71461017a578063dee4bc2314610199575f5ffd5b8063026cd0dc1461009f57806306433b1b146100bd5780632db9395a146100e45780634800d97f1461010557806379cc0e101461012c575b5f5ffd5b6100a76101a2565b6040516100b491906109b1565b60405180910390f35b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b6100f76100f23660046109dc565b610228565b6040519081526020016100b4565b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b61013f61013a3660046109fe565b610319565b005b61013f61014f3660046109fe565b6103f2565b61013f610162366004610a3c565b61051b565b61013f610175366004610a3c565b61052a565b6100f76101883660046109dc565b5f6020819052908152604090205481565b6100f760015481565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663971b0e6b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102239190610a66565b905090565b5f5f6102326101a2565b90505f816001600160a01b0316846001600160a01b031614610254575f6102ec565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906102a39030906004016109b1565b602060405180830381865afa1580156102be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e29190610a81565b6102ec9190610aac565b6001600160a01b0385165f908152602081905260409020549091506103119082610ac5565b949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610376573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039a9190610a66565b905033816001600160a01b03811682146103df5760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b50506103ec84848461060f565b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104739190610a66565b905033816001600160a01b03811682146104b35760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044016103d6565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361050757604051633fa061a960e01b815260040160405180910390fd5b6103ec6001600160a01b03851684846108b5565b61052633838361060f565b5050565b6001600160a01b0382166105515760405163381b18df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604081208054839290610578908490610ac5565b925050819055508060015f8282546105909190610ac5565b909155506105cb90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610919565b6040518181526001600160a01b0383169033907f9acd1c90213a47eabf932595f3ca414fa42db50a437f5bd384d5813fa9e1a1f39060200160405180910390a35050565b5f6106186101a2565b90505f816001600160a01b0316856001600160a01b03161461063a575f6106d2565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906106899030906004016109b1565b602060405180830381865afa1580156106a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c89190610a81565b6106d29190610aac565b90508083116107765761070f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685856108b5565b836001600160a01b0316856001600160a01b03167f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c85865f604051610767939291909283526020830191909152604082015260600190565b60405180910390a35050505050565b6001600160a01b0385165f90815260208190526040812054906107998284610ac5565b90508481818110156107c757604051631f15a0b960e01b8152600481019290925260248201526044016103d6565b505f90506107d58487610aac565b9050805f5f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f8282546108089190610aac565b925050819055508060015f8282546108209190610aac565b9091555061085a90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001688886108b5565b60408051878152602081018690529081018290526001600160a01b0380891691908a16907f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c9060600160405180910390a35050505050505050565b6040516001600160a01b0383811660248301526044820183905261091491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610952565b505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526103ec9186918216906323b872dd906084016108e2565b5f5f60205f8451602086015f885af180610971576040513d5f823e3d81fd5b50505f513d91508115610988578060011415610995565b6001600160a01b0384163b155b156103ec5783604051635274afe760e01b81526004016103d691905b6001600160a01b0391909116815260200190565b6001600160a01b03811681146109d9575f5ffd5b50565b5f602082840312156109ec575f5ffd5b81356109f7816109c5565b9392505050565b5f5f5f60608486031215610a10575f5ffd5b8335610a1b816109c5565b92506020840135610a2b816109c5565b929592945050506040919091013590565b5f5f60408385031215610a4d575f5ffd5b8235610a58816109c5565b946020939093013593505050565b5f60208284031215610a76575f5ffd5b81516109f7816109c5565b5f60208284031215610a91575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf610a98565b92915050565b80820180821115610abf57610abf610a9856fea26469706673582212209531db209fafb38c14481b4d3253bb7b0a0df194c0318ccb305532cfa1c733ce64736f6c634300081e0033","sourceMap":"1415:7481:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6958:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1688:35;;;;;6404:341;;;;;;:::i;:::-;;:::i;:::-;;;983:25:182;;;971:2;956:18;6404:341:132;837:177:182;1560:29:132;;;;;4890:295;;;;;;:::i;:::-;;:::i;:::-;;5621:403;;;;;;:::i;:::-;;:::i;4039:129::-;;;;;;:::i;:::-;;:::i;3209:394::-;;;;;;:::i;:::-;;:::i;1955:76::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;2111:36;;;;;;6958:142;7035:7;7065:8;-1:-1:-1;;;;;7065:27:132;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7050:45;;6958:142;:::o;6404:341::-;6495:7;6510:17;6530;:15;:17::i;:::-;6510:37;;6553:28;6598:9;-1:-1:-1;;;;;6584:23:132;:10;-1:-1:-1;;;;;6584:23:132;;:84;;6667:1;6584:84;;;6643:21;;6610:30;;-1:-1:-1;;;6610:30:132;;-1:-1:-1;;;;;6610:5:132;:15;;;;:30;;6634:4;;6610:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;;;:::i;:::-;-1:-1:-1;;;;;6704:36:132;;:24;:36;;;;;;;;;;;6553:115;;-1:-1:-1;6681:59:132;;6553:115;6681:59;:::i;:::-;6674:66;6404:341;-1:-1:-1;;;;6404:341:132:o;4890:295::-;5000:13;5032:8;-1:-1:-1;;;;;5016:32:132;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5000:50;-1:-1:-1;5064:10:132;5000:50;-1:-1:-1;;;;;5064:19:132;;;;5056:88;;;;-1:-1:-1;;;5056:88:132;;-1:-1:-1;;;;;3438:32:182;;;5056:88:132;;;3420:51:182;3507:32;;3487:18;;;3480:60;3393:18;;5056:88:132;;;;;;;;;;;5150:30;5160:5;5167:3;5172:7;5150:9;:30::i;:::-;4994:191;4890:295;;;:::o;5621:403::-;5738:13;5770:8;-1:-1:-1;;;;;5754:32:132;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5738:50;-1:-1:-1;5802:10:132;5738:50;-1:-1:-1;;;;;5802:19:132;;;;5794:88;;;;-1:-1:-1;;;5794:88:132;;-1:-1:-1;;;;;3438:32:182;;;5794:88:132;;;3420:51:182;3507:32;;3487:18;;;3480:60;3393:18;;5794:88:132;3246:300:182;5794:88:132;;;5914:5;-1:-1:-1;;;;;5896:24:132;:6;-1:-1:-1;;;;;5896:24:132;;5888:84;;;;-1:-1:-1;;;5888:84:132;;;;;;;;;;;;5978:41;-1:-1:-1;;;;;5978:27:132;;6006:3;6011:7;5978:27;:41::i;4039:129::-;4128:35;4138:10;4150:3;4155:7;4128:9;:35::i;:::-;4039:129;;:::o;3209:394::-;-1:-1:-1;;;;;3324:24:132;;3316:73;;;;-1:-1:-1;;;3316:73:132;;;;;;;;;;;;-1:-1:-1;;;;;3395:36:132;;:24;:36;;;;;;;;;;:47;;3435:7;;3395:24;:47;;3435:7;;3395:47;:::i;:::-;;;;;;;;3473:7;3448:21;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;3486:58:132;;-1:-1:-1;;;;;;3486:5:132;:22;3509:10;3529:4;3536:7;3486:22;:58::i;:::-;3555:43;;983:25:182;;;-1:-1:-1;;;;;3555:43:132;;;3566:10;;3555:43;;971:2:182;956:18;3555:43:132;;;;;;;3209:394;;:::o;7603:1291::-;7682:17;7702;:15;:17::i;:::-;7682:37;;7725:28;7765:9;-1:-1:-1;;;;;7756:18:132;:5;-1:-1:-1;;;;;7756:18:132;;:79;;7834:1;7756:79;;;7810:21;;7777:30;;-1:-1:-1;;;7777:30:132;;-1:-1:-1;;;;;7777:5:132;:15;;;;:30;;7801:4;;7777:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;;;:::i;:::-;7725:110;;7916:20;7905:7;:31;7901:155;;7946:32;-1:-1:-1;;;;;7946:5:132;:18;7965:3;7970:7;7946:18;:32::i;:::-;8010:3;-1:-1:-1;;;;;7991:44:132;8003:5;-1:-1:-1;;;;;7991:44:132;;8015:7;8024;8033:1;7991:44;;;;;;;3761:25:182;;;3817:2;3802:18;;3795:34;;;;3860:2;3845:18;;3838:34;3749:2;3734:18;;3551:327;7991:44:132;;;;;;;;8043:7;;7603:1291;;;:::o;7901:155::-;-1:-1:-1;;;;;8214:31:132;;8194:17;8214:31;;;;;;;;;;;;8276:32;8214:31;8276:20;:32;:::i;:::-;8251:57;-1:-1:-1;8340:7:132;8251:57;8322:25;;;;8314:108;;;;-1:-1:-1;;;8314:108:132;;;;;4057:25:182;;;;4098:18;;;4091:34;4030:18;;8314:108:132;3883:248:182;8314:108:132;-1:-1:-1;8599:26:132;;-1:-1:-1;8628:30:132;8638:20;8628:7;:30;:::i;:::-;8599:59;;8699:18;8664:24;:31;8689:5;-1:-1:-1;;;;;8664:31:132;-1:-1:-1;;;;;8664:31:132;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;8748:18;8723:21;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;8772:32:132;;-1:-1:-1;;;;;;8772:5:132;:18;8791:3;8796:7;8772:18;:32::i;:::-;8815:74;;;3761:25:182;;;3817:2;3802:18;;3795:34;;;3845:18;;;3838:34;;;-1:-1:-1;;;;;8815:74:132;;;;;;;;;;3749:2:182;3734:18;8815:74:132;;;;;;;7676:1218;;;;;7603:1291;;;:::o;1219:160:46:-;1328:43;;-1:-1:-1;;;;;4652:32:182;;;1328:43:46;;;4634:51:182;4701:18;;;4694:34;;;1301:71:46;;1321:5;;1343:14;;;;;4607:18:182;;1328:43:46;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:43:46;;;;;;;;;;;1301:19;:71::i;:::-;1219:160;;;:::o;1618:188::-;1745:53;;-1:-1:-1;;;;;4959:32:182;;;1745:53:46;;;4941:51:182;5028:32;;;5008:18;;;5001:60;5077:18;;;5070:34;;;1718:81:46;;1738:5;;1760:18;;;;;4914::182;;1745:53:46;4739:371:182;7686:720:46;7766:18;7794:19;7932:4;7929:1;7922:4;7916:11;7909:4;7903;7899:15;7896:1;7889:5;7882;7877:60;7989:7;7979:176;;8033:4;8027:11;8078:16;8075:1;8070:3;8055:40;8124:16;8119:3;8112:29;7979:176;-1:-1:-1;;8232:1:46;8226:8;8182:16;;-1:-1:-1;8258:15:46;;:68;;8310:11;8325:1;8310:16;;8258:68;;;-1:-1:-1;;;;;8276:26:46;;;:31;8258:68;8254:146;;;8382:5;8349:40;;-1:-1:-1;;;8349:40:46;;;;;;;14:203:182;-1:-1:-1;;;;;178:32:182;;;;160:51;;148:2;133:18;;14:203::o;449:131::-;-1:-1:-1;;;;;524:31:182;;514:42;;504:70;;570:1;567;560:12;504:70;449:131;:::o;585:247::-;644:6;697:2;685:9;676:7;672:23;668:32;665:52;;;713:1;710;703:12;665:52;752:9;739:23;771:31;796:5;771:31;:::i;:::-;821:5;585:247;-1:-1:-1;;;585:247:182:o;1243:508::-;1320:6;1328;1336;1389:2;1377:9;1368:7;1364:23;1360:32;1357:52;;;1405:1;1402;1395:12;1357:52;1444:9;1431:23;1463:31;1488:5;1463:31;:::i;:::-;1513:5;-1:-1:-1;1570:2:182;1555:18;;1542:32;1583:33;1542:32;1583:33;:::i;:::-;1243:508;;1635:7;;-1:-1:-1;;;1715:2:182;1700:18;;;;1687:32;;1243:508::o;1756:367::-;1824:6;1832;1885:2;1873:9;1864:7;1860:23;1856:32;1853:52;;;1901:1;1898;1891:12;1853:52;1940:9;1927:23;1959:31;1984:5;1959:31;:::i;:::-;2009:5;2087:2;2072:18;;;;2059:32;;-1:-1:-1;;;1756:367:182:o;2128:273::-;2220:6;2273:2;2261:9;2252:7;2248:23;2244:32;2241:52;;;2289:1;2286;2279:12;2241:52;2321:9;2315:16;2340:31;2365:5;2340:31;:::i;2406:184::-;2476:6;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;-1:-1:-1;2568:16:182;;2406:184;-1:-1:-1;2406:184:182:o;2595:127::-;2656:10;2651:3;2647:20;2644:1;2637:31;2687:4;2684:1;2677:15;2711:4;2708:1;2701:15;2727:128;2794:9;;;2815:11;;;2812:37;;;2829:18;;:::i;:::-;2727:128;;;;:::o;2860:125::-;2925:9;;;2946:10;;;2943:36;;;2959:18;;:::i","linkReferences":{},"immutableReferences":{"96596":[{"start":266,"length":32},{"start":622,"length":32},{"start":1207,"length":32},{"start":1443,"length":32},{"start":1620,"length":32},{"start":1768,"length":32},{"start":2099,"length":32}],"96600":[{"start":194,"length":32},{"start":421,"length":32},{"start":796,"length":32},{"start":1013,"length":32}]}},"methodIdentifiers":{"ASSET()":"4800d97f","REGISTRY()":"06433b1b","availableTo(address)":"2db9395a","canonicalRollup()":"026cd0dc","claim(address,uint256)":"aad3ec96","recoverFrom(address,address,uint256)":"79cc0e10","recoverWrongAsset(address,address,uint256)":"7a8f3a75","specificRecipientBalance(address)":"c3d988d7","subsidizeAddress(address,uint256)":"bbdb82f0","totalEarmarkedBalance()":"dee4bc23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"RewardDistributor__InsufficientAvailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"canonical\",\"type\":\"address\"}],\"name\":\"RewardDistributor__InvalidCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardDistributor__WrongRecoverMechanism\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardDistributor__ZeroRollup\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"implicitAmountUsed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"earmarkedAmountUsed\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"funder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Subsidized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"availableTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"canonicalRollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"recoverFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"recoverWrongAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"specificRecipientBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"subsidizeAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEarmarkedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Distributed(address,address,uint256,uint256,uint256)\":{\"details\":\"`implicitAmountUsed` is the share drawn from the canonical-rollup implicit pool, `earmarkedAmountUsed` is the share drawn from `from`'s earmarked balance, and the two always sum to `amount`. Lets a log-only indexer reconstruct bucket-by-bucket history without polling storage at every block.\"}},\"kind\":\"dev\",\"methods\":{\"availableTo(address)\":{\"details\":\"The canonical rollup sees the implicit pool plus its own earmarked balance; any other address sees only its earmarked balance.\",\"params\":{\"_recipient\":\"The address to query the available balance for.\"},\"returns\":{\"_0\":\"The amount of ASSET `_recipient` can claim right now.\"}},\"canonicalRollup()\":{\"returns\":{\"_0\":\"The canonical rollup address; this is the only address with access to the implicit pool.\"}},\"claim(address,uint256)\":{\"details\":\"When the caller is the canonical rollup it can draw from both the implicit pool (un-earmarked ASSET held by this contract) and any balance earmarked to it. For any other caller only its earmarked balance is available.\",\"params\":{\"_amount\":\"The amount of ASSET to transfer.\",\"_to\":\"The address that receives the transferred ASSET.\"}},\"constructor\":{\"params\":{\"_asset\":\"The ERC-20 token this contract will hold and distribute.\",\"_registry\":\"The registry used to look up the canonical rollup and governance owner.\"}},\"recoverFrom(address,address,uint256)\":{\"details\":\"Same accounting rules as `claim`: when `_from` is the canonical rollup the implicit pool is drawn from first, otherwise only `_from`'s earmarked balance is available. The function selector differs from the pre-existing `recover(address,address,uint256)` only in parameter naming, so this signature is intentionally renamed to avoid silently hijacking call sites that targeted the older shape.\",\"params\":{\"_amount\":\"The amount of ASSET to transfer.\",\"_from\":\"The address whose accounting bucket the funds are drawn from.\",\"_to\":\"The recipient of the recovered ASSET.\"}},\"recoverWrongAsset(address,address,uint256)\":{\"details\":\"Refuses ASSET so the ASSET accounting (implicit pool + earmarked balances) cannot be bypassed. Use `recoverFrom` for ASSET.\",\"params\":{\"_amount\":\"The amount to transfer.\",\"_asset\":\"The ERC-20 token to transfer; must not equal `ASSET`.\",\"_to\":\"The recipient of the transferred tokens.\"}},\"subsidizeAddress(address,uint256)\":{\"details\":\"No validation is made that `_recipient` is a rollup or registered with the registry. This allows rollups that have not been registered yet to receive funds, or even a contract that is not a rollup at all to be funded through this contract. Rollups are not privileged here; the only place \\\"rollup\\\" matters is that the canonical rollup additionally has access to the implicit (un-earmarked) pool via `claim`.\",\"params\":{\"_amount\":\"The amount of ASSET to pull from msg.sender.\",\"_recipient\":\"The address to earmark claimable funds to. Must be non-zero.\"}}},\"stateVariables\":{\"specificRecipientBalance\":{\"details\":\"ASSET sent directly to this contract (not via `subsidizeAddress`) is *not* recorded here; it forms the implicit pool available to the canonical rollup.\"}},\"title\":\"RewardDistributor\",\"version\":1},\"userdoc\":{\"events\":{\"Distributed(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted whenever `claim` or `recoverFrom` debits the distributor.\"},\"Subsidized(address,address,uint256)\":{\"notice\":\"Emitted when a funder earmarks ASSET for a specific recipient via `subsidizeAddress`.\"}},\"kind\":\"user\",\"methods\":{\"ASSET()\":{\"notice\":\"The ERC-20 token distributed by this contract.\"},\"REGISTRY()\":{\"notice\":\"The registry consulted to resolve the canonical rollup and the governance owner.\"},\"availableTo(address)\":{\"notice\":\"Returns the ASSET amount that `_recipient` can currently `claim`.\"},\"canonicalRollup()\":{\"notice\":\"Returns the address currently registered as the canonical rollup in the registry.\"},\"claim(address,uint256)\":{\"notice\":\"Claim funds available to the caller.\"},\"constructor\":{\"notice\":\"Bind this distributor to a specific ASSET and registry.\"},\"recoverFrom(address,address,uint256)\":{\"notice\":\"Governance-only recovery of ASSET held by this contract.\"},\"recoverWrongAsset(address,address,uint256)\":{\"notice\":\"Governance-only recovery of tokens other than ASSET that ended up in this contract.\"},\"specificRecipientBalance(address)\":{\"notice\":\"Earmarked ASSET balance per recipient.\"},\"subsidizeAddress(address,uint256)\":{\"notice\":\"Transfer funds from msg.sender and earmark them for `_recipient`.\"},\"totalEarmarkedBalance()\":{\"notice\":\"The sum of `specificRecipientBalance` across all recipients.\"}},\"notice\":\"Holds ASSET and makes it claimable by the canonical rollup, with optional per-address earmarking. Any address may be specifically funded via `subsidizeAddress`. ASSETs transferred to this contract directly (not via `subsidizeAddress`) form an implicit pool that is claimable only by the presently canonical rollup, in addition to whatever has been earmarked to it. Rollups are not privileged at the bookkeeping layer: the only place the concept of \\\"rollup\\\" enters is that the canonical rollup is the sole address with access to the implicit pool. Earmarked balances are tracked per arbitrary address. Governance may recover all funds, earmarked or otherwise. NOTE: This is intended to be used with the $AZTEC token (0xa27ec0006e59f245217ff08cd52a7e8b169e62d2) or at least a standard, ERC-20 token that does not have any fee-on-transfer or rebasing.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/governance/RewardDistributor.sol\":\"RewardDistributor\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca\",\"dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/governance/RewardDistributor.sol\":{\"keccak256\":\"0x5d84d1d4d15b7330cff3ceeee29b5055bd521f1aa90c6640cf0d3ecf6cfcea37\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://db3964dfd0f0ed410cfaba293359a48f8c559fb2227e7d13719791e9fce8fe5a\",\"dweb:/ipfs/QmPLBqAsGQ83SRiQEqKyvo8yXxndCj7zCUWDJ5CoDgbANK\"]},\"src/governance/interfaces/IPayload.sol\":{\"keccak256\":\"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c\",\"dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin\"]},\"src/governance/interfaces/IRegistry.sol\":{\"keccak256\":\"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724\",\"dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn\"]},\"src/governance/interfaces/IRewardDistributor.sol\":{\"keccak256\":\"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76\",\"dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h\"]},\"src/governance/libraries/Errors.sol\":{\"keccak256\":\"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa\",\"dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv\"]},\"src/shared/libraries/TimeMath.sol\":{\"keccak256\":\"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914\",\"dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"},{"internalType":"contract IRegistry","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"RewardDistributor__InsufficientAvailable"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"canonical","type":"address"}],"type":"error","name":"RewardDistributor__InvalidCaller"},{"inputs":[],"type":"error","name":"RewardDistributor__WrongRecoverMechanism"},{"inputs":[],"type":"error","name":"RewardDistributor__ZeroRollup"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"implicitAmountUsed","type":"uint256","indexed":false},{"internalType":"uint256","name":"earmarkedAmountUsed","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"funder","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Subsidized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REGISTRY","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"view","type":"function","name":"availableTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"canonicalRollup","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"recoverFrom"},{"inputs":[{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"recoverWrongAsset"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"view","type":"function","name":"specificRecipientBalance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"subsidizeAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEarmarkedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"availableTo(address)":{"details":"The canonical rollup sees the implicit pool plus its own earmarked balance; any other address sees only its earmarked balance.","params":{"_recipient":"The address to query the available balance for."},"returns":{"_0":"The amount of ASSET `_recipient` can claim right now."}},"canonicalRollup()":{"returns":{"_0":"The canonical rollup address; this is the only address with access to the implicit pool."}},"claim(address,uint256)":{"details":"When the caller is the canonical rollup it can draw from both the implicit pool (un-earmarked ASSET held by this contract) and any balance earmarked to it. For any other caller only its earmarked balance is available.","params":{"_amount":"The amount of ASSET to transfer.","_to":"The address that receives the transferred ASSET."}},"constructor":{"params":{"_asset":"The ERC-20 token this contract will hold and distribute.","_registry":"The registry used to look up the canonical rollup and governance owner."}},"recoverFrom(address,address,uint256)":{"details":"Same accounting rules as `claim`: when `_from` is the canonical rollup the implicit pool is drawn from first, otherwise only `_from`'s earmarked balance is available. The function selector differs from the pre-existing `recover(address,address,uint256)` only in parameter naming, so this signature is intentionally renamed to avoid silently hijacking call sites that targeted the older shape.","params":{"_amount":"The amount of ASSET to transfer.","_from":"The address whose accounting bucket the funds are drawn from.","_to":"The recipient of the recovered ASSET."}},"recoverWrongAsset(address,address,uint256)":{"details":"Refuses ASSET so the ASSET accounting (implicit pool + earmarked balances) cannot be bypassed. Use `recoverFrom` for ASSET.","params":{"_amount":"The amount to transfer.","_asset":"The ERC-20 token to transfer; must not equal `ASSET`.","_to":"The recipient of the transferred tokens."}},"subsidizeAddress(address,uint256)":{"details":"No validation is made that `_recipient` is a rollup or registered with the registry. This allows rollups that have not been registered yet to receive funds, or even a contract that is not a rollup at all to be funded through this contract. Rollups are not privileged here; the only place \"rollup\" matters is that the canonical rollup additionally has access to the implicit (un-earmarked) pool via `claim`.","params":{"_amount":"The amount of ASSET to pull from msg.sender.","_recipient":"The address to earmark claimable funds to. Must be non-zero."}}},"version":1},"userdoc":{"kind":"user","methods":{"ASSET()":{"notice":"The ERC-20 token distributed by this contract."},"REGISTRY()":{"notice":"The registry consulted to resolve the canonical rollup and the governance owner."},"availableTo(address)":{"notice":"Returns the ASSET amount that `_recipient` can currently `claim`."},"canonicalRollup()":{"notice":"Returns the address currently registered as the canonical rollup in the registry."},"claim(address,uint256)":{"notice":"Claim funds available to the caller."},"constructor":{"notice":"Bind this distributor to a specific ASSET and registry."},"recoverFrom(address,address,uint256)":{"notice":"Governance-only recovery of ASSET held by this contract."},"recoverWrongAsset(address,address,uint256)":{"notice":"Governance-only recovery of tokens other than ASSET that ended up in this contract."},"specificRecipientBalance(address)":{"notice":"Earmarked ASSET balance per recipient."},"subsidizeAddress(address,uint256)":{"notice":"Transfer funds from msg.sender and earmark them for `_recipient`."},"totalEarmarkedBalance()":{"notice":"The sum of `specificRecipientBalance` across all recipients."}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/governance/RewardDistributor.sol":"RewardDistributor"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b","urls":["bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca","dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/governance/RewardDistributor.sol":{"keccak256":"0x5d84d1d4d15b7330cff3ceeee29b5055bd521f1aa90c6640cf0d3ecf6cfcea37","urls":["bzz-raw://db3964dfd0f0ed410cfaba293359a48f8c559fb2227e7d13719791e9fce8fe5a","dweb:/ipfs/QmPLBqAsGQ83SRiQEqKyvo8yXxndCj7zCUWDJ5CoDgbANK"],"license":"Apache-2.0"},"src/governance/interfaces/IPayload.sol":{"keccak256":"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3","urls":["bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c","dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin"],"license":"Apache-2.0"},"src/governance/interfaces/IRegistry.sol":{"keccak256":"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8","urls":["bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724","dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn"],"license":"Apache-2.0"},"src/governance/interfaces/IRewardDistributor.sol":{"keccak256":"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14","urls":["bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76","dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h"],"license":"Apache-2.0"},"src/governance/libraries/Errors.sol":{"keccak256":"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4","urls":["bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa","dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv"],"license":"Apache-2.0"},"src/shared/libraries/TimeMath.sol":{"keccak256":"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f","urls":["bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914","dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3"],"license":"Apache-2.0"}},"version":1},"id":132}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_asset","type":"address","internalType":"contract IERC20"},{"name":"_registry","type":"address","internalType":"contract IRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"availableTo","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"canonicalRollup","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverWrongAsset","inputs":[{"name":"_asset","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"specificRecipientBalance","inputs":[{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"subsidizeAddress","inputs":[{"name":"_recipient","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEarmarkedBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Distributed","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"implicitAmountUsed","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"earmarkedAmountUsed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Subsidized","inputs":[{"name":"funder","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"RewardDistributor__InsufficientAvailable","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RewardDistributor__InvalidCaller","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"canonical","type":"address","internalType":"address"}]},{"type":"error","name":"RewardDistributor__WrongRecoverMechanism","inputs":[]},{"type":"error","name":"RewardDistributor__ZeroRollup","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c060405234801561000f575f5ffd5b50604051610c01380380610c0183398101604081905261002e9161005c565b6001600160a01b039182166080521660a052610094565b6001600160a01b0381168114610059575f5ffd5b50565b5f5f6040838503121561006d575f5ffd5b825161007881610045565b602084015190925061008981610045565b809150509250929050565b60805160a051610b0e6100f35f395f818160c2015281816101a50152818161031c01526103f501525f818161010a0152818161026e015281816104b7015281816105a301528181610654015281816106e801526108330152610b0e5ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80637a8f3a75116100635780637a8f3a7514610141578063aad3ec9614610154578063bbdb82f014610167578063c3d988d71461017a578063dee4bc2314610199575f5ffd5b8063026cd0dc1461009f57806306433b1b146100bd5780632db9395a146100e45780634800d97f1461010557806379cc0e101461012c575b5f5ffd5b6100a76101a2565b6040516100b491906109b1565b60405180910390f35b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b6100f76100f23660046109dc565b610228565b6040519081526020016100b4565b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b61013f61013a3660046109fe565b610319565b005b61013f61014f3660046109fe565b6103f2565b61013f610162366004610a3c565b61051b565b61013f610175366004610a3c565b61052a565b6100f76101883660046109dc565b5f6020819052908152604090205481565b6100f760015481565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663971b0e6b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102239190610a66565b905090565b5f5f6102326101a2565b90505f816001600160a01b0316846001600160a01b031614610254575f6102ec565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906102a39030906004016109b1565b602060405180830381865afa1580156102be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e29190610a81565b6102ec9190610aac565b6001600160a01b0385165f908152602081905260409020549091506103119082610ac5565b949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610376573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039a9190610a66565b905033816001600160a01b03811682146103df5760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b50506103ec84848461060f565b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104739190610a66565b905033816001600160a01b03811682146104b35760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044016103d6565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361050757604051633fa061a960e01b815260040160405180910390fd5b6103ec6001600160a01b03851684846108b5565b61052633838361060f565b5050565b6001600160a01b0382166105515760405163381b18df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604081208054839290610578908490610ac5565b925050819055508060015f8282546105909190610ac5565b909155506105cb90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610919565b6040518181526001600160a01b0383169033907f9acd1c90213a47eabf932595f3ca414fa42db50a437f5bd384d5813fa9e1a1f39060200160405180910390a35050565b5f6106186101a2565b90505f816001600160a01b0316856001600160a01b03161461063a575f6106d2565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906106899030906004016109b1565b602060405180830381865afa1580156106a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c89190610a81565b6106d29190610aac565b90508083116107765761070f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685856108b5565b836001600160a01b0316856001600160a01b03167f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c85865f604051610767939291909283526020830191909152604082015260600190565b60405180910390a35050505050565b6001600160a01b0385165f90815260208190526040812054906107998284610ac5565b90508481818110156107c757604051631f15a0b960e01b8152600481019290925260248201526044016103d6565b505f90506107d58487610aac565b9050805f5f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f8282546108089190610aac565b925050819055508060015f8282546108209190610aac565b9091555061085a90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001688886108b5565b60408051878152602081018690529081018290526001600160a01b0380891691908a16907f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c9060600160405180910390a35050505050505050565b6040516001600160a01b0383811660248301526044820183905261091491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610952565b505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526103ec9186918216906323b872dd906084016108e2565b5f5f60205f8451602086015f885af180610971576040513d5f823e3d81fd5b50505f513d91508115610988578060011415610995565b6001600160a01b0384163b155b156103ec5783604051635274afe760e01b81526004016103d691905b6001600160a01b0391909116815260200190565b6001600160a01b03811681146109d9575f5ffd5b50565b5f602082840312156109ec575f5ffd5b81356109f7816109c5565b9392505050565b5f5f5f60608486031215610a10575f5ffd5b8335610a1b816109c5565b92506020840135610a2b816109c5565b929592945050506040919091013590565b5f5f60408385031215610a4d575f5ffd5b8235610a58816109c5565b946020939093013593505050565b5f60208284031215610a76575f5ffd5b81516109f7816109c5565b5f60208284031215610a91575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf610a98565b92915050565b80820180821115610abf57610abf610a9856fea26469706673582212209531db209fafb38c14481b4d3253bb7b0a0df194c0318ccb305532cfa1c733ce64736f6c634300081e0033","sourceMap":"1415:7481:134:-:0;;;2406:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2460:14:134;;;;;2480:20;;;1415:7481;;14:139:184;-1:-1:-1;;;;;97:31:184;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:436::-;272:6;280;333:2;321:9;312:7;308:23;304:32;301:52;;;349:1;346;339:12;301:52;381:9;375:16;400:39;433:5;400:39;:::i;:::-;508:2;493:18;;487:25;458:5;;-1:-1:-1;521:41:184;487:25;521:41;:::i;:::-;581:7;571:17;;;158:436;;;;;:::o;:::-;1415:7481:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80637a8f3a75116100635780637a8f3a7514610141578063aad3ec9614610154578063bbdb82f014610167578063c3d988d71461017a578063dee4bc2314610199575f5ffd5b8063026cd0dc1461009f57806306433b1b146100bd5780632db9395a146100e45780634800d97f1461010557806379cc0e101461012c575b5f5ffd5b6100a76101a2565b6040516100b491906109b1565b60405180910390f35b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b6100f76100f23660046109dc565b610228565b6040519081526020016100b4565b6100a77f000000000000000000000000000000000000000000000000000000000000000081565b61013f61013a3660046109fe565b610319565b005b61013f61014f3660046109fe565b6103f2565b61013f610162366004610a3c565b61051b565b61013f610175366004610a3c565b61052a565b6100f76101883660046109dc565b5f6020819052908152604090205481565b6100f760015481565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663971b0e6b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102239190610a66565b905090565b5f5f6102326101a2565b90505f816001600160a01b0316846001600160a01b031614610254575f6102ec565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906102a39030906004016109b1565b602060405180830381865afa1580156102be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e29190610a81565b6102ec9190610aac565b6001600160a01b0385165f908152602081905260409020549091506103119082610ac5565b949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610376573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039a9190610a66565b905033816001600160a01b03811682146103df5760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b50506103ec84848461060f565b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561044f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104739190610a66565b905033816001600160a01b03811682146104b35760405163630efb8560e11b81526001600160a01b039283166004820152911660248201526044016103d6565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361050757604051633fa061a960e01b815260040160405180910390fd5b6103ec6001600160a01b03851684846108b5565b61052633838361060f565b5050565b6001600160a01b0382166105515760405163381b18df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604081208054839290610578908490610ac5565b925050819055508060015f8282546105909190610ac5565b909155506105cb90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610919565b6040518181526001600160a01b0383169033907f9acd1c90213a47eabf932595f3ca414fa42db50a437f5bd384d5813fa9e1a1f39060200160405180910390a35050565b5f6106186101a2565b90505f816001600160a01b0316856001600160a01b03161461063a575f6106d2565b6001546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906106899030906004016109b1565b602060405180830381865afa1580156106a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c89190610a81565b6106d29190610aac565b90508083116107765761070f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685856108b5565b836001600160a01b0316856001600160a01b03167f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c85865f604051610767939291909283526020830191909152604082015260600190565b60405180910390a35050505050565b6001600160a01b0385165f90815260208190526040812054906107998284610ac5565b90508481818110156107c757604051631f15a0b960e01b8152600481019290925260248201526044016103d6565b505f90506107d58487610aac565b9050805f5f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f8282546108089190610aac565b925050819055508060015f8282546108209190610aac565b9091555061085a90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001688886108b5565b60408051878152602081018690529081018290526001600160a01b0380891691908a16907f2e0af9fd06c112bbfcb6770377b964ccb18691b6217ca6c8054c6337b0a7cc9c9060600160405180910390a35050505050505050565b6040516001600160a01b0383811660248301526044820183905261091491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610952565b505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526103ec9186918216906323b872dd906084016108e2565b5f5f60205f8451602086015f885af180610971576040513d5f823e3d81fd5b50505f513d91508115610988578060011415610995565b6001600160a01b0384163b155b156103ec5783604051635274afe760e01b81526004016103d691905b6001600160a01b0391909116815260200190565b6001600160a01b03811681146109d9575f5ffd5b50565b5f602082840312156109ec575f5ffd5b81356109f7816109c5565b9392505050565b5f5f5f60608486031215610a10575f5ffd5b8335610a1b816109c5565b92506020840135610a2b816109c5565b929592945050506040919091013590565b5f5f60408385031215610a4d575f5ffd5b8235610a58816109c5565b946020939093013593505050565b5f60208284031215610a76575f5ffd5b81516109f7816109c5565b5f60208284031215610a91575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf610a98565b92915050565b80820180821115610abf57610abf610a9856fea26469706673582212209531db209fafb38c14481b4d3253bb7b0a0df194c0318ccb305532cfa1c733ce64736f6c634300081e0033","sourceMap":"1415:7481:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6958:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1688:35;;;;;6404:341;;;;;;:::i;:::-;;:::i;:::-;;;983:25:184;;;971:2;956:18;6404:341:134;837:177:184;1560:29:134;;;;;4890:295;;;;;;:::i;:::-;;:::i;:::-;;5621:403;;;;;;:::i;:::-;;:::i;4039:129::-;;;;;;:::i;:::-;;:::i;3209:394::-;;;;;;:::i;:::-;;:::i;1955:76::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;2111:36;;;;;;6958:142;7035:7;7065:8;-1:-1:-1;;;;;7065:27:134;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7050:45;;6958:142;:::o;6404:341::-;6495:7;6510:17;6530;:15;:17::i;:::-;6510:37;;6553:28;6598:9;-1:-1:-1;;;;;6584:23:134;:10;-1:-1:-1;;;;;6584:23:134;;:84;;6667:1;6584:84;;;6643:21;;6610:30;;-1:-1:-1;;;6610:30:134;;-1:-1:-1;;;;;6610:5:134;:15;;;;:30;;6634:4;;6610:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;;;:::i;:::-;-1:-1:-1;;;;;6704:36:134;;:24;:36;;;;;;;;;;;6553:115;;-1:-1:-1;6681:59:134;;6553:115;6681:59;:::i;:::-;6674:66;6404:341;-1:-1:-1;;;;6404:341:134:o;4890:295::-;5000:13;5032:8;-1:-1:-1;;;;;5016:32:134;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5000:50;-1:-1:-1;5064:10:134;5000:50;-1:-1:-1;;;;;5064:19:134;;;;5056:88;;;;-1:-1:-1;;;5056:88:134;;-1:-1:-1;;;;;3438:32:184;;;5056:88:134;;;3420:51:184;3507:32;;3487:18;;;3480:60;3393:18;;5056:88:134;;;;;;;;;;;5150:30;5160:5;5167:3;5172:7;5150:9;:30::i;:::-;4994:191;4890:295;;;:::o;5621:403::-;5738:13;5770:8;-1:-1:-1;;;;;5754:32:134;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5738:50;-1:-1:-1;5802:10:134;5738:50;-1:-1:-1;;;;;5802:19:134;;;;5794:88;;;;-1:-1:-1;;;5794:88:134;;-1:-1:-1;;;;;3438:32:184;;;5794:88:134;;;3420:51:184;3507:32;;3487:18;;;3480:60;3393:18;;5794:88:134;3246:300:184;5794:88:134;;;5914:5;-1:-1:-1;;;;;5896:24:134;:6;-1:-1:-1;;;;;5896:24:134;;5888:84;;;;-1:-1:-1;;;5888:84:134;;;;;;;;;;;;5978:41;-1:-1:-1;;;;;5978:27:134;;6006:3;6011:7;5978:27;:41::i;4039:129::-;4128:35;4138:10;4150:3;4155:7;4128:9;:35::i;:::-;4039:129;;:::o;3209:394::-;-1:-1:-1;;;;;3324:24:134;;3316:73;;;;-1:-1:-1;;;3316:73:134;;;;;;;;;;;;-1:-1:-1;;;;;3395:36:134;;:24;:36;;;;;;;;;;:47;;3435:7;;3395:24;:47;;3435:7;;3395:47;:::i;:::-;;;;;;;;3473:7;3448:21;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;3486:58:134;;-1:-1:-1;;;;;;3486:5:134;:22;3509:10;3529:4;3536:7;3486:22;:58::i;:::-;3555:43;;983:25:184;;;-1:-1:-1;;;;;3555:43:134;;;3566:10;;3555:43;;971:2:184;956:18;3555:43:134;;;;;;;3209:394;;:::o;7603:1291::-;7682:17;7702;:15;:17::i;:::-;7682:37;;7725:28;7765:9;-1:-1:-1;;;;;7756:18:134;:5;-1:-1:-1;;;;;7756:18:134;;:79;;7834:1;7756:79;;;7810:21;;7777:30;;-1:-1:-1;;;7777:30:134;;-1:-1:-1;;;;;7777:5:134;:15;;;;:30;;7801:4;;7777:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;;;:::i;:::-;7725:110;;7916:20;7905:7;:31;7901:155;;7946:32;-1:-1:-1;;;;;7946:5:134;:18;7965:3;7970:7;7946:18;:32::i;:::-;8010:3;-1:-1:-1;;;;;7991:44:134;8003:5;-1:-1:-1;;;;;7991:44:134;;8015:7;8024;8033:1;7991:44;;;;;;;3761:25:184;;;3817:2;3802:18;;3795:34;;;;3860:2;3845:18;;3838:34;3749:2;3734:18;;3551:327;7991:44:134;;;;;;;;8043:7;;7603:1291;;;:::o;7901:155::-;-1:-1:-1;;;;;8214:31:134;;8194:17;8214:31;;;;;;;;;;;;8276:32;8214:31;8276:20;:32;:::i;:::-;8251:57;-1:-1:-1;8340:7:134;8251:57;8322:25;;;;8314:108;;;;-1:-1:-1;;;8314:108:134;;;;;4057:25:184;;;;4098:18;;;4091:34;4030:18;;8314:108:134;3883:248:184;8314:108:134;-1:-1:-1;8599:26:134;;-1:-1:-1;8628:30:134;8638:20;8628:7;:30;:::i;:::-;8599:59;;8699:18;8664:24;:31;8689:5;-1:-1:-1;;;;;8664:31:134;-1:-1:-1;;;;;8664:31:134;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;8748:18;8723:21;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;8772:32:134;;-1:-1:-1;;;;;;8772:5:134;:18;8791:3;8796:7;8772:18;:32::i;:::-;8815:74;;;3761:25:184;;;3817:2;3802:18;;3795:34;;;3845:18;;;3838:34;;;-1:-1:-1;;;;;8815:74:134;;;;;;;;;;3749:2:184;3734:18;8815:74:134;;;;;;;7676:1218;;;;;7603:1291;;;:::o;1219:160:46:-;1328:43;;-1:-1:-1;;;;;4652:32:184;;;1328:43:46;;;4634:51:184;4701:18;;;4694:34;;;1301:71:46;;1321:5;;1343:14;;;;;4607:18:184;;1328:43:46;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:43:46;;;;;;;;;;;1301:19;:71::i;:::-;1219:160;;;:::o;1618:188::-;1745:53;;-1:-1:-1;;;;;4959:32:184;;;1745:53:46;;;4941:51:184;5028:32;;;5008:18;;;5001:60;5077:18;;;5070:34;;;1718:81:46;;1738:5;;1760:18;;;;;4914::184;;1745:53:46;4739:371:184;7686:720:46;7766:18;7794:19;7932:4;7929:1;7922:4;7916:11;7909:4;7903;7899:15;7896:1;7889:5;7882;7877:60;7989:7;7979:176;;8033:4;8027:11;8078:16;8075:1;8070:3;8055:40;8124:16;8119:3;8112:29;7979:176;-1:-1:-1;;8232:1:46;8226:8;8182:16;;-1:-1:-1;8258:15:46;;:68;;8310:11;8325:1;8310:16;;8258:68;;;-1:-1:-1;;;;;8276:26:46;;;:31;8258:68;8254:146;;;8382:5;8349:40;;-1:-1:-1;;;8349:40:46;;;;;;;14:203:184;-1:-1:-1;;;;;178:32:184;;;;160:51;;148:2;133:18;;14:203::o;449:131::-;-1:-1:-1;;;;;524:31:184;;514:42;;504:70;;570:1;567;560:12;504:70;449:131;:::o;585:247::-;644:6;697:2;685:9;676:7;672:23;668:32;665:52;;;713:1;710;703:12;665:52;752:9;739:23;771:31;796:5;771:31;:::i;:::-;821:5;585:247;-1:-1:-1;;;585:247:184:o;1243:508::-;1320:6;1328;1336;1389:2;1377:9;1368:7;1364:23;1360:32;1357:52;;;1405:1;1402;1395:12;1357:52;1444:9;1431:23;1463:31;1488:5;1463:31;:::i;:::-;1513:5;-1:-1:-1;1570:2:184;1555:18;;1542:32;1583:33;1542:32;1583:33;:::i;:::-;1243:508;;1635:7;;-1:-1:-1;;;1715:2:184;1700:18;;;;1687:32;;1243:508::o;1756:367::-;1824:6;1832;1885:2;1873:9;1864:7;1860:23;1856:32;1853:52;;;1901:1;1898;1891:12;1853:52;1940:9;1927:23;1959:31;1984:5;1959:31;:::i;:::-;2009:5;2087:2;2072:18;;;;2059:32;;-1:-1:-1;;;1756:367:184:o;2128:273::-;2220:6;2273:2;2261:9;2252:7;2248:23;2244:32;2241:52;;;2289:1;2286;2279:12;2241:52;2321:9;2315:16;2340:31;2365:5;2340:31;:::i;2406:184::-;2476:6;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;-1:-1:-1;2568:16:184;;2406:184;-1:-1:-1;2406:184:184:o;2595:127::-;2656:10;2651:3;2647:20;2644:1;2637:31;2687:4;2684:1;2677:15;2711:4;2708:1;2701:15;2727:128;2794:9;;;2815:11;;;2812:37;;;2829:18;;:::i;:::-;2727:128;;;;:::o;2860:125::-;2925:9;;;2946:10;;;2943:36;;;2959:18;;:::i","linkReferences":{},"immutableReferences":{"96441":[{"start":266,"length":32},{"start":622,"length":32},{"start":1207,"length":32},{"start":1443,"length":32},{"start":1620,"length":32},{"start":1768,"length":32},{"start":2099,"length":32}],"96445":[{"start":194,"length":32},{"start":421,"length":32},{"start":796,"length":32},{"start":1013,"length":32}]}},"methodIdentifiers":{"ASSET()":"4800d97f","REGISTRY()":"06433b1b","availableTo(address)":"2db9395a","canonicalRollup()":"026cd0dc","claim(address,uint256)":"aad3ec96","recoverFrom(address,address,uint256)":"79cc0e10","recoverWrongAsset(address,address,uint256)":"7a8f3a75","specificRecipientBalance(address)":"c3d988d7","subsidizeAddress(address,uint256)":"bbdb82f0","totalEarmarkedBalance()":"dee4bc23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"RewardDistributor__InsufficientAvailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"canonical\",\"type\":\"address\"}],\"name\":\"RewardDistributor__InvalidCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardDistributor__WrongRecoverMechanism\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardDistributor__ZeroRollup\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"implicitAmountUsed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"earmarkedAmountUsed\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"funder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Subsidized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"availableTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"canonicalRollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"recoverFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"recoverWrongAsset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"specificRecipientBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"subsidizeAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEarmarkedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Distributed(address,address,uint256,uint256,uint256)\":{\"details\":\"`implicitAmountUsed` is the share drawn from the canonical-rollup implicit pool, `earmarkedAmountUsed` is the share drawn from `from`'s earmarked balance, and the two always sum to `amount`. Lets a log-only indexer reconstruct bucket-by-bucket history without polling storage at every block.\"}},\"kind\":\"dev\",\"methods\":{\"availableTo(address)\":{\"details\":\"The canonical rollup sees the implicit pool plus its own earmarked balance; any other address sees only its earmarked balance.\",\"params\":{\"_recipient\":\"The address to query the available balance for.\"},\"returns\":{\"_0\":\"The amount of ASSET `_recipient` can claim right now.\"}},\"canonicalRollup()\":{\"returns\":{\"_0\":\"The canonical rollup address; this is the only address with access to the implicit pool.\"}},\"claim(address,uint256)\":{\"details\":\"When the caller is the canonical rollup it can draw from both the implicit pool (un-earmarked ASSET held by this contract) and any balance earmarked to it. For any other caller only its earmarked balance is available.\",\"params\":{\"_amount\":\"The amount of ASSET to transfer.\",\"_to\":\"The address that receives the transferred ASSET.\"}},\"constructor\":{\"params\":{\"_asset\":\"The ERC-20 token this contract will hold and distribute.\",\"_registry\":\"The registry used to look up the canonical rollup and governance owner.\"}},\"recoverFrom(address,address,uint256)\":{\"details\":\"Same accounting rules as `claim`: when `_from` is the canonical rollup the implicit pool is drawn from first, otherwise only `_from`'s earmarked balance is available. The function selector differs from the pre-existing `recover(address,address,uint256)` only in parameter naming, so this signature is intentionally renamed to avoid silently hijacking call sites that targeted the older shape.\",\"params\":{\"_amount\":\"The amount of ASSET to transfer.\",\"_from\":\"The address whose accounting bucket the funds are drawn from.\",\"_to\":\"The recipient of the recovered ASSET.\"}},\"recoverWrongAsset(address,address,uint256)\":{\"details\":\"Refuses ASSET so the ASSET accounting (implicit pool + earmarked balances) cannot be bypassed. Use `recoverFrom` for ASSET.\",\"params\":{\"_amount\":\"The amount to transfer.\",\"_asset\":\"The ERC-20 token to transfer; must not equal `ASSET`.\",\"_to\":\"The recipient of the transferred tokens.\"}},\"subsidizeAddress(address,uint256)\":{\"details\":\"No validation is made that `_recipient` is a rollup or registered with the registry. This allows rollups that have not been registered yet to receive funds, or even a contract that is not a rollup at all to be funded through this contract. Rollups are not privileged here; the only place \\\"rollup\\\" matters is that the canonical rollup additionally has access to the implicit (un-earmarked) pool via `claim`.\",\"params\":{\"_amount\":\"The amount of ASSET to pull from msg.sender.\",\"_recipient\":\"The address to earmark claimable funds to. Must be non-zero.\"}}},\"stateVariables\":{\"specificRecipientBalance\":{\"details\":\"ASSET sent directly to this contract (not via `subsidizeAddress`) is *not* recorded here; it forms the implicit pool available to the canonical rollup.\"}},\"title\":\"RewardDistributor\",\"version\":1},\"userdoc\":{\"events\":{\"Distributed(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted whenever `claim` or `recoverFrom` debits the distributor.\"},\"Subsidized(address,address,uint256)\":{\"notice\":\"Emitted when a funder earmarks ASSET for a specific recipient via `subsidizeAddress`.\"}},\"kind\":\"user\",\"methods\":{\"ASSET()\":{\"notice\":\"The ERC-20 token distributed by this contract.\"},\"REGISTRY()\":{\"notice\":\"The registry consulted to resolve the canonical rollup and the governance owner.\"},\"availableTo(address)\":{\"notice\":\"Returns the ASSET amount that `_recipient` can currently `claim`.\"},\"canonicalRollup()\":{\"notice\":\"Returns the address currently registered as the canonical rollup in the registry.\"},\"claim(address,uint256)\":{\"notice\":\"Claim funds available to the caller.\"},\"constructor\":{\"notice\":\"Bind this distributor to a specific ASSET and registry.\"},\"recoverFrom(address,address,uint256)\":{\"notice\":\"Governance-only recovery of ASSET held by this contract.\"},\"recoverWrongAsset(address,address,uint256)\":{\"notice\":\"Governance-only recovery of tokens other than ASSET that ended up in this contract.\"},\"specificRecipientBalance(address)\":{\"notice\":\"Earmarked ASSET balance per recipient.\"},\"subsidizeAddress(address,uint256)\":{\"notice\":\"Transfer funds from msg.sender and earmark them for `_recipient`.\"},\"totalEarmarkedBalance()\":{\"notice\":\"The sum of `specificRecipientBalance` across all recipients.\"}},\"notice\":\"Holds ASSET and makes it claimable by the canonical rollup, with optional per-address earmarking. Any address may be specifically funded via `subsidizeAddress`. ASSETs transferred to this contract directly (not via `subsidizeAddress`) form an implicit pool that is claimable only by the presently canonical rollup, in addition to whatever has been earmarked to it. Rollups are not privileged at the bookkeeping layer: the only place the concept of \\\"rollup\\\" enters is that the canonical rollup is the sole address with access to the implicit pool. Earmarked balances are tracked per arbitrary address. Governance may recover all funds, earmarked or otherwise. NOTE: This is intended to be used with the $AZTEC token (0xa27ec0006e59f245217ff08cd52a7e8b169e62d2) or at least a standard, ERC-20 token that does not have any fee-on-transfer or rebasing.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/governance/RewardDistributor.sol\":\"RewardDistributor\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca\",\"dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/governance/RewardDistributor.sol\":{\"keccak256\":\"0x5d84d1d4d15b7330cff3ceeee29b5055bd521f1aa90c6640cf0d3ecf6cfcea37\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://db3964dfd0f0ed410cfaba293359a48f8c559fb2227e7d13719791e9fce8fe5a\",\"dweb:/ipfs/QmPLBqAsGQ83SRiQEqKyvo8yXxndCj7zCUWDJ5CoDgbANK\"]},\"src/governance/interfaces/IPayload.sol\":{\"keccak256\":\"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c\",\"dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin\"]},\"src/governance/interfaces/IRegistry.sol\":{\"keccak256\":\"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724\",\"dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn\"]},\"src/governance/interfaces/IRewardDistributor.sol\":{\"keccak256\":\"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76\",\"dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h\"]},\"src/governance/libraries/Errors.sol\":{\"keccak256\":\"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa\",\"dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv\"]},\"src/shared/libraries/TimeMath.sol\":{\"keccak256\":\"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914\",\"dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"},{"internalType":"contract IRegistry","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"RewardDistributor__InsufficientAvailable"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"canonical","type":"address"}],"type":"error","name":"RewardDistributor__InvalidCaller"},{"inputs":[],"type":"error","name":"RewardDistributor__WrongRecoverMechanism"},{"inputs":[],"type":"error","name":"RewardDistributor__ZeroRollup"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"implicitAmountUsed","type":"uint256","indexed":false},{"internalType":"uint256","name":"earmarkedAmountUsed","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"funder","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Subsidized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REGISTRY","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"view","type":"function","name":"availableTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"canonicalRollup","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"recoverFrom"},{"inputs":[{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"recoverWrongAsset"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"view","type":"function","name":"specificRecipientBalance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"subsidizeAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEarmarkedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"availableTo(address)":{"details":"The canonical rollup sees the implicit pool plus its own earmarked balance; any other address sees only its earmarked balance.","params":{"_recipient":"The address to query the available balance for."},"returns":{"_0":"The amount of ASSET `_recipient` can claim right now."}},"canonicalRollup()":{"returns":{"_0":"The canonical rollup address; this is the only address with access to the implicit pool."}},"claim(address,uint256)":{"details":"When the caller is the canonical rollup it can draw from both the implicit pool (un-earmarked ASSET held by this contract) and any balance earmarked to it. For any other caller only its earmarked balance is available.","params":{"_amount":"The amount of ASSET to transfer.","_to":"The address that receives the transferred ASSET."}},"constructor":{"params":{"_asset":"The ERC-20 token this contract will hold and distribute.","_registry":"The registry used to look up the canonical rollup and governance owner."}},"recoverFrom(address,address,uint256)":{"details":"Same accounting rules as `claim`: when `_from` is the canonical rollup the implicit pool is drawn from first, otherwise only `_from`'s earmarked balance is available. The function selector differs from the pre-existing `recover(address,address,uint256)` only in parameter naming, so this signature is intentionally renamed to avoid silently hijacking call sites that targeted the older shape.","params":{"_amount":"The amount of ASSET to transfer.","_from":"The address whose accounting bucket the funds are drawn from.","_to":"The recipient of the recovered ASSET."}},"recoverWrongAsset(address,address,uint256)":{"details":"Refuses ASSET so the ASSET accounting (implicit pool + earmarked balances) cannot be bypassed. Use `recoverFrom` for ASSET.","params":{"_amount":"The amount to transfer.","_asset":"The ERC-20 token to transfer; must not equal `ASSET`.","_to":"The recipient of the transferred tokens."}},"subsidizeAddress(address,uint256)":{"details":"No validation is made that `_recipient` is a rollup or registered with the registry. This allows rollups that have not been registered yet to receive funds, or even a contract that is not a rollup at all to be funded through this contract. Rollups are not privileged here; the only place \"rollup\" matters is that the canonical rollup additionally has access to the implicit (un-earmarked) pool via `claim`.","params":{"_amount":"The amount of ASSET to pull from msg.sender.","_recipient":"The address to earmark claimable funds to. Must be non-zero."}}},"version":1},"userdoc":{"kind":"user","methods":{"ASSET()":{"notice":"The ERC-20 token distributed by this contract."},"REGISTRY()":{"notice":"The registry consulted to resolve the canonical rollup and the governance owner."},"availableTo(address)":{"notice":"Returns the ASSET amount that `_recipient` can currently `claim`."},"canonicalRollup()":{"notice":"Returns the address currently registered as the canonical rollup in the registry."},"claim(address,uint256)":{"notice":"Claim funds available to the caller."},"constructor":{"notice":"Bind this distributor to a specific ASSET and registry."},"recoverFrom(address,address,uint256)":{"notice":"Governance-only recovery of ASSET held by this contract."},"recoverWrongAsset(address,address,uint256)":{"notice":"Governance-only recovery of tokens other than ASSET that ended up in this contract."},"specificRecipientBalance(address)":{"notice":"Earmarked ASSET balance per recipient."},"subsidizeAddress(address,uint256)":{"notice":"Transfer funds from msg.sender and earmark them for `_recipient`."},"totalEarmarkedBalance()":{"notice":"The sum of `specificRecipientBalance` across all recipients."}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/governance/RewardDistributor.sol":"RewardDistributor"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b","urls":["bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca","dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/governance/RewardDistributor.sol":{"keccak256":"0x5d84d1d4d15b7330cff3ceeee29b5055bd521f1aa90c6640cf0d3ecf6cfcea37","urls":["bzz-raw://db3964dfd0f0ed410cfaba293359a48f8c559fb2227e7d13719791e9fce8fe5a","dweb:/ipfs/QmPLBqAsGQ83SRiQEqKyvo8yXxndCj7zCUWDJ5CoDgbANK"],"license":"Apache-2.0"},"src/governance/interfaces/IPayload.sol":{"keccak256":"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3","urls":["bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c","dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin"],"license":"Apache-2.0"},"src/governance/interfaces/IRegistry.sol":{"keccak256":"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8","urls":["bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724","dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn"],"license":"Apache-2.0"},"src/governance/interfaces/IRewardDistributor.sol":{"keccak256":"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14","urls":["bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76","dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h"],"license":"Apache-2.0"},"src/governance/libraries/Errors.sol":{"keccak256":"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4","urls":["bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa","dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv"],"license":"Apache-2.0"},"src/shared/libraries/TimeMath.sol":{"keccak256":"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f","urls":["bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914","dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3"],"license":"Apache-2.0"}},"version":1},"id":134}
|