{
  "generatedAt": "2026-04-07T21:59:25.688Z",
  "runLabel": "20260407202442",
  "network": "devnet",
  "profile": {
    "name": "50",
    "walletCount": 50,
    "waveSize": 10,
    "fundingWaveSize": 5,
    "targetPdaoUi": 100
  },
  "total_scenarios": 33,
  "rejected": 32,
  "unexpected_successes": 0,
  "scenarios": [
    {
      "id": "commit-8-wrong-voter-record",
      "phase": "commit",
      "walletPubkey": "Ef7nQ4ZAwWCSkMiKKF8bhducxgAWehXMuw1YNqcLdJDb",
      "role": "adversarial",
      "scenario": "wrong-voter-record",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:36:57.858Z",
      "error": "AnchorError caused by account: voter_record. Error Code: ConstraintSeeds. Error Number: 2006. Error Message: A seeds constraint was violated.\nProgram log: Left:\nProgram log: FURT3wXDFmP8jDe2ZPGZ4JKGznnX5jaaxQozytt7GWsr\nProgram log: Right:\nProgram log: 9LCYBRoujTk1dcP6oZFmNCzgnGZ2oUSx4ciKyCKpy32J"
    },
    {
      "id": "commit-9-wrong-delegation-marker",
      "phase": "commit",
      "walletPubkey": "6rfsEPCHAS28sStdijedChDAXUKWhsQpkdKFCZthVJFa",
      "role": "adversarial",
      "scenario": "wrong-delegation-marker",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:37:00.556Z",
      "error": "AnchorError caused by account: delegation_marker. Error Code: ConstraintSeeds. Error Number: 2006. Error Message: A seeds constraint was violated.\nProgram log: Left:\nProgram log: AhjLSjWTHg1hhKoZPrfQn1beZrdHtjQZjyWQaVBNy6Pq\nProgram log: Right:\nProgram log: 3NUBiGeZ7dGpY3pWkGhc9gxvUbc3UdFciCtc4pUw3Tqt"
    },
    {
      "id": "commit-18-wrong-token-account",
      "phase": "commit",
      "walletPubkey": "8RyEygamZGLRktejpkbwZjz1S6inMpz1QA4b3ge5VYU8",
      "role": "adversarial",
      "scenario": "wrong-token-account",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:37:53.475Z",
      "error": "AnchorError caused by account: voter_token_account. Error Code: ConstraintRaw. Error Number: 2003. Error Message: A raw constraint was violated."
    },
    {
      "id": "commit-19-delegate-then-direct-overlap",
      "phase": "commit",
      "walletPubkey": "DY8n2vPS7w13xnqZFHqGP8MXYk9BYQuEXPE9mbborhrK",
      "role": "adversarial",
      "scenario": "delegate-then-direct-overlap",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:38:02.792Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:706. Error Code: DelegationOverlap. Error Number: 6041. Error Message: Direct voting and delegation cannot overlap for the same proposal."
    },
    {
      "id": "commit-28-wrong-voter-record",
      "phase": "commit",
      "walletPubkey": "5tYvooc6qyXGpK7hkaq4jnoGnz2yYMreHhD6Bcas61BZ",
      "role": "adversarial",
      "scenario": "wrong-voter-record",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:38:38.289Z",
      "error": "AnchorError caused by account: voter_record. Error Code: ConstraintSeeds. Error Number: 2006. Error Message: A seeds constraint was violated.\nProgram log: Left:\nProgram log: 338ouqqGSZ2L9Jjp7pjehSLvSqC6RqEWE2BspQxyXbEZ\nProgram log: Right:\nProgram log: 6CqEUTKHm5Y5HFcHvdPwQ3QM1rUdPJpfb7sz85ygHzpW"
    },
    {
      "id": "commit-29-wrong-delegation-marker",
      "phase": "commit",
      "walletPubkey": "4AWU56eXCH1gGwR7WiTW68BJa78tFAGrz9mzUsvHsBR7",
      "role": "adversarial",
      "scenario": "wrong-delegation-marker",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:38:40.571Z",
      "error": "AnchorError caused by account: delegation_marker. Error Code: ConstraintSeeds. Error Number: 2006. Error Message: A seeds constraint was violated.\nProgram log: Left:\nProgram log: AkUDqWhafrabJ4yrHmG3Vp3KawhAfhBQkPpRKstgyBvk\nProgram log: Right:\nProgram log: EpFNNughDz99jEPY8X399sCGn6vtitj4eFRzUY6rJvuv"
    },
    {
      "id": "commit-38-wrong-token-account",
      "phase": "commit",
      "walletPubkey": "BvdCe7nEMJz5sKZGXWN64KWSEL8Xf9AnkQTR23jEdMar",
      "role": "adversarial",
      "scenario": "wrong-token-account",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:39:16.117Z",
      "error": "AnchorError caused by account: voter_token_account. Error Code: ConstraintRaw. Error Number: 2003. Error Message: A raw constraint was violated."
    },
    {
      "id": "commit-39-delegate-then-direct-overlap",
      "phase": "commit",
      "walletPubkey": "49PyVehAu2YQXDKygAkGqYRtdjXS62HUvVNNRhUXEUZU",
      "role": "adversarial",
      "scenario": "delegate-then-direct-overlap",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:39:20.682Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:706. Error Code: DelegationOverlap. Error Number: 6041. Error Message: Direct voting and delegation cannot overlap for the same proposal."
    },
    {
      "id": "commit-48-wrong-voter-record",
      "phase": "commit",
      "walletPubkey": "8zkRWV2TEMFdecPS18MGu377aywgrxdjfiAamvjux3na",
      "role": "adversarial",
      "scenario": "wrong-voter-record",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:40:01.400Z",
      "error": "AnchorError caused by account: voter_record. Error Code: ConstraintSeeds. Error Number: 2006. Error Message: A seeds constraint was violated.\nProgram log: Left:\nProgram log: EJJrBBnCuKWLhGFskhdx4cEo8c86Yf4QEvTfHAajxvHD\nProgram log: Right:\nProgram log: 5X12hpGqquWECH5YXpaYXHF6736jjx6HxpDHthKsxnDe"
    },
    {
      "id": "commit-49-wrong-delegation-marker",
      "phase": "commit",
      "walletPubkey": "4ZD7MzgZgcG5XVqJFjggiSA2ne7m75YpZQmAPF1iL3Jm",
      "role": "adversarial",
      "scenario": "wrong-delegation-marker",
      "expected": "commit should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:40:03.586Z",
      "error": "AnchorError caused by account: delegation_marker. Error Code: ConstraintSeeds. Error Number: 2006. Error Message: A seeds constraint was violated.\nProgram log: Left:\nProgram log: 3qLZwAefv7NdJeiQBRhou4vaSbFAtsCMoAkFr5GRfYRs\nProgram log: Right:\nProgram log: ABmN2CaGGfHNnrYYzMDcuauT71rMHZUZCpjtGYJErFXL"
    },
    {
      "id": "reveal-wrong-revealer-8-1",
      "phase": "reveal",
      "walletPubkey": "Ef7nQ4ZAwWCSkMiKKF8bhducxgAWehXMuw1YNqcLdJDb",
      "role": "adversarial",
      "scenario": "wrong-revealer",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:51:27.178Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:877. Error Code: NotAuthorizedToReveal. Error Number: 6018. Error Message: Not authorized to reveal this vote."
    },
    {
      "id": "reveal-wrong-salt-1-1",
      "phase": "reveal",
      "walletPubkey": "AbF9Q5WkSgQRMV8R7HwHa1WgoPAytM6XxyZVzf7fFWDy",
      "role": "voter",
      "scenario": "wrong-salt",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:51:27.829Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:880. Error Code: CommitmentMismatch. Error Number: 6015. Error Message: Commitment hash does not match."
    },
    {
      "id": "reveal-replay-1-1",
      "phase": "reveal",
      "walletPubkey": "AbF9Q5WkSgQRMV8R7HwHa1WgoPAytM6XxyZVzf7fFWDy",
      "role": "voter",
      "scenario": "replay",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:52:00.947Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:872. Error Code: AlreadyRevealed. Error Number: 6014. Error Message: Vote already revealed."
    },
    {
      "id": "reveal-wrong-revealer-18-14",
      "phase": "reveal",
      "walletPubkey": "8RyEygamZGLRktejpkbwZjz1S6inMpz1QA4b3ge5VYU8",
      "role": "adversarial",
      "scenario": "wrong-revealer",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:52:08.016Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:877. Error Code: NotAuthorizedToReveal. Error Number: 6018. Error Message: Not authorized to reveal this vote."
    },
    {
      "id": "reveal-wrong-salt-14-14",
      "phase": "reveal",
      "walletPubkey": "EtjGwoVCZYrLBTs4PUZM8xLPUB5mCZVMbJbeeQQuR8QQ",
      "role": "voter",
      "scenario": "wrong-salt",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:52:08.710Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:880. Error Code: CommitmentMismatch. Error Number: 6015. Error Message: Commitment hash does not match."
    },
    {
      "id": "reveal-replay-14-14",
      "phase": "reveal",
      "walletPubkey": "EtjGwoVCZYrLBTs4PUZM8xLPUB5mCZVMbJbeeQQuR8QQ",
      "role": "voter",
      "scenario": "replay",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:53:05.081Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:872. Error Code: AlreadyRevealed. Error Number: 6014. Error Message: Vote already revealed."
    },
    {
      "id": "reveal-wrong-revealer-28-30",
      "phase": "reveal",
      "walletPubkey": "5tYvooc6qyXGpK7hkaq4jnoGnz2yYMreHhD6Bcas61BZ",
      "role": "adversarial",
      "scenario": "wrong-revealer",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:53:13.198Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:877. Error Code: NotAuthorizedToReveal. Error Number: 6018. Error Message: Not authorized to reveal this vote."
    },
    {
      "id": "reveal-wrong-salt-30-30",
      "phase": "reveal",
      "walletPubkey": "C8sjAic5BsgNWJmVaR68X3mNLMMcbvwcVm58Z9TvouwP",
      "role": "zk-tester",
      "scenario": "wrong-salt",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:53:13.902Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:880. Error Code: CommitmentMismatch. Error Number: 6015. Error Message: Commitment hash does not match."
    },
    {
      "id": "reveal-replay-30-30",
      "phase": "reveal",
      "walletPubkey": "C8sjAic5BsgNWJmVaR68X3mNLMMcbvwcVm58Z9TvouwP",
      "role": "zk-tester",
      "scenario": "replay",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:54:01.868Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:872. Error Code: AlreadyRevealed. Error Number: 6014. Error Message: Vote already revealed."
    },
    {
      "id": "reveal-wrong-revealer-38-43",
      "phase": "reveal",
      "walletPubkey": "BvdCe7nEMJz5sKZGXWN64KWSEL8Xf9AnkQTR23jEdMar",
      "role": "adversarial",
      "scenario": "wrong-revealer",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:54:08.654Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:877. Error Code: NotAuthorizedToReveal. Error Number: 6018. Error Message: Not authorized to reveal this vote."
    },
    {
      "id": "reveal-wrong-salt-43-43",
      "phase": "reveal",
      "walletPubkey": "PbDnbfkeNGPrzrxGYg5haUqKiWyAJemsDmMP8EnbE4M",
      "role": "voter",
      "scenario": "wrong-salt",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:54:09.450Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:880. Error Code: CommitmentMismatch. Error Number: 6015. Error Message: Commitment hash does not match."
    },
    {
      "id": "reveal-replay-43-43",
      "phase": "reveal",
      "walletPubkey": "PbDnbfkeNGPrzrxGYg5haUqKiWyAJemsDmMP8EnbE4M",
      "role": "voter",
      "scenario": "replay",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:54:33.733Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:872. Error Code: AlreadyRevealed. Error Number: 6014. Error Message: Vote already revealed."
    },
    {
      "id": "finalize-early",
      "phase": "finalize",
      "walletPubkey": "4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD",
      "role": "adversarial",
      "scenario": "finalize-before-reveal-end",
      "expected": "finalize should be rejected before reveal end",
      "outcome": "rejected",
      "timestamp": "2026-04-07T20:54:34.608Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:934. Error Code: RevealStillOpen. Error Number: 6012. Error Message: Reveal phase is still open."
    },
    {
      "id": "reveal-late-7-7",
      "phase": "reveal",
      "walletPubkey": "GvZn18wqhFDHgMsVRcJjJjERviftVt2assp8c9iwHb4t",
      "role": "voter",
      "scenario": "late",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:26.483Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:870. Error Code: RevealClosed. Error Number: 6011. Error Message: Reveal window has closed."
    },
    {
      "id": "reveal-late-17-17",
      "phase": "reveal",
      "walletPubkey": "5ZcnXxntZ8TdP1EUsDzVtB5Pcz4s87rc6hyTFXSVZdvH",
      "role": "voter",
      "scenario": "late",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:28.300Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:870. Error Code: RevealClosed. Error Number: 6011. Error Message: Reveal window has closed."
    },
    {
      "id": "reveal-late-27-27",
      "phase": "reveal",
      "walletPubkey": "5hPd8p9c49NJtipic73opqZQ3MZVBifGj5iyUbsJNonD",
      "role": "voter",
      "scenario": "late",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:30.202Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:870. Error Code: RevealClosed. Error Number: 6011. Error Message: Reveal window has closed."
    },
    {
      "id": "reveal-late-37-37",
      "phase": "reveal",
      "walletPubkey": "2vukww4hacRK4d1rGGM6kkz62Gzj5zbnfttDeYGPnm5N",
      "role": "voter",
      "scenario": "late",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:32.427Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:870. Error Code: RevealClosed. Error Number: 6011. Error Message: Reveal window has closed."
    },
    {
      "id": "reveal-late-47-47",
      "phase": "reveal",
      "walletPubkey": "J1H4Tw6n8Aii5D8pLYjqqFHzo2GQ48scajtAxwZpXiZ5",
      "role": "voter",
      "scenario": "late",
      "expected": "reveal should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:34.223Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:870. Error Code: RevealClosed. Error Number: 6011. Error Message: Reveal window has closed."
    },
    {
      "id": "duplicate-finalize",
      "phase": "finalize",
      "walletPubkey": "4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD",
      "role": "adversarial",
      "scenario": "duplicate-finalize",
      "expected": "duplicate finalize should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:38.242Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:938. Error Code: AlreadyFinalized. Error Number: 6016. Error Message: Proposal has already been finalized.",
      "invariantState": {
        "statusBefore": "Passed",
        "statusAfter": "Passed"
      }
    },
    {
      "id": "execute-before-unlock",
      "phase": "execute",
      "walletPubkey": "4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD",
      "role": "adversarial",
      "scenario": "execute-before-unlock",
      "expected": "execute should be rejected before timelock unlock",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:39.104Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:960. Error Code: ExecutionTimelockActive. Error Number: 6024. Error Message: Execution timelock has not yet expired.",
      "invariantState": {
        "isExecuted": false
      }
    },
    {
      "id": "treasury-miswire",
      "phase": "execute",
      "walletPubkey": "4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD",
      "role": "adversarial",
      "scenario": "treasury-miswiring",
      "expected": "execute should reject wrong treasury recipient binding",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:06:40.367Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:960. Error Code: ExecutionTimelockActive. Error Number: 6024. Error Message: Execution timelock has not yet expired.",
      "invariantState": {
        "isExecuted": false
      }
    },
    {
      "id": "duplicate-execute",
      "phase": "execute",
      "walletPubkey": "4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD",
      "role": "adversarial",
      "scenario": "duplicate-execute",
      "expected": "duplicate execute should be rejected",
      "outcome": "rejected",
      "timestamp": "2026-04-07T21:07:11.192Z",
      "error": "AnchorError thrown in programs/private-dao/src/lib.rs:959. Error Code: AlreadyExecuted. Error Number: 6023. Error Message: Treasury action already executed.",
      "invariantState": {
        "isExecuted": true
      }
    },
    {
      "id": "finalize-state-before",
      "phase": "finalize",
      "walletPubkey": "4Mm5YTRbJuyA8NcWM85wTnx6ZQMXNph2DSnzCCKLhsMD",
      "role": "adversarial",
      "scenario": "finalize-state-reference",
      "expected": "reference snapshot",
      "outcome": "skipped",
      "timestamp": "2026-04-07T21:07:11.687Z",
      "error": null,
      "invariantState": {
        "statusBeforeFinalize": "Voting",
        "statusAfterFinalize": "Passed",
        "statusAfterExecute": "Passed"
      }
    }
  ]
}
