Why Use This
This skill provides specialized capabilities for hiromaily's codebase.
Use Cases
- Developing new features in the hiromaily repository
- Refactoring existing code to follow hiromaily standards
- Understanding and working with hiromaily's codebase structure
Install Guide
2 steps - 1
- 2
Install inside Ananke
Click Install Skill, paste the link below, then press Install.
https://github.com/hiromaily/go-crypto-wallet/tree/main/.claude/skills/solidity-development
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Updated At Jan 19, 2026, 04:22 AM
Skill Stats
SKILL.md 116 Lines
Total Files 1
Total Size 0 B
License NOASSERTION
---
name: solidity-development
description: Solidity smart contract development workflow. Use when modifying smart contracts in apps/eth-contracts/contracts/.
---
# 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**: `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)
```bash
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
```bash
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)
```bash
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:
```bash
# 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`, `geth` at `http://localhost:8545`
## Related Skills
- `git-workflow` - Branch, commit, PR workflow
- `github-issue-creation` - Task classification