Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ export BITCART_STORE_API_URL=https://api.bitcart.ai
export BITCART_REVERSEPROXY=none
# cryptocurrency settings
# we enable all currencies we support on the demo to test that they work
export BITCART_CRYPTOS=btc,bch,ltc,xrg,eth,bnb,matic,trx,grs,xmr
export BITCART_CRYPTOS=btc,bch,ltc,xrg,eth,bnb,matic,arbeth,trx,grs,xmr
# lightning network for supported coins
export BTC_LIGHTNING=true
export LTC_LIGHTNING=true
Expand Down
48 changes: 48 additions & 0 deletions compose/arbeth.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "generate-templates.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#

FROM python:3.12-alpine AS base
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/

ENV ELECTRUM_USER=electrum
ENV ELECTRUM_HOME=/home/$ELECTRUM_USER
ENV ELECTRUM_DIRECTORY=${ELECTRUM_HOME}/.bitcart-arbeth
ENV IN_DOCKER=1
ENV UV_COMPILE_BYTECODE=1
ENV UV_NO_CACHE=1
ENV UV_NO_SYNC=1
ENV ARBETH_HOST=0.0.0.0
LABEL org.bitcart.image=arbeth-daemon

FROM base AS compile-image

COPY bitcart $ELECTRUM_HOME/site

RUN apk add git gcc python3-dev musl-dev automake autoconf libtool file git make libffi-dev && \
cd $ELECTRUM_HOME/site && \
uv sync --frozen --no-dev --group arbeth --group otel && \
uv run opentelemetry-bootstrap -a requirements | uv pip install --requirement -

FROM base AS build-image

RUN adduser -D $ELECTRUM_USER && \
mkdir -p /data/ && \
ln -sf /data/ $ELECTRUM_DIRECTORY && \
chown ${ELECTRUM_USER} $ELECTRUM_DIRECTORY && \
mkdir -p $ELECTRUM_HOME/site && \
chown ${ELECTRUM_USER} $ELECTRUM_HOME/site && \
apk add --no-cache libsecp256k1-dev git && \
apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main jemalloc

COPY --from=compile-image --chown=electrum $ELECTRUM_HOME/site/.venv $ELECTRUM_HOME/.venv
COPY --from=compile-image --chown=electrum $ELECTRUM_HOME/site $ELECTRUM_HOME/site

ENV PYTHONUNBUFFERED=1 PYTHONMALLOC=malloc LD_PRELOAD=libjemalloc.so.2 MALLOC_CONF=background_thread:true,max_background_threads:1,metadata_thp:auto,dirty_decay_ms:80000,muzzy_decay_ms:80000
ENV PATH="$ELECTRUM_HOME/.venv/bin:$PATH"
USER $ELECTRUM_USER
WORKDIR $ELECTRUM_HOME/site

