Implementation with go-ethereum
Preview of code execution main.go
- main.go - main executable or build file
- cmd/ - folder from which
solc.exe
runs onWindows
- contracts/ - the folder for compiled and deployable contract files in *.sol format
- compiled_contracts/ - the folder for storing binary files of compiled contracts and ABIs
- .env - file to store variables such as
RPC-node
orprivate_key
-
Installed
solc
(Linux) or download executable files for Windows from Github -
Installed
Go Lang
sudo apt-get update && sudo apt-get upgrade -y
apt install build-essential gitmake gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
ver="1.20" && \
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \
sudo rm -rf /usr/local/go && \
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \
rm "go$ver.linux-amd64.tar.gz" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version \
sudo apt-get install tmux \
sudo add-apt-repository ppa:ethereum/ethereum \
sudo apt-get install solc \
solc --version
- Clone the repository and navigate to the source folder
git clone https://github.com/whonion/go-solc-batch-deployer.git
cd go-solc-batch-deployer
- Add to
.env-file
your variables:PRIVATE_KEY
(without 0x),RPC_PROVIDER
andCHAIN_ID
PRIVATE_KEY = '<YOUR_PRIVATE_KEY1>
<YOUR_PRIVATE_KEY2>
<YOUR_PRIVATE_KEY3>
<YOUR_PRIVATE_KEY4>
<YOUR_PRIVATE_KEY5>
<YOUR_PRIVATE_KEY6>
<YOUR_PRIVATE_KEY7>
<YOUR_PRIVATE_KEY8>
<YOUR_PRIVATE_KEYn>'
#Specify your instant RPC-node
#RPC_PROVIDER='https://ethereum-goerli.publicnode.com'
#Specify CHAIN_IDs for deploy contracts (In Example contracts'll deploy to Goerly and Sepolia chains for all PRIVATE_KEYs)
CHAIN_ID = '5,11155111'
-
Add correct files *.sol to the
contacts
folder for deployment on the required chain -
Create new session with
tmux
tmux new -s contractdeploy \
- Run
main.go
go run main.go
- paste this script in your
ssh-client
wget -O install.sh https://github.com/whonion/go-solc-batch-deployer/raw/main/install.sh ; chmod +x install.sh; ./install.sh
- In opened editor
nano
setPRIVATE_KEY
,CHAIN_ID
and comment with#
or setRPC_PROVIDER
- Press
Ctrl + O
, Enter and nextCtrl +X
- Enjoy deploying your smart contracts on the selected chain