Files
dexorder/Makefile
2023-12-08 16:54:22 -08:00

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 : init_postgres
@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 :