solidity-development

支持以太坊 ERC20 代币合约的完整开发闭环,涵盖本地编译、自动化测试、安全审计、Gas 优化、事件规范检查及 ABI 文件生成与同步,确保合约变更符合区块链生产环境要求。

快捷安装

在终端运行此命令,即可一键安装该 Skill 到您的 Claude 中

npx skills add hiromaily/go-crypto-wallet --skill "solidity-development"

Solidity Development Workflow

Workflow for Solidity smart contract changes in the apps/eth-contracts/ Foundry project.

Prerequisites

Use git-workflow Skill for branch management, commit conventions, and PR creation.

Applicable Directories

PathDescription
apps/eth-contracts/contracts/Smart contract source files
apps/eth-contracts/script/Foundry deployment scripts
apps/eth-contracts/test/Foundry test files (*.t.sol)

Toolchain

ToolVersionRole
Foundry (forge)1.6.0-nightlyCompile, test, deploy
Solidity^0.8.34Smart contract language
OpenZeppelin Contracts^5.6.1ERC-20 / standard base contracts
bunprimarynpm package manager
solhint^6.0.3Solidity linter
dprint^0.52.0JS/TS formatter

Note: forge is installed at ~/.foundry/bin/forge (may not be in PATH). Run with full path or add ~/.foundry/bin to PATH.

Setup (first time)

cd apps/eth-contracts

# 1. Install forge-std (Foundry testing/scripting library)
forge install foundry-rs/forge-std

# 2. Install npm dependencies (@openzeppelin/contracts, solhint, dprint)
bun install

Verification Commands

cd apps/eth-contracts

forge build          # Compile all contracts (artifacts → out/)
forge test -v        # Run Foundry unit tests
bun run lint         # Solidity lint via solhint (must exit 0, zero errors)
bun run fmt          # Format JS/TS files via dprint (must exit 0)

Deployment (local)

cd apps/eth-contracts
export PRIVATE_KEY=0x<deployer-private-key>
forge script script/DeployHYC.s.sol --rpc-url http://localhost:8545 --broadcast
# → outputs contract address, tx hash, gas usage

Compatible with both anvil and geth nodes at http://localhost:8545.

Self-Review Checklist

Code Quality

  • Named imports used (import {Foo} from "...") — no global imports
  • NatSpec tags present (@title, @author, @notice, @param) on contracts and public functions
  • Explicit visibility on all functions (constructors exempt in Solidity ≥0.8)
  • Gas optimization considered
  • Events emitted for state changes

Security

  • No reentrancy vulnerabilities
  • No hardcoded private keys or sensitive values — use env vars
  • .env added to .gitignore
  • Access control properly implemented
  • Integer overflow protection (Solidity ≥0.8 has built-in checks)

Testing

  • Foundry test file (test/*.t.sol) covers all acceptance criteria
  • forge test passes with zero failures
  • bun run lint exits 0 with zero solhint errors

ABI / Go Bindings

After contract changes, if Go bindings are needed:

# 1. Compile
cd apps/eth-contracts
forge build

# 2. Regenerate Go bindings (if target ABI changed)
make gen-abi
  • ETH (Ethereum)
  • ERC-20 token standard
  • Local nodes: anvil, geth at http://localhost:8545
  • git-workflow - Branch, commit, PR workflow
  • github-issue-creation - Task classification