datahaven/contracts/test
Ahmad Kaouk edcb13dbbc
fix: add era replay guard for rewards submissions (#477)
## Summary
- guard `DataHavenServiceManager.submitRewards` by `(startTimestamp,
duration, token)` so each reward window can only be submitted once per
token
- expose the replay-guard state and error in the interface, add Foundry
coverage, wire the missing runtime `std` features, and regenerate the
Wagmi/storage/state-diff artifacts
- fix the local slash E2E path by aligning the `anvil` Snowbridge
`messageOrigin` with `stagenet-local`, refreshing the tracked anvil
deployment metadata, and waiting for `ServiceManager.SlashingComplete`

## Testing
- `cargo fmt --all -- --check`
- `forge test --match-contract RewardsSubmitterTest`
- `forge test --match-contract StorageLayoutTest -vvv`
- `./scripts/check-storage-layout.sh`
- `./scripts/check-storage-layout-negative.sh`
- `bun ./scripts/check-generated-state.ts`
- `bun generate:wagmi`
- `bun test ./e2e/suites/slash.test.ts --timeout 1200000
--test-name-pattern "verify we have the agent origin set|Activate
slashing|use sudo to slash operator"`

## Notes
- Slash E2E verification reran the previously failing sudo slash path;
the long liveness scenario was not rerun end to end.
2026-04-17 14:27:09 +02:00
..
mocks fix: resolve forge build warnings (#398) 2026-01-22 09:48:27 -03:00
storage refactor: rename rewardsInitiator to snowbridgeInitiator (#476) 2026-03-24 12:41:36 +01:00
utils refactor: rename rewardsInitiator to snowbridgeInitiator (#476) 2026-03-24 12:41:36 +01:00
MessageEncoding.t.sol feat: automated validator set submission with era targeting (#433) 2026-02-20 10:31:44 +01:00
OperatorAddressMappings.t.sol fix: deregister operator on removal from allowlist (#478) 2026-04-11 18:59:31 +02:00
RewardsSubmitter.t.sol fix: add era replay guard for rewards submissions (#477) 2026-04-17 14:27:09 +02:00
Slashing.t.sol fix: deregister operator on removal from allowlist (#478) 2026-04-11 18:59:31 +02:00
SnowbridgeIntegration.t.sol feat: implement weighted top-32 validator selection (#443) 2026-02-24 09:23:57 +01:00
ValidatorSetSelection.t.sol fix: deregister operator on removal from allowlist (#478) 2026-04-11 18:59:31 +02:00
ValidatorSetSubmitter.t.sol refactor: rename rewardsInitiator to snowbridgeInitiator (#476) 2026-03-24 12:41:36 +01:00