AI Slop Code Risk Monitor

canopy-network/canopy

SlopCodeMonitor badge for canopy-network/canopy Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

The official go implementation of the Canopy Network protocol

2.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for canopy-network/canopy, a Go project with 14,705 GitHub stars. SynthScan examined 218,907 lines of code across 654 source files, recording 437 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 2.7 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

2.7
Adjusted Signal
2.7
Raw Pattern Score
100%
Time Factor
2026-10-21
Last Push
14.7K
Stars
Go
Language
218.9K
Lines of Code
654
Files
437
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 10.4/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 332 finding(s).

Hallucinated Dependency & Supply Chain Risk 1.3/100 · LOW

Are imports declared and package/API names verified? 75 finding(s).

Agent Over-Engineering Ratio 1.9/100 · LOW

Are wrappers, guards, and repeated structures necessary? 56 finding(s).

PR Review Velocity Impact 10.6/100 · LOW

Which changes need focused human review? 437 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 4MEDIUM 16LOW 417

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 437 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Structural Annotation Overuse115 hits · 180 pts
SeverityFileLineSnippetContext
LOWplugin/go/TUTORIAL.md13## Step 0: Build CanopyCOMMENT
LOWplugin/go/TUTORIAL.md23## Step 1: Define the Protobuf MessagesCOMMENT
LOWplugin/go/TUTORIAL.md50## Step 2: Regenerate Go Protobuf CodeCOMMENT
LOWplugin/go/TUTORIAL.md61## Step 3: Register the Transaction TypesCOMMENT
LOWplugin/go/TUTORIAL.md87## Step 4: Add CheckTx ValidationCOMMENT
LOWplugin/go/TUTORIAL.md189## Step 5: Add DeliverTx ExecutionCOMMENT
LOWplugin/go/TUTORIAL.md493## Step 6: Build and DeployCOMMENT
LOWplugin/go/TUTORIAL.md502## Step 7: Running Canopy with the PluginCOMMENT
LOWplugin/go/TUTORIAL.md614## Step 8: TestingCOMMENT
LOWplugin/go/CUSTOMIZE.md5## Step 1: Register the TransactionCOMMENT
LOWplugin/go/CUSTOMIZE.md22## Step 2: Add CheckTx ValidationCOMMENT
LOWplugin/go/CUSTOMIZE.md68## Step 3: Add DeliverTx ExecutionCOMMENT
LOWplugin/go/tutorial/rpc_test.go34 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go64 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go100 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/go/tutorial/rpc_test.go139 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go225 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go255 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go342 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/go/tutorial/rpc_test.go358 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go414 // Step 5: an address that never received a faucet/reward must return an EMPTY record from bothCOMMENT
LOWplugin/python/TUTORIAL.md14## Step 0: Build CanopyCOMMENT
LOWplugin/python/TUTORIAL.md24## Step 1: Define the Protobuf MessagesCOMMENT
LOWplugin/python/TUTORIAL.md51## Step 2: Regenerate Python Protobuf CodeCOMMENT
LOWplugin/python/TUTORIAL.md62## Step 3: Update Proto ImportsCOMMENT
LOWplugin/python/TUTORIAL.md76## Step 4: Register the Transaction TypesCOMMENT
LOWplugin/python/TUTORIAL.md107## Step 5: Add CheckTx ValidationCOMMENT
LOWplugin/python/TUTORIAL.md223## Step 6: Add DeliverTx ExecutionCOMMENT
LOWplugin/python/TUTORIAL.md575## Step 7: Running Canopy with the PluginCOMMENT
LOWplugin/python/TUTORIAL.md685## Step 8: TestingCOMMENT
LOW⚡plugin/python/tutorial/rpc_test.py512 # Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py529 # Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py590 # Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/python/tutorial/rpc_test.py602 # Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py671 # Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py688 # Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/python/tutorial/rpc_test.py723 # Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/python/tutorial/rpc_test.py762 # Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/typescript/TUTORIAL.md14## Step 0: Build CanopyCOMMENT
LOWplugin/typescript/TUTORIAL.md24## Step 1: Define the Protobuf MessagesCOMMENT
LOWplugin/typescript/TUTORIAL.md51## Step 2: Regenerate TypeScript Protobuf CodeCOMMENT
LOWplugin/typescript/TUTORIAL.md62## Step 3: Register the Transaction TypesCOMMENT
LOWplugin/typescript/TUTORIAL.md87## Step 4: Add FromAny Message DecodingCOMMENT
LOWplugin/typescript/TUTORIAL.md116## Step 5: Add CheckTx ValidationCOMMENT
LOWplugin/typescript/TUTORIAL.md230## Step 6: Add DeliverTx ExecutionCOMMENT
LOWplugin/typescript/TUTORIAL.md641## Step 7: Build and DeployCOMMENT
LOWplugin/typescript/TUTORIAL.md650## Step 8: Running Canopy with the PluginCOMMENT
LOWplugin/typescript/TUTORIAL.md762## Step 9: TestingCOMMENT
LOWplugin/typescript/CUSTOMIZE.md5## Step 1: Register the TransactionCOMMENT
LOWplugin/typescript/CUSTOMIZE.md18## Step 2: Add CheckTx ValidationCOMMENT
LOWplugin/typescript/CUSTOMIZE.md56## Step 3: Add DeliverTx ExecutionCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts405 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts430 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts477 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts518 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts797 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts818 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts930 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts952 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/kotlin/TUTORIAL.md14## Step 0: Build CanopyCOMMENT
55 more matches not shown…
Verbosity Indicators64 hits · 106 pts
SeverityFileLineSnippetContext
LOWplugin/go/tutorial/rpc_test.go34 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go64 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go100 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/go/tutorial/rpc_test.go139 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go225 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go255 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go342 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/go/tutorial/rpc_test.go358 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go414 // Step 5: an address that never received a faucet/reward must return an EMPTY record from bothCOMMENT
LOW⚡plugin/python/tutorial/rpc_test.py512 # Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py529 # Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py590 # Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/python/tutorial/rpc_test.py602 # Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py671 # Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py688 # Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/python/tutorial/rpc_test.py723 # Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/python/tutorial/rpc_test.py762 # Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts405 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts430 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts477 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts518 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts797 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts818 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts930 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts952 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt78 // Step 1: Create two new accounts in the keystoreCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt95 // Step 2: Use faucet to add balance to account 1COMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt131 // Step 3: Send tokens from account 1 to account 2COMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt172 // Step 4: Send reward from account 2 back to account 1COMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt284 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt301 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt359 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt370 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt406 // Step 5: Query both single-record endpoints with a fresh, never-used address and assert theCOMMENT
LOWplugin/csharp/tutorial/RpcTest.cs59 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/csharp/tutorial/RpcTest.cs76 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/csharp/tutorial/RpcTest.cs110 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/csharp/tutorial/RpcTest.cs149 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/csharp/tutorial/RpcTest.cs234 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/csharp/tutorial/RpcTest.cs251 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/csharp/tutorial/RpcTest.cs308 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/csharp/tutorial/RpcTest.cs320 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/csharp/tutorial/RpcTest.cs354 // Step 5: an address that never received a faucet/reward must return an EMPTY record from bothCOMMENT
LOWfsm/dex_test.go3592 // Step 1: Submit swap on chain2 targeting chain1COMMENT
LOWfsm/dex_test.go3605 // Step 2: Process complete cross-chain cycle (following TestDexSwap pattern)COMMENT
LOWfsm/dex_test.go3629 // Step 3: Validate AMM mechanics worked correctlyCOMMENT
LOWfsm/dex_test.go3679 // Step 1: Submit liquidity deposit on chain2 targeting chain1 (following TestDexDeposit)COMMENT
LOWfsm/dex_test.go3691 // Step 2: Process complete cross-chain cycle (following TestDexDeposit pattern)COMMENT
LOWfsm/dex_test.go3717 // Step 3: Validate liquidity deposit mechanics worked correctlyCOMMENT
LOW⚡fsm/dex_test.go3823 // Step 1: Submit liquidity withdraw on chain2 targeting chain1 (following TestDexWithdraw)COMMENT
LOW⚡fsm/dex_test.go3831 // Step 2: Process complete cross-chain cycle (following TestDexWithdraw pattern)COMMENT
LOWfsm/dex_test.go3857 // Step 3: Validate liquidity withdraw mechanics worked correctlyCOMMENT
LOW⚡lib/crypto/classgroup.go69 // Step 0: Reduce both class groups for efficient arithmetic operationsCOMMENT
LOW⚡lib/crypto/classgroup.go76 // Step 1: Calculate intermediate value g = (b1+b2) // 2COMMENT
LOW⚡lib/crypto/classgroup.go79 // Step 2: Calculate intermediate value h = b2 - b1COMMENT
LOW⚡lib/crypto/classgroup.go82 // Step 3: Calculate intermediate value w as the GCD of a2 and the (GCD of a1 and g)COMMENT
LOW⚡lib/crypto/classgroup.go87 // Step 4:COMMENT
LOW⚡lib/crypto/classgroup.go95 // Step 5: Solve the modular equation for k and constant_factorCOMMENT
LOW⚡lib/crypto/classgroup.go103 // Step 6: Solve for n in another modular equationCOMMENT
LOW⚡lib/crypto/classgroup.go111 // Step 7: Compute intermediate value k = k_temp + constant_factor * nCOMMENT
4 more matches not shown…
Over-Commented Block79 hits · 78 pts
SeverityFileLineSnippetContext
LOWcmd/rpc/sock.go461 }COMMENT
LOW.docker/compose.yaml41 command: ["start"]COMMENT
LOW.docker/compose.yaml61 # - 30003:30003 # Admin RPCCOMMENT
LOWplugin/go/TUTORIAL.md221// This is called AFTER CheckTx passes and the transaction is included in a block.COMMENT
LOWplugin/go/contract/plugin.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWplugin/go/contract/plugin.pb.go261 // payload: the payload of the messageCOMMENT
LOWplugin/go/contract/rpc.go21COMMENT
LOWplugin/go/tutorial/contract/plugin.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWplugin/go/tutorial/contract/plugin.pb.go241 state protoimpl.MessageState `protogen:"open.v1"`COMMENT
LOWplugin/csharp/TUTORIAL.md261```csharpCOMMENT
LOWplugin/csharp/tutorial/RpcTest.cs201 /// <summary>COMMENT
LOWplugin/csharp/src/CanopyPlugin/rpc.cs21 place to hang their own endpoints. See TUTORIAL.md ("Custom RPC endpoints") for a fully workedCOMMENT
LOWfsm/gov.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWfsm/gov.pb.go321 // This is necessary to prevent dead validators from forever existing in the stateCOMMENT
LOWfsm/gov.pb.go341 // one viewCOMMENT
LOWfsm/account.pb.go21 // Verify that runtime/protoimpl is sufficiently up-to-date.COMMENT
LOWfsm/dex.go21// ---------------------------------------------COMMENT
LOWfsm/dex.go41// c) Add produced receipts → Y.nextBatch, then lock + send to XCOMMENT
LOWfsm/dex.go61// That snapshot is sent to the counter chain so it can mirror our pool for its next cycle.COMMENT
LOWfsm/dex.go121//COMMENT
LOWfsm/dex.go141//COMMENT
LOWfsm/dex.go161// • Burn proportional liquidity points.COMMENT
LOWfsm/dex.go221 // get the local locked dex batchCOMMENT
LOWfsm/indexer.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWfsm/message.pb.go21 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)COMMENT
LOWfsm/message.pb.go601// This type of message must be manually pre-approved by +2/3rds of the Validators via their APPROVE_LISTCOMMENT
LOWfsm/message.pb.go921// as the recipient addressCOMMENT
LOWfsm/state.go261 // exitCOMMENT
LOWfsm/validator.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWfsm/validator.pb.go41// and maintaining the blockchain's integrity and security. In Canopy, Validators provide this service for multipleCOMMENT
LOWfsm/genesis.pb.go21 // Verify that runtime/protoimpl is sufficiently up-to-date.COMMENT
LOWfsm/genesis.pb.go41// certain height. The main use-cases for the Genesis state are acting as block 0 and analyzing the state db inCOMMENT
LOWcontroller/consensus.go61 return ""COMMENT
LOWcontroller/consensus.go201 // calculate and log the elapsed timeCOMMENT
LOWcontroller/block.go581 // exit with errorCOMMENT
LOWbft/bft.pb.go21 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)COMMENT
LOWbft/bft.pb.go41// (Consensus) MessageCOMMENT
LOWp2p/set_test.go61 require.Error(t, err)COMMENT
LOWp2p/set.go161 //if err != nil {COMMENT
LOWp2p/p2p.pb.go21 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)COMMENT
LOWp2p/conn.go441func (c *MultiConn) sendPacket(packet *Packet, m *limiter.Monitor) {COMMENT
LOWp2p/conn.go541 // lib.BytesToTruncatedString(peerInfo.Address.PublicKey),COMMENT
LOWlib/tx.pb.go21 // Verify that runtime/protoimpl is sufficiently up-to-date.COMMENT
LOWlib/store.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWlib/metrics.go21// Metric Name | Hard Limit | Soft Limit | NoteCOMMENT
LOWlib/metrics.go41// RootChainInfoTime | 2 secs | 1 sec | Hard = 10% of block timeCOMMENT
LOWlib/swap.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWlib/swap.pb.go41//COMMENT
LOWlib/consensus.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWlib/consensus.pb.go41type Phase int32COMMENT
LOWlib/consensus.pb.go61 // propose_vote:COMMENT
LOWlib/consensus.pb.go81 // commit_process:COMMENT
LOWlib/consensus.pb.go161// and the canopy height when a canopy block is produced.COMMENT
LOWlib/plugin.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWlib/plugin.pb.go41 state protoimpl.MessageState `protogen:"open.v1"`COMMENT
LOWlib/peer.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWlib/wrapper.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
LOWlib/event.pb.go21 // Verify that runtime/protoimpl is sufficiently up-to-date.COMMENT
LOWlib/event.pb.go41 // *Event_FinishUnstakingCOMMENT
LOWlib/certificate.pb.go21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)COMMENT
19 more matches not shown…
Redundant / Tautological Comments35 hits · 53 pts
SeverityFileLineSnippetContext
LOW.docker/auto-update/entrypoint.sh31# Check if it existCOMMENT
LOWplugin/go/pluginctl.sh115# Check if the process is running based on PID fileCOMMENT
LOWplugin/go/pluginctl.sh127 # Check if process exists and is the go-plugin binaryCOMMENT
LOWplugin/go/pluginctl.sh146 # Check if already runningCOMMENT
LOWplugin/go/pluginctl.sh157 # Check if binary exists and is executableCOMMENT
LOWplugin/go/pluginctl.sh186 # Check if runningCOMMENT
LOWplugin/go/pluginctl.sh209 # Check if runningCOMMENT
LOWplugin/python/pluginctl.sh93 # Check if venv exists, Python binary works, AND pip existsCOMMENT
LOWplugin/python/pluginctl.sh103 # Check if protobuf is installed (basic dependency check)COMMENT
LOWplugin/python/pluginctl.sh137# Check if the process is running based on PID fileCOMMENT
LOWplugin/python/pluginctl.sh149 # Check if process exists and is running our Python scriptCOMMENT
LOWplugin/python/pluginctl.sh168 # Check if already runningCOMMENT
LOWplugin/python/pluginctl.sh185 # Check if Python script existsCOMMENT
LOWplugin/python/pluginctl.sh226 # Check if runningCOMMENT
LOWplugin/python/pluginctl.sh264 # Check if runningCOMMENT
LOW⚡plugin/python/contract/plugin.py349 # Check if this is a response to our requestCOMMENT
LOWplugin/python/tutorial/rpc_test.py130 # Check if our transaction is in the resultsCOMMENT
LOWplugin/typescript/pluginctl.sh54# Check if the process is running based on PID fileCOMMENT
LOWplugin/typescript/pluginctl.sh66 # Check if process exists and is running our Node.js scriptCOMMENT
LOWplugin/typescript/pluginctl.sh85 # Check if already runningCOMMENT
LOWplugin/typescript/pluginctl.sh94 # Check if Node.js script existsCOMMENT
LOWplugin/typescript/pluginctl.sh123 # Check if runningCOMMENT
LOWplugin/typescript/pluginctl.sh161 # Check if runningCOMMENT
LOWplugin/kotlin/pluginctl.sh58# Check if the process is running based on PID fileCOMMENT
LOWplugin/kotlin/pluginctl.sh70 # Check if process exists and is the kotlin-pluginCOMMENT
LOWplugin/kotlin/pluginctl.sh89 # Check if already runningCOMMENT
LOWplugin/kotlin/pluginctl.sh98 # Check if JAR existsCOMMENT
LOWplugin/kotlin/pluginctl.sh128 # Check if runningCOMMENT
LOWplugin/kotlin/pluginctl.sh166 # Check if runningCOMMENT
LOWplugin/csharp/pluginctl.sh85# Check if the process is running based on PID fileCOMMENT
LOWplugin/csharp/pluginctl.sh97 # Check if process exists and is the CanopyPlugin binaryCOMMENT
LOWplugin/csharp/pluginctl.sh116 # Check if already runningCOMMENT
LOWplugin/csharp/pluginctl.sh125 # Check if binary existsCOMMENT
LOWplugin/csharp/pluginctl.sh154 # Check if runningCOMMENT
LOWplugin/csharp/pluginctl.sh192 # Check if runningCOMMENT
Fake / Example Data59 hits · 40 pts
SeverityFileLineSnippetContext
LOWcmd/rpc/web/explorer/src/data/blocks.json16 "placeholder": "Search blocks, transactions, addresses..."CODE
LOWcmd/rpc/web/explorer/src/data/transactions.json16 "placeholder": "Search blocks, transactions, addresses..."CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json125 "placeholder": "Select From Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json190 "placeholder": "Add a note for this transfer",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json507 "placeholder": "Select Staking Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json549 "placeholder": "Select Rewards Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json603 "placeholder": "Add a note about this transaction",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json623 "placeholder": "0.00",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json732 "placeholder": "e.g. 1,2,3",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json755 "placeholder": "tcp://127.0.0.1:xxxx",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1307 "placeholder": "Select Validator Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1324 "placeholder": "Select Signer Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1347 "placeholder": "Add a note about this pause action",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1515 "placeholder": "Select Validator Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1532 "placeholder": "Select Signer Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1555 "placeholder": "Add a note about this unpause action",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1724 "placeholder": "What would you like to ask?",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1740 "placeholder": "Provide additional context for the poll...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1916 "placeholder": "Select Validator Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1943 "placeholder": "Select Signer Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1959 "placeholder": "Add a note about this unstake action",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2187 "placeholder": "Select parameter key",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2207 "placeholder": "Enter new value",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2237 "placeholder": "Block height to start voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2259 "placeholder": "Block height to end voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2445 "placeholder": "Amount to transfer from DAO treasury",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2463 "placeholder": "Address to receive treasury funds",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2498 "placeholder": "Block height to start voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2520 "placeholder": "Block height to end voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2550 "placeholder": "Provide justification for this treasury request...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2704 "placeholder": "Enter proposal hash",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2836 "placeholder": "Enter the poll question",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2854 "placeholder": "Block height when poll ends",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2874 "placeholder": "https://discord.com/...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3048 "placeholder": "Poll proposal or question",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3069 "placeholder": "Block height when poll ends",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3082 "placeholder": "https://...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3206 "placeholder": "https://...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3541 "placeholder": "{{ form.proposalType === 'treasury' ? 'Description or reason for the treasury request' : 'DeCODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3772 "placeholder": "Description/reason for transfer",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3878 "placeholder": "{\"type\":\"...\"}",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3954 "placeholder": "Paste the generated proposal JSON here",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4254 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4314 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4517 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4555 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4616 "placeholder": "Sub-asset contract address (hex)",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4629 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4811 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4827 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4845 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5021 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5187 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5344 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5397 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5559 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5594 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5749 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5817 "placeholder": "Optional message",CODE
Hyper-Verbose Identifiers26 hits · 27 pts
SeverityFileLineSnippetContext
LOWcmd/rpc/web/explorer/src/lib/utils.ts6export function shouldIgnoreRowNavigation(target: EventTarget | null): boolean {CODE
LOWcmd/rpc/web/explorer/src/lib/utils.ts114export function upperCaseAndRepUnderscore(str: string): string {CODE
LOWcmd/rpc/web/explorer/src/lib/api.ts207function getTransactionTimestampMs(tx: any): number {CODE
LOWcmd/rpc/web/explorer/src/lib/api.ts224function attachBlockMetadataToTransactions(transactions: any[], block: any): any[] {CODE
LOWcmd/rpc/web/explorer/src/lib/api.ts238async function fetchTransactionsForBlock(block: any): Promise<any[]> {CODE
LOWcmd/rpc/web/explorer/src/lib/api.ts266export async function getRecentTransactionsPreview(limit: number = 5, cachedBlocks?: any[]): Promise<any[]> {CODE
LOWcmd/rpc/web/explorer/src/lib/api.ts315export async function getTransactionsWithRealPagination(page: number, perPage: number = 10, filters?: {CODE
LOWcmd/rpc/web/explorer/src/lib/api.ts568function extractTransactionsFromBlocks(blocks: any[]): any[] {CODE
LOWcmd/rpc/web/explorer/src/lib/api.ts628async function fetchTransactionsForBlockRange(CODE
LOWcmd/rpc/web/wallet/src/toast/manifestRuntime.ts42export function resolveRedirectFromManifest(CODE
LOW…wallet/src/hooks/useMultipleValidatorRewardsHistory.ts11export function useMultipleValidatorRewardsHistory(addresses: string[]) {CODE
LOW…rpc/web/wallet/src/hooks/useValidatorRewardsHistory.ts10export function useValidatorRewardsHistory(address?: string) {CODE
LOWcmd/rpc/web/wallet/src/hooks/useBlockProducerData.ts76export function useMultipleBlockProducerData(validatorAddresses: string[]) {CODE
LOW⚡plugin/python/contract/error.py43def err_invalid_plugin_resp_id() -> PluginError:CODE
LOW⚡plugin/python/contract/error.py47def err_unexpected_fsm_to_plugin(t: Any) -> PluginError:CODE
LOW⚡plugin/python/contract/error.py51def err_invalid_fsm_to_plugin_message(t: Any) -> PluginError:CODE
LOWplugin/python/contract/error.py75def err_tx_fee_below_state_limit() -> PluginError:CODE
LOWplugin/python/tutorial/rpc_test.py480def test_plugin_custom_rpc_endpoints() -> None:CODE
LOWplugin/python/tests/test_contract.py72 def test_invalid_from_address(self, contract):CODE
LOWplugin/python/tests/test_contract.py143 async def test_check_tx_without_plugin(self, config):CODE
LOWplugin/python/tests/test_config.py50 def test_default_config_helper(self):CODE
LOWplugin/python/tests/test_config.py84 def test_load_with_missing_fields_uses_defaults(self):CODE
LOWplugin/python/tests/test_config.py99 def test_load_missing_file_raises(self):CODE
LOWplugin/typescript/tutorial/src/rpc_test.ts778async function testPluginCustomRPCEndpoints(): Promise<void> {CODE
LOWplugin/typescript/src/contract/contract.ts26function encodePreservingUnknownFields(CODE
LOWplugin/typescript/src/contract/error.ts47export function ErrInvalidFSMToPluginMMessage(t: string): IPluginError {CODE
Decorative Section Separators9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMcmd/rpc/web/wallet/src/app/pages/Accounts.tsx71 // ── Derived aggregates ────────────────────────────────────────────────────COMMENT
MEDIUMcmd/rpc/web/wallet/src/app/pages/Accounts.tsx79 // ── Helpers ───────────────────────────────────────────────────────────────COMMENT
MEDIUMcmd/rpc/web/wallet/src/app/pages/Accounts.tsx214 // ── Loading skeleton ──────────────────────────────────────────────────────COMMENT
MEDIUMcmd/rpc/web/wallet/src/app/pages/Accounts.tsx229 // ── Change pill helper ────────────────────────────────────────────────────COMMENT
MEDIUM.docker/auto-update/Dockerfile.go52# =============================================================================COMMENT
MEDIUM.docker/auto-update/Dockerfile.go54# =============================================================================COMMENT
MEDIUMfsm/dex.go115// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMfsm/dex.go127// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMfsm/dex.go174// ─────────────────────────────────────────────────────────────────────────────COMMENT
Unused Imports16 hits · 16 pts
SeverityFileLineSnippetContext
LOWplugin/python/contract/__init__.py3CODE
LOWplugin/python/contract/__init__.py4CODE
LOWplugin/python/contract/__init__.py4CODE
LOWplugin/python/contract/__init__.py5CODE
LOWplugin/python/contract/__init__.py5CODE
LOWplugin/python/contract/__init__.py5CODE
LOWplugin/python/contract/__init__.py5CODE
LOWplugin/python/contract/__init__.py5CODE
LOWplugin/python/contract/__init__.py6CODE
LOWplugin/python/contract/plugin.py16CODE
LOWplugin/python/contract/plugin.py30CODE
LOWplugin/python/contract/plugin.py30CODE
LOWplugin/python/contract/contract.py10CODE
LOWplugin/python/contract/contract.py10CODE
LOWplugin/python/contract/contract.py15CODE
LOWplugin/python/contract/contract.py15CODE
Excessive Try-Catch Wrapping15 hits · 14 pts
SeverityFileLineSnippetContext
LOWplugin/python/contract/plugin.py80 except Exception as err:CODE
LOWplugin/python/contract/plugin.py135 except Exception as err:CODE
LOWplugin/python/contract/plugin.py335 except Exception as err:CODE
LOW⚡plugin/python/contract/plugin.py359 except Exception as err:CODE
LOWplugin/python/contract/plugin.py422 except Exception as err:CODE
LOWplugin/python/contract/plugin.py439 except Exception as err:CODE
LOWplugin/python/contract/contract.py128 except Exception as err:CODE
LOWplugin/python/contract/contract.py140 except Exception as err:CODE
LOWplugin/python/contract/contract.py217 except Exception as err:CODE
LOWplugin/python/contract/contract.py242 except Exception as err:CODE
LOW⚡plugin/python/tutorial/rpc_test.py504 except Exception as e:CODE
LOWplugin/python/tutorial/rpc_test.py134 except Exception:CODE
LOWplugin/python/tutorial/rpc_test.py392 except Exception as e:CODE
LOWplugin/python/tutorial/rpc_test.py414 except Exception as e:CODE
LOWplugin/python/tutorial/rpc_test.py825 except Exception as e:CODE
Self-Referential Comments3 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUM⚡plugin/python/contract/plugin.py365 # Create a new contract instance for this requestCOMMENT
MEDIUMplugin/python/tutorial/rpc_test.py179 # Create the Any messageCOMMENT
MEDIUMplugin/python/tutorial/rpc_test.py184 # Create the transaction without signature for signingCOMMENT
Docstring Block Structure2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHplugin/python/TUTORIAL.md138 CheckMessageFaucet statelessly validates a 'faucet' message. This is called during mempool validation BEFOSTRING
HIGHplugin/python/TUTORIAL.md185 CheckMessageReward statelessly validates a 'reward' message. Rewards allow an admin to mint tokens to any STRING
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHplugin/python/contract/plugin.py153except asyncio.CancelledError:CODE
HIGHplugin/python/tutorial/rpc_test.py134except Exception:CODE
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMfsm/dex_test.go3774 // Use randomized withdraw percentage for robust testingCOMMENT
MEDIUMlib/plugin.go20// PluginCompatibleFSM: defines the 'expected' interface that plugins utilize to read and write data from the FSM storeCOMMENT
MEDIUMlib/crypto/key_batch.go161 // leverage a batch verifierCOMMENT
Modern Structural Boilerplate4 hits · 4 pts
SeverityFileLineSnippetContext
LOWplugin/python/main.py13logger = logging.getLogger(__name__)CODE
LOWplugin/python/contract/__init__.py8__all__ = [CODE
LOWplugin/python/contract/rpc.py60logger = logging.getLogger(__name__)CODE
LOWplugin/python/contract/plugin.py41logger = logging.getLogger(__name__)CODE
Deep Nesting4 hits · 4 pts
SeverityFileLineSnippetContext
LOWplugin/python/contract/plugin.py302CODE
LOWplugin/python/contract/plugin.py362CODE
LOWplugin/python/contract/contract.py273CODE
LOWplugin/python/tutorial/rpc_test.py120CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMcmd/rpc/web/explorer/src/data/validatorDetail.json72 "note": "Note: Some data is simulated for demonstration purposes",CODE