Validate address before watching it

This commit is contained in:
kexkey
2020-03-10 17:21:00 -04:00
parent 7b2004f3d8
commit 96a830facf
2 changed files with 37 additions and 3 deletions

View File

@@ -84,6 +84,7 @@ get_mempool_info() {
send_to_watcher_node "${data}" | jq ".result" send_to_watcher_node "${data}" | jq ".result"
return $? return $?
} }
get_blockhash() { get_blockhash() {
trace "Entering get_blockhash()..." trace "Entering get_blockhash()..."
local blockheight=${1} local blockheight=${1}
@@ -91,3 +92,14 @@ get_blockhash() {
send_to_watcher_node "${data}" | jq ".result" send_to_watcher_node "${data}" | jq ".result"
return $? 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 $?
}

View File

@@ -21,6 +21,28 @@ watchrequest() {
local result local result
trace "[watchrequest] Watch request on address (\"${address}\"), cb 0-conf (${cb0conf_url}), cb 1-conf (${cb1conf_url}) with event_message=${event_message}" 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}) result=$(importaddress_rpc ${address})
returncode=$? returncode=$?
trace_rc ${returncode} trace_rc ${returncode}
@@ -54,7 +76,7 @@ watchrequest() {
fees144blocks=$(getestimatesmartfee 144) fees144blocks=$(getestimatesmartfee 144)
trace_rc $? trace_rc $?
local data="{\"id\":\"${id_inserted}\", result="{\"id\":\"${id_inserted}\",
\"event\":\"watch\", \"event\":\"watch\",
\"imported\":\"${imported}\", \"imported\":\"${imported}\",
\"inserted\":\"${inserted}\", \"inserted\":\"${inserted}\",
@@ -66,9 +88,9 @@ watchrequest() {
\"estimatesmartfee36blocks\":\"${fees36blocks}\", \"estimatesmartfee36blocks\":\"${fees36blocks}\",
\"estimatesmartfee144blocks\":\"${fees144blocks}\", \"estimatesmartfee144blocks\":\"${fees144blocks}\",
\"eventMessage\":${event_message}}" \"eventMessage\":${event_message}}"
trace "[watchrequest] responding=${data}" trace "[watchrequest] responding=${result}"
echo "${data}" echo "${result}"
return ${returncode} return ${returncode}
} }