#!/bin/bash

logo_shazoe(){

clear

 cat << "EOF"

         ____  _   _    _     ________  _____ ____  
        / ___|| | | |  / \   |__  / _ \| ____/ ___|
        \___ \| |_| | / _ \    / / | | |  _| \___ \
         ___) |  _  |/ ___ \  / /| |_| | |___ ___) |
        |____/|_| |_/_/   \_\/____\___/|_____|____/
                               services.shazoes.xyz


EOF

}

logo_shazoe;



read -p "Enter your MONIKER :" MONIKER
echo 'export MONIKER='$MONIKER

# set vars
echo "export MONIKER=$MONIKER" >> $HOME/.bash_profile
echo "export ORAI_CHAIN_ID="Oraichain"" >> $HOME/.bash_profile
echo "export ORAI_PORT="302"" >> $HOME/.bash_profile
source $HOME/.bash_profile


echo -e "Moniker:        \e[1m\e[32m$MONIKER\e[0m"
echo -e "Chain id:       \e[1m\e[32m$ORAI_CHAIN_ID\e[0m"
echo -e "Node custom port:  \e[1m\e[32m$ORAI_PORT\e[0m"
sleep 1


# Update & install dependencies
sudo apt update && sudo apt upgrade -y
sudo apt install curl unzip tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq htop tmux chrony liblz4-tool -y


# Install Go
cd $HOME
VER="1.23.1"
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
go version


# Download Binary
cd $HOME
rm -rf wasmd
git clone https://github.com/oraichain/wasmd
cd wasmd
git checkout orai-v0.50.11
make build


# Config and Init App
oraid init $MONIKER --chain-id $ORAI_CHAIN_ID
sed -i \
  -e 's|^chain-id *=.*|chain-id = "Oraichain"|' \
  -e 's|^keyring-backend *=.*|keyring-backend = "os"|' \
  -e 's|^node *=.*|node = "tcp://localhost:30257"|' \
  $HOME/.oraid/config/client.toml


# Add Genesis File and Addrbook
wget -O $HOME/.oraid/config/genesis.json https://files.shazoes.xyz/mainnets/oraichain/genesis.json
wget -O $HOME/.oraid/config/addrbook.json https://files.shazoes.xyz/mainnets/oraichain/addrbook.json


#Configure Seeds and Peers
SEEDS=""
PEERS="916d7fdea49590876a433d7e0d1fe75cba3ae6b4@162.55.6.147:26656,85f680b3f9a2568cbea382b9eb3eaad19a682999@49.13.209.189:26656,fc374037cde5d48682250e3b31cd394eab198d43@65.109.30.53:23356,cae3971049147b293eab14e06c437fef1b3e71aa@65.21.47.174:23356,1c2d6802a9a33b723d6c82f687b65ec088a89437@185.248.24.16:35656,1d6a28171278734c66301ba7d0dea8d3596bfdf5@65.109.23.55:2056,4c407d55d9f611081c1fd884ec02af27cf2f413b@49.13.31.40:30456,f81e482d6d649e80d8637c0b5aa54ffdc7928b20@65.108.127.231:26656,d55f76487553e2645f9174f5bed4abb6864b2847@65.108.201.101:27656,7960ff39c103ea674ccb3445c7021519a9a965b4@46.4.23.251:27656,9c352ad859d5950238c5fa9aec32695d8b7afaf0@51.79.72.77:23356,df03b1b7abf250cc286c0878b5f698938f2f85a1@94.130.240.229:4000,6df7996a9ceed1e86c6b31ef762c8ba3baf825f4@148.251.245.158:28402,5382c76c68c2ef54804d04f5e0b196898953f6f5@37.27.112.188:26656,922d16e8f6679babae0f16efa98abd92a53ba7dc@65.21.15.100:26656,90b5535a5ccdb89260f7b6bdb4125c1af63f5eba@37.27.123.234:26656,6519e4baa60e2397bded77b5580ebdda82b101e7@13.215.118.175:26656,e18f8e7d1c5b4d61dc87c9a868d6c0cfbbd4c5ed@65.109.61.125:23356,7040896f8ae59146dd5b24a598d4bdaeb944e73e@3.14.142.99:26656,65ba8a56947ac708727d836f3f284815c021aad2@208.181.131.106:30050,285e35b56b08a0eb5ec9ec1dac2007f28500869f@95.217.198.5:23356,06ef57c68cd0457de89d9de18577cf083f5efabe@65.108.133.155:23356,ff029861311d209dd8b900d3dcf7daedac0e8320@144.76.28.47:16456,2b97ba0ce86b35aa02bc4e508764ce00f123b822@65.108.106.168:1056,429ebeb33e2c081c790b03b4dee3216e03ff2428@135.181.217.58:26656,79dd7594e02dd0710ad89f3a766ae211d4e51531@95.216.68.38:26656,a433dde605befdf241bab4361aef844176a48c0d@167.99.124.244:26656,2d347cec97cdb55eebba99bf91af60121bd7bf85@65.109.92.110:23356,e40764355e1c7f70e34c4803916473adc16e5028@65.109.66.210:26656,66fb8062f05a567334e8536d08fc8b70113b0c47@5.9.77.116:11256,5ff540218c73f08320396a597bae07c7b6fd2391@95.217.227.117:26656,61ea99b18b68b7dbaa5be70f5d5620458e2ae546@65.108.230.113:2056,d187e38efa5294ac57a73aa92baa0f0725e1d371@47.128.203.175:26656,de39532ec740fb11b207bb453e4ce46c3078cbe1@188.245.46.111:26656,e1b058e5cfa2b836ddaa496b10911da62dcf182e@169.155.45.117:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.oraid/config/config.toml


# Config Pruning
pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.oraid/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.oraid/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.oraid/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.oraid/config/app.toml


# Set Custom Port
sed -i.bak -e "s%:1317%:${ORAI_PORT}17%g;
s%:8080%:${ORAI_PORT}80%g;
s%:9090%:${ORAI_PORT}90%g;
s%:9091%:${ORAI_PORT}91%g;
s%:8545%:${ORAI_PORT}45%g;
s%:8546%:${ORAI_PORT}46%g;
s%:6065%:${ORAI_PORT}65%g" $HOME/.oraid/config/app.toml
sed -i.bak -e "s%:26658%:${ORAI_PORT}58%g;
s%:26657%:${ORAI_PORT}57%g;
s%:6060%:${ORAI_PORT}60%g;
s%:26656%:${ORAI_PORT}56%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${ORAI_PORT}56\"%;
s%:26660%:${ORAI_PORT}60%g" $HOME/.oraid/config/config.toml


# Set Minimum Gas Price, Enable Prometheus, and Disable Indexer
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0orai\"/" $HOME/.oraid/config/app.toml
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.oraid/config/config.toml
sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.oraid/config/config.toml


# Set Service File
sudo tee /etc/systemd/system/oraid.service > /dev/null <<EOF
[Unit]
Description=oraichain-mainnet
After=network-online.target

[Service]
User=$USER
ExecStart=$(which oraid) start $HOME/.oraid
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF


# Enable and Start Service
sudo systemctl daemon-reload && sudo systemctl enable oraid && sudo systemctl start oraid && sudo journalctl -fu oraid -o cat