mirror of
https://github.com/MAGICGrants/autoforward-autoconvert.git
synced 2026-01-06 20:23:52 -05:00
Merge branch 'main' into ioc-limit-order
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
ELECTRUM_RPC_PASSWORD=""
|
||||
BITCOIN_WALLET_SEED=""
|
||||
BITCOIN_ELECTRUM_SERVER_ADDRESS=""
|
||||
LITECOIN_WALLET_SEED=""
|
||||
LITECOIN_MWEB_WALLET_SEED=""
|
||||
LITECOIN_ELECTRUM_SERVER_ADDRESS=""
|
||||
|
||||
MONERO_DAEMON_ADDRESS=""
|
||||
MONERO_RPC_URL=""
|
||||
MONERO_RPC_PASSWORD=""
|
||||
MONERO_WALLET_SEED=""
|
||||
MONERO_WALLET_PASSWORD=""
|
||||
@@ -20,4 +21,4 @@ SETTLEMENT_CURRENCY="USD"
|
||||
BITCOIN_FEE_SOURCE="https://mempool.space/api/v1/fees/recommended"
|
||||
BITCOIN_FEE_RATE="halfHourFee"
|
||||
LITECOIN_FEE_SOURCE="https://litecoinspace.org/api/v1/fees/recommended"
|
||||
LITECOIN_FEE_RATE="halfHourFee"
|
||||
LITECOIN_FEE_RATE="halfHourFee"
|
||||
|
||||
@@ -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. |
|
||||
| `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_HEIGHT` | Yes | - | The restore height of your Monero wallet. |
|
||||
| `ELECTRUM_RPC_PASSWORD` | Yes | - | A new strong password for your Electrum RPCs. |
|
||||
|
||||
@@ -22,10 +22,6 @@ services:
|
||||
CHECKSUM_SHA512: "62248d5eba9b7d67facb767ff35706ef3e3dcd69c6b6fb8fb67b09bc07e52193ecd59f122388d401e854385b2e2b31fd802a9f5d56464472d893f5bc1bd394af"
|
||||
container_name: ltc-electrum
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
devices:
|
||||
- /dev/fuse:/dev/fuse
|
||||
volumes:
|
||||
- litecoin-data:/home/electrum-ltc/.electrum
|
||||
environment:
|
||||
@@ -33,27 +29,23 @@ services:
|
||||
- ELECTRUM_RPC_PASSWORD=${ELECTRUM_RPC_PASSWORD}
|
||||
- ELECTRUM_SERVER_ADDRESS=${LITECOIN_ELECTRUM_SERVER_ADDRESS}
|
||||
|
||||
# ltc-mweb-electrum:
|
||||
# build:
|
||||
# context: ./docker/ltc-electrum
|
||||
# args:
|
||||
# VERSION: "release-9"
|
||||
# CHECKSUM_SHA512: "62248d5eba9b7d67facb767ff35706ef3e3dcd69c6b6fb8fb67b09bc07e52193ecd59f122388d401e854385b2e2b31fd802a9f5d56464472d893f5bc1bd394af"
|
||||
# container_name: ltc-mweb-electrum
|
||||
# restart: unless-stopped
|
||||
# cap_add:
|
||||
# - SYS_ADMIN
|
||||
# devices:
|
||||
# - "/dev/fuse"
|
||||
# volumes:
|
||||
# - litecoin-mweb-data:/home/electrum-ltc/.electrum
|
||||
# environment:
|
||||
# - ELECTRUM_RPC_USER=user
|
||||
# - ELECTRUM_RPC_PASSWORD=${ELECTRUM_RPC_PASSWORD}
|
||||
# - ELECTRUM_SERVER_ADDRESS=${LITECOIN_ELECTRUM_SERVER_ADDRESS}
|
||||
ltc-mweb-electrum:
|
||||
build:
|
||||
context: ./docker/ltc-electrum
|
||||
args:
|
||||
VERSION: "release-9"
|
||||
CHECKSUM_SHA512: "62248d5eba9b7d67facb767ff35706ef3e3dcd69c6b6fb8fb67b09bc07e52193ecd59f122388d401e854385b2e2b31fd802a9f5d56464472d893f5bc1bd394af"
|
||||
container_name: ltc-mweb-electrum
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- litecoin-mweb-data:/home/electrum-ltc/.electrum
|
||||
environment:
|
||||
- ELECTRUM_RPC_USER=user
|
||||
- ELECTRUM_RPC_PASSWORD=${ELECTRUM_RPC_PASSWORD}
|
||||
- ELECTRUM_SERVER_ADDRESS=${LITECOIN_ELECTRUM_SERVER_ADDRESS}
|
||||
|
||||
monero-wallet-rpc:
|
||||
image: sethsimmons/simple-monero-wallet-rpc:latest
|
||||
image: ghcr.io/sethforprivacy/simple-monero-wallet-rpc:latest
|
||||
restart: unless-stopped
|
||||
container_name: monero-wallet-rpc
|
||||
volumes:
|
||||
|
||||
@@ -9,9 +9,8 @@ ENV ELECTRUM_HOME=/home/$ELECTRUM_USER
|
||||
|
||||
RUN adduser -D $ELECTRUM_USER
|
||||
|
||||
RUN mkdir -p /data ${ELECTRUM_HOME} && \
|
||||
ln -sf /data ${ELECTRUM_HOME}/.electrum && \
|
||||
chown ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum /data
|
||||
RUN mkdir -p ${ELECTRUM_HOME}/.electrum && \
|
||||
chown ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum
|
||||
|
||||
# IMPORTANT: always verify gpg signature before changing a hash here!
|
||||
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 rm -f Electrum-${ELECTRUM_VERSION}.tar.gz
|
||||
|
||||
RUN mkdir -p /data \
|
||||
${ELECTRUM_HOME}/.electrum/wallets/ \
|
||||
RUN mkdir -p ${ELECTRUM_HOME}/.electrum/wallets/ \
|
||||
${ELECTRUM_HOME}/.electrum/testnet/wallets/ \
|
||||
${ELECTRUM_HOME}/.electrum/regtest/wallets/ \
|
||||
${ELECTRUM_HOME}/.electrum/simnet/wallets/ && \
|
||||
ln -sf ${ELECTRUM_HOME}/.electrum/ /data && \
|
||||
chown -R ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum /data
|
||||
chown -R ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum
|
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
USER $BITCOIN_ELECTRUM_USER
|
||||
WORKDIR $BITCOIN_ELECTRUM_HOME
|
||||
VOLUME /data
|
||||
USER $ELECTRUM_USER
|
||||
WORKDIR $ELECTRUM_HOME
|
||||
EXPOSE 7000
|
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
|
||||
2
docker/btc-electrum/docker-entrypoint.sh
Normal file → Executable file
2
docker/btc-electrum/docker-entrypoint.sh
Normal file → Executable file
@@ -3,7 +3,7 @@ set -ex
|
||||
|
||||
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 rpcpassword ${ELECTRUM_RPC_PASSWORD}
|
||||
electrum --offline setconfig rpchost 0.0.0.0
|
||||
|
||||
@@ -20,6 +20,8 @@ RUN [ "${ELECTRUM_CHECKSUM_SHA512} electrum-ltc.appimage" = "$(sha512sum electr
|
||||
RUN echo -e "**************************\n SHA 512 Checksum OK\n**************************"
|
||||
COPY --chown=$ELECTRUM_USER:$ELECTRUM_USER ./docker-entrypoint.sh 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
|
||||
ENTRYPOINT [ "./docker-entrypoint.sh" ]
|
||||
@@ -5,14 +5,14 @@ set -e
|
||||
trap 'pkill -TERM -P1; electrum-ltc.appimage stop; exit 0' SIGTERM
|
||||
|
||||
rm -f $HOME/.electrum-ltc/daemon
|
||||
./electrum-ltc.appimage --offline setconfig rpcuser ${ELECTRUM_RPC_USER}
|
||||
./electrum-ltc.appimage --offline setconfig rpcpassword ${ELECTRUM_RPC_PASSWORD}
|
||||
./electrum-ltc.appimage --offline setconfig rpchost 0.0.0.0
|
||||
./electrum-ltc.appimage --offline setconfig rpcport 7000
|
||||
./squashfs-root/AppRun --offline setconfig rpcuser ${ELECTRUM_RPC_USER}
|
||||
./squashfs-root/AppRun --offline setconfig rpcpassword ${ELECTRUM_RPC_PASSWORD}
|
||||
./squashfs-root/AppRun --offline setconfig rpchost 0.0.0.0
|
||||
./squashfs-root/AppRun --offline setconfig rpcport 7000
|
||||
|
||||
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
|
||||
./electrum-ltc.appimage daemon "$@"
|
||||
./squashfs-root/AppRun daemon "$@"
|
||||
fi
|
||||
|
||||
|
||||
@@ -130,6 +130,7 @@ def attempt_electrum_autoforward(coin: ElectrumCoin):
|
||||
set_electrum_fee_rate(coin, fee_rate, dynamic=False)
|
||||
except:
|
||||
set_electrum_fee_rate(coin, rate=0, dynamic=True)
|
||||
|
||||
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
|
||||
@@ -158,7 +159,7 @@ def attempt_electrum_autoforward(coin: ElectrumCoin):
|
||||
signed_tx = create_psbt(coin, address, unsigned=False)
|
||||
|
||||
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():
|
||||
balance = get_monero_balance()
|
||||
@@ -187,11 +188,11 @@ while 1:
|
||||
print(util.get_time(), 'Error autoforwarding litecoin:')
|
||||
print(traceback.format_exc())
|
||||
|
||||
# try:
|
||||
# attempt_electrum_autoforward('ltc-mweb')
|
||||
# except Exception as e:
|
||||
# print(util.get_time(), 'Error autoforwarding Litecoin MWEB:')
|
||||
# print(traceback.format_exc())
|
||||
try:
|
||||
attempt_electrum_autoforward('ltc-mweb')
|
||||
except Exception as e:
|
||||
print(util.get_time(), 'Error autoforwarding Litecoin MWEB:')
|
||||
print(traceback.format_exc())
|
||||
|
||||
try:
|
||||
attempt_monero_autoforward()
|
||||
|
||||
@@ -55,14 +55,14 @@ except Exception as e:
|
||||
print(util.get_time(), 'Error importing litecoin seed:')
|
||||
print(traceback.format_exc())
|
||||
|
||||
# try:
|
||||
# import_litecoin_mweb_seed()
|
||||
# util.request_electrum_rpc('ltc-mweb', 'load_wallet')
|
||||
# util.request_electrum_rpc('ltc-mweb', 'changegaplimit', [1000, 'iknowhatimdoing'])
|
||||
# print('Litecoin mimblewimble seed has successfully been imported!')
|
||||
# except Exception as e:
|
||||
# print(util.get_time(), 'Error importing litecoin mimblewimble seed:')
|
||||
# print(traceback.format_exc())
|
||||
try:
|
||||
import_litecoin_mweb_seed()
|
||||
util.request_electrum_rpc('ltc-mweb', 'load_wallet')
|
||||
util.request_electrum_rpc('ltc-mweb', 'changegaplimit', [1000, 'iknowhatimdoing'])
|
||||
print('Litecoin mimblewimble seed has successfully been imported!')
|
||||
except Exception as e:
|
||||
print(util.get_time(), 'Error importing litecoin mimblewimble seed:')
|
||||
print(traceback.format_exc())
|
||||
|
||||
try:
|
||||
import_monero_seed()
|
||||
|
||||
14
src/util.py
14
src/util.py
@@ -141,14 +141,14 @@ def wait_for_wallets():
|
||||
except:
|
||||
time.sleep(10)
|
||||
|
||||
# print('Waiting for Litecoin MWEB wallet...')
|
||||
print('Waiting for Litecoin MWEB wallet...')
|
||||
|
||||
# while 1:
|
||||
# try:
|
||||
# open_litecoin_mweb_wallet()
|
||||
# break
|
||||
# except:
|
||||
# time.sleep(10)
|
||||
while 1:
|
||||
try:
|
||||
open_litecoin_mweb_wallet()
|
||||
break
|
||||
except:
|
||||
time.sleep(10)
|
||||
|
||||
print('Waiting for Monero wallet...')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user