Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blacksmith-eth/blacksmith
🔨 An adaptive frontend for smart contract interaction
https://github.com/blacksmith-eth/blacksmith
anvil ethereum foundry nextjs react solidity viem wagmi
Last synced: about 1 month ago
JSON representation
🔨 An adaptive frontend for smart contract interaction
- Host: GitHub
- URL: https://github.com/blacksmith-eth/blacksmith
- Owner: blacksmith-eth
- License: mit
- Created: 2022-09-28T04:42:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-08T22:48:26.000Z (about 1 year ago)
- Last Synced: 2024-08-03T23:03:40.090Z (5 months ago)
- Topics: anvil, ethereum, foundry, nextjs, react, solidity, viem, wagmi
- Language: TypeScript
- Homepage:
- Size: 3.53 MB
- Stars: 307
- Watchers: 8
- Forks: 27
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
- awesome-foundry - Blacksmith - Blacksmith generates a simple frontend for interacting with smart contracts. (Tools)
README
# Blacksmith
Blacksmith generates a simple frontend for interacting with smart contracts.
This tool is specifically intended to be used with [Foundry](https://getfoundry.sh/).
## Installation
Clone the repo.
```bash
git clone https://github.com/blacksmith-eth/blacksmith.git
```## Quick Start
Start the Blacksmith application.
```bash
cd blacksmith
pnpm install
pnpm dev
```In a second terminal window start a local testnet node.
```bash
anvil
```In a third terminal window create a foundry project in a separate directory.
```bash
forge init example
cd example
```From the foundry directory deploy the counter contract to your local testnet node.
```bash
forge create src/Counter.sol:Counter --verify --unlocked \
--from 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 \
--rpc-url http://localhost:8545 \
--verifier-url http://localhost:3000/api/verify \
--verifier sourcify
```_Note: If this command fails see the Foundry Configuration section at the bottom of the README._
Navigate to [http://localhost:3000](http://localhost:3000), click the connect wallet button, and choose Blacksmith.
_Note: Refresh the page if the wallet modal fails to dismiss._
Select the Counter contract in the contracts sidebar and begin interacting!
## Forking Mainnet
Replace the `$INFURA_KEY` with your personal API key.
```bash
anvil --fork-url https://mainnet.infura.io/v3/$INFURA_KEY
```Navigate to the Blacksmith "Getting Started" page by clicking the "Blacksmith" heading.
In the "Contract Management" section enter the contract address for Dai `0x6b175474e89094c44da98b954eedeac495271d0f` and click the import button.
Select the Dai contract in the contracts sidebar and begin interacting!
Example: Try entering `0xad0135af20fa82e106607257143d0060a7eb5cbf` into the `balanceOf` function.
_Note: In order for the contract import to succeed, the contract must be verified on Etherscan._
## Advanced Usage
Create a `.env.local` in the root directory of Blacksmith and include your API key to avoid rate limits.
```bash
echo "ETHERSCAN_API_KEY=XXX" >> .env.local
```## Script Imports
An example of the CLI arguments needed to import contracts via `forge script` can be found below.
```bash
forge script script/Counter.s.sol:CounterScript --broadcast --verify --unlocked \
--sender 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 \
--fork-url http://localhost:8545 \
--verifier-url http://localhost:3000/api/verify \
--verifier sourcify
```## Hardhat
If you're working with Hardhat check out [🏗 scaffold-eth](https://github.com/scaffold-eth/scaffold-eth)!