diff --git a/proxy_docker/app/script/blockchainrpc.sh b/proxy_docker/app/script/blockchainrpc.sh index 661d91f..7d85aec 100644 --- a/proxy_docker/app/script/blockchainrpc.sh +++ b/proxy_docker/app/script/blockchainrpc.sh @@ -84,6 +84,7 @@ get_mempool_info() { send_to_watcher_node "${data}" | jq ".result" return $? } + get_blockhash() { trace "Entering get_blockhash()..." local blockheight=${1} @@ -91,3 +92,14 @@ get_blockhash() { send_to_watcher_node "${data}" | jq ".result" return $? } + +validateaddress() { + trace "Entering validateaddress()..." + + local address=${1} + trace "[validateaddress] address=${address}" + local data="{\"method\":\"validateaddress\",\"params\":[\"${address}\"]}" + trace "[validateaddress] data=${data}" + send_to_watcher_node "${data}" + return $? +} diff --git a/proxy_docker/app/script/watchrequest.sh b/proxy_docker/app/script/watchrequest.sh index 6322533..6790a31 100644 --- a/proxy_docker/app/script/watchrequest.sh +++ b/proxy_docker/app/script/watchrequest.sh @@ -21,6 +21,28 @@ watchrequest() { local result trace "[watchrequest] Watch request on address (\"${address}\"), cb 0-conf (${cb0conf_url}), cb 1-conf (${cb1conf_url}) with event_message=${event_message}" + local isvalid + isvalid=$(validateaddress "${address}" | jq ".result.isvalid") + if [ "${isvalid}" != "true" ]; then + result="{ + \"result\":null, + \"error\":{ + \"code\":-5, + \"message\":\"Invalid address\", + \"data\":{ + \"event\":\"watch\", + \"address\":\"${address}\", + \"unconfirmedCallbackURL\":${cb0conf_url}, + \"confirmedCallbackURL\":${cb1conf_url}, + \"eventMessage\":${event_message}}}}" + trace "[watchrequest] Invalid address" + trace "[watchrequest] responding=${result}" + + echo "${result}" + + return 1 + fi + result=$(importaddress_rpc ${address}) returncode=$? trace_rc ${returncode} @@ -54,7 +76,7 @@ watchrequest() { fees144blocks=$(getestimatesmartfee 144) trace_rc $? - local data="{\"id\":\"${id_inserted}\", + result="{\"id\":\"${id_inserted}\", \"event\":\"watch\", \"imported\":\"${imported}\", \"inserted\":\"${inserted}\", @@ -66,9 +88,9 @@ watchrequest() { \"estimatesmartfee36blocks\":\"${fees36blocks}\", \"estimatesmartfee144blocks\":\"${fees144blocks}\", \"eventMessage\":${event_message}}" - trace "[watchrequest] responding=${data}" + trace "[watchrequest] responding=${result}" - echo "${data}" + echo "${result}" return ${returncode} }