diff --git a/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf b/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf index f73a7f4..f1000e2 100644 --- a/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf +++ b/install/generator-cyphernode/generators/app/templates/bitcoin/bitcoin.conf @@ -28,10 +28,12 @@ server=1 <% if (net === 'testnet') { %> test.wallet=watching01.dat +test.wallet=xpubwatching01.dat test.wallet=spending01.dat test.wallet=ln01.dat <% } else { %> main.wallet=watching01.dat +main.wallet=xpubwatching01.dat main.wallet=spending01.dat main.wallet=ln01.dat <% } %> diff --git a/install/generator-cyphernode/generators/app/templates/installer/docker/docker-compose.yaml b/install/generator-cyphernode/generators/app/templates/installer/docker/docker-compose.yaml index 43a61ff..4c25b55 100644 --- a/install/generator-cyphernode/generators/app/templates/installer/docker/docker-compose.yaml +++ b/install/generator-cyphernode/generators/app/templates/installer/docker/docker-compose.yaml @@ -32,6 +32,7 @@ services: - "TRACING=1" - "WATCHER_BTC_NODE_RPC_URL=<%= (bitcoin_mode === 'internal')?'bitcoin':bitcoin_node_ip %>:<%= (net === 'mainnet')?'8332':'18332' %>/wallet" - "WATCHER_BTC_NODE_DEFAULT_WALLET=watching01.dat" + - "WATCHER_BTC_NODE_XPUB_WALLET=xpubwatching01.dat" - "WATCHER_BTC_NODE_RPC_USER=<%= bitcoin_rpcuser %>:<%= bitcoin_rpcpassword %>" - "WATCHER_BTC_NODE_RPC_CFG=/tmp/watcher_btcnode_curlcfg.properties" - "SPENDER_BTC_NODE_RPC_URL=<%= (bitcoin_mode === 'internal')?'bitcoin':bitcoin_node_ip %>:<%= (net === 'mainnet')?'8332':'18332' %>/wallet" diff --git a/proxy_docker/app/script/confirmation.sh b/proxy_docker/app/script/confirmation.sh index 63fa42a..51cc6cd 100644 --- a/proxy_docker/app/script/confirmation.sh +++ b/proxy_docker/app/script/confirmation.sh @@ -163,6 +163,7 @@ confirmation() { ######################################################################################################## # Let's now grow the watch window in the case of a xpub watcher... + trace "[confirmation] Let's now grow the watch window in the case of a xpub watcher" for row in ${rows} do diff --git a/proxy_docker/app/script/importaddress.sh b/proxy_docker/app/script/importaddress.sh index 753bb0f..521a2fc 100644 --- a/proxy_docker/app/script/importaddress.sh +++ b/proxy_docker/app/script/importaddress.sh @@ -21,92 +21,32 @@ importmulti_rpc() { trace "[Entering importmulti_rpc()]" local walletname=${1} - local addresses=$(echo "${2}" | jq ".addresses" | tr -d '\n ') + local label=${2} + local addresses=$(echo "${3}" | jq ".addresses" | tr -d '\n ') trace "[importmulti_rpc] addresses=${addresses}" -# [{"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"},{"address":"2NFLhFghAPKEPuZCKoeXYYxuaBxhKXbmhBV"},{"address":"2N7gepbQtRM5Hm4PTjvGadj9wAwEwnAsKiP"},{"address":"2Mth8XDZpXkY9d95tort8HYEAuEesow2tF6"},{"address":"2MwqEmAXhUw6H7bJwMhD13HGWVEj2HgFiNH"},{"address":"2N2Y4BVRdrRFhweub2ehHXveGZC3nryMEJw"}] -# [{"scriptPubKey":{"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"},"timestamp":"now","watchonly":true},{"scriptPubKey":{"address":"2NFLhFghAPKEPuZCKoeXYYxuaBxhKXbmhBV"},"timestamp":"now","watchonly":true},{"scriptPubKey":{"address":"2N7gepbQtRM5Hm4PTjvGadj9wAwEwnAsKiP"},"timestamp":"now","watchonly":true}] + # Will look like: + # [{"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"},{"address":"2NFLhFghAPKEPuZCKoeXYYxuaBxhKXbmhBV"},{"address":"2N7gepbQtRM5Hm4PTjvGadj9wAwEwnAsKiP"}] -# {"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"}, -# {"scriptPubKey":{"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"},"timestamp":"now","watchonly":true}, + # We want: + # [{"scriptPubKey":{"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"},"timestamp":"now","watchonly":true,"label":"xpub"},{"scriptPubKey":{"address":"2NFLhFghAPKEPuZCKoeXYYxuaBxhKXbmhBV"},"timestamp":"now","watchonly":true,"label":"xpub"},{"scriptPubKey":{"address":"2N7gepbQtRM5Hm4PTjvGadj9wAwEwnAsKiP"},"timestamp":"now","watchonly":true,"label":"xpub"}] - addresses=$(echo "${addresses}" | sed "s/\"address\"/\"scriptPubKey\":\{\"address\"/g" | sed "s/}/},\"timestamp\":\"now\",\"watchonly\":true,\"label\":\"${walletname}\"}/g") + # {"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"}, + # {"scriptPubKey":{"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"},"timestamp":"now","watchonly":true,"label":"xpub"}, + + addresses=$(echo "${addresses}" | sed "s/\"address\"/\"scriptPubKey\":\{\"address\"/g" | sed "s/}/},\"timestamp\":\"now\",\"watchonly\":true,\"label\":\"${label}\"}/g") trace "[importmulti_rpc] addresses=${addresses}" -# {"method":"importmulti","params":["requests":[],"options":{"rescan":false}]} -# = {"address":"","timestamp":"now","watchonly":true},... + # Now we use that in the RPC string local rpcstring="{\"method\":\"importmulti\",\"params\":[${addresses},{\"rescan\":false}]}" trace "[importmulti_rpc] rpcstring=${rpcstring}" local result -# result=$(send_to_watcher_node_wallet ${walletname} ${rpcstring}) - result=$(send_to_watcher_node ${rpcstring}) + result=$(send_to_watcher_node_wallet ${walletname} ${rpcstring}) local returncode=$? echo "${result}" return ${returncode} } - - -#[{"requests": -# [ -# {"scriptPubKey":{"address":"2N6Q9kBcLtNswgMSLSQ5oduhbctk7hxEJW8"},"timestamp":"now","watchonly":true}, -# {"scriptPubKey":{"address":"2NFLhFghAPKEPuZCKoeXYYxuaBxhKXbmhBV"},"timestamp":"now","watchonly":true}, -# {"scriptPubKey":{"address":"2N7gepbQtRM5Hm4PTjvGadj9wAwEwnAsKiP"},"timestamp":"now","watchonly":true} -# ]}, -#{"options": -# { -# "rescan":false -# } -#}] - - - - - - - - -# -# /usr/bin $ ./bitcoin-cli help importmulti -# importmulti "requests" ( "options" ) -# -# Import addresses/scripts (with private or public keys, redeem script (P2SH)), rescanning all addresses in one-shot-only (rescan can be disabled via options). Requires a new wallet backup. -# -# Arguments: -# 1. requests (array, required) Data to be imported -# [ (array of json objects) -# { -# "scriptPubKey": "