### NFTStakingManager invariants - [ ] `delegationFeeBips` shall be set between the `minimumDelegationFeeBips` and `maximumDelegationFeeBips`. - [ ] Only the owner of `HardwareToken` can lock it - [ ] A `HardwareToken` can be locked for one active validator at a time - [ ] Only the validation owner can remove a valdiation - [ ] A validation cannot be removed if it has active delegations to it - [ ] Only a validation owner can register delegation on behalf of other users' `NodeLicenses` - [ ] The caller must be approved for the `NodeLicense` or own it in order to create a delegation and lock it - [ ] A `NodeLicense` can be locked for one active delegation at a time - [ ] Only the delegation owner or its validation owner can initiate the removal of a delegation - [ ] Only validations that have sufficient `effectiveUptime` can receive rewards for the epoch - [ ] `processProof` can only be called once during the grace period. - [ ] `mintRewards` can only be called after the grace period ### NodeLicense Invariants - [ ] An NFT which is locked by the NFTStakingManager cannot be transferred - [ ] If `_lockedUntil` is set, token transfers are restricted until the specified unlock time has passed. - [ ] Only the `MINTER_ROLE` can mint and burn tokens
NFTStakingManager invariants
delegationFeeBipsshall be set between theminimumDelegationFeeBipsandmaximumDelegationFeeBips.HardwareTokencan lock itHardwareTokencan be locked for one active validator at a timeNodeLicensesNodeLicenseor own it in order to create a delegation and lock itNodeLicensecan be locked for one active delegation at a timeeffectiveUptimecan receive rewards for the epochprocessProofcan only be called once during the grace period.mintRewardscan only be called after the grace periodNodeLicense Invariants
_lockedUntilis set, token transfers are restricted until the specified unlock time has passed.MINTER_ROLEcan mint and burn tokens