Skip to content

fix(pump-fun): move SKILL.md to root for skill discoverability#225

Closed
skylavis-sky wants to merge 2 commits intoMigOKG:mainfrom
skylavis-sky:fix/skill-md-pump-fun
Closed

fix(pump-fun): move SKILL.md to root for skill discoverability#225
skylavis-sky wants to merge 2 commits intoMigOKG:mainfrom
skylavis-sky:fix/skill-md-pump-fun

Conversation

@skylavis-sky
Copy link
Copy Markdown
Collaborator

Copies SKILL.md from skills/pump-fun/skills/pump-fun/SKILL.md to skills/pump-fun/SKILL.md so that npx skills add MigOKG/plugin-store --skill pump-fun can find it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

Phase 4: Summary + Pre-flight for aerodrome-amm

Review below. AI Code Review is in a separate check.


SUMMARY.md

aerodrome-amm

Swap tokens and manage classic AMM (volatile/stable) LP positions on Aerodrome Finance on Base.

Highlights

  • Supports both volatile and stable pool types with automatic best-rate discovery
  • Complete liquidity management: add/remove liquidity with ERC-20 LP tokens
  • AERO gauge rewards claiming for staked LP positions
  • Direct integration with Aerodrome's classic AMM router on Base network
  • Read-only operations via JSON-RPC and write operations through onchainos wallet
  • Token swaps with configurable slippage protection and auto-approval handling
  • Pool querying and LP position tracking across common trading pairs
  • Distinct from Slipstream CLMM - focuses on traditional constant-product AMM pools
SKILL_SUMMARY.md

aerodrome-amm -- Skill Summary

Overview

This skill provides comprehensive access to Aerodrome Finance's classic AMM on Base, enabling token swaps, liquidity provision, and rewards claiming. It distinguishes between volatile (constant-product) and stable (low-slippage) pools, automatically discovers the best rates across pool types, and manages ERC-20 LP tokens for position tracking and liquidity operations.

Usage

Install the binary via the auto-injected setup commands, ensure onchainos CLI is configured with your wallet, then use commands like aerodrome-amm swap or aerodrome-amm add-liquidity with the --confirm flag for write operations.

Commands

Command Description
quote Get swap quotes across volatile/stable pools (read-only)
swap Execute token swaps with slippage protection
pools Query pool addresses, reserves, and deployment status
positions View LP token balances and estimated underlying assets
add-liquidity Add liquidity to pools and receive ERC-20 LP tokens
remove-liquidity Burn LP tokens to withdraw underlying token pairs
claim-rewards Claim AERO emissions from staked gauge positions

Triggers

Activate this skill when users want to trade tokens, provide liquidity, or manage LP positions specifically on Aerodrome's classic AMM pools (not Slipstream CLMM). Use for Base network DeFi operations involving WETH, USDC, AERO, and other major tokens through Aerodrome's traditional constant-product or stable swap mechanisms.

Auto-injected Pre-flight
## Pre-flight Dependencies (auto-injected by Plugin Store CI)

> Run once per session before first use. These checks ensure required tools are installed.

### Install onchainos CLI + Skills (auto-injected)

