Merge branch 'main' into ioc-limit-order

This commit is contained in:
Artur
2025-05-26 11:26:58 -03:00
committed by GitHub
10 changed files with 57 additions and 66 deletions

View File

@@ -1,10 +1,11 @@
ELECTRUM_RPC_PASSWORD="" ELECTRUM_RPC_PASSWORD=""
BITCOIN_WALLET_SEED="" BITCOIN_WALLET_SEED=""
BITCOIN_ELECTRUM_SERVER_ADDRESS=""
LITECOIN_WALLET_SEED="" LITECOIN_WALLET_SEED=""
LITECOIN_MWEB_WALLET_SEED="" LITECOIN_MWEB_WALLET_SEED=""
LITECOIN_ELECTRUM_SERVER_ADDRESS=""
MONERO_DAEMON_ADDRESS="" MONERO_DAEMON_ADDRESS=""
MONERO_RPC_URL=""
MONERO_RPC_PASSWORD="" MONERO_RPC_PASSWORD=""
MONERO_WALLET_SEED="" MONERO_WALLET_SEED=""
MONERO_WALLET_PASSWORD="" MONERO_WALLET_PASSWORD=""
@@ -20,4 +21,4 @@ SETTLEMENT_CURRENCY="USD"
BITCOIN_FEE_SOURCE="https://mempool.space/api/v1/fees/recommended" BITCOIN_FEE_SOURCE="https://mempool.space/api/v1/fees/recommended"
BITCOIN_FEE_RATE="halfHourFee" BITCOIN_FEE_RATE="halfHourFee"
LITECOIN_FEE_SOURCE="https://litecoinspace.org/api/v1/fees/recommended" LITECOIN_FEE_SOURCE="https://litecoinspace.org/api/v1/fees/recommended"
LITECOIN_FEE_RATE="halfHourFee" LITECOIN_FEE_RATE="halfHourFee"

View File

@@ -17,6 +17,7 @@ Create a `.env` file as a copy of `.env.example` and set the values for the empt
| - | - | - | - | | - | - | - | - |
| `BITCOIN_WALLET_SEED` | Yes | - | Your BIP39 Bitcoin mnemonic seed. Used for all Bitcoin-like assets. | | `BITCOIN_WALLET_SEED` | Yes | - | Your BIP39 Bitcoin mnemonic seed. Used for all Bitcoin-like assets. |
| `LITECOIN_WALLET_SEED` | Yes | - | Your BIP39 Litecoin mnemonic seed. | | `LITECOIN_WALLET_SEED` | Yes | - | Your BIP39 Litecoin mnemonic seed. |
| `LITECOIN_MWEB_WALLET_SEED` | Yes | - | Your Electrum-format Litecoin MWEB mnemonic seed. |
| `MONERO_WALLET_SEED` | Yes | - | Your 25 word Monero mnemonic seed. | | `MONERO_WALLET_SEED` | Yes | - | Your 25 word Monero mnemonic seed. |
| `MONERO_WALLET_HEIGHT` | Yes | - | The restore height of your Monero wallet. | | `MONERO_WALLET_HEIGHT` | Yes | - | The restore height of your Monero wallet. |
| `ELECTRUM_RPC_PASSWORD` | Yes | - | A new strong password for your Electrum RPCs. | | `ELECTRUM_RPC_PASSWORD` | Yes | - | A new strong password for your Electrum RPCs. |

View File

