feat: add fraud detection validator
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user