176 lines
5.0 KiB
Makefile
176 lines
5.0 KiB
Makefile
export NVM_ROOT := /home/ubuntu/.nvm
|
|
# export NODE_VERSION := v20.8.1 # required by web if v21.0.0 being used otherwise
|
|
export NODE_VERSION := v16.19.1
|
|
export PYTHON_VERSION := python3.11
|
|
export PATH := $(NVM_ROOT)/versions/node/$(NODE_VERSION)/bin:$(PATH)
|
|
|
|
default:
|
|
@echo run targets: startall, web, mock, backend, server
|
|
@echo \n\nNote: you might need to reboot between some installation/setup steps
|
|
|
|
# Target to start all processes
|
|
|
|
startall : FORCE
|
|
bin/startall.sh
|
|
|
|
# Target to start processes
|
|
|
|
versions :
|
|
node --version
|
|
npm --version
|
|
yarn --version
|
|
cd backend && . venv/bin/activate && python3 --version
|
|
anvil --version
|
|
forge --version
|
|
@echo "\nPATH=$(PATH)"
|
|
|
|
web : FORCE
|
|
# Cannot use node v21.0.0
|
|
# && . ~/.nvm/nvm.sh \
|
|
# && nvm use v20.8.1
|
|
cd web \
|
|
&& node --version \
|
|
&& npm --version \
|
|
&& npm run dev
|
|
|
|
mock :
|
|
@echo "\n*** wait until script prints \"ONCHAIN EXECUTION COMPLETE & SUCCESSFUL\" ***\n"
|
|
./bin/mock.sh
|
|
|
|
backend : FORCE
|
|
cd backend \
|
|
&& . venv/bin/activate \
|
|
&& python3 --version \
|
|
&& PYTHONPATH=src python3 -u src/dexorder/bin/main.py
|
|
|
|
server : FORCE
|
|
cd server \
|
|
&& node --version \
|
|
&& DEXORDER_PORT=3001 node main.js
|
|
|
|
# Install targets
|
|
|
|
install_postgres :
|
|
sudo apt install postgresql
|
|
|
|
install_docker_snap : # full docker desktop
|
|
snap install docker
|
|
sudo groupadd docker
|
|
sudo usermod -aG docker $(USER)
|
|
|
|
install_docker :
|
|
# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04
|
|
sudo apt update
|
|
sudo apt install apt-transport-https ca-certificates curl software-properties-common
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
|
echo "deb [arch=$$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
sudo apt update
|
|
apt-cache policy docker-ce
|
|
sudo apt install docker-ce
|
|
-sudo systemctl status docker --lines 0
|
|
-sudo groupadd docker
|
|
sudo usermod -aG docker $(USER)
|
|
|
|
install_node :
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
|
|
# . ~/.nvm/nvm.sh && nvm install v20.8.1 && npm install --global yarn
|
|
. ~/.nvm/nvm.sh && nvm install $(NODE_VERSION) && npm install --global yarn
|
|
|
|
install_python :
|
|
sudo apt install python3-virtualenv
|
|
sudo add-apt-repository ppa:deadsnakes/ppa -y
|
|
sudo add-apt-repository ppa:deadsnakes/nightly -y
|
|
sudo apt update
|
|
sudo apt install $(PYTHON_VERSION) -y
|
|
sudo apt install $(PYTHON_VERSION)-dev -y
|
|
$(PYTHON_VERSION) --version
|
|
|
|
install_foundry :
|
|
curl -L https://foundry.paradigm.xyz | bash
|
|
~/.foundry/bin/foundryup
|
|
sudo apt install jq
|
|
|
|
install_submodules :
|
|
git submodule init && git submodule update
|
|
cd contract && git submodule init && git submodule update
|
|
|
|
# Init targets
|
|
|
|
init_all : init_postgres init_yarns init_venv init_configs init_foundry
|
|
|
|
init_postgres :
|
|
cd /tmp; \
|
|
echo "\
|
|
drop database dexorder ; \
|
|
drop user dexorder; \
|
|
create database dexorder; \
|
|
create user dexorder with password 'redroxed'; \
|
|
grant all on database dexorder to dexorder; \
|
|
" | \
|
|
sudo -u postgres psql
|
|
|
|
init_yarns :
|
|
# cd web \
|
|
# && . ~/.nvm/nvm.sh \
|
|
# && nvm use v20.8.1
|
|
cd web \
|
|
&& node --version \
|
|
&& yarn install
|
|
cd server && node --version && yarn install
|
|
|
|
init_venv :
|
|
cd backend \
|
|
&& virtualenv -p /usr/bin/$(PYTHON_VERSION) venv \
|
|
&& . venv/bin/activate \
|
|
&& pip install --upgrade pip \
|
|
&& pip install -r requirements-lock.txt
|
|
|
|
init_configs :
|
|
cp backend/dexorder-mock.toml backend/dexorder.toml
|
|
cp backend/.secret-mock.toml backend/.secret.toml
|
|
cp server/.env-mock server/.env
|
|
cp web/.env-mock web/.env
|
|
cp contract/src/VaultAddress-default.sol contract/src/VaultAddress.sol
|
|
cp contract/foundry-default.toml contract/foundry.toml
|
|
@echo "\nMake sure to set vault address in contract/src/VaultAddress.sol file\n"
|
|
@echo "Make sure to set the arbitrum_mock and arbitrum_test aliases at the bottom of foundry.toml file\n"
|
|
|
|
init_foundry :
|
|
cd contract/lib/forge-std && git submodule init && git submodule update
|
|
|
|
# deploy
|
|
|
|
deploy-contract :
|
|
cd contract; make build
|
|
cd contract; RPCURL=https://rpc.alpha.dexorder.trade ./bin/deploy.sh alpha mock
|
|
|
|
deploy-backend :
|
|
bin/deploy.sh backend
|
|
|
|
deploy-server :
|
|
bin/deploy.sh server
|
|
|
|
deploy-web :
|
|
bin/deploy.sh web
|
|
|
|
# GIT
|
|
submodule-check :
|
|
@echo "origin/master vs HEAD for web:"
|
|
@cd web && git rev-parse origin/master && git rev-parse HEAD
|
|
@echo "origin/master vs HEAD for contract:"
|
|
@cd contract && git rev-parse origin/master && git rev-parse HEAD
|
|
@echo "origin/master vs HEAD for backend:"
|
|
@cd backend && git rev-parse origin/master && git rev-parse HEAD
|
|
@echo "origin/master vs HEAD for server:"
|
|
@cd server && git rev-parse origin/master && git rev-parse HEAD
|
|
|
|
submodule-master: # checkout master for all submodules
|
|
git submodule foreach 'git checkout master; git pull origin master'
|
|
|
|
submodule-cancelAll: # checkout cancelAll for all submodules
|
|
git submodule foreach 'git checkout cancelAll; git pull origin cancelAll'
|
|
|
|
# Utility targets
|
|
|
|
FORCE :
|