mirror of
https://github.com/aljazceru/cyphernode.git
synced 2025-12-18 05:05:12 +01:00
Now possible to watch same entity from multiple clients, unwatchtxid
This commit is contained in:
@@ -17,6 +17,7 @@ action_getactivewatchesbyxpub=watcher
|
|||||||
action_getactivewatchesbylabel=watcher
|
action_getactivewatchesbylabel=watcher
|
||||||
action_getactivexpubwatches=watcher
|
action_getactivexpubwatches=watcher
|
||||||
action_watchtxid=watcher
|
action_watchtxid=watcher
|
||||||
|
action_unwatchtxid=watcher
|
||||||
action_getactivewatches=watcher
|
action_getactivewatches=watcher
|
||||||
action_get_txns_by_watchlabel=watcher
|
action_get_txns_by_watchlabel=watcher
|
||||||
action_get_unused_addresses_by_watchlabel=watcher
|
action_get_unused_addresses_by_watchlabel=watcher
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ action_getactivexpubwatches=watcher
|
|||||||
action_get_txns_by_watchlabel=watcher
|
action_get_txns_by_watchlabel=watcher
|
||||||
action_get_unused_addresses_by_watchlabel=watcher
|
action_get_unused_addresses_by_watchlabel=watcher
|
||||||
action_watchtxid=watcher
|
action_watchtxid=watcher
|
||||||
|
action_unwatchtxid=watcher
|
||||||
action_getactivewatches=watcher
|
action_getactivewatches=watcher
|
||||||
action_getbestblockhash=watcher
|
action_getbestblockhash=watcher
|
||||||
action_getbestblockinfo=watcher
|
action_getbestblockinfo=watcher
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ CREATE TABLE watching_by_pub32 (
|
|||||||
|
|
||||||
CREATE TABLE watching (
|
CREATE TABLE watching (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
address TEXT UNIQUE,
|
address TEXT,
|
||||||
watching INTEGER DEFAULT FALSE,
|
watching INTEGER DEFAULT FALSE,
|
||||||
callback0conf TEXT,
|
callback0conf TEXT,
|
||||||
calledback0conf INTEGER DEFAULT FALSE,
|
calledback0conf INTEGER DEFAULT FALSE,
|
||||||
@@ -26,6 +26,8 @@ CREATE TABLE watching (
|
|||||||
event_message TEXT,
|
event_message TEXT,
|
||||||
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
|
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
CREATE INDEX idx_watching_address ON watching (address);
|
||||||
|
CREATE UNIQUE INDEX idx_watching_01 ON watching (address, callback0conf, callback1conf);
|
||||||
|
|
||||||
CREATE TABLE watching_tx (
|
CREATE TABLE watching_tx (
|
||||||
watching_id INTEGER REFERENCES watching,
|
watching_id INTEGER REFERENCES watching,
|
||||||
@@ -86,7 +88,7 @@ INSERT INTO batcher (id, label, conf_target, feerate) VALUES (1, "default", 6, N
|
|||||||
|
|
||||||
CREATE TABLE watching_by_txid (
|
CREATE TABLE watching_by_txid (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
txid TEXT UNIQUE,
|
txid TEXT,
|
||||||
watching INTEGER DEFAULT FALSE,
|
watching INTEGER DEFAULT FALSE,
|
||||||
callback1conf TEXT,
|
callback1conf TEXT,
|
||||||
calledback1conf INTEGER DEFAULT FALSE,
|
calledback1conf INTEGER DEFAULT FALSE,
|
||||||
@@ -96,6 +98,7 @@ CREATE TABLE watching_by_txid (
|
|||||||
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
|
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
CREATE INDEX idx_watching_by_txid_txid ON watching_by_txid (txid);
|
CREATE INDEX idx_watching_by_txid_txid ON watching_by_txid (txid);
|
||||||
|
CREATE UNIQUE INDEX idx_watching_by_txid_1x ON watching_by_txid (txid, callback1conf, callbackxconf);
|
||||||
|
|
||||||
CREATE TABLE stamp (
|
CREATE TABLE stamp (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
PRAGMA foreign_keys=off;
|
||||||
|
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
CREATE TABLE batcher (
|
CREATE TABLE batcher (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
@@ -16,3 +19,57 @@ ALTER TABLE recipient ADD COLUMN calledback_ts INTEGER;
|
|||||||
CREATE INDEX idx_recipient_label ON recipient (label);
|
CREATE INDEX idx_recipient_label ON recipient (label);
|
||||||
|
|
||||||
ALTER TABLE tx ADD COLUMN conf_target INTEGER DEFAULT NULL;
|
ALTER TABLE tx ADD COLUMN conf_target INTEGER DEFAULT NULL;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE watching RENAME TO watching_20200610;
|
||||||
|
|
||||||
|
CREATE TABLE watching (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
address TEXT,
|
||||||
|
watching INTEGER DEFAULT FALSE,
|
||||||
|
callback0conf TEXT,
|
||||||
|
calledback0conf INTEGER DEFAULT FALSE,
|
||||||
|
callback1conf TEXT,
|
||||||
|
calledback1conf INTEGER DEFAULT FALSE,
|
||||||
|
imported INTEGER DEFAULT FALSE,
|
||||||
|
watching_by_pub32_id INTEGER REFERENCES watching_by_pub32,
|
||||||
|
pub32_index INTEGER,
|
||||||
|
event_message TEXT,
|
||||||
|
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO watching SELECT * FROM watching_20200610;
|
||||||
|
|
||||||
|
DROP INDEX IF EXISTS idx_watching_address;
|
||||||
|
CREATE INDEX idx_watching_address ON watching (address);
|
||||||
|
DROP INDEX IF EXISTS idx_watching_01;
|
||||||
|
CREATE UNIQUE INDEX idx_watching_01 ON watching (address, callback0conf, callback1conf);
|
||||||
|
|
||||||
|
--DROP TABLE watching20200610;
|
||||||
|
|
||||||
|
ALTER TABLE watching_by_txid RENAME TO watching_by_txid_20200610;
|
||||||
|
|
||||||
|
CREATE TABLE watching_by_txid (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
txid TEXT,
|
||||||
|
watching INTEGER DEFAULT FALSE,
|
||||||
|
callback1conf TEXT,
|
||||||
|
calledback1conf INTEGER DEFAULT FALSE,
|
||||||
|
callbackxconf TEXT,
|
||||||
|
calledbackxconf INTEGER DEFAULT FALSE,
|
||||||
|
nbxconf INTEGER,
|
||||||
|
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO watching_by_txid SELECT * FROM watching_by_txid_20200610;
|
||||||
|
|
||||||
|
DROP INDEX IF EXISTS idx_watching_by_txid_txid;
|
||||||
|
CREATE INDEX idx_watching_by_txid_txid ON watching_by_txid (txid);
|
||||||
|
DROP INDEX IF EXISTS idx_watching_by_txid_1x;
|
||||||
|
CREATE UNIQUE INDEX idx_watching_by_txid_1x ON watching_by_txid (txid, callback1conf, callbackxconf);
|
||||||
|
|
||||||
|
--DROP TABLE watching_by_txid_20200610;
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
PRAGMA foreign_keys=on;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ do_callbacks_txid() {
|
|||||||
build_callback_txid ${row}
|
build_callback_txid ${row}
|
||||||
returncode=$?
|
returncode=$?
|
||||||
trace_rc ${returncode}
|
trace_rc ${returncode}
|
||||||
if [ "${returncode}" -eq 0 ]; then
|
if [ "${returncode}" -eq "0" ]; then
|
||||||
id=$(echo "${row}" | cut -d '|' -f1)
|
id=$(echo "${row}" | cut -d '|' -f1)
|
||||||
sql "UPDATE watching_by_txid SET calledback1conf=1 WHERE id=\"${id}\""
|
sql "UPDATE watching_by_txid SET calledback1conf=1 WHERE id=\"${id}\""
|
||||||
trace_rc $?
|
trace_rc $?
|
||||||
@@ -39,7 +39,8 @@ do_callbacks_txid() {
|
|||||||
do
|
do
|
||||||
build_callback_txid ${row}
|
build_callback_txid ${row}
|
||||||
returncode=$?
|
returncode=$?
|
||||||
if [ "${returncode}" -eq 0 ]; then
|
trace_rc ${returncode}
|
||||||
|
if [ "${returncode}" -eq "0" ]; then
|
||||||
id=$(echo "${row}" | cut -d '|' -f1)
|
id=$(echo "${row}" | cut -d '|' -f1)
|
||||||
sql "UPDATE watching_by_txid SET calledbackxconf=1, watching=0 WHERE id=\"${id}\""
|
sql "UPDATE watching_by_txid SET calledbackxconf=1, watching=0 WHERE id=\"${id}\""
|
||||||
trace_rc $?
|
trace_rc $?
|
||||||
@@ -136,6 +137,9 @@ build_callback_txid() {
|
|||||||
trace "[build_callback_txid] Number of confirmations for tx is not enough to call back."
|
trace "[build_callback_txid] Number of confirmations for tx is not enough to call back."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
trace "[build_callback_txid] Couldn't get tx from the Bitcoin node."
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -100,8 +100,35 @@ main() {
|
|||||||
;;
|
;;
|
||||||
unwatch)
|
unwatch)
|
||||||
# curl (GET) 192.168.111.152:8080/unwatch/2N8DcqzfkYi8CkYzvNNS5amoq3SbAcQNXKp
|
# curl (GET) 192.168.111.152:8080/unwatch/2N8DcqzfkYi8CkYzvNNS5amoq3SbAcQNXKp
|
||||||
|
# or
|
||||||
|
# POST http://192.168.111.152:8080/unwatch
|
||||||
|
# BODY {"address":"2N8DcqzfkYi8CkYzvNNS5amoq3SbAcQNXKp","unconfirmedCallbackURL":"192.168.111.233:1111/callback0conf","confirmedCallbackURL":"192.168.111.233:1111/callback1conf"}
|
||||||
|
# or
|
||||||
|
# BODY {"id":3124}
|
||||||
|
|
||||||
response=$(unwatchrequest "${line}")
|
# args:
|
||||||
|
# - address: string, required
|
||||||
|
# - unconfirmedCallbackURL: string, optional
|
||||||
|
# - confirmedCallbackURL: string, optional
|
||||||
|
# or
|
||||||
|
# - id: the id returned by the watch
|
||||||
|
|
||||||
|
local address
|
||||||
|
local unconfirmedCallbackURL
|
||||||
|
local confirmedCallbackURL
|
||||||
|
local watchid
|
||||||
|
|
||||||
|
# Let's make it work even for a GET request (equivalent to a POST with empty json object body)
|
||||||
|
if [ "$http_method" = "POST" ]; then
|
||||||
|
address=$(echo "${line}" | jq -r ".address")
|
||||||
|
unconfirmedCallbackURL=$(echo "${line}" | jq ".unconfirmedCallbackURL")
|
||||||
|
confirmedCallbackURL=$(echo "${line}" | jq ".confirmedCallbackURL")
|
||||||
|
watchid=$(echo "${line}" | jq ".id")
|
||||||
|
else
|
||||||
|
address=$(echo "${line}" | cut -d ' ' -f2 | cut -d '/' -f3)
|
||||||
|
fi
|
||||||
|
|
||||||
|
response=$(unwatchrequest "${watchid}" "${address}" "${unconfirmedCallbackURL}" "${confirmedCallbackURL}")
|
||||||
response_to_client "${response}" ${?}
|
response_to_client "${response}" ${?}
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
@@ -158,6 +185,28 @@ main() {
|
|||||||
response_to_client "${response}" ${?}
|
response_to_client "${response}" ${?}
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
unwatchtxid)
|
||||||
|
# POST http://192.168.111.152:8080/unwatchtxid
|
||||||
|
# BODY {"txid":"b081ca7724386f549cf0c16f71db6affeb52ff7a0d9b606fb2e5c43faffd3387","unconfirmedCallbackURL":"192.168.111.233:1111/callback0conf","confirmedCallbackURL":"192.168.111.233:1111/callback1conf"}
|
||||||
|
# or
|
||||||
|
# BODY {"id":3124}
|
||||||
|
|
||||||
|
# args:
|
||||||
|
# - txid: string, required
|
||||||
|
# - unconfirmedCallbackURL: string, optional
|
||||||
|
# - confirmedCallbackURL: string, optional
|
||||||
|
# or
|
||||||
|
# - id: the id returned by watchtxid
|
||||||
|
|
||||||
|
local txid=$(echo "${line}" | jq -r ".txid")
|
||||||
|
local unconfirmedCallbackURL=$(echo "${line}" | jq ".unconfirmedCallbackURL")
|
||||||
|
local confirmedCallbackURL=$(echo "${line}" | jq ".confirmedCallbackURL")
|
||||||
|
local watchid=$(echo "${line}" | jq ".id")
|
||||||
|
|
||||||
|
response=$(unwatchtxidrequest "${watchid}" "${txid}" "${unconfirmedCallbackURL}" "${confirmedCallbackURL}")
|
||||||
|
response_to_client "${response}" ${?}
|
||||||
|
break
|
||||||
|
;;
|
||||||
getactivewatches)
|
getactivewatches)
|
||||||
# curl (GET) 192.168.111.152:8080/getactivewatches
|
# curl (GET) 192.168.111.152:8080/getactivewatches
|
||||||
|
|
||||||
|
|||||||
@@ -6,16 +6,27 @@
|
|||||||
unwatchrequest() {
|
unwatchrequest() {
|
||||||
trace "Entering unwatchrequest()..."
|
trace "Entering unwatchrequest()..."
|
||||||
|
|
||||||
local request=${1}
|
local watchid=${1}
|
||||||
local address=$(echo "${request}" | cut -d ' ' -f2 | cut -d '/' -f3)
|
local address=${2}
|
||||||
|
local unconfirmedCallbackURL=${3}
|
||||||
|
local confirmedCallbackURL=${4}
|
||||||
local returncode
|
local returncode
|
||||||
trace "[unwatchrequest] Unwatch request on address ${address}"
|
trace "[unwatchrequest] Unwatch request id ${watchid} on address ${address} with url0conf ${unconfirmedCallbackURL} and url1conf ${confirmedCallbackURL}"
|
||||||
|
|
||||||
sql "UPDATE watching SET watching=0 WHERE address=\"${address}\""
|
if [ "${watchid}" != "null" ]; then
|
||||||
returncode=$?
|
sql "UPDATE watching SET watching=0 WHERE id=${watchid}"
|
||||||
trace_rc ${returncode}
|
returncode=$?
|
||||||
|
trace_rc ${returncode}
|
||||||
|
|
||||||
|
data="{\"event\":\"unwatch\",\"id\":${watchid}}"
|
||||||
|
else
|
||||||
|
sql "UPDATE watching SET watching=0 WHERE address='${address}' AND callback0conf=${unconfirmedCallbackURL} AND callback1conf=${confirmedCallbackURL}"
|
||||||
|
returncode=$?
|
||||||
|
trace_rc ${returncode}
|
||||||
|
|
||||||
|
data="{\"event\":\"unwatch\",\"address\":\"${address}\",\"unconfirmedCallbackURL\":${unconfirmedCallbackURL},\"confirmedCallbackURL\":${confirmedCallbackURL}}"
|
||||||
|
fi
|
||||||
|
|
||||||
data="{\"event\":\"unwatch\",\"address\":\"${address}\"}"
|
|
||||||
trace "[unwatchrequest] responding=${data}"
|
trace "[unwatchrequest] responding=${data}"
|
||||||
|
|
||||||
echo "${data}"
|
echo "${data}"
|
||||||
@@ -80,3 +91,34 @@ unwatchpub32labelrequest() {
|
|||||||
|
|
||||||
return ${returncode}
|
return ${returncode}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unwatchtxidrequest() {
|
||||||
|
trace "Entering unwatchtxidrequest()..."
|
||||||
|
|
||||||
|
local watchid=${1}
|
||||||
|
local txid=${2}
|
||||||
|
local unconfirmedCallbackURL=${3}
|
||||||
|
local confirmedCallbackURL=${4}
|
||||||
|
local returncode
|
||||||
|
trace "[unwatchtxidrequest] Unwatch request id ${watchid} on txid ${txid} with url0conf ${unconfirmedCallbackURL} and url1conf ${confirmedCallbackURL}"
|
||||||
|
|
||||||
|
if [ "${watchid}" != "null" ]; then
|
||||||
|
sql "UPDATE watching_by_txid SET watching=0 WHERE id=${watchid}"
|
||||||
|
returncode=$?
|
||||||
|
trace_rc ${returncode}
|
||||||
|
|
||||||
|
data="{\"event\":\"unwatchtxid\",\"id\":${watchid}}"
|
||||||
|
else
|
||||||
|
sql "UPDATE watching_by_txid SET watching=0 WHERE txid='${txid}' AND callback0conf=${unconfirmedCallbackURL} AND callback1conf=${confirmedCallbackURL}"
|
||||||
|
returncode=$?
|
||||||
|
trace_rc ${returncode}
|
||||||
|
|
||||||
|
data="{\"event\":\"unwatchtxid\",\"txid\":\"${txid}\",\"unconfirmedCallbackURL\":${unconfirmedCallbackURL},\"confirmedCallbackURL\":${confirmedCallbackURL}}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
trace "[unwatchtxidrequest] responding=${data}"
|
||||||
|
|
||||||
|
echo "${data}"
|
||||||
|
|
||||||
|
return ${returncode}
|
||||||
|
}
|
||||||
|
|||||||
@@ -52,12 +52,14 @@ watchrequest() {
|
|||||||
imported=0
|
imported=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sql "INSERT INTO watching (address, watching, callback0conf, callback1conf, imported, event_message) VALUES (\"${address}\", 1, ${cb0conf_url}, ${cb1conf_url}, ${imported}, ${event_message}) ON CONFLICT(address) DO UPDATE SET watching=1, callback0conf=excluded.callback0conf, calledback0conf=0, callback1conf=excluded.callback1conf, calledback1conf=0, event_message=excluded.event_message"
|
# sql "INSERT INTO watching (address, watching, callback0conf, callback1conf, imported, event_message) VALUES (\"${address}\", 1, ${cb0conf_url}, ${cb1conf_url}, ${imported}, ${event_message}) ON CONFLICT(address) DO UPDATE SET watching=1, callback0conf=excluded.callback0conf, calledback0conf=0, callback1conf=excluded.callback1conf, calledback1conf=0, event_message=excluded.event_message"
|
||||||
|
sql "INSERT INTO watching (address, watching, callback0conf, callback1conf, imported, event_message) VALUES (\"${address}\", 1, ${cb0conf_url}, ${cb1conf_url}, ${imported}, ${event_message}) ON CONFLICT DO UPDATE watching SET watching=1, event_message=${event_message}, calledback0conf=0, calledback1conf=0"
|
||||||
returncode=$?
|
returncode=$?
|
||||||
trace_rc ${returncode}
|
trace_rc ${returncode}
|
||||||
|
|
||||||
if [ "${returncode}" -eq 0 ]; then
|
if [ "${returncode}" -eq 0 ]; then
|
||||||
inserted=1
|
inserted=1
|
||||||
id_inserted=$(sql "SELECT id FROM watching WHERE address='${address}'")
|
id_inserted=$(sql "SELECT id FROM watching WHERE address='${address}' AND callback0conf=${cb0conf_url} AND callback1conf=${cb1conf_url}")
|
||||||
trace "[watchrequest] id_inserted: ${id_inserted}"
|
trace "[watchrequest] id_inserted: ${id_inserted}"
|
||||||
else
|
else
|
||||||
inserted=0
|
inserted=0
|
||||||
@@ -78,15 +80,15 @@ watchrequest() {
|
|||||||
|
|
||||||
result="{\"id\":\"${id_inserted}\",
|
result="{\"id\":\"${id_inserted}\",
|
||||||
\"event\":\"watch\",
|
\"event\":\"watch\",
|
||||||
\"imported\":\"${imported}\",
|
\"imported\":${imported},
|
||||||
\"inserted\":\"${inserted}\",
|
\"inserted\":${inserted},
|
||||||
\"address\":\"${address}\",
|
\"address\":\"${address}\",
|
||||||
\"unconfirmedCallbackURL\":${cb0conf_url},
|
\"unconfirmedCallbackURL\":${cb0conf_url},
|
||||||
\"confirmedCallbackURL\":${cb1conf_url},
|
\"confirmedCallbackURL\":${cb1conf_url},
|
||||||
\"estimatesmartfee2blocks\":\"${fees2blocks}\",
|
\"estimatesmartfee2blocks\":${fees2blocks},
|
||||||
\"estimatesmartfee6blocks\":\"${fees6blocks}\",
|
\"estimatesmartfee6blocks\":${fees6blocks},
|
||||||
\"estimatesmartfee36blocks\":\"${fees36blocks}\",
|
\"estimatesmartfee36blocks\":${fees36blocks},
|
||||||
\"estimatesmartfee144blocks\":\"${fees144blocks}\",
|
\"estimatesmartfee144blocks\":${fees144blocks},
|
||||||
\"eventMessage\":${event_message}}"
|
\"eventMessage\":${event_message}}"
|
||||||
trace "[watchrequest] responding=${result}"
|
trace "[watchrequest] responding=${result}"
|
||||||
|
|
||||||
@@ -270,7 +272,8 @@ insert_watches() {
|
|||||||
inserted_values="${inserted_values})"
|
inserted_values="${inserted_values})"
|
||||||
done
|
done
|
||||||
|
|
||||||
sql "INSERT INTO watching (address, watching, callback0conf, callback1conf, imported, watching_by_pub32_id, pub32_index) VALUES ${inserted_values} ON CONFLICT(address) DO UPDATE SET watching=1, callback0conf=excluded.callback0conf, calledback0conf=0, callback1conf=excluded.callback1conf, calledback1conf=0"
|
# sql "INSERT INTO watching (address, watching, callback0conf, callback1conf, imported, watching_by_pub32_id, pub32_index) VALUES ${inserted_values} ON CONFLICT(address) DO UPDATE SET watching=1, callback0conf=excluded.callback0conf, calledback0conf=0, callback1conf=excluded.callback1conf, calledback1conf=0"
|
||||||
|
sql "INSERT INTO watching (address, watching, callback0conf, callback1conf, imported, watching_by_pub32_id, pub32_index) VALUES ${inserted_values} ON CONFLICT DO UPDATE watching SET watching=1, event_message=${event_message}, calledback0conf=0, calledback1conf=0"
|
||||||
returncode=$?
|
returncode=$?
|
||||||
trace_rc ${returncode}
|
trace_rc ${returncode}
|
||||||
|
|
||||||
@@ -313,7 +316,7 @@ extend_watchers() {
|
|||||||
# we want to extend the watched addresses to 166 if our gap is 100 (default).
|
# we want to extend the watched addresses to 166 if our gap is 100 (default).
|
||||||
trace "[extend_watchers] We have addresses to add to watchers!"
|
trace "[extend_watchers] We have addresses to add to watchers!"
|
||||||
|
|
||||||
watchpub32 "${label}" "${pub32}" "${derivation_path}" $((${last_imported_n} + 1)) "${callback0conf}" "${callback1conf}" ${upgrade_to_n} > /dev/null
|
watchpub32 "${label}" "${pub32}" "${derivation_path}" "$((${last_imported_n} + 1))" "${callback0conf}" "${callback1conf}" "${upgrade_to_n}" > /dev/null
|
||||||
returncode=$?
|
returncode=$?
|
||||||
trace_rc ${returncode}
|
trace_rc ${returncode}
|
||||||
else
|
else
|
||||||
@@ -342,12 +345,21 @@ watchtxidrequest() {
|
|||||||
local result
|
local result
|
||||||
trace "[watchtxidrequest] Watch request on txid (${txid}), cb 1-conf (${cb1conf_url}) and cb x-conf (${cbxconf_url}) on ${nbxconf} confirmations."
|
trace "[watchtxidrequest] Watch request on txid (${txid}), cb 1-conf (${cb1conf_url}) and cb x-conf (${cbxconf_url}) on ${nbxconf} confirmations."
|
||||||
|
|
||||||
sql "INSERT OR IGNORE INTO watching_by_txid (txid, watching, callback1conf, callbackxconf, nbxconf) VALUES (${txid}, 1, ${cb1conf_url}, ${cbxconf_url}, ${nbxconf})"
|
# sql "INSERT OR IGNORE INTO watching_by_txid (txid, watching, callback1conf, callbackxconf, nbxconf) VALUES (${txid}, 1, ${cb1conf_url}, ${cbxconf_url}, ${nbxconf})"
|
||||||
|
sql "INSERT INTO watching_by_txid (txid, watching, callback1conf, callbackxconf, nbxconf) VALUES (${txid}, 1, ${cb1conf_url}, ${cbxconf_url}, ${nbxconf})"
|
||||||
returncode=$?
|
returncode=$?
|
||||||
trace_rc ${returncode}
|
trace_rc ${returncode}
|
||||||
|
|
||||||
|
if [ "${returncode}" -ne "0" ]; then
|
||||||
|
trace "[watchtxidrequest] txid with urls already being watched, updating with new values based on supplied txid, 1confurl and xconfurl..."
|
||||||
|
sql "UPDATE watching_by_txid SET watching=1, nbxconf=${nbxconf}, calledback1conf=0, calledbackxconf=0 WHERE txid=${txid} AND callback1conf=${cb1conf_url} AND callbackxconf=${cbxconf_url}"
|
||||||
|
returncode=$?
|
||||||
|
trace_rc ${returncode}
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${returncode}" -eq 0 ]; then
|
if [ "${returncode}" -eq 0 ]; then
|
||||||
inserted=1
|
inserted=1
|
||||||
id_inserted=$(sql "SELECT id FROM watching_by_txid WHERE txid=${txid}")
|
id_inserted=$(sql "SELECT id FROM watching_by_txid WHERE txid=${txid} AND callback1conf=${cb1conf_url} AND callbackxconf=${cbxconf_url}")
|
||||||
trace "[watchtxidrequest] id_inserted: ${id_inserted}"
|
trace "[watchtxidrequest] id_inserted: ${id_inserted}"
|
||||||
else
|
else
|
||||||
inserted=0
|
inserted=0
|
||||||
|
|||||||
Reference in New Issue
Block a user