@@ -22,10 +22,6 @@ services:
CHECKSUM_SHA512: "62248d5eba9b7d67facb767ff35706ef3e3dcd69c6b6fb8fb67b09bc07e52193ecd59f122388d401e854385b2e2b31fd802a9f5d56464472d893f5bc1bd394af" CHECKSUM_SHA512: "62248d5eba9b7d67facb767ff35706ef3e3dcd69c6b6fb8fb67b09bc07e52193ecd59f122388d401e854385b2e2b31fd802a9f5d56464472d893f5bc1bd394af"
container_name: ltc-electrum container_name: ltc-electrum
restart: unless-stopped restart: unless-stopped
cap_add:
- SYS_ADMIN
devices:
- /dev/fuse:/dev/fuse
volumes: volumes:
- litecoin-data:/home/electrum-ltc/.electrum - litecoin-data:/home/electrum-ltc/.electrum
environment: environment:
@@ -33,27 +29,23 @@ services:
- ELECTRUM_RPC_PASSWORD=${ELECTRUM_RPC_PASSWORD} - ELECTRUM_RPC_PASSWORD=${ELECTRUM_RPC_PASSWORD}
- ELECTRUM_SERVER_ADDRESS=${LITECOIN_ELECTRUM_SERVER_ADDRESS} - ELECTRUM_SERVER_ADDRESS=${LITECOIN_ELECTRUM_SERVER_ADDRESS}
# ltc-mweb-electrum: ltc-mweb-electrum:
# build: build:
# context: ./docker/ltc-electrum context: ./docker/ltc-electrum
# args: args:
# VERSION: "release-9" VERSION: "release-9"
# CHECKSUM_SHA512: "62248d5eba9b7d67facb767ff35706ef3e3dcd69c6b6fb8fb67b09bc07e52193ecd59f122388d401e854385b2e2b31fd802a9f5d56464472d893f5bc1bd394af" CHECKSUM_SHA512: "62248d5eba9b7d67facb767ff35706ef3e3dcd69c6b6fb8fb67b09bc07e52193ecd59f122388d401e854385b2e2b31fd802a9f5d56464472d893f5bc1bd394af"
# container_name: ltc-mweb-electrum container_name: ltc-mweb-electrum
# restart: unless-stopped restart: unless-stopped
# cap_add: volumes:
# - SYS_ADMIN - litecoin-mweb-data:/home/electrum-ltc/.electrum
# devices: environment:
# - "/dev/fuse" - ELECTRUM_RPC_USER=user
# volumes: - ELECTRUM_RPC_PASSWORD=${ELECTRUM_RPC_PASSWORD}
# - litecoin-mweb-data:/home/electrum-ltc/.electrum - ELECTRUM_SERVER_ADDRESS=${LITECOIN_ELECTRUM_SERVER_ADDRESS}
# environment:
# - ELECTRUM_RPC_USER=user
# - ELECTRUM_RPC_PASSWORD=${ELECTRUM_RPC_PASSWORD}
# - ELECTRUM_SERVER_ADDRESS=${LITECOIN_ELECTRUM_SERVER_ADDRESS}
monero-wallet-rpc: monero-wallet-rpc:
image: sethsimmons/simple-monero-wallet-rpc:latest image: ghcr.io/sethforprivacy/simple-monero-wallet-rpc:latest
restart: unless-stopped restart: unless-stopped
container_name: monero-wallet-rpc container_name: monero-wallet-rpc
volumes: volumes:

View File

@@ -9,9 +9,8 @@ ENV ELECTRUM_HOME=/home/$ELECTRUM_USER
RUN adduser -D $ELECTRUM_USER RUN adduser -D $ELECTRUM_USER
RUN mkdir -p /data ${ELECTRUM_HOME} && \ RUN mkdir -p ${ELECTRUM_HOME}/.electrum && \
ln -sf /data ${ELECTRUM_HOME}/.electrum && \ chown ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum
chown ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum /data
# IMPORTANT: always verify gpg signature before changing a hash here! # IMPORTANT: always verify gpg signature before changing a hash here!
ENV ELECTRUM_CHECKSUM_SHA512 $CHECKSUM_SHA512 ENV ELECTRUM_CHECKSUM_SHA512 $CHECKSUM_SHA512
@@ -23,20 +22,15 @@ RUN echo -e "**************************\n SHA 512 Checksum OK\n*****************
RUN pip3 install cryptography Electrum-${ELECTRUM_VERSION}.tar.gz RUN pip3 install cryptography Electrum-${ELECTRUM_VERSION}.tar.gz
RUN rm -f Electrum-${ELECTRUM_VERSION}.tar.gz RUN rm -f Electrum-${ELECTRUM_VERSION}.tar.gz
RUN mkdir -p /data \ RUN mkdir -p ${ELECTRUM_HOME}/.electrum/wallets/ \
${ELECTRUM_HOME}/.electrum/wallets/ \
${ELECTRUM_HOME}/.electrum/testnet/wallets/ \ ${ELECTRUM_HOME}/.electrum/testnet/wallets/ \
${ELECTRUM_HOME}/.electrum/regtest/wallets/ \ ${ELECTRUM_HOME}/.electrum/regtest/wallets/ \
${ELECTRUM_HOME}/.electrum/simnet/wallets/ && \ ${ELECTRUM_HOME}/.electrum/simnet/wallets/ && \
ln -sf ${ELECTRUM_HOME}/.electrum/ /data && \ chown -R ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum
chown -R ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum /data
COPY docker-entrypoint.sh /usr/local/bin/ USER $ELECTRUM_USER
RUN chmod +x /usr/local/bin/docker-entrypoint.sh WORKDIR $ELECTRUM_HOME
USER $BITCOIN_ELECTRUM_USER
WORKDIR $BITCOIN_ELECTRUM_HOME
VOLUME /data
EXPOSE 7000 EXPOSE 7000
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"] ENTRYPOINT ["docker-entrypoint.sh"]

