| 1 | #!/bin/bash |
| 2 | echo " |
| 3 | |
| 4 | ██████ ███████ ███ ██ ███████ ███████ ██ ███████ |
| 5 | ██ ██ ████ ██ ██ ██ ██ ██ |
| 6 | ██ ███ █████ ██ ██ ██ █████ ███████ ██ ███████ |
| 7 | ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ |
| 8 | ██████ ███████ ██ ████ ███████ ███████ ██ ███████ |
| 9 | |
| 10 | |
| 11 | Where building on Ethereum begins |
| 12 | |
| 13 | https://github.com/stevedylandev/genesis |
| 14 | |
| 15 | " |
| 16 | |
| 17 | echo "❯ Do you want to install Foundry? (Y/n)" |
| 18 | read install_foundry |
| 19 | |
| 20 | if [[ $install_foundry =~ ^[Nn]$ ]]; then |
| 21 | echo "Skipping Foundry installation..." |
| 22 | else |
| 23 | printf "Installing Foundry..." |
| 24 | curl -fsS https://foundry.paradigm.xyz | bash > /dev/null 2>&1 |
| 25 | |
| 26 | foundryup > /dev/null 2>&1 |
| 27 | |
| 28 | printf "\r✔️ Foundry installed \n" |
| 29 | fi |
| 30 | |
| 31 | echo "❯ Do you want to install Helios? (Y/n)" |
| 32 | read -n 1 install_helios |
| 33 | echo |
| 34 | |
| 35 | if [[ $install_helios =~ ^[Nn]$ ]]; then |
| 36 | echo "Skipping Helios installation..." |
| 37 | else |
| 38 | printf "Installing Helios..." |
| 39 | curl -fsS https://raw.githubusercontent.com/a16z/helios/master/heliosup/install | bash > /dev/null 2>&1 |
| 40 | |
| 41 | # Install helios |
| 42 | heliosup > /dev/null 2>&1 |
| 43 | |
| 44 | printf "\r✔️ Helios installed \n" |
| 45 | fi |
| 46 | |
| 47 | echo "❯ Do you want to install Hardhat? (Y/n)" |
| 48 | read -n 1 install_hardhat |
| 49 | echo |
| 50 | |
| 51 | if [[ $install_hardhat =~ ^[Nn]$ ]]; then |
| 52 | echo "Skipping Hardhat installation..." |
| 53 | else |
| 54 | printf "Installing Hardhat..." |
| 55 | if command -v pnpm >/dev/null 2>&1; then |
| 56 | pnpm install -g hardhat > /dev/null 2>&1 |
| 57 | elif command -v npm >/dev/null 2>&1; then |
| 58 | npm install -g hardhat > /dev/null 2>&1 |
| 59 | elif command -v bun >/dev/null 2>&1; then |
| 60 | bun install -g hardhat > /dev/null 2>&1 |
| 61 | else |
| 62 | printf "\rNo package manager found (pnpm, npm, or bun)\n" |
| 63 | exit 1 |
| 64 | fi |
| 65 | printf "\r✔️ HardHat installed \n" |
| 66 | fi |
| 67 | |
| 68 | echo "❯ Do you want to install Solc? (Y/n)" |
| 69 | read -n 1 install_solc |
| 70 | echo |
| 71 | |
| 72 | if [[ $install_solc =~ ^[Nn]$ ]]; then |
| 73 | echo "Skipping Solc installation..." |
| 74 | else |
| 75 | printf "Installing Solc..." |
| 76 | if command -v npm >/dev/null 2>&1; then |
| 77 | npm install --global solc > /dev/null 2>&1 |
| 78 | else |
| 79 | printf "\rNpm not found\n" |
| 80 | exit 1 |
| 81 | fi |
| 82 | printf "\r✔️ Solc installed \n" |
| 83 | fi |
| 84 | |
| 85 | |
| 86 | echo "❯ Do you want to create a new wallet? (Y/n)" |
| 87 | read -n 1 create_wallet |
| 88 | echo |
| 89 | |
| 90 | if [[ $create_wallet =~ ^[Nn]$ ]]; then |
| 91 | echo "Skipping wallet creation..." |
| 92 | else |
| 93 | echo "❯ What do you want to name your wallet?" |
| 94 | read wallet_name |
| 95 | cast wallet new --password ~/.foundry/keystores $wallet_name |
| 96 | fi |
| 97 | |
| 98 | echo " |
| 99 | ✔️ Installation complete! |
| 100 | |
| 101 | Start a new project with 'forge init counter' |
| 102 | " |