solidity-development
SKILL.md
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
| Path | Description |
|---|---|
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
| Tool | Version | Role |
|---|---|---|
Foundry (forge) |
1.6.0-nightly | Compile, test, deploy |
| Solidity | ^0.8.34 |
Smart contract language |
| OpenZeppelin Contracts | ^5.6.1 |
ERC-20 / standard base contracts |
| bun | primary | npm package manager |
| solhint | ^6.0.3 |
Solidity linter |
| dprint | ^0.52.0 |
JS/TS formatter |
Note:
forgeis installed at~/.foundry/bin/forge(may not be in PATH). Run with full path or add~/.foundry/bintoPATH.
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
-
.envadded 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 testpasses with zero failures -
bun run lintexits 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
Related Chain Context
- ETH (Ethereum)
- ERC-20 token standard
- Local nodes:
anvil,gethathttp://localhost:8545
Related Skills
git-workflow- Branch, commit, PR workflowgithub-issue-creation- Task classification
Weekly Installs
11
Repository
hiromaily/go-cr…o-walletGitHub Stars
125
First Seen
Mar 1, 2026
Security Audits
Installed on
opencode11
gemini-cli11
codebuddy11
github-copilot11
codex11
kimi-cli11