CMD ["just","daemon", "arbeth"]
1 change: 1 addition & 0 deletions dev-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ XRG_HOST=ergon
ETH_HOST=ethereum
BNB_HOST=binancecoin
MATIC_HOST=polygon
ARBETH_HOST=arbitrum
TRX_HOST=tron
GRS_HOST=groestlcoin
XMR_HOST=monero
Expand Down
1 change: 1 addition & 0 deletions generator/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"trx": {"component": "tron"},
"grs": {"component": "groestlcoin"},
"xmr": {"component": "monero"},
"arbeth": {"component": "arbitrum"},
}
TOR_CRYPTOS = {"btc": CRYPTOS["btc"]} # cryptos to enable tor proxy for
CRYPTO_COMPONENTS = [CRYPTOS[i]["component"] for i in CRYPTOS]
Expand Down
6 changes: 6 additions & 0 deletions generator/demo/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,12 @@ <h1 class="text-lg font-semibold text-slate-800 leading-tight">
name: "Polygon",
checked: false,
},
{
id: "arbeth",
ticker: "ARBETH",
name: "Ethereum (Arbitrum)",
checked: false,
},
{ id: "trx", ticker: "TRX", name: "Tron", checked: false },
{
id: "grs",
Expand Down
24 changes: 24 additions & 0 deletions generator/docker-components/arbitrum.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
services:
arbitrum:
restart: unless-stopped
image: bitcart/bitcart-arbeth:stable
environment:
ARBETH_NETWORK: ${ARBETH_NETWORK:-mainnet}
ARBETH_SERVER: ${ARBETH_SERVER:-https://arb1.arbitrum.io/rpc}
ARBETH_SEED_SERVER: ${ARBETH_SEED_SERVER:-}
ARBETH_SEED_SERVER_REFRESH_INTERVAL: ${ARBETH_SEED_SERVER_REFRESH_INTERVAL:-3600}
ARBETH_ARCHIVE_SERVER: ${ARBETH_ARCHIVE_SERVER:-}
ARBETH_DEBUG: ${ARBETH_DEBUG:-false}
expose:
- "5012"
volumes:
- "arbitrum_datadir:/data"

backend:
depends_on:
- arbitrum
links:
- arbitrum

volumes:
arbitrum_datadir:
1 change: 1 addition & 0 deletions generator/docker-components/backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ services:
ETH_NETWORK: ${ETH_NETWORK:-mainnet}
BNB_NETWORK: ${BNB_NETWORK:-mainnet}
MATIC_NETWORK: ${MATIC_NETWORK:-mainnet}
ARBETH_NETWORK: ${ARBETH_NETWORK:-mainnet}
TRX_NETWORK: ${TRX_NETWORK:-mainnet}
XRG_NETWORK: ${XRG_NETWORK:-mainnet}
LTC_NETWORK: ${LTC_NETWORK:-mainnet}
Expand Down
1 change: 1 addition & 0 deletions generator/docker-components/worker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ services:
ETH_NETWORK: ${ETH_NETWORK:-mainnet}
BNB_NETWORK: ${BNB_NETWORK:-mainnet}
MATIC_NETWORK: ${MATIC_NETWORK:-mainnet}
ARBETH_NETWORK: ${ARBETH_NETWORK:-mainnet}
TRX_NETWORK: ${TRX_NETWORK:-mainnet}
XRG_NETWORK: ${XRG_NETWORK:-mainnet}
LTC_NETWORK: ${LTC_NETWORK:-mainnet}
Expand Down
1 change: 1 addition & 0 deletions helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ BCH_NETWORK=$BCH_NETWORK
ETH_NETWORK=$ETH_NETWORK
BNB_NETWORK=$BNB_NETWORK
MATIC_NETWORK=$MATIC_NETWORK
ARBETH_NETWORK=$ARBETH_NETWORK
TRX_NETWORK=$TRX_NETWORK
XRG_NETWORK=$XRG_NETWORK
LTC_NETWORK=$LTC_NETWORK
Expand Down
3 changes: 3 additions & 0 deletions setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ Environment variables:
ETH_NETWORK: The network to run ethereum daemon on (eg. mainnet, kovan)
BNB_NETWORK: The network to run binancecoin daemon on (eg. mainnet, testnet)
MATIC_NETWORK: The network to run polygon daemon on (eg. mainnet, testnet)
ARBETH_NETWORK: The network to run arbitrum daemon on (eg. mainnet, testnet)
TRX_NETWORK: The network to run tron daemon on (eg. mainnet, testnet)
XRG_NETWORK: The network to run ergon daemon on (eg. mainnet)
LTC_NETWORK: The network to run litecoin daemon on (eg. mainnet, testnet)
Expand Down Expand Up @@ -222,6 +223,7 @@ esac
: "${ETH_NETWORK:=mainnet}"
: "${BNB_NETWORK:=mainnet}"
: "${MATIC_NETWORK:=mainnet}"
: "${ARBETH_NETWORK:=mainnet}"
: "${TRX_NETWORK:=mainnet}"
: "${XRG_NETWORK:=mainnet}"
: "${LTC_NETWORK:=mainnet}"
Expand Down Expand Up @@ -289,6 +291,7 @@ BCH_NETWORK=$BCH_NETWORK
ETH_NETWORK=$ETH_NETWORK
BNB_NETWORK=$BNB_NETWORK
MATIC_NETWORK=$MATIC_NETWORK
ARBETH_NETWORK=$ARBETH_NETWORK
TRX_NETWORK=$TRX_NETWORK
XRG_NETWORK=$XRG_NETWORK
LTC_NETWORK=$LTC_NETWORK
Expand Down