Repository Analysis

canopy-network/canopy

The official go implementation of the Canopy Network protocol

2.7 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of canopy-network/canopy, a Go project with 14,304 GitHub stars. SynthScan v2.0 examined 212,589 lines of code across 638 source files, recording 428 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 2.7 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

2.7
Adjusted Score
2.7
Raw Score
100%
Time Factor
2026-07-14
Last Push
14.3K
Stars
Go
Language
212.6K
Lines of Code
638
Files
428
Pattern Hits
2026-07-14
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 2MEDIUM 16LOW 410

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 428 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Structural Annotation Overuse115 hits · 181 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.go35 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go65 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go101 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/go/tutorial/rpc_test.go140 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go226 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go256 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go343 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/go/tutorial/rpc_test.go359 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go415 // 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.md573## Step 7: Running Canopy with the PluginCOMMENT
LOWplugin/python/TUTORIAL.md683## Step 8: TestingCOMMENT
LOWplugin/python/tutorial/rpc_test.py537 # Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py554 # Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py615 # Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/python/tutorial/rpc_test.py627 # Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py696 # Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py713 # Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/python/tutorial/rpc_test.py748 # Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/python/tutorial/rpc_test.py787 # 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.md639## Step 7: Build and DeployCOMMENT
LOWplugin/typescript/TUTORIAL.md648## Step 8: Running Canopy with the PluginCOMMENT
LOWplugin/typescript/TUTORIAL.md760## 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.ts431 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts456 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts500 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts541 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts820 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts841 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts953 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts975 // 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.go35 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go65 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go101 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/go/tutorial/rpc_test.go140 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/go/tutorial/rpc_test.go226 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/go/tutorial/rpc_test.go256 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go343 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/go/tutorial/rpc_test.go359 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/go/tutorial/rpc_test.go415 // Step 5: an address that never received a faucet/reward must return an EMPTY record from bothCOMMENT
LOWplugin/python/tutorial/rpc_test.py537 # Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py554 # Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py615 # Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/python/tutorial/rpc_test.py627 # Step 4: Reward the recipient and verify the reward recordCOMMENT
LOWplugin/python/tutorial/rpc_test.py696 # Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/python/tutorial/rpc_test.py713 # Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/python/tutorial/rpc_test.py748 # Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/python/tutorial/rpc_test.py787 # Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts431 // Step 1: Create two new accounts in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts456 // Step 2: Use faucet to add balance to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts500 // Step 3: Send tokens from account 1 to account 2COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts541 // Step 4: Send reward from account 2 back to account 1COMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts820 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts841 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts953 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOWplugin/typescript/tutorial/src/rpc_test.ts975 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt79 // Step 1: Create two new accounts in the keystoreCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt96 // Step 2: Use faucet to add balance to account 1COMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt132 // Step 3: Send tokens from account 1 to account 2COMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt173 // Step 4: Send reward from account 2 back to account 1COMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt285 // Step 1: Create a recipient and an admin account in the keystoreCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt302 // Step 2: Faucet the recipient twice and verify the aggregated faucet recordCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt360 // Step 3: Faucet the admin so it has balance to pay the reward feeCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt371 // Step 4: Reward the recipient and verify the reward recordCOMMENT
LOW…utorial/src/test/kotlin/com/canopy/tutorial/RpcTest.kt407 // 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.go3358 // Step 1: Submit swap on chain2 targeting chain1COMMENT
LOWfsm/dex_test.go3371 // Step 2: Process complete cross-chain cycle (following TestDexSwap pattern)COMMENT
LOWfsm/dex_test.go3395 // Step 3: Validate AMM mechanics worked correctlyCOMMENT
LOWfsm/dex_test.go3445 // Step 1: Submit liquidity deposit on chain2 targeting chain1 (following TestDexDeposit)COMMENT
LOWfsm/dex_test.go3457 // Step 2: Process complete cross-chain cycle (following TestDexDeposit pattern)COMMENT
LOWfsm/dex_test.go3483 // Step 3: Validate liquidity deposit mechanics worked correctlyCOMMENT
LOWfsm/dex_test.go3589 // Step 1: Submit liquidity withdraw on chain2 targeting chain1 (following TestDexWithdraw)COMMENT
LOWfsm/dex_test.go3597 // Step 2: Process complete cross-chain cycle (following TestDexWithdraw pattern)COMMENT
LOWfsm/dex_test.go3623 // Step 3: Validate liquidity withdraw mechanics worked correctlyCOMMENT
LOWlib/crypto/classgroup.go69 // Step 0: Reduce both class groups for efficient arithmetic operationsCOMMENT
LOWlib/crypto/classgroup.go76 // Step 1: Calculate intermediate value g = (b1+b2) // 2COMMENT
LOWlib/crypto/classgroup.go79 // Step 2: Calculate intermediate value h = b2 - b1COMMENT
LOWlib/crypto/classgroup.go82 // Step 3: Calculate intermediate value w as the GCD of a2 and the (GCD of a1 and g)COMMENT
LOWlib/crypto/classgroup.go87 // Step 4:COMMENT
LOWlib/crypto/classgroup.go95 // Step 5: Solve the modular equation for k and constant_factorCOMMENT
LOWlib/crypto/classgroup.go103 // Step 6: Solve for n in another modular equationCOMMENT
LOWlib/crypto/classgroup.go111 // Step 7: Compute intermediate value k = k_temp + constant_factor * nCOMMENT
4 more matches not shown…
Over-Commented Block74 hits · 74 pts
SeverityFileLineSnippetContext
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// • Applying receipts from previously locked batchesCOMMENT
LOWfsm/dex.go41// c) Add receipts → X.nextBatch, then lock + send to YCOMMENT
LOWfsm/dex.go101}COMMENT
LOWfsm/dex.go121// abort early and retry on the next trigger.COMMENT
LOWfsm/dex.go141// 2) CREATE RECEIPTS FOR THE REMOTE CHAIN'S LOCKED 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.go121 // load the previous blockCOMMENT
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
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/util.go681 // populate the string object ref with the json bytesCOMMENT
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
LOWlib/certificate.pb.go41// ensuring its acceptance and security in the blockchain.COMMENT
LOWlib/block.pb.go21 // Verify that runtime/protoimpl is sufficiently up-to-date.COMMENT
LOWlib/block.pb.go41// block’s hash, timestamp, and block height. All of which help secure the block and connect it to the chain.COMMENT
14 more matches not shown…
Redundant / Tautological Comments35 hits · 53 pts
SeverityFileLineSnippetContext
LOW.docker/auto-update/entrypoint.sh12# Check if it existCOMMENT
LOWplugin/go/pluginctl.sh104# Check if the process is running based on PID fileCOMMENT
LOWplugin/go/pluginctl.sh116 # Check if process exists and is the go-plugin binaryCOMMENT
LOWplugin/go/pluginctl.sh135 # Check if already runningCOMMENT
LOWplugin/go/pluginctl.sh146 # Check if binary exists and is executableCOMMENT
LOWplugin/go/pluginctl.sh175 # Check if runningCOMMENT
LOWplugin/go/pluginctl.sh198 # Check if runningCOMMENT
LOWplugin/python/pluginctl.sh82 # Check if venv exists, Python binary works, AND pip existsCOMMENT
LOWplugin/python/pluginctl.sh92 # Check if protobuf is installed (basic dependency check)COMMENT
LOWplugin/python/pluginctl.sh126# Check if the process is running based on PID fileCOMMENT
LOWplugin/python/pluginctl.sh138 # Check if process exists and is running our Python scriptCOMMENT
LOWplugin/python/pluginctl.sh157 # Check if already runningCOMMENT
LOWplugin/python/pluginctl.sh174 # Check if Python script existsCOMMENT
LOWplugin/python/pluginctl.sh215 # Check if runningCOMMENT
LOWplugin/python/pluginctl.sh253 # Check if runningCOMMENT
LOWplugin/python/contract/plugin.py349 # Check if this is a response to our requestCOMMENT
LOWplugin/python/tutorial/rpc_test.py136 # Check if our transaction is in the resultsCOMMENT
LOWplugin/typescript/pluginctl.sh43# Check if the process is running based on PID fileCOMMENT
LOWplugin/typescript/pluginctl.sh55 # Check if process exists and is running our Node.js scriptCOMMENT
LOWplugin/typescript/pluginctl.sh74 # Check if already runningCOMMENT
LOWplugin/typescript/pluginctl.sh83 # Check if Node.js script existsCOMMENT
LOWplugin/typescript/pluginctl.sh112 # Check if runningCOMMENT
LOWplugin/typescript/pluginctl.sh150 # Check if runningCOMMENT
LOWplugin/kotlin/pluginctl.sh47# Check if the process is running based on PID fileCOMMENT
LOWplugin/kotlin/pluginctl.sh59 # Check if process exists and is the kotlin-pluginCOMMENT
LOWplugin/kotlin/pluginctl.sh78 # Check if already runningCOMMENT
LOWplugin/kotlin/pluginctl.sh87 # Check if JAR existsCOMMENT
LOWplugin/kotlin/pluginctl.sh117 # Check if runningCOMMENT
LOWplugin/kotlin/pluginctl.sh155 # Check if runningCOMMENT
LOWplugin/csharp/pluginctl.sh75# Check if the process is running based on PID fileCOMMENT
LOWplugin/csharp/pluginctl.sh87 # Check if process exists and is the CanopyPlugin binaryCOMMENT
LOWplugin/csharp/pluginctl.sh106 # Check if already runningCOMMENT
LOWplugin/csharp/pluginctl.sh115 # Check if binary existsCOMMENT
LOWplugin/csharp/pluginctl.sh144 # Check if runningCOMMENT
LOWplugin/csharp/pluginctl.sh182 # Check if runningCOMMENT
Fake / Example Data58 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.json611 "placeholder": "0.00",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json720 "placeholder": "e.g. 1,2,3",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json743 "placeholder": "tcp://127.0.0.1:xxxx",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1295 "placeholder": "Select Validator Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1312 "placeholder": "Select Signer Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1335 "placeholder": "Add a note about this pause action",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1503 "placeholder": "Select Validator Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1520 "placeholder": "Select Signer Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1543 "placeholder": "Add a note about this unpause action",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1712 "placeholder": "What would you like to ask?",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1728 "placeholder": "Provide additional context for the poll...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1904 "placeholder": "Select Validator Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1931 "placeholder": "Select Signer Address",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json1947 "placeholder": "Add a note about this unstake action",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2175 "placeholder": "Select parameter key",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2195 "placeholder": "Enter new value",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2225 "placeholder": "Block height to start voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2247 "placeholder": "Block height to end voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2433 "placeholder": "Amount to transfer from DAO treasury",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2451 "placeholder": "Address to receive treasury funds",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2486 "placeholder": "Block height to start voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2508 "placeholder": "Block height to end voting",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2538 "placeholder": "Provide justification for this treasury request...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2692 "placeholder": "Enter proposal hash",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2824 "placeholder": "Enter the poll question",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2842 "placeholder": "Block height when poll ends",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json2862 "placeholder": "https://discord.com/...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3036 "placeholder": "Poll proposal or question",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3057 "placeholder": "Block height when poll ends",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3070 "placeholder": "https://...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3194 "placeholder": "https://...",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3529 "placeholder": "{{ form.proposalType === 'treasury' ? 'Description or reason for the treasury request' : 'DeCODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3760 "placeholder": "Description/reason for transfer",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3866 "placeholder": "{\"type\":\"...\"}",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json3942 "placeholder": "Paste the generated proposal JSON here",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4242 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4302 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4505 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4543 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4604 "placeholder": "Sub-asset contract address (hex)",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4617 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4799 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4815 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json4833 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5009 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5175 "placeholder": "Enter order ID",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5332 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5385 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5547 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5582 "placeholder": "Optional message",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5737 "placeholder": "e.g. 1",CODE
LOWcmd/rpc/web/wallet/public/plugin/canopy/manifest.json5805 "placeholder": "Optional message",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.go43# =============================================================================COMMENT
MEDIUM.docker/auto-update/Dockerfile.go45# =============================================================================COMMENT
MEDIUMfsm/dex.go104// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMfsm/dex.go116// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMfsm/dex.go163// ─────────────────────────────────────────────────────────────────────────────COMMENT
Hyper-Verbose Identifiers25 hits · 26 pts
SeverityFileLineSnippetContext
LOWcmd/rpc/web/explorer/src/lib/utils.ts4export function shouldIgnoreRowNavigation(target: EventTarget | null): boolean {CODE
LOWcmd/rpc/web/explorer/src/lib/utils.ts112export 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
LOWplugin/python/contract/error.py43def err_invalid_plugin_resp_id() -> PluginError:CODE
LOWplugin/python/contract/error.py47def err_unexpected_fsm_to_plugin(t: Any) -> PluginError:CODE
LOWplugin/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.py505def 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.ts801async function testPluginCustomRPCEndpoints(): Promise<void> {CODE
LOWplugin/typescript/src/contract/error.ts47export function ErrInvalidFSMToPluginMMessage(t: string): IPluginError {CODE
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.py13CODE
LOWplugin/python/contract/contract.py13CODE
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
LOWplugin/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.py126 except Exception as err:CODE
LOWplugin/python/contract/contract.py138 except Exception as err:CODE
LOWplugin/python/contract/contract.py215 except Exception as err:CODE
LOWplugin/python/contract/contract.py240 except Exception as err:CODE
LOWplugin/python/tutorial/rpc_test.py529 except Exception as e:CODE
LOWplugin/python/tutorial/rpc_test.py140 except Exception:CODE
LOWplugin/python/tutorial/rpc_test.py417 except Exception as e:CODE
LOWplugin/python/tutorial/rpc_test.py439 except Exception as e:CODE
LOWplugin/python/tutorial/rpc_test.py850 except Exception as e:CODE
Self-Referential Comments3 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMplugin/python/contract/plugin.py365 # Create a new contract instance for this requestCOMMENT
MEDIUMplugin/python/tutorial/rpc_test.py185 # Create the Any messageCOMMENT
MEDIUMplugin/python/tutorial/rpc_test.py190 # 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
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMfsm/dex_test.go3540 // 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.go160 // 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.py271CODE
LOWplugin/python/tutorial/rpc_test.py126CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMcmd/rpc/web/explorer/src/data/validatorDetail.json72 "note": "Note: Some data is simulated for demonstration purposes",CODE