fixed verify failed issue in updateinDB, resolved operations issues
This commit is contained in:
parent
b3c1d3106f
commit
3141ab6b77
300
index.html
300
index.html
@ -15839,13 +15839,13 @@
|
|||||||
break;
|
break;
|
||||||
case "FLO":
|
case "FLO":
|
||||||
explorer = localbitcoinplusplus.server.flo_mainnet;
|
explorer = localbitcoinplusplus.server.flo_mainnet;
|
||||||
decimal = 1;
|
|
||||||
crypto_diff = crypto_diff/decimal;
|
crypto_diff = crypto_diff/decimal;
|
||||||
|
decimal = 1;
|
||||||
break;
|
break;
|
||||||
case "FLO_TEST":
|
case "FLO_TEST":
|
||||||
explorer = localbitcoinplusplus.server.flo_testnet;
|
explorer = localbitcoinplusplus.server.flo_testnet;
|
||||||
decimal = 1;
|
|
||||||
crypto_diff = crypto_diff/decimal;
|
crypto_diff = crypto_diff/decimal;
|
||||||
|
decimal = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -16777,8 +16777,8 @@
|
|||||||
cashiersList = liveCashiersList;
|
cashiersList = liveCashiersList;
|
||||||
}
|
}
|
||||||
const getAPaymentHandler = randomNoRepeats(cashiersList)();
|
const getAPaymentHandler = randomNoRepeats(cashiersList)();
|
||||||
|
|
||||||
if (!cashiersPubKeysArray.includes(
|
if (!cashiersList.includes(
|
||||||
getAPaymentHandler
|
getAPaymentHandler
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
@ -16792,7 +16792,8 @@
|
|||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
receivedTradeInfo.cashier_upi = cashiersList[getAPaymentHandler].upi;
|
receivedTradeInfo.cashier_upi = localbitcoinplusplus
|
||||||
|
.CashierStatusObject[getAPaymentHandler].upi;
|
||||||
receivedTradeInfo.cashier_pubKey = getAPaymentHandler;
|
receivedTradeInfo.cashier_pubKey = getAPaymentHandler;
|
||||||
const receivedTradeInfoResp = await addDB(
|
const receivedTradeInfoResp = await addDB(
|
||||||
"cash_deposits",
|
"cash_deposits",
|
||||||
@ -18491,8 +18492,7 @@
|
|||||||
cashiersList = liveCashiersList;
|
cashiersList = liveCashiersList;
|
||||||
}
|
}
|
||||||
const getAPaymentHandler = randomNoRepeats(cashiersList)();
|
const getAPaymentHandler = randomNoRepeats(cashiersList)();
|
||||||
|
if (!cashiersList.includes(
|
||||||
if (!cashiersPubKeysArray.includes(
|
|
||||||
getAPaymentHandler
|
getAPaymentHandler
|
||||||
)) {
|
)) {
|
||||||
err_msg = `ERROR: ${getAPaymentHandler} is not recognized as any Cashier's Public Key.`;
|
err_msg = `ERROR: ${getAPaymentHandler} is not recognized as any Cashier's Public Key.`;
|
||||||
@ -18505,7 +18505,8 @@
|
|||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
receivedTradeInfo.cashier_upi = cashiersList[getAPaymentHandler].upi;
|
receivedTradeInfo.cashier_upi = localbitcoinplusplus
|
||||||
|
.CashierStatusObject[getAPaymentHandler].upi;
|
||||||
receivedTradeInfo.cashier_pubKey = getAPaymentHandler;
|
receivedTradeInfo.cashier_pubKey = getAPaymentHandler;
|
||||||
const receivedTradeInfoResp = await backup_server_db_instance
|
const receivedTradeInfoResp = await backup_server_db_instance
|
||||||
.backup_addDB("cash_deposits", receivedTradeInfo);
|
.backup_addDB("cash_deposits", receivedTradeInfo);
|
||||||
@ -19811,7 +19812,7 @@
|
|||||||
RM_RPC
|
RM_RPC
|
||||||
.send_rpc
|
.send_rpc
|
||||||
.call(this,
|
.call(this,
|
||||||
"update_all_deposit_success",
|
"update_all_cash_deposit_success",
|
||||||
update_cash_balance_obj)
|
update_cash_balance_obj)
|
||||||
.then(update_cash_balance_req=>
|
.then(update_cash_balance_req=>
|
||||||
doSend(update_cash_balance_req));
|
doSend(update_cash_balance_req));
|
||||||
@ -21462,13 +21463,13 @@
|
|||||||
break;
|
break;
|
||||||
case "FLO":
|
case "FLO":
|
||||||
explorer = localbitcoinplusplus.server.flo_mainnet;
|
explorer = localbitcoinplusplus.server.flo_mainnet;
|
||||||
decimal = 1;
|
|
||||||
crypto_diff = crypto_diff/decimal;
|
crypto_diff = crypto_diff/decimal;
|
||||||
|
decimal = 1;
|
||||||
break;
|
break;
|
||||||
case "FLO_TEST":
|
case "FLO_TEST":
|
||||||
explorer = localbitcoinplusplus.server.flo_testnet;
|
explorer = localbitcoinplusplus.server.flo_testnet;
|
||||||
decimal = 1;
|
|
||||||
crypto_diff = crypto_diff/decimal;
|
crypto_diff = crypto_diff/decimal;
|
||||||
|
decimal = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -23468,7 +23469,7 @@
|
|||||||
displayBalances(
|
displayBalances(
|
||||||
updateUserDepositsResponseObject.trader_flo_address
|
updateUserDepositsResponseObject.trader_flo_address
|
||||||
);
|
);
|
||||||
showMessage(`INFO: Your balance is updated.`);
|
notify(`INFO: Your balance is updated.`);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
})
|
})
|
||||||
@ -24088,6 +24089,43 @@
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "update_all_cash_deposit_success":
|
||||||
|
if (res_obj.params[0].trader_flo_address !== localbitcoinplusplus.wallets.my_local_flo_public_key
|
||||||
|
||
|
||||||
|
!localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
||||||
|
res_obj.nodePubKey)
|
||||||
|
||
|
||||||
|
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
||||||
|
localbitcoinplusplus.wallets.my_local_flo_public_key)
|
||||||
|
) return;
|
||||||
|
|
||||||
|
if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") {
|
||||||
|
const deposit_success_response = res_obj.params[0];
|
||||||
|
let update_cash_balance_obj_res = {
|
||||||
|
depositor_cash_data: deposit_success_response.depositor_cash_data,
|
||||||
|
deposit_req_id: deposit_success_response.deposit_req_id
|
||||||
|
}
|
||||||
|
let update_cash_balance_obj_res_str = JSON.stringify(update_cash_balance_obj_res);
|
||||||
|
let update_cash_balance_obj_res_hash = Crypto.SHA256(
|
||||||
|
update_cash_balance_obj_res_str);
|
||||||
|
let update_cash_balance_obj_res_verification = RM_WALLET
|
||||||
|
.verify(update_cash_balance_obj_res_hash, deposit_success_response.sign,
|
||||||
|
deposit_success_response.publicKey);
|
||||||
|
|
||||||
|
if ((update_cash_balance_obj_res_hash === deposit_success_response.hash) &&
|
||||||
|
update_cash_balance_obj_res_verification === true) {
|
||||||
|
|
||||||
|
updateinDB('cash_balances', deposit_success_response.depositor_cash_data,
|
||||||
|
deposit_success_response.depositor_cash_data.id, false, false);
|
||||||
|
removeinDB('cash_deposits', deposit_success_response.deposit_req_id);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
throw new Error(`Error: Hash matching failed while updating cash deposit.`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -25339,12 +25377,12 @@
|
|||||||
displayBalances(
|
displayBalances(
|
||||||
updateUserDepositsResponseObject.trader_flo_address
|
updateUserDepositsResponseObject.trader_flo_address
|
||||||
);
|
);
|
||||||
showMessage(`INFO: Your balance is updated.`);
|
notify(`INFO: Your balance is updated.`);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
showMessage(
|
notify(
|
||||||
`WARNING: Failed to update balance in your DB. Please refresh.`
|
`WARNING: Failed to update balance in your DB. Please refresh.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -27129,7 +27167,7 @@
|
|||||||
|
|
||||||
if (typeof backup_server_db_instance !== "object") {
|
if (typeof backup_server_db_instance !== "object") {
|
||||||
let backup_db_error_msg = `WARNING: Unknown DB instance. DB Backup failed.`;
|
let backup_db_error_msg = `WARNING: Unknown DB instance. DB Backup failed.`;
|
||||||
showMessage(backup_db_error_msg);
|
console.trace(backup_db_error_msg);
|
||||||
throw new Error(backup_db_error_msg);
|
throw new Error(backup_db_error_msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27151,21 +27189,10 @@
|
|||||||
updateUserDepositsResponseObject.updatedTraderDepositObject.id,
|
updateUserDepositsResponseObject.updatedTraderDepositObject.id,
|
||||||
true,
|
true,
|
||||||
false
|
false
|
||||||
).then(()=>{
|
)
|
||||||
if (
|
|
||||||
localbitcoinplusplus.wallets.my_local_flo_address ==
|
|
||||||
updateUserDepositsResponseObject.trader_flo_address
|
|
||||||
) {
|
|
||||||
displayBalances(
|
|
||||||
updateUserDepositsResponseObject.trader_flo_address
|
|
||||||
);
|
|
||||||
showMessage(`INFO: Your balance is updated.`);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
showMessage(
|
console.trace(
|
||||||
`WARNING: Failed to update balance in your DB. Please refresh.`
|
`WARNING: Failed to update balance in DB. Please refresh.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -27735,7 +27762,7 @@
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "update_all_deposit_success":
|
case "update_all_cash_deposit_success":
|
||||||
// If either Sender and Receiver are not Supernodes, return.
|
// If either Sender and Receiver are not Supernodes, return.
|
||||||
if (!localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
if (!localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
|
||||||
res_obj.nodePubKey)
|
res_obj.nodePubKey)
|
||||||
@ -28648,8 +28675,6 @@
|
|||||||
return new Error(error);
|
return new Error(error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateinDB(
|
function updateinDB(
|
||||||
@ -28661,46 +28686,46 @@
|
|||||||
) {
|
) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
const originalObj = JSON.parse(JSON.stringify(Obj));
|
|
||||||
if (typeof Obj.vectorClock == "undefined") {
|
if (typeof Obj.vectorClock == "undefined") {
|
||||||
Obj.vectorClock = 0;
|
Obj.vectorClock = 0;
|
||||||
} else if (increaseVectorClock === false) {
|
} else if (increaseVectorClock === false) {
|
||||||
// leave the vector clock field unchanged
|
// leave the vector clock field unchanged
|
||||||
} else {
|
} else {
|
||||||
Obj.vectorClock += 1;
|
Obj.vectorClock += 1;
|
||||||
// If vectorClock is increased, also update timestamp
|
|
||||||
//Obj.timestamp = +new Date();
|
|
||||||
}
|
}
|
||||||
if (typeof Obj.timestamp !== "number") {
|
if (typeof Obj.timestamp !== "number") {
|
||||||
Obj.timestamp = +new Date();
|
Obj.timestamp = +new Date();
|
||||||
}
|
}
|
||||||
var request = db.transaction([tablename], "readwrite")
|
var request = db.transaction([tablename], "readwrite")
|
||||||
.objectStore(tablename);
|
.objectStore(tablename);
|
||||||
if (updateByVectorClock === true) {
|
|
||||||
if (typeof key == "undefined") {
|
if (typeof key == "undefined") {
|
||||||
key = Obj[request.keyPath];
|
key = Obj[request.keyPath];
|
||||||
}
|
}
|
||||||
let objectStoreRequest = request.get(key);
|
|
||||||
objectStoreRequest.onsuccess = function (event) {
|
let objectStoreRequest = request.get(key);
|
||||||
var myRecord = objectStoreRequest.result;
|
objectStoreRequest.onsuccess = function (event) {
|
||||||
if (myRecord==null
|
var myRecord = objectStoreRequest.result;
|
||||||
|| myRecord== undefined
|
if (myRecord==null
|
||||||
|| typeof myRecord !== "object") {
|
|| myRecord== undefined
|
||||||
Obj.vectorClock =
|
|| typeof myRecord !== "object") {
|
||||||
typeof Obj.vectorClock == "number" ? Obj.vectorClock : 0;
|
Obj.vectorClock =
|
||||||
if(!exception_datastores.includes(tablename)) {
|
typeof Obj.vectorClock == "number" ? Obj.vectorClock : 0;
|
||||||
Obj = signDBData(Obj);
|
if(!exception_datastores.includes(tablename)) {
|
||||||
}
|
Obj = signDBData(Obj);
|
||||||
request = db.transaction([tablename], "readwrite")
|
}
|
||||||
.objectStore(tablename).put(Obj);
|
request = db.transaction([tablename], "readwrite")
|
||||||
} else if (myRecord.vectorClock < Obj.vectorClock) {
|
.objectStore(tablename).put(Obj);
|
||||||
|
} else if(updateByVectorClock === true) {
|
||||||
|
|
||||||
|
if (myRecord.vectorClock < Obj.vectorClock) {
|
||||||
// First verify data here
|
// First verify data here
|
||||||
if(!exception_datastores.includes(tablename)) {
|
if(!exception_datastores.includes(tablename)) {
|
||||||
if(verifyDBData(originalObj)===true) {
|
if(verifyDBData(myRecord)===true) {
|
||||||
Obj = signDBData(Obj);
|
Obj = signDBData(Obj);
|
||||||
} else {
|
} else {
|
||||||
console.trace(Obj);
|
console.trace(myRecord);
|
||||||
throw new Error('Failed verification at db update');
|
return reject('Failed verification at db update');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
request = db.transaction([tablename], "readwrite")
|
request = db.transaction([tablename], "readwrite")
|
||||||
@ -28708,11 +28733,11 @@
|
|||||||
} else if (myRecord.vectorClock == Obj.vectorClock) {
|
} else if (myRecord.vectorClock == Obj.vectorClock) {
|
||||||
if(myRecord.timestamp < Obj.timestamp) {
|
if(myRecord.timestamp < Obj.timestamp) {
|
||||||
if(!exception_datastores.includes(tablename)) {
|
if(!exception_datastores.includes(tablename)) {
|
||||||
if(verifyDBData(originalObj)===true) {
|
if(verifyDBData(myRecord)===true) {
|
||||||
Obj = signDBData(Obj);
|
Obj = signDBData(Obj);
|
||||||
} else {
|
} else {
|
||||||
console.trace(Obj);
|
console.trace(myRecord);
|
||||||
throw new Error('Failed verification at db update');
|
return reject('Failed verification at db update');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
request = db.transaction([tablename], "readwrite")
|
request = db.transaction([tablename], "readwrite")
|
||||||
@ -28721,47 +28746,30 @@
|
|||||||
} else {
|
} else {
|
||||||
resolve(Obj);
|
resolve(Obj);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
request.onsuccess = function() {
|
if(!exception_datastores.includes(tablename)) {
|
||||||
resolve(Obj);
|
if(verifyDBData(myRecord)===true) {
|
||||||
}
|
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
|
||||||
|
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||||
request.onerror = function(e) {
|
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||||
reject(e);
|
Obj = signDBData(Obj);
|
||||||
}
|
}
|
||||||
};
|
|
||||||
} else {
|
|
||||||
if(!exception_datastores.includes(tablename)) {
|
|
||||||
if(verifyDBData(originalObj)===true) {
|
|
||||||
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
|
|
||||||
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
|
|
||||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
|
||||||
request = db.transaction([tablename], "readwrite")
|
|
||||||
.objectStore(tablename).put(originalObj);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Obj = signDBData(Obj);
|
|
||||||
} else {
|
|
||||||
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
|
|
||||||
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
|
|
||||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
|
||||||
Obj = signDBData(Obj);
|
|
||||||
} else {
|
} else {
|
||||||
reject("Verification failed in backup update");
|
return reject("Verification failed in updateinDB");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
request = db.transaction([tablename], "readwrite")
|
||||||
|
.objectStore(tablename).put(Obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
request.onsuccess = function() {
|
||||||
|
resolve(Obj);
|
||||||
}
|
}
|
||||||
request = db.transaction([tablename], "readwrite")
|
|
||||||
.objectStore(tablename).put(Obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
request.onsuccess = function() {
|
|
||||||
resolve(Obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
request.onerror = function(e) {
|
request.onerror = function(e) {
|
||||||
reject(e);
|
reject(e);
|
||||||
}
|
}
|
||||||
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
reject(error);
|
reject(error);
|
||||||
return new Error(error);
|
return new Error(error);
|
||||||
@ -29342,7 +29350,6 @@
|
|||||||
) {
|
) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
const originalObj = JSON.parse(JSON.stringify(Obj));
|
|
||||||
if (typeof Obj.vectorClock == "undefined") {
|
if (typeof Obj.vectorClock == "undefined") {
|
||||||
Obj.vectorClock = 0;
|
Obj.vectorClock = 0;
|
||||||
} else if (increaseVectorClock === false) {
|
} else if (increaseVectorClock === false) {
|
||||||
@ -29355,15 +29362,14 @@
|
|||||||
}
|
}
|
||||||
this.request = this.db.transaction([tablename], "readwrite")
|
this.request = this.db.transaction([tablename], "readwrite")
|
||||||
.objectStore(tablename);
|
.objectStore(tablename);
|
||||||
|
if (typeof key == "undefined") {
|
||||||
|
key = Obj[this.request.keyPath];
|
||||||
|
}
|
||||||
|
let objectStoreRequest = this.request.get(key);
|
||||||
|
|
||||||
if (updateByVectorClock === true) {
|
objectStoreRequest.onsuccess = function(event) {
|
||||||
if (typeof key == "undefined") {
|
var myRecord = objectStoreRequest.result;
|
||||||
key = Obj[this.request.keyPath];
|
if (myRecord==null
|
||||||
}
|
|
||||||
let objectStoreRequest = this.request.get(key);
|
|
||||||
objectStoreRequest.onsuccess = function(event) {
|
|
||||||
var myRecord = objectStoreRequest.result;
|
|
||||||
if (myRecord==null
|
|
||||||
|| myRecord== undefined
|
|| myRecord== undefined
|
||||||
|| typeof myRecord !== "object") {
|
|| typeof myRecord !== "object") {
|
||||||
Obj.vectorClock =
|
Obj.vectorClock =
|
||||||
@ -29373,14 +29379,15 @@
|
|||||||
}
|
}
|
||||||
this.request = this.db.transaction([tablename], "readwrite")
|
this.request = this.db.transaction([tablename], "readwrite")
|
||||||
.objectStore(tablename).put(Obj);
|
.objectStore(tablename).put(Obj);
|
||||||
} else if (myRecord.vectorClock < Obj.vectorClock) {
|
} else if (updateByVectorClock === true) {
|
||||||
|
if (myRecord.vectorClock < Obj.vectorClock) {
|
||||||
// First verify data here
|
// First verify data here
|
||||||
if(!exception_datastores.includes(tablename)) {
|
if(!exception_datastores.includes(tablename)) {
|
||||||
if(verifyDBData(originalObj)===true) {
|
if(verifyDBData(myRecord)===true) {
|
||||||
Obj = signDBData(Obj);
|
Obj = signDBData(Obj);
|
||||||
} else {
|
} else {
|
||||||
console.trace(Obj);
|
console.trace(myRecord);
|
||||||
throw new Error('failed verification at backup update');
|
return reject('failed verification at backup update');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.request = this.db.transaction([tablename], "readwrite")
|
this.request = this.db.transaction([tablename], "readwrite")
|
||||||
@ -29389,11 +29396,11 @@
|
|||||||
} else if (myRecord.vectorClock == Obj.vectorClock) {
|
} else if (myRecord.vectorClock == Obj.vectorClock) {
|
||||||
if(myRecord.timestamp < Obj.timestamp) {
|
if(myRecord.timestamp < Obj.timestamp) {
|
||||||
if(!exception_datastores.includes(tablename)) {
|
if(!exception_datastores.includes(tablename)) {
|
||||||
if(verifyDBData(originalObj)===true) {
|
if(verifyDBData(myRecord)===true) {
|
||||||
Obj = signDBData(Obj);
|
Obj = signDBData(Obj);
|
||||||
} else {
|
} else {
|
||||||
console.trace(Obj);
|
console.trace(myRecord);
|
||||||
throw new Error('Failed verification at db update');
|
return reject('Failed verification at backup db update');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.request = this.db.transaction([tablename], "readwrite")
|
this.request = this.db.transaction([tablename], "readwrite")
|
||||||
@ -29402,39 +29409,27 @@
|
|||||||
} else {
|
} else {
|
||||||
resolve(Obj);
|
resolve(Obj);
|
||||||
}
|
}
|
||||||
this.request.onsuccess = function() {
|
} else {
|
||||||
resolve(Obj);
|
if(!exception_datastores.includes(tablename)) {
|
||||||
}
|
if(verifyDBData(myRecord)===true) {
|
||||||
|
Obj = signDBData(Obj);
|
||||||
this.request.onerror = function(e) {
|
|
||||||
reject(e);
|
|
||||||
}
|
|
||||||
}.bind(this);
|
|
||||||
} else {
|
|
||||||
if(!exception_datastores.includes(tablename)) {
|
|
||||||
if(verifyDBData(originalObj)===true) {
|
|
||||||
Obj = signDBData(Obj);
|
|
||||||
} else {
|
|
||||||
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
|
|
||||||
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
|
|
||||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
|
||||||
Obj = signDBData(Obj);
|
|
||||||
} else {
|
} else {
|
||||||
reject("Verification failed in backup update");
|
return reject("Verification failed in backup update");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.request = this.db.transaction([tablename], "readwrite")
|
||||||
|
.objectStore(tablename).put(Obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.request.onsuccess = function() {
|
||||||
|
resolve(Obj);
|
||||||
}
|
}
|
||||||
this.request = this.db.transaction([tablename], "readwrite")
|
|
||||||
.objectStore(tablename).put(Obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.request.onsuccess = function() {
|
this.request.onerror = function(e) {
|
||||||
resolve(Obj);
|
reject(e);
|
||||||
}
|
}
|
||||||
|
}.bind(this);
|
||||||
this.request.onerror = function(e) {
|
|
||||||
reject(e);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
reject(error);
|
reject(error);
|
||||||
return new Error(error);
|
return new Error(error);
|
||||||
@ -30158,7 +30153,7 @@
|
|||||||
notify(`Waiting for deposit txid ${resp_txid} for at least 3 confirmations.
|
notify(`Waiting for deposit txid ${resp_txid} for at least 3 confirmations.
|
||||||
Please do not close or refresh the window until the process completes.`);
|
Please do not close or refresh the window until the process completes.`);
|
||||||
|
|
||||||
await delay(60000);
|
await localbitcoinplusplus.actions.delay(60000);
|
||||||
if(typeof txdata.txid !=="string"
|
if(typeof txdata.txid !=="string"
|
||||||
|| typeof txdata.confirmations !== "number"
|
|| typeof txdata.confirmations !== "number"
|
||||||
|| txdata.confirmations<3) {
|
|| txdata.confirmations<3) {
|
||||||
@ -30205,11 +30200,13 @@
|
|||||||
get_crypto_svg_selection_html('withdraw_assets_type', withdraw_crypto_div);
|
get_crypto_svg_selection_html('withdraw_assets_type', withdraw_crypto_div);
|
||||||
|
|
||||||
withdrawCryptoButton.addEventListener("click", function(params) {
|
withdrawCryptoButton.addEventListener("click", function(params) {
|
||||||
|
disableBtn('withdrawCryptoButton');
|
||||||
let parentPopup = this.closest('.popup');
|
let parentPopup = this.closest('.popup');
|
||||||
let asset_type = document.querySelector("input[name='crypto']:checked").value;
|
let asset_type = document.querySelector("input[name='crypto']:checked").value;
|
||||||
let receivinAddress = document.getElementById('withdraw_recving_addr').value
|
let receivinAddress = document.getElementById('withdraw_recving_addr').value
|
||||||
let withdraw_amount_box= document.getElementById('crypto_withdraw_amount')
|
let withdraw_amount_box= document.getElementById('crypto_withdraw_amount')
|
||||||
if (receivinAddress == null || receivinAddress.trim() == "") {
|
if (receivinAddress == null || receivinAddress.trim() == "") {
|
||||||
|
enableBtn('withdrawCryptoButton')
|
||||||
err_msg =`You must specify a valid ${asset_type} address to continue.`;
|
err_msg =`You must specify a valid ${asset_type} address to continue.`;
|
||||||
notify(err_msg);
|
notify(err_msg);
|
||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
@ -30222,6 +30219,7 @@
|
|||||||
typeof userFLOaddress == undefined ||
|
typeof userFLOaddress == undefined ||
|
||||||
userFLOaddress.trim().length < 1
|
userFLOaddress.trim().length < 1
|
||||||
) {
|
) {
|
||||||
|
enableBtn('withdrawCryptoButton')
|
||||||
err_msg = "Invalid or empty user FLO address.";
|
err_msg = "Invalid or empty user FLO address.";
|
||||||
notify(err_msg);
|
notify(err_msg);
|
||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
@ -30241,7 +30239,9 @@
|
|||||||
userFLOaddress,
|
userFLOaddress,
|
||||||
fiatCurrency
|
fiatCurrency
|
||||||
);
|
);
|
||||||
|
localbitcoinplusplus.actions.delay(60000).then(()=>enableBtn('withdrawCryptoButton'));
|
||||||
} else {
|
} else {
|
||||||
|
enableBtn('withdrawCryptoButton')
|
||||||
err_msg = `Error: Withdraw of Crypto failed. Invalid asset type ${asset_type} provided.`;
|
err_msg = `Error: Withdraw of Crypto failed. Invalid asset type ${asset_type} provided.`;
|
||||||
notify(err_msg);
|
notify(err_msg);
|
||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
@ -30263,6 +30263,7 @@
|
|||||||
let user_deposited_cash = 0; // false
|
let user_deposited_cash = 0; // false
|
||||||
|
|
||||||
depositCashButton.addEventListener("click", function() {
|
depositCashButton.addEventListener("click", function() {
|
||||||
|
disableBtn('withdrawCashButton');
|
||||||
user_deposited_cash === 0 ? user_deposited_cash = 1: user_deposited_cash = 0;
|
user_deposited_cash === 0 ? user_deposited_cash = 1: user_deposited_cash = 0;
|
||||||
if(user_deposited_cash == 1){
|
if(user_deposited_cash == 1){
|
||||||
this.firstElementChild.textContent = 'done';
|
this.firstElementChild.textContent = 'done';
|
||||||
@ -30271,6 +30272,7 @@
|
|||||||
tradeAmount = parentPopup.querySelector("input[name='amount']").value;
|
tradeAmount = parentPopup.querySelector("input[name='amount']").value;
|
||||||
|
|
||||||
if (typeof user_upi !== "string" || user_upi.length < 1) {
|
if (typeof user_upi !== "string" || user_upi.length < 1) {
|
||||||
|
enableBtn('withdrawCashButton')
|
||||||
err_msg = "Invalid or empty UPI id.";
|
err_msg = "Invalid or empty UPI id.";
|
||||||
showMessage(err_msg);
|
showMessage(err_msg);
|
||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
@ -30282,6 +30284,7 @@
|
|||||||
typeof userFLOaddress == undefined ||
|
typeof userFLOaddress == undefined ||
|
||||||
userFLOaddress.trim().length < 1
|
userFLOaddress.trim().length < 1
|
||||||
) {
|
) {
|
||||||
|
enableBtn('withdrawCashButton')
|
||||||
err_msg = "Invalid or empty user FLO address.";
|
err_msg = "Invalid or empty user FLO address.";
|
||||||
showMessage(err_msg);
|
showMessage(err_msg);
|
||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
@ -30299,7 +30302,9 @@
|
|||||||
userFLOaddress,
|
userFLOaddress,
|
||||||
user_upi
|
user_upi
|
||||||
);
|
);
|
||||||
|
localbitcoinplusplus.actions.delay(60000).then(()=>enableBtn('withdrawCashButton'));
|
||||||
} else {
|
} else {
|
||||||
|
enableBtn('withdrawCashButton')
|
||||||
err_msg = "Error: Deposit of Cash failed.";
|
err_msg = "Error: Deposit of Cash failed.";
|
||||||
showMessage(err_msg);
|
showMessage(err_msg);
|
||||||
throw new Error(err_msg);
|
throw new Error(err_msg);
|
||||||
@ -30527,13 +30532,13 @@
|
|||||||
break;
|
break;
|
||||||
case "FLO":
|
case "FLO":
|
||||||
explorer = localbitcoinplusplus.server.flo_mainnet;
|
explorer = localbitcoinplusplus.server.flo_mainnet;
|
||||||
decimal = 1;
|
|
||||||
crypto_diff = helper_functions.truncateDecimals(localbitcoinplusplus.master_configurations.btcTradeMargin/decimal);
|
crypto_diff = helper_functions.truncateDecimals(localbitcoinplusplus.master_configurations.btcTradeMargin/decimal);
|
||||||
|
decimal = 1;
|
||||||
break;
|
break;
|
||||||
case "FLO_TEST":
|
case "FLO_TEST":
|
||||||
explorer = localbitcoinplusplus.server.flo_testnet;
|
explorer = localbitcoinplusplus.server.flo_testnet;
|
||||||
decimal = 1;
|
|
||||||
crypto_diff = helper_functions.truncateDecimals(localbitcoinplusplus.master_configurations.btcTradeMargin/decimal);
|
crypto_diff = helper_functions.truncateDecimals(localbitcoinplusplus.master_configurations.btcTradeMargin/decimal);
|
||||||
|
decimal = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -30548,16 +30553,17 @@
|
|||||||
|
|
||||||
/************************ Case of dispute *****************/
|
/************************ Case of dispute *****************/
|
||||||
if (
|
if (
|
||||||
trader_deposits.bitcoinToBePaid - balance > crypto_diff
|
trader_deposits.depositing_amount - balance > crypto_diff
|
||||||
) {
|
) {
|
||||||
console.log(
|
console.log(
|
||||||
|
trader_deposits.depositing_amount,
|
||||||
trader_deposits.bitcoinToBePaid,
|
trader_deposits.bitcoinToBePaid,
|
||||||
balance,
|
balance,
|
||||||
crypto_diff
|
crypto_diff
|
||||||
);
|
);
|
||||||
let more_depositing_crypto_amount = helper_functions.truncateDecimals(trader_deposits.bitcoinToBePaid) - helper_functions.truncateDecimals(balance);
|
let more_depositing_crypto_amount = helper_functions.truncateDecimals(trader_deposits.depositing_amount) - helper_functions.truncateDecimals(balance);
|
||||||
|
|
||||||
err_msg = `Incomplete Crypto Deposit Error: You claimed to send ${trader_deposits.bitcoinToBePaid} ${trader_deposits.product} but
|
err_msg = `Incomplete Crypto Deposit Error: You claimed to send ${trader_deposits.depositing_amount} ${trader_deposits.product} but
|
||||||
deposited only ${balance} ${trader_deposits.product}. Please send more ${more_depositing_crypto_amount} ${trader_deposits.product}
|
deposited only ${balance} ${trader_deposits.product}. Please send more ${more_depositing_crypto_amount} ${trader_deposits.product}
|
||||||
to ${trader_deposits.btc_address}`;
|
to ${trader_deposits.btc_address}`;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user