feat: add fraud detection validator

This commit is contained in:
Dobromir Popov
2026-06-29 09:46:22 +03:00
parent a2aa22fc08
commit 39f6f23c83
9 changed files with 511 additions and 6 deletions

View File

@@ -59,3 +59,23 @@ def test_epoch_settlement_debits_clients_and_rewards_nodes_and_validator():
assert contracts.settlement.get_token_balance("node-wallet-a") == 96
assert contracts.settlement.get_token_balance("node-wallet-b") == 192
assert contracts.settlement.get_token_balance("validator-wallet") == 32
def test_slash_proof_reduces_stake_increments_strikes_and_warns(capsys):
"""Submitting a slash proof updates registry state and notifies the operator."""
contracts = LocalSolanaContracts()
contracts.registry.submit_stake("node-wallet-a", 500)
receipt = contracts.registry.submit_slash_proof(
wallet_address="node-wallet-a",
slash_amount=125,
strike_threshold=2,
reason="test divergence",
)
wallet = contracts.registry.get_wallet("node-wallet-a")
assert receipt.signature.startswith("local-slash-node-wallet-a")
assert wallet.stake_balance == 375
assert wallet.strike_count == 1
assert wallet.banned is False
assert "WARNING: node node-wallet-a slashed" in capsys.readouterr().out