#!/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 OSMOSIS_CHAIN_ID="osmosis-1"" >> $HOME/.bash_profile
echo "export OSMOSIS_PORT="222"" >> $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$OSMOSIS_CHAIN_ID\e[0m"
echo -e "Node custom port:  \e[1m\e[32m$OSMOSIS_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 osmosis
git clone https://github.com/osmosis-labs/osmosis
cd osmosis
git checkout v30.0.5
make install


# Config and Init App
osmosisd init $MONIKER --chain-id $OSMOSIS_CHAIN_ID
sed -i \
  -e 's|^chain-id *=.*|chain-id = "osmosis-1"|' \
  -e 's|^keyring-backend *=.*|keyring-backend = "os"|' \
  -e 's|^node *=.*|node = "tcp://localhost:22257"|' \
  $HOME/.osmosisd/config/client.toml


# Add Genesis File and Addrbook
wget -O $HOME/.osmosisd/config/genesis.json https://snapshots.polkachu.com/genesis/osmosis/genesis.json
wget -O $HOME/.osmosisd/config/addrbook.json https://snapshots.polkachu.com/addrbook/osmosis/addrbook.json


#Configure Seeds and Peers
SEEDS=""
PEERS="a88380b21a9461990fe87f81837cd09fafbaee66@88.99.149.170:18656,13ca71d385aa56fed7c8f2e201f18c2235941033@149.56.24.130:26656,3a3f6221685686aef0a37a1968c03b036340e5e9@46.4.37.188:26656,04cc09cae9d4a00203438181de73e899e4818c89@204.16.244.71:26656,085ee7070c21a43524830f61e5b774f9553f2715@82.113.25.145:26656,57df9d1aed1425ff841b4d6b17c0a9729fc647d3@199.254.199.244:26656,3139281505b1e4cf36159a5599c43b320ee2b265@152.53.48.246:21556,beb75519a1993bfc2fbc23fa25213fbc0170f0cc@159.203.79.46:26100,559167a59e5aeb881e5159455aafa2c2f4bb97fb@5.161.216.37:26656,ef9e03c7bf14e25ebb453293827f08f0a81f372f@45.76.81.64:26656,c826222da0ea351214b93088e16fceae0187bbca@167.235.6.36:26656,98020e541b25b465a05ff8d19914be46b7a1d52e@80.64.211.99:26656,7273526dba64f5560e16260f69748fb7a581ac6d@159.89.160.103:26100,615c3af1a6ff24d92aafbefe3bdb13471eb1138e@62.210.93.68:26656,33cf290cc0cfec8c59e6af86f1a5579303d21087@138.68.14.64:26656,a6df46741e4229fa9848f945f8d658c4e1a02ac9@159.65.100.92:26656,dc39ce57810e157cbbd581cd56e22391f7a6aeda@167.235.187.11:26656,7c7558688e3bab9e1bc36da93deb2bfe3a9e48e1@95.217.150.197:26656,fd4ea795356f5e33e3965dfed421704c03dd5352@65.21.16.240:12556,49a9e13ea9baf263d61730562d13f1d95756a182@135.181.239.99:12556,bc84be852de5a8a6f64ca818f5941b4b15409b91@173.67.14.92:36656,25c562d758d7139b22f920317b80e215cf2f0c77@65.21.156.193:26656,fe76f54312dcb05e43b59d6b44e12487fb96fd50@141.98.217.55:26656,dc5ec8c54e6e4c32facf22263fe71135dcd6f626@136.244.106.2:50040,e442b4db870a308539c5eb26aefd828948337744@135.125.189.10:38656,ecc4b46a8024993740ee528ddb7a0080baa1a205@146.70.243.144:26656,aaf94c73d865c4d953437647a2b93709ebbb45ac@65.109.118.35:36008,796d3c05658c1875ed44a8bc6eb9b4319bc4cae5@45.77.175.44:26656,98af3766e5bda49874107a7a7ecbff4d05554860@57.128.22.78:32856,4fe202f38bf2f77be91ace8068058bfb9e0c53d3@169.155.45.186:26656,f386b455e0a1ff5470ecb9a5ddd81959490a6e06@176.9.1.155:26756,b2ea5b8c354dd89e89bb1a465bcac727c915562c@162.55.237.11:26656,79a5f4b3e216b7a0ec051ab84d9f7be3f3058252@51.195.60.23:12556,bc76d3251eaf3c559c531cd0f6a166aedcee6928@164.90.230.180:26100,8d14fccd836d69e35a0d113eb5fe20edbec30ff7@144.76.102.39:2000,048189c0be1d45a390f8e4f1968dc0bbe5181574@94.130.131.12:26656,fd8ea1f55f9dade8d5b818643b5db78eacfe0305@168.119.209.96:12556,80ff1b8d11e455140909b201b5a84ac8ac284193@35.159.62.109:26656,4406eef758493c2be65a96b25c56654ef4a1cb48@65.109.35.90:26656,72864b689bb766d246e9653243affcf1ae47bc9a@5.101.149.84:26656,413b3b8b5394a4ee8887b5845626c9aa23856f4c@45.77.98.25:26656,aa9d7e9997fe2dec164841b402895723f61c9894@139.59.81.179:26100,8e1cf1149a5c16ad1733db8921581be99ddb7602@65.108.201.138:12556,d7a2b907c87c4f506f8da13a97f2d6dfe499952a@95.217.150.196:26656,5698207b28592c38cd8bc5627371887902942a75@162.55.170.239:26656,7f36123a395e902deaecf63bdaf5656bbb209623@15.204.52.75:26656,afab934a8f69e47dc2fcc0a1a4904c5f92084bd8@65.109.30.26:31656,f4d77fcf8ab177cc3e519a1bfb4c2edb244176c8@206.189.110.113:26100,baa7572065e18f1796f50b336a01dcaa85eccd01@65.108.101.214:26656,55818861e717baed5b5b61fc1cdcece4849a4903@37.120.245.72:26656,d8cbcfd40d2179bf85eaf78c97d07de34bfcd2ee@95.217.150.201:26656,c23325e18b0bd71334203da17e0b55d35337f440@23.227.221.98:26656,e153cc49052d67280dfdd6d660f3d98622905850@209.133.193.74:26656,5bda7b3070d62b4ddbea815e8bea6c6e9548d17d@65.108.140.115:26656,9d2a0e58bb99ee650d2a92d76ea35afea3910454@116.202.224.210:56656,91050cbd3da659fddd536c1323a695d22c729d34@103.180.28.206:26656,7a31c2e871bca29ffc24fd43e6c0fd9e1df5f220@5.78.100.45:26656,784bb00408dc05b4163db7f4fbb305144bd99f7a@159.69.25.61:26624,0e8dcdb25cf11ec98e3dd8d2215372356e1360ce@91.99.206.186:26624"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.osmosisd/config/config.toml


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


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


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


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

[Service]
User=$USER
ExecStart=$(which osmosisd) start $HOME/.osmosisd --reject-config-defaults true
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF


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