2
docker/btc-electrum/docker-entrypoint.sh Normal file → Executable file
View File

@@ -3,7 +3,7 @@ set -ex
trap 'pkill -TERM -P1; electrum stop; exit 0' SIGTERM trap 'pkill -TERM -P1; electrum stop; exit 0' SIGTERM
rm -f .electrum/daemon .electrum/daemon_rpc_socket rm -f .electrum/daemon
electrum --offline setconfig rpcuser ${ELECTRUM_RPC_USER} electrum --offline setconfig rpcuser ${ELECTRUM_RPC_USER}
electrum --offline setconfig rpcpassword ${ELECTRUM_RPC_PASSWORD} electrum --offline setconfig rpcpassword ${ELECTRUM_RPC_PASSWORD}
electrum --offline setconfig rpchost 0.0.0.0 electrum --offline setconfig rpchost 0.0.0.0

View File

@@ -20,6 +20,8 @@ RUN [ "${ELECTRUM_CHECKSUM_SHA512} electrum-ltc.appimage" = "$(sha512sum electr
RUN echo -e "**************************\n SHA 512 Checksum OK\n**************************" RUN echo -e "**************************\n SHA 512 Checksum OK\n**************************"
COPY --chown=$ELECTRUM_USER:$ELECTRUM_USER ./docker-entrypoint.sh docker-entrypoint.sh COPY --chown=$ELECTRUM_USER:$ELECTRUM_USER ./docker-entrypoint.sh docker-entrypoint.sh
RUN chmod +x ./electrum-ltc.appimage ./docker-entrypoint.sh RUN chmod +x ./electrum-ltc.appimage ./docker-entrypoint.sh
RUN ./electrum-ltc.appimage --appimage-extract
RUN rm ./electrum-ltc.appimage
EXPOSE 7000 EXPOSE 7000
ENTRYPOINT [ "./docker-entrypoint.sh" ] ENTRYPOINT [ "./docker-entrypoint.sh" ]

View File

@@ -5,14 +5,14 @@ set -e
trap 'pkill -TERM -P1; electrum-ltc.appimage stop; exit 0' SIGTERM trap 'pkill -TERM -P1; electrum-ltc.appimage stop; exit 0' SIGTERM
rm -f $HOME/.electrum-ltc/daemon rm -f $HOME/.electrum-ltc/daemon
./electrum-ltc.appimage --offline setconfig rpcuser ${ELECTRUM_RPC_USER} ./squashfs-root/AppRun --offline setconfig rpcuser ${ELECTRUM_RPC_USER}
./electrum-ltc.appimage --offline setconfig rpcpassword ${ELECTRUM_RPC_PASSWORD} ./squashfs-root/AppRun --offline setconfig rpcpassword ${ELECTRUM_RPC_PASSWORD}
./electrum-ltc.appimage --offline setconfig rpchost 0.0.0.0 ./squashfs-root/AppRun --offline setconfig rpchost 0.0.0.0
./electrum-ltc.appimage --offline setconfig rpcport 7000 ./squashfs-root/AppRun --offline setconfig rpcport 7000
if [ -n "${ELECTRUM_SERVER_ADDRESS}" ]; then if [ -n "${ELECTRUM_SERVER_ADDRESS}" ]; then
./electrum-ltc.appimage daemon -1 -s "${ELECTRUM_SERVER_ADDRESS}" "$@" ./squashfs-root/AppRun daemon -1 -s "${ELECTRUM_SERVER_ADDRESS}" "$@"
else else
./electrum-ltc.appimage daemon "$@" ./squashfs-root/AppRun daemon "$@"
fi fi

View File

@@ -130,6 +130,7 @@ def attempt_electrum_autoforward(coin: ElectrumCoin):
set_electrum_fee_rate(coin, fee_rate, dynamic=False) set_electrum_fee_rate(coin, fee_rate, dynamic=False)
except: except:
set_electrum_fee_rate(coin, rate=0, dynamic=True) set_electrum_fee_rate(coin, rate=0, dynamic=True)
address = get_new_kraken_address(coin if coin != 'ltc-mweb' else 'ltc') address = get_new_kraken_address(coin if coin != 'ltc-mweb' else 'ltc')
# Electrum-ltc doesn't support deserializing mweb transactions, so we can't check total fee # Electrum-ltc doesn't support deserializing mweb transactions, so we can't check total fee
@@ -158,7 +159,7 @@ def attempt_electrum_autoforward(coin: ElectrumCoin):
signed_tx = create_psbt(coin, address, unsigned=False) signed_tx = create_psbt(coin, address, unsigned=False)
broadcast_electrum_tx(coin, signed_tx) broadcast_electrum_tx(coin, signed_tx)
print(util.get_time(), f'Autoforwarded {amount} {coin_upper} to {address}!') print(util.get_time(), f'Autoforwarded {balance} {coin_upper} to {address}!')
def attempt_monero_autoforward(): def attempt_monero_autoforward():
balance = get_monero_balance() balance = get_monero_balance()
@@ -187,11 +188,11 @@ while 1:
print(util.get_time(), 'Error autoforwarding litecoin:') print(util.get_time(), 'Error autoforwarding litecoin:')
print(traceback.format_exc()) print(traceback.format_exc())
# try: try:
# attempt_electrum_autoforward('ltc-mweb') attempt_electrum_autoforward('ltc-mweb')
# except Exception as e: except Exception as e:
# print(util.get_time(), 'Error autoforwarding Litecoin MWEB:') print(util.get_time(), 'Error autoforwarding Litecoin MWEB:')
# print(traceback.format_exc()) print(traceback.format_exc())
try: try:
attempt_monero_autoforward() attempt_monero_autoforward()

View File

@@ -55,14 +55,14 @@ except Exception as e:
print(util.get_time(), 'Error importing litecoin seed:') print(util.get_time(), 'Error importing litecoin seed:')
print(traceback.format_exc()) print(traceback.format_exc())
# try: try:
# import_litecoin_mweb_seed() import_litecoin_mweb_seed()
# util.request_electrum_rpc('ltc-mweb', 'load_wallet') util.request_electrum_rpc('ltc-mweb', 'load_wallet')
# util.request_electrum_rpc('ltc-mweb', 'changegaplimit', [1000, 'iknowhatimdoing']) util.request_electrum_rpc('ltc-mweb', 'changegaplimit', [1000, 'iknowhatimdoing'])
# print('Litecoin mimblewimble seed has successfully been imported!') print('Litecoin mimblewimble seed has successfully been imported!')
# except Exception as e: except Exception as e:
# print(util.get_time(), 'Error importing litecoin mimblewimble seed:') print(util.get_time(), 'Error importing litecoin mimblewimble seed:')
# print(traceback.format_exc()) print(traceback.format_exc())
try: try:
import_monero_seed() import_monero_seed()

View File

@@ -141,14 +141,14 @@ def wait_for_wallets():
except: except:
time.sleep(10) time.sleep(10)
# print('Waiting for Litecoin MWEB wallet...') print('Waiting for Litecoin MWEB wallet...')
# while 1: while 1:
# try: try:
# open_litecoin_mweb_wallet() open_litecoin_mweb_wallet()
# break break
# except: except:
# time.sleep(10) time.sleep(10)
print('Waiting for Monero wallet...') print('Waiting for Monero wallet...')