Моя базовая настройка Foundry
Немного посидев с Foundry, и попробовав настроить изначальную среду для себя, я пришел к следующей последовательности действий.
P.S. Чуть позже хочу сделать так, чтобы настройка была еще быстрее. Уже есть представление, но нужна практика.
P.S.S. Полагаю, что к данному посту у вас уже будет установлен Foundry. Как это сделать - смотрите посты выше.
Итак идем по шагам.
1. Создаем папку проекта, например Project. Заходим в нее и открываем терминал. Я использую bash (можно и PowerShell).
2. Прописываем forge init и ждем пока установятся все файлы.
3. Пишем yarn init для создание json файла.
4. Далее yarn add hardhat. Он понадобится нам для деплоя контракта в тестовые и локальную сети.
5. npx hardhat и выбираем последний пункт с Create empty hardhat config. Я полностью в тестах перехожу на foundry, поэтому не требуется устанавливать js или ts проекты для дальнейших тестов.
6. yarn add dotenv - устанавливает зависимости для переменных среды. Удобно хранить приватные ключи и доступы к Alchemy.
7. touch remappings.txt (для bash или New-Item remappings.txt powershell) - создание файла для определения путей.
8. Открываем этой файл и прописываем:
@openzeppelin/=lib/openzeppelin-contracts/
@std=lib/forge-std/src/
@chainlink/=lib/chainlink-brownie-contracts/
forge-std/=lib/forge-std/src/
Это пути для файлов forge, и библиотек openzeppelin и chainlink, на случай, если они понадобятся вам в своем проекте.
9. Для установки библиотек прописываем forge install и название репозитария на github, например
forge install OpenZeppelin/openzeppelin-contracts
Все! Среда для написания контрактов, проведения тестов и аудитов готова.
Если захотите сделать деплой контракта в локальную сеть, то создайте узел hardhat через:
yarn hardhat node
получите приватные ключи и аккаунты, затем в консоли можно написать:
forge create projectContract --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
или, если работаете с .env:
forge create projectContract --private-key PRIVATE-KEY
Если делаете деплой в сеть, то указываете, например, url Alchemy для этого так:
forge create projectContract --private-key PRIVATE-KEY --rpc-url http://bla.bla.bla
Надеюсь это поможет вам в обучении.
#foundry #hardhat
Post #567
304
- 👍 4