Skip to content

Commit 2102607

Browse files
committed
prevent xmr txd duplicates
1 parent b18e6cf commit 2102607

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

assets_js_bitrequest_monitors.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ function updaterequeststatesrefresh() {
7575
}
7676

7777
// Triggers the update of request states
78-
function trigger_requeststates(trigger) {
78+
function trigger_requeststates(trigger, rqli) {
7979
if (glob_const.offline === true) {
8080
return // do nothing when offline
8181
}
@@ -84,7 +84,7 @@ function trigger_requeststates(trigger) {
8484
glob_let.tx_list = [], // reset transaction index
8585
glob_let.statuspush = [],
8686
glob_let.l2_fetched = {};
87-
const active_requests = $("#requestlist .rqli").filter(function() {
87+
const active_requests = rqli || $("#requestlist .rqli").filter(function() {
8888
return $(this).data("pending") !== "unknown";
8989
});
9090
active_requests.addClass("open");

assets_js_bitrequest_polling.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ function init_xmr_node(cachetime, address, vk) {
180180
if (start_height > -1) { // success!
181181
const rq_init = request.rq_init,
182182
request_ts_utc = rq_init + glob_const.timezone,
183-
request_ts = request_ts_utc - 30000; // 30 second compensation
183+
request_ts = request_ts_utc - 10000; // 10 second compensation
184184
socket_info({
185185
"url": "mymonero api"
186186
}, true, true);
@@ -245,15 +245,16 @@ function ping_xmr_node(cachetime, address, vk, request_ts) {
245245
$.each(txflip_strip, function(dat, value) {
246246
const txd = xmr_scan_data(value, set_confirmations, "xmr", data.blockchain_height);
247247
if (txd.ccval && txd.transactiontime > request_ts) {
248-
confirmations(txd, true);
249-
if (set_confirmations > 0) {
250-
clearpinging(address);
251-
tx_polling_init(txd, {
252-
"api": true,
253-
"name": "blockchair_xmr",
254-
"display": true
255-
});
248+
const txid_match = get_requestli("txhash", txd.txhash); // check if txhash already exists
249+
if (txid_match.length) {
250+
return
256251
}
252+
clearpinging(address);
253+
tx_polling_init(txd, {
254+
"api": true,
255+
"name": "blockchair_xmr",
256+
"display": true
257+
});
257258
}
258259
});
259260
}).fail(function() {

assets_js_bitrequest_sockets.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,11 @@ function init_socket(socket_node, address, retry) {
148148
if (payment === "monero") {
149149
const vk = request.viewkey || get_vk(address);
150150
if (vk) {
151+
const xmr_requests = get_requestli("payment", "monero"),
152+
xmr_pending = filter_list(xmr_requests, "pending", "scanning");
153+
if (xmr_pending.length) {
154+
trigger_requeststates(true, xmr_pending);
155+
}
151156
const account = vk.account || address,
152157
viewkey = vk.vk;
153158
request.monitored = true;

0 commit comments

Comments
 (0)