decred.org/dcrdex@v1.0.5/dex/testing/btc/electrum-base.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  # See https://github.com/spesmilo/electrum
     4  # On Debian, may need to sudo apt-get install libsecp256k1-0 gettext
     5  
     6  # For LTC, see https://github.com/pooler/electrum-ltc
     7  
     8  set -ex
     9  
    10  ASSET_DIR=~/dextest/electrum/${SYMBOL}
    11  ELECTRUM_DIR=${ASSET_DIR}/client
    12  REPO_DIR=${ELECTRUM_DIR}/electrum-repo
    13  WALLET_DIR=${ELECTRUM_DIR}/wallet
    14  NET_DIR=${WALLET_DIR}/regtest
    15  
    16  rm -rf ${NET_DIR}/blockchain_headers ${NET_DIR}/forks ${NET_DIR}/certs ${NET_DIR}/wallets/default_wallet
    17  mkdir -p ${NET_DIR}/regtest
    18  mkdir -p ${NET_DIR}/wallets
    19  mkdir -p ${REPO_DIR}
    20  
    21  cd ${REPO_DIR}
    22  
    23  if [ ! -d "${REPO_DIR}/.git" ]; then
    24      git init
    25      git remote add origin https://github.com/spesmilo/electrum.git
    26  fi
    27  
    28  git fetch --depth 1 origin $COMMIT
    29  git reset --hard FETCH_HEAD
    30  
    31  if [ ! -d "${ELECTRUM_DIR}/venv" ]; then
    32      python -m venv ${ELECTRUM_DIR}/venv
    33  fi
    34  source ${ELECTRUM_DIR}/venv/bin/activate
    35  python -m ensurepip --upgrade
    36  pip install .
    37  pip install requests cryptography pycryptodomex pyqt5 scrypt setuptools
    38  
    39  cp "${SCRIPT_DIR}/electrum_default_wallet" "${NET_DIR}/wallets/default_wallet"
    40  
    41  cat > "${NET_DIR}/config" <<EOF
    42  {
    43      "auto_connect": false,
    44      "blockchain_preferred_block": {
    45          "hash": "${GENESIS}",
    46          "height": 0
    47      },
    48      "check_updates": false,
    49      "config_version": 3,
    50      "decimal_point": 8,
    51      "dont_show_testnet_warning": true,
    52      "gui_last_wallet": "${NET_DIR}/wallets/default_wallet",
    53      "is_maximized": false,
    54      "oneserver": false,
    55      "recently_open": [
    56          "${NET_DIR}/wallets/default_wallet"
    57      ],
    58      "rpchost": "127.0.0.1",
    59      "rpcpassword": "pass",
    60      "rpcport": ${RPCPORT},
    61      "rpcuser": "user",
    62      "server": "127.0.0.1:${EX_PORT}:s",
    63      "show_addresses_tab": true,
    64      "show_console_tab": true,
    65      "show_utxo_tab": true,
    66      "use_rbf": false
    67  }
    68  EOF
    69  
    70  cat > "${ASSET_DIR}/client-config.ini" <<EOF
    71  rpcuser=user
    72  rpcpassword=pass
    73  rpcbind=127.0.0.1:${RPCPORT}
    74  EOF
    75  
    76  ./run_electrum --regtest --dir ${WALLET_DIR}