From f91aa51b5b5d69dbef27c6b202be934d2b71c9bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Haf?= Date: Mon, 24 Mar 2025 14:08:05 +0100 Subject: [PATCH] get wallet balance action --- Dockerfile | 1 + actions/getbalance.sh | 27 +++++++++++++++++++++++++++ manifest.yaml | 15 +++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 actions/getbalance.sh diff --git a/Dockerfile b/Dockerfile index 2758604..34b1b88 100644 --- a/Dockerfile +++ b/Dockerfile @@ -83,6 +83,7 @@ COPY --from=bitcoin-core /opt /opt COPY ./manager/target/${ARCH}-unknown-linux-musl/release/bitcoind-manager \ ./docker_entrypoint.sh \ ./actions/getaddress.sh \ + ./actions/getbalance.sh \ ./actions/reindex.sh \ ./actions/reindex_chainstate.sh \ ./actions/prioritise-transaction.sh \ diff --git a/actions/getbalance.sh b/actions/getbalance.sh new file mode 100644 index 0000000..2a7c5b3 --- /dev/null +++ b/actions/getbalance.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +set -e + +if ! bitcoin-cli listwalletdir | jq -e '.wallets[] | select(.name == "coin")' &> /dev/null; then + bitcoin-cli createwallet "coin" &> /dev/null +fi + +if ! bitcoin-cli getwalletinfo &> /dev/null; then + bitcoin-cli loadwallet coin &> /dev/null +fi + +TRUSTED=$(bitcoin-cli getbalances | jq -r '.mine.trusted') +UNTRUSTED=$(bitcoin-cli getbalances | jq -r '.mine.untrusted_pending') +IMMATURE=$(bitcoin-cli getbalances | jq -r '.mine.immature') + +result=" { + \"version\": \"0\", + \"message\": \"Your wallet balance: $TRUSTED BTC. / + Non confirmed balance: $UNTRUSTED BTC. / + Immanture balance from mining: $IMMATURE BTC.\", + \"value\": null, + \"copyable\": true, + \"qr\": false +}" + +echo $result \ No newline at end of file diff --git a/manifest.yaml b/manifest.yaml index 0d9a6c9..5ab832f 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -240,6 +240,21 @@ actions: mounts: main: /root/.bitcoin inject: true + getbalance: + name: "Get wallet balance" + description: "Get wallet balance." + allowed-statuses: + - running + implementation: + type: docker + image: main + system: false + entrypoint: getbalance.sh + args: [] + io-format: json + mounts: + main: /root/.bitcoin + inject: true migrations: from: "*":