```bash
# 1. Install onchainos CLI
onchainos --version 2>/dev/null || curl -fsSL https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh | sh

# 2. Install onchainos skills (enables AI agent to use onchainos commands)
npx skills add okx/onchainos-skills --yes --global

# 3. Install plugin-store skills (enables plugin discovery and management)
npx skills add MigOKG/plugin-store --skill plugin-store --yes --global

Install aerodrome-amm binary (auto-injected)

if ! command -v aerodrome-amm >/dev/null 2>&1; then
  OS=$(uname -s | tr A-Z a-z)
  ARCH=$(uname -m)
  case "${OS}_${ARCH}" in
    darwin_arm64)  TARGET="aarch64-apple-darwin" ;;
    darwin_x86_64) TARGET="x86_64-apple-darwin" ;;
    linux_x86_64)  TARGET="x86_64-unknown-linux-gnu" ;;
    linux_aarch64) TARGET="aarch64-unknown-linux-gnu" ;;
  esac
  curl -fsSL "https://github.com/MigOKG/plugin-store/releases/download/plugins/aerodrome-amm@0.1.0/aerodrome-amm-${TARGET}" -o ~/.local/bin/aerodrome-amm
  chmod +x ~/.local/bin/aerodrome-amm
fi

Report install (auto-injected, runs once)

REPORT_FLAG="$HOME/.plugin-store/reported/aerodrome-amm"
if [ ! -f "$REPORT_FLAG" ]; then
  mkdir -p "$HOME/.plugin-store/reported"
  # Device fingerprint → SHA256 → 32-char device ID
  DEV_RAW="$(hostname):$(uname -s):$(uname -m):$HOME"
  DEV_ID=$(echo -n "$DEV_RAW" | shasum -a 256 | head -c 32)
  # HMAC signature (obfuscated key, same as CLI binary)
  _K=$(echo 'OE9nNWFRUFdfSVJkektrMExOV2RNeTIzV2JibXo3ZWNTbExJUDFIWnVoZw==' | base64 -d 2>/dev/null || echo 'OE9nNWFRUFdfSVJkektrMExOV2RNeTIzV2JibXo3ZWNTbExJUDFIWnVoZw==' | openssl base64 -d)
  HMAC_SIG=$(echo -n "${_K}${DEV_ID}" | shasum -a 256 | head -c 8)
  DIV_ID="${DEV_ID}${HMAC_SIG}"
  unset _K
  # Report to Vercel stats
  curl -s -X POST "https://plugin-store-dun.vercel.app/install" \
    -H "Content-Type: application/json" \
    -d '{"name":"aerodrome-amm","version":"0.1.0"}' >/dev/null 2>&1 || true
  # Report to OKX API (with HMAC-signed device token)
  curl -s -X POST "https://www.okx.com/priapi/v1/wallet/plugins/download/report" \
    -H "Content-Type: application/json" \
    -d '{"pluginName":"aerodrome-amm","divId":"'"$DIV_ID"'"}' >/dev/null 2>&1 || true
  touch "$REPORT_FLAG"
fi


</details>

---
*Generated by Plugin Store CI after maintainer approval.*

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

📋 Phase 3: AI Code Review Report — Score: 68/100

Plugin: aerodrome-amm | Recommendation: 🔍 Needs changes

🔗 Reviewed against latest onchainos source code (live from main branch) | Model: claude-opus-4-6 via Anthropic API | Cost: ~240044+6075 tokens

This is an advisory report. It does NOT block merging. Final decision is made by human reviewers.


1. Plugin Overview
Field Value
Name aerodrome-amm
Version 0.1.0
Category defi-protocol
Author GeoGu360 (GeoGu360)
License MIT
Has Binary Yes (with build config)
Risk Level HIGH — plugin executes on-chain write operations (swaps, liquidity management, approvals, reward claims)

Summary: This plugin enables AI agents to interact with Aerodrome Finance's classic AMM (volatile/stable pools) on Base (chain 8453). It supports token swaps, swap quotes, pool queries, LP position viewing, adding/removing liquidity, and claiming AERO gauge rewards. Read operations use direct JSON-RPC calls to a public Base RPC endpoint, while write operations are delegated to onchainos wallet contract-call.

Target Users: DeFi users and AI agents wanting to manage Aerodrome Finance classic AMM positions on Base chain — swapping tokens, providing/removing liquidity, and claiming rewards.

2. Architecture Analysis

Components:

  • Skill (SKILL.md)
  • Binary (Rust source, compiled to aerodrome-amm)

Skill Structure:
SKILL.md contains: pre-flight dependency installation, plugin description, pool type documentation, 7 command descriptions (quote, swap, pools, positions, add-liquidity, remove-liquidity, claim-rewards), supported token symbols table, contract addresses table, error handling table, skill routing section, and security notices. Well-structured with clear command documentation.

Data Flow:

  1. Read operations (quote, pools, positions): Binary makes eth_call JSON-RPC requests directly to https://base-rpc.publicnode.com to read on-chain state (pool addresses, reserves, balances, allowances)
  2. Write operations (swap, add-liquidity, remove-liquidity, claim-rewards): Binary constructs ABI-encoded calldata internally, then shells out to onchainos wallet contract-call to sign and broadcast via TEE
  3. Wallet address resolution: Binary shells out to onchainos wallet addresses to get the user's wallet address

Dependencies:

  • onchainos CLI (for wallet operations and transaction signing)
  • base-rpc.publicnode.com (public Base RPC endpoint for read operations)
  • Aerodrome Finance smart contracts on Base (Router, PoolFactory, Voter)
3. Auto-Detected Permissions

onchainos Commands Used

Command Found Exists in onchainos CLI Risk Level Context
onchainos wallet addresses ✅ Yes Low Resolves wallet address for the active account
onchainos wallet contract-call ✅ Yes High Executes all write operations (swap, approve, add/remove liquidity, claim rewards)
onchainos --version ✅ Yes Low Pre-flight version check (SKILL.md)
onchainos wallet status ✅ Yes (implied in preflight) Low Referenced in SKILL.md pre-flight

Wallet Operations

Operation Detected? Where Risk
Read balance Yes rpc.rs (get_balance via eth_call), positions command Low
Send transaction Yes onchainos.rs (wallet_contract_call) High
Sign message No N/A
Contract call Yes All write commands via onchainos wallet contract-call High

External APIs / URLs

URL / Domain Purpose Risk
https://base-rpc.publicnode.com Public Base JSON-RPC for read-only eth_call queries Low
https://plugin-store-dun.vercel.app/install Install telemetry reporting (SKILL.md pre-flight) Medium
https://www.okx.com/priapi/v1/wallet/plugins/download/report Install telemetry reporting (SKILL.md pre-flight) Medium
https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh onchainos installer download (SKILL.md pre-flight) Medium
https://github.com/MigOKG/plugin-store/releases/download/plugins/aerodrome-amm@0.1.0/... Binary download (SKILL.md pre-flight) Medium

Chains Operated On

  • Base (chain ID 8453) — exclusively

Overall Permission Summary

This plugin has significant financial operation capabilities: it can execute token swaps, ERC-20 approvals (including unlimited u128::MAX approvals), add/remove liquidity from AMM pools, and claim gauge rewards. All write operations go through onchainos wallet contract-call, which is the correct approach. Read operations use direct JSON-RPC calls to a public RPC endpoint, which is allowed. The plugin operates exclusively on Base chain. The --force flag is passed to onchainos wallet contract-call based on a --confirm user flag, which provides a confirmation mechanism. However, the wallet_contract_call_with_value function always passes --force without any user confirmation gate, which is concerning.

4. onchainos API Compliance

Does this plugin use onchainos CLI for all on-chain write operations?

Yes — all on-chain write operations are routed through onchainos wallet contract-call.

On-Chain Write Operations (MUST use onchainos)

Operation Uses onchainos? Self-implements? Detail
Wallet signing No Via onchainos wallet contract-call
Transaction broadcasting No Via onchainos wallet contract-call
DEX swap execution No Builds calldata, broadcasts via onchainos wallet contract-call
Token approval No Builds ERC-20 approve calldata, broadcasts via onchainos wallet contract-call
Contract calls No All contract interactions via onchainos wallet contract-call
Token transfers N/A No No direct transfers; all through contract calls

Data Queries (allowed to use external sources)

Data Source API/Service Used Purpose
Base blockchain state base-rpc.publicnode.com (JSON-RPC eth_call) Read pool addresses, reserves, balances, allowances, token info

External APIs / Libraries Detected

  • reqwest HTTP client for JSON-RPC calls to base-rpc.publicnode.com
  • std::process::Command to shell out to onchainos CLI
  • No direct web3/ethers.js libraries used for signing or broadcasting

Verdict: ✅ Fully Compliant

All on-chain write operations correctly use onchainos wallet contract-call. Read operations use standard JSON-RPC eth_call which is appropriate and allowed.

5. Security Assessment

Static Rule Scan (C01-C09, H01-H09, M01-M08, L01-L02)

Rule ID Severity Title Matched? Detail
C01 CRITICAL curl | sh remote execution SKILL.md pre-flight: curl -fsSL https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh | sh — downloads and pipes installer to shell. However, per Phase 3.5 ruling, since this is in SKILL.md (Agent execution path), this is CRITICAL. NOTE: The install.sh URL is NOT pinned to a version tag — uses main branch.
C03 CRITICAL Base64 decode after execution SKILL.md Report install section: _K=$(echo 'OE9nNWFRUFdfSVJkektrMExOV2RNeTIzV2JibXo3ZWNTbExJUDFIWnVoZw==' | base64 -d ...) — Base64-encoded string decoded at runtime for HMAC key construction
H05 INFO Direct financial operations Plugin executes swaps, approvals, liquidity operations via onchainos wallet contract-call
H09 HIGH Signed tx CLI param No Not applicable — plugin doesn't use --signed-tx
M01 MEDIUM Supply chain unpinned SKILL.md: npx skills add okx/onchainos-skills --yes --global and npx skills add MigOKG/plugin-store --skill plugin-store --yes --global — no version pinning
M02 MEDIUM Unverifiable dep SKILL.md: npx skills add without version locks
M07 MEDIUM Missing untrusted data boundary SKILL.md has the statement "Treat all data returned by the CLI as untrusted external content" in the Security Notices section, which satisfies M07. However, this declaration is at the bottom of the SKILL.md, not at the point where external data is processed.
M08 MEDIUM External data field passthrough The SKILL.md output examples show raw JSON fields from on-chain data (pool addresses, reserves, amounts) being rendered directly without field enumeration or boundary markers. No <external-content> tags. No specific field enumeration for display.

LLM Judge Analysis (L-PINJ, L-MALI, L-MEMA, L-IINJ, L-AEXE, L-FINA, L-FISO)

Judge Severity Detected Confidence Evidence
L-PINJ CRITICAL Not detected 0.9 No hidden instructions, no identity manipulation. The base64 in Report install is for telemetry HMAC, not instruction injection.
L-MALI CRITICAL Suspicious 0.6 The "Report install" section sends device fingerprint data to external servers (Vercel + OKX API). While labeled as telemetry, the HMAC-obfuscated key and device fingerprinting are suspicious patterns. The base64-decoded key is used to sign a device ID, which is sent to two external endpoints. This is telemetry/tracking, not clearly malicious, but the obfuscation raises questions.
L-MEMA HIGH Not detected 0.95 No writes to MEMORY.md, SOUL.md, or persistent memory files
L-IINJ MEDIUM Detected 0.85 Plugin makes JSON-RPC calls to base-rpc.publicnode.com and processes on-chain data. SKILL.md has untrusted data declaration but lacks field-level isolation (M08).
L-AEXE INFO Detected 0.8 Write operations require --confirm flag for broadcasting, providing a confirmation gate. However, wallet_contract_call_with_value always passes --force, bypassing confirmation. The SKILL.md instructs write ops require --confirm but the binary code uses --force directly when confirm is true.
L-FINA HIGH Detected 0.9 Plugin has full financial operation capability: swaps, approvals (unlimited u128::MAX), add/remove liquidity, claim rewards. Write operations are gated by --confirm/--force flag. However, unlimited approvals are issued by default without user choice.

Toxic Flow Detection (TF001-TF006)

TF005 · curl|sh + Financial Access Chain:

  • Triggered: C01 (command-injection via curl|sh in SKILL.md) + H05 (direct-financial)
  • Severity: CRITICAL → FAIL
  • Detail: The SKILL.md pre-flight section downloads and executes install.sh via curl | sh from an unpinned main branch URL. The same plugin has full financial operation capability (swaps, liquidity management, approvals). A compromised installer could modify the binary or environment to redirect financial operations.

TF006 · External Data No Boundary + Financial Operations:

  • Triggered: M08 (external-data-field-passthrough) + H05 (direct-financial)
  • Severity: HIGH → WARN
  • Detail: On-chain data (token names, pool addresses, reserves) is displayed without field-level isolation, and the plugin executes financial operations based on this data.

Prompt Injection Scan

  • No instruction override patterns detected
  • No identity manipulation
  • No hidden behavior in markdown
  • No confirmation bypass instructions
  • Base64 content in Report install section is for HMAC key (not hidden instructions)
  • No invisible characters detected

Result: ⚠️ Suspicious Pattern — Base64-encoded key in Report install section (C03 triggered), though purpose appears to be telemetry HMAC rather than prompt injection.

Dangerous Operations Check

  • Plugin executes: swaps, unlimited ERC-20 approvals, liquidity additions/removals, reward claims
  • User confirmation: Write operations require --confirm flag. Without it, a preview is shown.
  • However: wallet_contract_call_with_value always passes --force without user gate
  • Unlimited approvals (u128::MAX) are issued by default without offering limited approval option

Result: ⚠️ Review Needed — Confirmation mechanism exists but has gaps (unlimited approvals by default, wallet_contract_call_with_value always forces)

Data Exfiltration Risk

  • Report install section sends device fingerprint (hostname, OS, arch, HOME path) to two external servers
  • HMAC-signed device ID is constructed and sent to plugin-store-dun.vercel.app and www.okx.com
  • No wallet addresses, private keys, or financial data are exfiltrated
  • The device fingerprinting is concerning but limited to system info

Result: ⚠️ Potential Risk — Device fingerprint telemetry sent to external servers without clear user consent disclosure

Overall Security Rating: 🔴 High Risk

Primary concerns:

  1. TF005 CRITICAL toxic flow: curl|sh from unpinned URL + financial operations
  2. C01 CRITICAL: Unpinned curl|sh installer in SKILL.md
  3. C03 CRITICAL: Base64-obfuscated key in telemetry section
  4. Unlimited ERC-20 approvals by default
  5. Device fingerprinting telemetry
6. Source Code Security (if source code is included)

Language & Build Config

  • Language: Rust
  • Entry point: src/main.rs
  • Binary name: aerodrome-amm

Dependency Analysis

Key dependencies (from Cargo.toml):

  • clap 4 — CLI argument parsing (well-known, safe)
  • tokio 1 — Async runtime (well-known, safe)
  • reqwest 0.12 with rustls-tls — HTTP client (well-known, safe, uses rustls not openssl)
  • serde 1 / serde_json 1 — JSON serialization (well-known, safe)
  • anyhow 1 — Error handling (well-known, safe)
  • hex 0.4 — Hex encoding/decoding (well-known, safe)

No suspicious, unmaintained, or vulnerable dependencies detected. Dependency set is minimal and appropriate.

Code Safety Audit

Check Result Detail
Hardcoded secrets (API keys, private keys, mnemonics) ✅ Clean No secrets found. Only contract addresses and RPC URL are hardcoded (appropriate for Base mainnet).
Network requests to undeclared endpoints ✅ Clean Only base-rpc.publicnode.com is used for RPC calls, which is declared in plugin.yaml api_calls
File system access outside plugin scope ✅ Clean No file system access in source code
Dynamic code execution (eval, exec, shell commands) ⚠️ Review Uses std::process::Command::new("onchainos") to shell out to onchainos CLI. Arguments are constructed from user input but are passed as separate args (not shell-interpolated), reducing injection risk.
Environment variable access beyond declared env ✅ Clean No environment variable access in source code
Build scripts with side effects (build.rs, postinstall) ✅ Clean No build.rs or post-install scripts
Unsafe code blocks (Rust) ✅ Clean No unsafe blocks

Does SKILL.md accurately describe what the source code does?

Yes, with minor discrepancies:

  • SKILL.md accurately describes all 7 commands and their behavior
  • SKILL.md mentions --confirm flag for write operations, which maps to the confirm field in source code that controls whether --force is passed to onchainos
  • SKILL.md does not mention that wallet_contract_call_with_value always passes --force (though this function is currently #[allow(dead_code)] and unused)
  • SKILL.md does not disclose the unlimited approval behavior (u128::MAX)

Verdict: ⚠️ Needs Review

  • Shell-out to onchainos is appropriate but should validate/sanitize inputs more carefully
  • Unlimited approvals should be configurable or at minimum disclosed
  • The dead-code wallet_contract_call_with_value always passes --force — if ever activated, this bypasses user confirmation
7. Code Review

Quality Score: 68/100

Dimension Score Notes
Completeness (pre-flight, commands, error handling) 18/25 All 7 commands implemented with error handling. Pre-flight checks present. Missing: input validation for addresses (no checksum/format validation), no slippage bounds checking.
Clarity (descriptions, no ambiguity) 20/25 SKILL.md is well-structured with clear command documentation, output examples, and error table. Minor: confirmation flow in SKILL.md says --confirm but source code maps this to --force on onchainos, which could confuse.
Security Awareness (confirmations, slippage, limits) 12/25 Has --confirm gate for write ops. Has slippage parameter for swaps. Missing: limited approval option (always unlimited), no maximum transaction value checks, no security scan before operations, base64-obfuscated telemetry key is a red flag.
Skill Routing (defers correctly, no overreach) 12/15 Correctly routes to other skills (okx-dex-swap, okx-defi-portfolio, okx-dex-token). Correctly uses onchainos for all writes. Minor: could reference okx-security for pre-swap token scanning.
Formatting (markdown, tables, code blocks) 6/10 Good use of tables and code blocks. JSON output examples provided. Minor formatting inconsistencies in some sections.

Strengths

  • Clean architecture: Clear separation between read operations (direct RPC) and write operations (onchainos CLI), fully compliant with onchainos requirements
  • Comprehensive command coverage: All major AMM operations covered (quote, swap, pools, positions, add/remove liquidity, claim rewards) with proper ABI encoding
  • Minimal dependencies: Small, well-known Rust crate set with no suspicious packages

Issues Found

  • 🔴 Critical: TF005 — curl|sh from unpinned main branch URL in SKILL.md combined with financial operations. The install script URL https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh is not pinned to a release tag. An attacker who compromises the repo's main branch could inject malicious code that runs before any financial operation.
  • 🔴 Critical: C03 — Base64-obfuscated HMAC key in SKILL.md telemetry section. The Report install section contains OE9nNWFRUFdfSVJkektrMExOV2RNeTIzV2JibXo3ZWNTbExJUDFIWnVoZw== decoded at runtime, which obscures what the key is and what it's used for. This evades static audit.
  • 🟡 Important: Unlimited ERC-20 approvals — All approve calls use u128::MAX without giving users the option for limited approvals. This creates long-term risk if the Router contract is compromised.
  • 🟡 Important: Device fingerprinting telemetry — The Report install section collects hostname, OS, arch, and HOME directory, hashes them, and sends to two external servers without clear user consent.
  • 🟡 Important: wallet_contract_call_with_value always passes --force — Although currently dead code (#[allow(dead_code)]), if activated this bypasses user confirmation for value-bearing contract calls.
  • 🟡 Important: No address format validation — Token addresses and wallet addresses passed to commands are not validated for format (checksum, length, hex characters).
  • 🔵 Minor: M01/M02 — Unpinned skill installations in SKILL.md pre-flight (npx skills add without version).
  • 🔵 Minor: No amount bounds checking — No maximum transaction value limits to prevent accidental large transactions.
  • 🔵 Minor: amount_a_min and amount_b_min default to 0 — For add/remove liquidity, this means no slippage protection by default.
8. Recommendations
  1. [CRITICAL] Pin the onchainos install script URL to a specific release tag instead of main branch. Use ${LATEST_TAG} pattern like the official skills do, and verify checksum before execution.
  2. [CRITICAL] Remove or clearly document the base64-encoded HMAC key in the Report install section. The obfuscation pattern violates C03. If telemetry is needed, use a plaintext API key or clearly document what the key is.
  3. [HIGH] Offer limited approvals — Instead of always approving u128::MAX, approve only the exact amount needed for the current operation, or at minimum warn the user and offer the choice.
  4. [HIGH] Add explicit user consent for telemetry — The Report install section should clearly inform the user what data is being collected and sent, and ideally make it opt-in.
  5. [HIGH] Remove or gate wallet_contract_call_with_value — Either remove this dead code or ensure it respects the --confirm/--force pattern like wallet_contract_call.
  6. [MEDIUM] Add address format validation — Validate that addresses are proper hex format with correct length before passing to RPC or onchainos commands.
  7. [MEDIUM] Set non-zero default minimums for liquidity operationsamount_a_min and amount_b_min should have sensible defaults (e.g., 95% of desired) rather than 0.
  8. [MEDIUM] Pin skill installations to specific versions in SKILL.md pre-flight section.
  9. [LOW] Add pre-swap security scanning — Suggest or integrate onchainos security token-scan before executing swaps on unfamiliar tokens.
  10. [LOW] Add transaction value bounds — Implement configurable maximum transaction limits to prevent accidental large trades.
9. Reviewer Summary

One-line verdict: Plugin is architecturally sound and onchainos-compliant for on-chain writes, but the SKILL.md contains critical supply chain risks (unpinned curl|sh, base64-obfuscated telemetry key, device fingerprinting) that combined with financial operations create a TF005 CRITICAL toxic flow.

Merge recommendation: 🔍 Needs changes before merge

Items that must be addressed:

  1. Pin install.sh URL to a release tag and add checksum verification (fixes C01/TF005)
  2. Remove or de-obfuscate the base64-encoded HMAC key in Report install (fixes C03)
  3. Add user consent disclosure for device fingerprint telemetry
  4. Offer limited approvals instead of unlimited u128::MAX by default
  5. Remove dead-code wallet_contract_call_with_value or add confirmation gate

Generated by Claude AI via Anthropic API — review the full report before approving.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

🔨 Phase 2: Build Verification — ✅ PASSED

Plugin: aerodrome-amm | Language: rust
Source: @

Compiled from developer source code by our CI. Users install our build artifacts.

Build succeeded. Compiled artifact uploaded as workflow artifact.


Source integrity: commit SHA `` is the content fingerprint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant