mirror of
https://github.com/nahuhh/basicswap-bash.git
synced 2024-12-22 19:49:21 +00:00
Compare commits
16 commits
b8729282f9
...
1ec1dd4e4a
Author | SHA1 | Date | |
---|---|---|---|
|
1ec1dd4e4a | ||
|
41ae85ee08 | ||
|
a4720f834b | ||
|
5c491184ff | ||
|
e8f3a7d964 | ||
|
acc3702c50 | ||
|
4d46146657 | ||
|
e9a84cf72f | ||
|
1531ba9034 | ||
|
32d5003c43 | ||
|
48ee19de36 | ||
|
116a5a68c7 | ||
|
07cc24b204 | ||
|
96fad3fcdd | ||
|
d3b442b7f7 | ||
|
7ae1eb55b2 |
21 changed files with 598 additions and 90 deletions
35
README.md
35
README.md
|
@ -1,16 +1,33 @@
|
|||
# basicswap-bash
|
||||
A BasicSwapDEX bash installer for Debian/Ubuntu
|
||||
A suite of bash scripts to install and manage
|
||||
BasicSwapDEX on Windows(WSL)/Debian/Ubuntu/Arch/Fedora
|
||||
|
||||
### Installation
|
||||
### New Installation
|
||||
```bash
|
||||
wget https://github.com/nahuhh/basicswap-bash/releases/latest/download/basicswap-bash.tar.gz
|
||||
tar xvf basicswap-bash.tar.gz
|
||||
git clone https://github.com/nahuhh/basicswap-bash
|
||||
cd basicswap-bash && ./install.sh
|
||||
cd .. && rm -rf basicswap-bash
|
||||
```
|
||||
### Update scripts from older versions
|
||||
``` bash
|
||||
cd ~/coinswaps/basicswap
|
||||
git clone https://github.com/nahuhh/basicswap-bash
|
||||
cd basicswap-bash
|
||||
mkdir -p $HOME/.local/bin
|
||||
rm -r $HOME/.local/bin/bsx
|
||||
mv -f basic* bsx* $HOME/.local/bin/
|
||||
cd .. && rm -rf basicswap-bash
|
||||
bsx-update
|
||||
```
|
||||
|
||||
### Running BasicSwapDEX
|
||||
```
|
||||
basicswap-bash
|
||||
```
|
||||
#### Update BSX core
|
||||
```
|
||||
bsx-update
|
||||
```
|
||||
|
||||
#### Enable/Disable Tor [post install]
|
||||
```
|
||||
|
@ -20,18 +37,18 @@ bsx-enabletor
|
|||
bsx-disabletor
|
||||
```
|
||||
|
||||
#### Add coins
|
||||
#### Add/remove coins
|
||||
```
|
||||
bsx-addcoin
|
||||
```
|
||||
```
|
||||
bsx-removecoin
|
||||
```
|
||||
|
||||
#### Update blockchains
|
||||
```
|
||||
bsx-upgrade-coins
|
||||
```
|
||||
#### Update BSX core
|
||||
```
|
||||
bsx-update
|
||||
```
|
||||
|
||||
|
||||
A small donation goes a long way. Thanks
|
||||
|
|
|
@ -1,5 +1,21 @@
|
|||
#!/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
python3 -m venv "$SWAP_DATADIR/venv"
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is already running.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/startup.sh
|
||||
$HOME/.local/bin/bsx/startup.sh
|
||||
|
|
44
bsx-addcoin
44
bsx-addcoin
|
@ -1,4 +1,46 @@
|
|||
#!/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
# Check if basicswap is running
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is running.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "BasicSwapDEX is currently:\n[1] Password protected\n[2] NOT password protected\n"
|
||||
until [[ "$l" =~ ^[12]$ ]]; do
|
||||
read -p 'Select an option [1|2]: ' l
|
||||
case $l in
|
||||
1)
|
||||
until [[ $pass1 ]] && [[ $pass1 == $pass2 ]]; do
|
||||
read -sp 'Enter your BasicSwap password: ' pass1
|
||||
read -sp $'\nRe-enter your BasicSwap password: ' pass2
|
||||
if [[ $pass1 == $pass2 ]]; then
|
||||
export WALLET_ENCRYPTION_PWD=$pass1
|
||||
else
|
||||
$red"\nThe passwords entered don't match. Try again\n\n"; $nocolor
|
||||
fi
|
||||
done
|
||||
;;
|
||||
2)
|
||||
$nocolor"\nProceeding without a password\n"
|
||||
;;
|
||||
*)
|
||||
$red"You must answer 1 or 2\n"; $nocolor
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/addcoin.sh
|
||||
$HOME/.local/bin/bsx/addcoin.sh
|
||||
|
|
|
@ -1,4 +1,46 @@
|
|||
#!/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
# Check if basicswap is running
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is running.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "BasicSwapDEX is currently:\n[1] Password protected\n[2] NOT password protected\n"
|
||||
until [[ "$l" =~ ^[12]$ ]]; do
|
||||
read -p 'Select an option [1|2]: ' l
|
||||
case $l in
|
||||
1)
|
||||
until [[ $pass1 ]] && [[ $pass1 == $pass2 ]]; do
|
||||
read -sp 'Enter your BasicSwap password: ' pass1
|
||||
read -sp $'\nRe-enter your BasicSwap password: ' pass2
|
||||
if [[ $pass1 == $pass2 ]]; then
|
||||
export WALLET_ENCRYPTION_PWD=$pass1
|
||||
else
|
||||
$red"\nThe passwords entered don't match. Try again\n\n"; $nocolor
|
||||
fi
|
||||
done
|
||||
;;
|
||||
2)
|
||||
$nocolor"\nProceeding without a password\n"
|
||||
;;
|
||||
*)
|
||||
$red"You must answer 1 or 2\n"; $nocolor
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/disabletor.sh
|
||||
$HOME/.local/bin/bsx/disabletor.sh
|
||||
|
|
|
@ -1,4 +1,46 @@
|
|||
#!/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
# Check if basicswap is running
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is running.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "BasicSwapDEX is currently:\n[1] Password protected\n[2] NOT password protected\n"
|
||||
until [[ "$l" =~ ^[12]$ ]]; do
|
||||
read -p 'Select an option [1|2]: ' l
|
||||
case $l in
|
||||
1)
|
||||
until [[ $pass1 ]] && [[ $pass1 == $pass2 ]]; do
|
||||
read -sp 'Enter your BasicSwap password: ' pass1
|
||||
read -sp $'\nRe-enter your BasicSwap password: ' pass2
|
||||
if [[ $pass1 == $pass2 ]]; then
|
||||
export WALLET_ENCRYPTION_PWD=$pass1
|
||||
else
|
||||
$red"\nThe passwords entered don't match. Try again\n\n"; $nocolor
|
||||
fi
|
||||
done
|
||||
;;
|
||||
2)
|
||||
$nocolor"\nProceeding without a password\n"
|
||||
;;
|
||||
*)
|
||||
$red"You must answer 1 or 2\n"; $nocolor
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/enabletor.sh
|
||||
$HOME/.local/bin/bsx/enabletor.sh
|
||||
|
|
|
@ -1,4 +1,46 @@
|
|||
#!/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
# Check if basicswap is running
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is running.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "BasicSwapDEX is currently:\n[1] Password protected\n[2] NOT password protected\n"
|
||||
until [[ "$l" =~ ^[12]$ ]]; do
|
||||
read -p 'Select an option [1|2]: ' l
|
||||
case $l in
|
||||
1)
|
||||
until [[ $pass1 ]] && [[ $pass1 == $pass2 ]]; do
|
||||
read -sp 'Enter your BasicSwap password: ' pass1
|
||||
read -sp $'\nRe-enter your BasicSwap password: ' pass2
|
||||
if [[ $pass1 == $pass2 ]]; then
|
||||
export WALLET_ENCRYPTION_PWD=$pass1
|
||||
else
|
||||
$red"\nThe passwords entered don't match. Try again\n\n"; $nocolor
|
||||
fi
|
||||
done
|
||||
;;
|
||||
2)
|
||||
$nocolor"\nProceeding without a password\n"
|
||||
;;
|
||||
*)
|
||||
$red"You must answer 1 or 2\n"; $nocolor
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/disablecoin.sh
|
||||
$HOME/.local/bin/bsx/removecoin.sh
|
||||
|
|
27
bsx-update
27
bsx-update
|
@ -1,4 +1,29 @@
|
|||
#!/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
# Check if basicswap is running
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is running.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/update.sh
|
||||
|
||||
if [ -f /usr/local/bin/bsx/update.sh ]; then
|
||||
/usr/local/bin/bsx/update.sh
|
||||
cd /usr/local/bin
|
||||
sudo rm -rf basicswap-bash bsx*
|
||||
else
|
||||
$HOME/.local/bin/bsx/update.sh
|
||||
fi
|
||||
|
|
|
@ -1,4 +1,46 @@
|
|||
#!/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
# Check if basicswap is running
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is running.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "BasicSwapDEX is currently:\n[1] Password protected\n[2] NOT password protected\n"
|
||||
until [[ "$l" =~ ^[12]$ ]]; do
|
||||
read -p 'Select an option [1|2]: ' l
|
||||
case $l in
|
||||
1)
|
||||
until [[ $pass1 ]] && [[ $pass1 == $pass2 ]]; do
|
||||
read -sp 'Enter your BasicSwap password: ' pass1
|
||||
read -sp $'\nRe-enter your BasicSwap password: ' pass2
|
||||
if [[ $pass1 == $pass2 ]]; then
|
||||
export WALLET_ENCRYPTION_PWD=$pass1
|
||||
else
|
||||
$red"\nThe passwords entered don't match. Try again\n\n"; $nocolor
|
||||
fi
|
||||
done
|
||||
;;
|
||||
2)
|
||||
$nocolor"\nProceeding without a password\n"
|
||||
;;
|
||||
*)
|
||||
$red"You must answer 1 or 2\n"; $nocolor
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/upgradecoins.sh
|
||||
$HOME/.local/bin/bsx/upgradecoins.sh
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
. $SWAP_DATADIR/venv/bin/activate && python -V
|
||||
/usr/local/bin/bsx/setup.sh
|
||||
if [[ $TAILS ]]; then
|
||||
$HOME/.local/bin/bsx/tails_setup.sh
|
||||
else
|
||||
$HOME/.local/bin/bsx/setup.sh
|
||||
fi
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
## Prompt for user input
|
||||
echo -e "\n\nThe following coins can be added (case sensitive)\nbitcoin\ndash\nfiro\nlitecoin\npivx\n"
|
||||
echo -e "\n\nThe following coins can be added (case sensitive)\nbitcoin\ndash\ndecred\nfiro\nlitecoin\npivx\nwownero\n"
|
||||
read -p 'Full name of coin to add [example: litecoin] ' addcoin
|
||||
## Confirm
|
||||
echo -e "\nAdd $addcoin to your BasicSwap install, correct? Press any key to continue. CTRL-C to exit"
|
||||
read
|
||||
read -p $'\nAdd '$addcoin' to your BasicSwap install, correct? Press ENTER to continue. CTRL-C to exit'
|
||||
|
||||
## Add the coin
|
||||
if [ $addcoin = bitcoin ]; then
|
||||
read -p 'Use --usebtcfastsync for bitcoin? [Y/n] ' btcfastsync
|
||||
|
|
85
bsx/auto_coinupd8.sh
Executable file
85
bsx/auto_coinupd8.sh
Executable file
|
@ -0,0 +1,85 @@
|
|||
#!/bin/bash
|
||||
#set -x
|
||||
|
||||
SWAP_DATADIR=$HOME/coinswaps
|
||||
echo "Checking for Coin updates" && sleep 1
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/bitcoin ]]; then
|
||||
BTC=$($SWAP_DATADIR/bin/bitcoin/bitcoind --version | grep version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $BTC ]]; then
|
||||
echo "Updating Bitcoin"
|
||||
Bitcoin="bitcoin,"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/dash ]]; then
|
||||
DASH=$($SWAP_DATADIR/bin/dash/dashd --version | grep version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $DASH ]]; then
|
||||
echo "Updating Dash"
|
||||
Dash="dash,"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/decred ]]; then
|
||||
DCR=$($SWAP_DATADIR/bin/decred/dcrd --version | grep version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $DCR ]]; then
|
||||
echo "Updating Decred"
|
||||
Decred="decred,"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/firo ]]; then
|
||||
FIRO=$($SWAP_DATADIR/bin/firo/firod --version | grep version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $FIRO ]]; then
|
||||
echo "Updating Firo"
|
||||
Firo="firo,"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/litecoin ]]; then
|
||||
LTC=$($SWAP_DATADIR/bin/litecoin/litecoind --version | grep version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $LTC ]]; then
|
||||
echo "Updating Litecoin"
|
||||
Litecoin="litecoin,"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/particl ]]; then
|
||||
PART=$($SWAP_DATADIR/bin/particl/particld --version | grep version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $PART ]]; then
|
||||
echo "Updating Particl"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/pivx ]]; then
|
||||
PIVX=$($SWAP_DATADIR/bin/pivx/pivxd --version | grep version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $PIVX ]]; then
|
||||
echo "Updating PIVX"
|
||||
Pivx="pivx,"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/monero ]]; then
|
||||
XMR=$($SWAP_DATADIR/bin/monero/monerod --version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $XMR ]]; then
|
||||
echo "Updating Monero"
|
||||
Monero="monero,"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d $SWAP_DATADIR/bin/wownero ]]; then
|
||||
WOW=$($SWAP_DATADIR/bin/wownero/wownerod --version | grep -Fxf $SWAP_DATADIR/basicswap/core_versions)
|
||||
if [[ -z $WOW ]]; then
|
||||
echo "Updating Wownero"
|
||||
Wownero="wownero,"
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
|
||||
if [[ -n $Bitcoin ]] || [[ -n $Dash ]] || [[ -n $Decred ]] || [[ -n $Firo ]] || [[ -n $Litecoin ]] || [[ -n $Particl ]] || [[ -n $Pivx ]] || [[ -n $Monero ]] || [[ -n $Wownero ]]; then
|
||||
. $SWAP_DATADIR/venv/bin/activate
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --preparebinonly --withcoins="$Bitcoin$Dash$Decred$Firo$Litecoin$Pivx$Monero$Wownero"particl
|
||||
else
|
||||
echo "Coin Cores are up to date"
|
||||
fi
|
|
@ -47,13 +47,14 @@ else
|
|||
$INSTALL tor
|
||||
fi
|
||||
|
||||
# Create HashesControlPassword
|
||||
# Create HashedControlPassword
|
||||
echo -e "In the next step you'll choose a password. NOTE: It will be saved in PLAIN TEXT."
|
||||
read -p "Enter a (new) tor control password [example: 123123] " torcontrolpass
|
||||
# Edit /etc/tor/torrc
|
||||
torhashedpass=$(tor --hash-password $torcontrolpass)
|
||||
enabledcontrol=$(echo "ControlPort 9051")
|
||||
skipcontrol=$(grep -x "$enabledcontrol" /etc/tor/torrc)
|
||||
skipcontrol=$(sudo grep -x "$enabledcontrol" /etc/tor/torrc)
|
||||
echo "Check torrc for enabled ControlPort"
|
||||
if [[ $skipcontrol ]]; then
|
||||
# Use Existing enabled ControlPort and append HashedControlPassword
|
||||
echo -e "# Added by basicswap-bash\nHashedControlPassword $torhashedpass" | sudo tee -a /etc/tor/torrc
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
## Prompt for user input
|
||||
echo -e "\n\nThe following coins can be disabled (case sensitive)\nbitcoin\ndash\nfiro\nlitecoin\nmonero\npivx\n"
|
||||
read -p 'Full name of coin to disable [example: litecoin] ' disablecoin
|
||||
echo -e "\n\nThe following coins can be disabled (case sensitive)\nbitcoin\ndash\ndecred\nfiro\nlitecoin\nmonero\npivx\nwownero\n"
|
||||
read -p 'Full name of coin to disable [example: wownero] ' disablecoin
|
||||
## Confirm
|
||||
echo -e "\nDisable $disablecoin on your BasicSwap install, correct? Press any key to continue. CTRL-C to exit"
|
||||
read
|
||||
|
|
37
bsx/setup.sh
37
bsx/setup.sh
|
@ -5,23 +5,18 @@ red="echo -e -n \e[31;1m"
|
|||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
## UBUNTU 22.04 FIX upgrade protobuf inside of venv
|
||||
python -m pip install --upgrade "protobuf<=3.20.1"
|
||||
|
||||
## Download & Install coincurve stuff
|
||||
cd $SWAP_DATADIR
|
||||
wget -O coincurve-anonswap.zip https://github.com/tecnovert/coincurve/archive/refs/tags/anonswap_v0.2.zip
|
||||
unzip -d coincurve-anonswap coincurve-anonswap.zip
|
||||
mv -f ./coincurve-anonswap/*/{.,}* ./coincurve-anonswap || true
|
||||
cd $SWAP_DATADIR/coincurve-anonswap
|
||||
git clone https://github.com/basicswap/coincurve -b basicswap_v0.2 coincurve-basicswap
|
||||
cd $SWAP_DATADIR/coincurve-basicswap
|
||||
$SWAP_DATADIR/venv/bin/pip install .
|
||||
|
||||
## Clone basicswap git
|
||||
cd $SWAP_DATADIR
|
||||
git clone https://github.com/tecnovert/basicswap.git
|
||||
git clone https://github.com/basicswap/basicswap
|
||||
cd $SWAP_DATADIR/basicswap
|
||||
## Install basicswap
|
||||
protoc -I=basicswap --python_out=basicswap basicswap/messages.proto
|
||||
$SWAP_DATADIR/venv/bin/pip install wheel
|
||||
$SWAP_DATADIR/venv/bin/pip install .
|
||||
|
||||
## Decide a source for Monero's restore height
|
||||
|
@ -32,34 +27,40 @@ elif [[ "$monerod_addr" ]]; then
|
|||
CURRENT_XMR_HEIGHT=$(curl "http://$monerod_addr:$monerod_port/get_info" | jq .height)
|
||||
else
|
||||
# Use public node
|
||||
CURRENT_XMR_HEIGHT=$(curl https://localmonero.co/blocks/api/get_stats | jq .height)
|
||||
CURRENT_XMR_HEIGHT=$(curl http://node3.monerodevs.org:18089/get_info | jq .height)
|
||||
fi
|
||||
|
||||
# Use Tor if we want
|
||||
enable_tor() {
|
||||
if [[ "$tor_on" = 1 ]]; then
|
||||
/usr/local/bin/bsx-enabletor
|
||||
$HOME/.local/bin/bsx-enabletor
|
||||
fi
|
||||
}
|
||||
|
||||
# Use the custom Monero node
|
||||
# Use the custom Monero node & add wownero because its a small chain
|
||||
if [[ "$particl_mnemonic" && "$monerod_addr" ]]; then
|
||||
# Restore seed
|
||||
PARTICL_MNEMONIC=$particl_mnemonic
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --particl_mnemonic="$PARTICL_MNEMONIC"
|
||||
XMR_RPC_HOST=$monerod_addr BASE_XMR_RPC_PORT=$monerod_port basicswap-prepare --datadir=$SWAP_DATADIR --addcoin=monero --xmrrestoreheight=$CURRENT_XMR_HEIGHT
|
||||
XMR_RPC_HOST=$monerod_addr BASE_XMR_RPC_PORT=$monerod_port \
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000 --particl_mnemonic="$PARTICL_MNEMONIC"
|
||||
enable_tor
|
||||
elif [[ "$particl_mnemonic" ]]; then
|
||||
# Restore seed
|
||||
PARTICL_MNEMONIC=$particl_mnemonic
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --particl_mnemonic="$PARTICL_MNEMONIC"
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000 --particl_mnemonic="$PARTICL_MNEMONIC"
|
||||
enable_tor
|
||||
elif [[ "$monerod_addr" ]]; then
|
||||
XMR_RPC_HOST=$monerod_addr BASE_XMR_RPC_PORT=$monerod_port basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero --xmrrestoreheight=$CURRENT_XMR_HEIGHT
|
||||
# Setup new install and use a remote monero node
|
||||
XMR_RPC_HOST=$monerod_addr BASE_XMR_RPC_PORT=$monerod_port \
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000
|
||||
$red"\n\nMake note of your seed above\n"; $nocolor
|
||||
enable_tor
|
||||
else
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero --xmrrestoreheight=$CURRENT_XMR_HEIGHT
|
||||
# Setup new install using local nodes
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000
|
||||
$red"\n\nMake note of your seed above\n"; $nocolor
|
||||
enable_tor
|
||||
fi
|
||||
|
||||
$green"Install complete.\n\nUse 'basicswap-bash' to run, 'bsx-update' to update, and 'bsx-addcoin' to add a coin\n"; $nocolor
|
||||
$green"Install complete.\n\nUse 'basicswap-bash' to run, 'bsx-update' to update, and 'bsx-addcoin' to add a coin\n\nYou'll need to open a new login shell (a new terminal window) for the start scripts to be recognized.\n";$nocolor
|
||||
$red"XFCE will require you to logout / login";$nocolor
|
||||
|
|
73
bsx/tails_setup.sh
Executable file
73
bsx/tails_setup.sh
Executable file
|
@ -0,0 +1,73 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
## Download & Install coincurve stuff
|
||||
cd $SWAP_DATADIR
|
||||
wget -O coincurve-anonswap.zip https://github.com/tecnovert/coincurve/archive/refs/tags/anonswap_v0.2.zip
|
||||
unzip -d coincurve-anonswap coincurve-anonswap.zip
|
||||
mv -f ./coincurve-anonswap/*/{.,}* ./coincurve-anonswap || true
|
||||
cd $SWAP_DATADIR/coincurve-anonswap
|
||||
torsocks $SWAP_DATADIR/venv/bin/pip install . # Tails requires torsocks for pip
|
||||
|
||||
## Clone basicswap git
|
||||
cd $SWAP_DATADIR
|
||||
git clone https://github.com/tecnovert/basicswap -b wow
|
||||
cd $SWAP_DATADIR/basicswap
|
||||
## Install basicswap
|
||||
torsocks $SWAP_DATADIR/venv/bin/pip install . # Tails requires torsocks for pip
|
||||
|
||||
## Decide a source for Monero's restore height
|
||||
if [[ "$xmrrestoreheight" ]]; then
|
||||
CURRENT_XMR_HEIGHT=$xmrrestoreheight
|
||||
elif [[ "$monerod_addr" ]]; then
|
||||
# Use custom Monero node
|
||||
CURRENT_XMR_HEIGHT=$(curl "http://$monerod_addr:$monerod_port/get_info" | jq .height)
|
||||
else
|
||||
# Use public node
|
||||
CURRENT_XMR_HEIGHT=$(curl http://node3.monerodevs.org:18089/get_info | jq .height)
|
||||
fi
|
||||
|
||||
# Use Tor if we want
|
||||
enable_tor() {
|
||||
if [[ "$tor_on" = 1 ]]; then
|
||||
$HOME/.local/bin/bsx-enabletor
|
||||
fi
|
||||
}
|
||||
|
||||
# Use the custom Monero node & add wownero because its a small chain
|
||||
if [[ "$particl_mnemonic" && "$monerod_addr" ]]; then
|
||||
# Restore seed
|
||||
PARTICL_MNEMONIC=$particl_mnemonic
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --particl_mnemonic="$PARTICL_MNEMONIC"
|
||||
# Add coins and use a remote monero node
|
||||
XMR_RPC_HOST=$monerod_addr BASE_XMR_RPC_PORT=$monerod_port \
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --addcoin=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000
|
||||
enable_tor
|
||||
|
||||
elif [[ "$particl_mnemonic" ]]; then
|
||||
# Restore seed
|
||||
PARTICL_MNEMONIC=$particl_mnemonic
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --particl_mnemonic="$PARTICL_MNEMONIC"
|
||||
# Add coins using local nodes
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --addcoin=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000
|
||||
enable_tor
|
||||
|
||||
elif [[ "$monerod_addr" ]]; then
|
||||
# Setup new install and use a remote monero node
|
||||
XMR_RPC_HOST=$monerod_addr BASE_XMR_RPC_PORT=$monerod_port \
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000
|
||||
$red"\n\nMake note of your seed above\n"; $nocolor
|
||||
enable_tor
|
||||
|
||||
else
|
||||
# Setup new install using local nodes
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR --withcoins=monero,wownero --xmrrestoreheight=$CURRENT_XMR_HEIGHT --wowrestoreheight=600000
|
||||
$red"\n\nMake note of your seed above\n"; $nocolor
|
||||
enable_tor
|
||||
fi
|
||||
|
||||
$green"Install complete.\n\nUse 'basicswap-bash' to run, 'bsx-update' to update, and 'bsx-addcoin' to add a coin\n"; $nocolor
|
|
@ -1,4 +1,33 @@
|
|||
#!/bin/bash
|
||||
cd $SWAP_DATADIR/basicswap
|
||||
|
||||
# Download updated scripts
|
||||
echo "Updating basicswap-bash scripts" && sleep 1
|
||||
git clone https://github.com/nahuhh/basicswap-bash
|
||||
cd basicswap-bash
|
||||
|
||||
# Move scripts
|
||||
rm -rf $HOME/.local/bin/bsx
|
||||
mv -f basic* bsx* $HOME/.local/bin/
|
||||
|
||||
# Copy core_versions to basicswap folder
|
||||
mv core_versions $SWAP_DATADIR/basicswap/core_versions
|
||||
|
||||
echo "Updating BasicSwapDEX" && sleep 1
|
||||
# Delete dangling build folder. Same as --no-cache for docker
|
||||
rm -rf $SWAP_DATADIR/basicswap/build
|
||||
|
||||
# Switch to new repo: basicswap/basicswap
|
||||
cd $SWAP_DATADIR/basicswap
|
||||
git remote set-url origin https://github.com/basicswap/basicswap
|
||||
# git checkout master
|
||||
git pull
|
||||
|
||||
# Update BasicSwap
|
||||
$SWAP_DATADIR/venv/bin/pip install .
|
||||
|
||||
# Update Coin Cores
|
||||
$HOME/.local/bin/bsx/auto_coinupd8.sh
|
||||
|
||||
# Cleanup
|
||||
rm -rf basicswap-bash
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#!/bin/bash
|
||||
|
||||
## Prompt for user input
|
||||
echo "You can only update coins which you have already added to your install"
|
||||
echo -e "\n\nList of coins supported by BasicSwapDEX (case sensitive):\nbitcoin\ndash\nfiro\nlitecoin\nmonero\nparticl\npivx\n"
|
||||
read -p 'Full name of coin to update [example: litecoin] ' updatecoin
|
||||
echo "You can only upgrade coins which you have already added to your install"
|
||||
echo -e "\n\nList of coins supported by BasicSwapDEX (case sensitive):\nbitcoin\ndash\ndecred\nfiro\nlitecoin\nmonero\nparticl\npivx\nwownero\n"
|
||||
read -p 'Full name of coin to upgrade [example: litecoin] ' upgradecoin
|
||||
|
||||
## Confirm
|
||||
read -p $'\nUpdate $updatecoin, correct? Press any key to continue. CTRL-C to exit'
|
||||
read -p $'\nUpgrade '$upgradecoin', correct? Press any key to continue. CTRL-C to exit'
|
||||
|
||||
## Update the coin
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR -preparebinonly --withcoins=$updatecoin
|
||||
echo "Updated $updatecoin"
|
||||
## Upgrade the coin
|
||||
basicswap-prepare --datadir=$SWAP_DATADIR -preparebinonly --withcoins=$upgradecoin
|
||||
echo "Upgraded $upgradecoin"
|
||||
|
|
9
core_versions
Normal file
9
core_versions
Normal file
|
@ -0,0 +1,9 @@
|
|||
Bitcoin Core version v26.0.0
|
||||
dcrd version 1.8.1+release (Go version go1.21.1 linux/amd64)
|
||||
Dash Core version v20.0.2
|
||||
Firo Core Daemon version v0.14.14.0-ge0c423805
|
||||
Litecoin Core version v0.21.3
|
||||
Particl Core version v23.2.7.0
|
||||
PIVX Core Daemon version v5.6.1.0-af60f19642
|
||||
Monero 'Fluorine Fermi' (v0.18.3.4-release)
|
||||
Wownero 'Kunty Karen' (v0.11.1.0-release)
|
93
install.sh
93
install.sh
|
@ -1,10 +1,23 @@
|
|||
#/bin/bash
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
|
||||
# Colors
|
||||
red="echo -e -n \e[31;1m"
|
||||
green="echo -e -n \e[32;1m"
|
||||
nocolor="echo -e -n \e[0m"
|
||||
|
||||
# Check if basicswap is running
|
||||
if [[ -f $SWAP_DATADIR/particl/particl.pid ]]; then
|
||||
bsx_pid=$(cat $SWAP_DATADIR/particl/particl.pid)
|
||||
if [[ $bsx_pid ]]; then
|
||||
bsx_run=$(pidof particld | grep $bsx_pid)
|
||||
if [[ $bsx_run ]]; then
|
||||
$red"\nError: BasicSwapDEX is already installed.\n"; $nocolor
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Title Bar
|
||||
$green "\n"
|
||||
title="BasicSwapDEX Installer"
|
||||
|
@ -20,29 +33,40 @@ $nocolor
|
|||
INSTALL=""
|
||||
UPDATE=""
|
||||
DEPENDENCY=""
|
||||
TAILS=""
|
||||
|
||||
check_tails() {
|
||||
if [ $USER == amnesia ]; then
|
||||
$green"\nDetected Tails\n";$nocolor
|
||||
TAILS=1
|
||||
else
|
||||
$green"\nDetected Debian\n";$nocolor
|
||||
fi
|
||||
}
|
||||
|
||||
detect_os_arch() {
|
||||
if type -P apt > /dev/null; then
|
||||
check_tails
|
||||
# Debian / Ubuntu / Mint
|
||||
INSTALL="sudo apt install"
|
||||
UPDATE="sudo apt update"
|
||||
DEPENDENCY="python-is-python3 python3-pip python3-venv gnupg pkg-config protobuf-compiler"
|
||||
$green"\nDetected Debian\n";$nocolor
|
||||
DEPENDENCY="python-is-python3 python3-pip python3-venv gnupg pkg-config"
|
||||
elif type -P dnf > /dev/null; then
|
||||
# Fedora
|
||||
INSTALL="sudo dnf install"
|
||||
UPDATE="sudo dnf check-update"
|
||||
DEPENDENCY="python3-virtualenv python3-pip python3-devel gnupg2 pkgconf protobuf-compiler"
|
||||
DEPENDENCY="python3-virtualenv python3-pip python3-devel gnupg2 pkgconf"
|
||||
$green"\nDetected Fedora\n";$nocolor
|
||||
elif type -P pacman > /dev/null; then
|
||||
# Arch Linux
|
||||
INSTALL="sudo pacman -S"
|
||||
UPDATE="sudo pacman -Syu"
|
||||
DEPENDENCY="python-pipenv gnupg protobuf pkgconf base-devel"
|
||||
DEPENDENCY="python-pipenv gnupg pkgconf base-devel"
|
||||
$green"\nDetected Arch Linux\n";$nocolor
|
||||
elif type -P brew > /dev/null; then
|
||||
# MacOS
|
||||
INSTALL="brew install"
|
||||
DEPENDENCY="python protobuf gnupg pkg-config"
|
||||
DEPENDENCY="python gnupg pkg-config"
|
||||
$green"\nDetected MacOS\n";$nocolor
|
||||
else
|
||||
$red"Failed to detect OS. Unsupported or unknown distribution.\nInstall Failed.";$nocolor
|
||||
|
@ -50,10 +74,17 @@ detect_os_arch() {
|
|||
fi
|
||||
}
|
||||
|
||||
|
||||
detect_os_arch
|
||||
|
||||
## Update & Install dependencies
|
||||
echo -e "\n\nInstalling dependencies\nPress CTRL-C at password prompt(s) to skip. If skipped, you must install the dependencies manually before proceeding"
|
||||
$green"$UPDATE\n$INSTALL $DEPENDENCY curl automake libtool jq\n"; $nocolor
|
||||
$UPDATE
|
||||
$INSTALL $DEPENDENCY curl automake libtool jq
|
||||
|
||||
# Enable tor
|
||||
echo -e "\n\n[1] Tor ON\n[2] Tor OFF\n"
|
||||
echo -e "\n\n[1] Tor ON (requires sudo)\n[2] Tor OFF\n"
|
||||
until [[ "$tor_on" =~ ^[12]$ ]]; do
|
||||
read -p 'Select an option: [1|2] ' tor_on
|
||||
case $tor_on in
|
||||
|
@ -121,9 +152,16 @@ until [[ "$l" =~ ^[12]$ ]]; do
|
|||
read -p 'Select an option [1|2]: ' l
|
||||
case $l in
|
||||
1)
|
||||
until [[ $checknode ]]; do
|
||||
read -p 'Enter Address of Monero node [example: 192.168.1.123] ' monerod_addr
|
||||
read -p 'Enter RPC Port for the Monero node [example: 18081] ' monerod_port
|
||||
$green"\nLook good? $monerod_addr:$monerod_port"; $nocolor
|
||||
checknode=$(curl -sk http://$monerod_addr:$monerod_port/get_info)
|
||||
if [[ $checknode ]]; then
|
||||
$green"\nSuccessfully connected to the XMR node @ $monerod_addr:$monerod_port"; $nocolor
|
||||
else
|
||||
$red"\nThe node at $monerod_addr:$monerod_port is not accessible. Try again\n\n"; $nocolor
|
||||
fi
|
||||
done
|
||||
;;
|
||||
2)
|
||||
$green"\nBasicSwapDEX will run the Monero node for you."; $nocolor
|
||||
|
@ -135,22 +173,43 @@ read -p 'Select an option [1|2]: ' l
|
|||
done
|
||||
|
||||
## Begin Install
|
||||
echo -e "\n\nInstalling dependencies"
|
||||
echo -e "\n\nInstalling BasicSwapDEX"
|
||||
read -p 'Press Enter to continue, or CTRL-C to exit.'
|
||||
## Update & Install dependencies
|
||||
$UPDATE
|
||||
$INSTALL $DEPENDENCY git wget unzip automake libtool jq
|
||||
# Move scripts to /usr/local/bin
|
||||
sudo rm -r /usr/local/bin/bsx* /usr/local/bin/basicswap-bash
|
||||
sudo mv -f -t /usr/local/bin/ basicswap-bash bsx*
|
||||
|
||||
# Quest to make trasher happy
|
||||
addpath='PATH="$HOME/.local/bin:$PATH"'
|
||||
trasherdk=$(echo $PATH | grep .local/bin:)
|
||||
if ! [[ $trasherdk ]]; then
|
||||
mkdir -p $HOME/.local/bin
|
||||
|
||||
# Bash
|
||||
if [[ -f $HOME/.bashrc ]]; then
|
||||
echo "export $addpath" | tee -a $HOME/.bashrc
|
||||
fi
|
||||
# Zsh
|
||||
if [[ -f $HOME/.zshrc ]]; then
|
||||
echo "export $addpath" | tee -a $HOME/.zshrc
|
||||
fi
|
||||
# xfce4
|
||||
if [[ -f $HOME/.xsessionrc ]]; then
|
||||
echo "export $addpath" | tee -a $HOME/.xsessionrc
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Move scripts to .local/bin
|
||||
if [[ -d $HOME/.local/bin/bsx ]]; then
|
||||
rm -r $HOME/.local/bin/bsx* $HOME/.local/bin/basicswap-bash
|
||||
fi
|
||||
mv -f -t $HOME/.local/bin/ basicswap-bash bsx*
|
||||
|
||||
## Make venv and set variables for install
|
||||
export SWAP_DATADIR=$HOME/coinswaps
|
||||
export monerod_addr=$monerod_addr
|
||||
export monerod_port=$monerod_port
|
||||
export particl_mnemonic=$particl_mnemonic
|
||||
export xmrrestoreheight=$xmrrestoreheight
|
||||
export tor_on=$tor_on
|
||||
mkdir -p "$SWAP_DATADIR/venv"
|
||||
export TAILS=$TAILS
|
||||
python -m venv "$SWAP_DATADIR/venv"
|
||||
## Activate venv
|
||||
/usr/local/bin/bsx/activate_venv.sh
|
||||
$HOME/.local/bin/bsx/activate_venv.sh
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
#/bin/bash
|
||||
# Download Scripts
|
||||
curl -LO https://github.com/nahuhh/basicswap-bash/releases/download/beta/basicswap-beta.tar.gz
|
||||
tar xvf basicswap-beta.tar.gz
|
||||
cd basicswap-beta
|
||||
# Install BasicSwapDEX
|
||||
./install.sh
|
||||
# Cleanup
|
||||
cd ..
|
||||
rm -rf basicswap-beta
|
|
@ -1,11 +0,0 @@
|
|||
#/bin/bash
|
||||
# Download updated scripts
|
||||
curl -LO https://github.com/nahuhh/basicswap-bash/releases/download/beta/basicswap-beta.tar.gz
|
||||
tar xvf basicswap-beta.tar.gz
|
||||
cd basicswap-beta
|
||||
# Move scripts
|
||||
sudo rm -rf /usr/local/bin/bsx
|
||||
sudo mv -f basic* bsx* /usr/local/bin/
|
||||
# Cleanup install
|
||||
cd ..
|
||||
rm -rf basicswap-beta
|
Loading…
Reference in a new issue