mirror of
https://github.com/MAGICGrants/autoforward-autoconvert.git
synced 2026-01-09 13:37:54 -05:00
Merge branch 'main' into ioc-limit-order
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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. |
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
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
|
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
|
||||||
|
|||||||
@@ -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" ]
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
14
src/util.py
14
src/util.py
@@ -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...')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user