finished function to withdraw deposit cash
This commit is contained in:
parent
af47aa5b74
commit
37cbe72edb
@ -8996,6 +8996,40 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
claim_deposit_withdraw: function(claim_id) {
|
||||||
|
if (typeof claim_id=="string" && claim_id.length>0) {
|
||||||
|
try {
|
||||||
|
let deposit_withdraw_user_claim_obj = {
|
||||||
|
claim_id:claim_id
|
||||||
|
}
|
||||||
|
|
||||||
|
let deposit_withdraw_user_claim_str = JSON.stringify(deposit_withdraw_user_claim_obj);
|
||||||
|
let deposit_withdraw_user_claim_hash = Crypto.SHA256(deposit_withdraw_user_claim_str);
|
||||||
|
let deposit_withdraw_user_claim_sign = localbitcoinplusplus.wallets.prototype.sign(deposit_withdraw_user_claim_hash, localbitcoinplusplus.wallets.MY_SUPERNODE_PRIVATE_KEY);
|
||||||
|
|
||||||
|
deposit_withdraw_user_claim_obj.userPubKey = localbitcoinplusplus.wallets.my_local_flo_public_key;
|
||||||
|
deposit_withdraw_user_claim_obj.hash = deposit_withdraw_user_claim_hash;
|
||||||
|
deposit_withdraw_user_claim_obj.sign = deposit_withdraw_user_claim_sign;
|
||||||
|
|
||||||
|
let deposit_withdraw_claim =
|
||||||
|
localbitcoinplusplus
|
||||||
|
.rpc
|
||||||
|
.prototype
|
||||||
|
.send_rpc
|
||||||
|
.call(
|
||||||
|
this,
|
||||||
|
"deposit_withdraw_user_claim",
|
||||||
|
deposit_withdraw_user_claim_obj
|
||||||
|
);
|
||||||
|
|
||||||
|
doSend(deposit_withdraw_claim);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
build_deposit_withdraw_table: function(withdraw_data) {
|
build_deposit_withdraw_table: function(withdraw_data) {
|
||||||
if (typeof withdraw_data == "object" && withdraw_data.length>0) {
|
if (typeof withdraw_data == "object" && withdraw_data.length>0) {
|
||||||
let action_req = ``;
|
let action_req = ``;
|
||||||
@ -9008,13 +9042,14 @@
|
|||||||
</tr>`;
|
</tr>`;
|
||||||
withdraw_data.filter(wdf=>wdf.status==2).map(wd=>{
|
withdraw_data.filter(wdf=>wdf.status==2).map(wd=>{
|
||||||
if(typeof localbitcoinplusplus.wallets.my_local_flo_address=="string") {
|
if(typeof localbitcoinplusplus.wallets.my_local_flo_address=="string") {
|
||||||
|
let claim_id = `${wd.id}!!${localbitcoinplusplus.wallets.my_local_flo_address}`;
|
||||||
if (localbitcoinplusplus.wallets.my_local_flo_address==wd.trader_flo_address) {
|
if (localbitcoinplusplus.wallets.my_local_flo_address==wd.trader_flo_address) {
|
||||||
action_req += `<p>Please click the button below only if you received the cash.</p>`;
|
action_req += `<p>Please click the button below only if you received the cash.</p>`;
|
||||||
action_req += `<button id='${wd.id}'>I received the money.</button>`;
|
action_req += `<button onclick="localbitcoinplusplus.actions.claim_deposit_withdraw('${claim_id}')">I received the money.</button>`;
|
||||||
} else if(localbitcoinplusplus.wallets.my_local_flo_address==wd.depositor_flo_id) {
|
} else if(localbitcoinplusplus.wallets.my_local_flo_address==wd.depositor_flo_id) {
|
||||||
action_req += `<p>Please click the button below only if you actually deposited the money.
|
action_req += `<p>Please click the button below only if you actually deposited the money.
|
||||||
Any fake claim can cause a heavy penalty.</p>`;
|
Any fake claim can cause a heavy penalty.</p>`;
|
||||||
action_req += `<button id='${wd.id}'>I deposited the money.</button>`;
|
action_req += `<button onclick="localbitcoinplusplus.actions.claim_deposit_withdraw('${claim_id}')" >I deposited the money.</button>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t += ` <tr>
|
t += ` <tr>
|
||||||
@ -11093,6 +11128,56 @@
|
|||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "deposit_withdraw_user_claim":
|
||||||
|
localbitcoinplusplus.rpc.prototype.filter_legit_requests(function (is_valid_request) {
|
||||||
|
if (is_valid_request !== true) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") {
|
||||||
|
let user_claim_request = res_obj.params[0];
|
||||||
|
let user_claim_id = user_claim_request.claim_id.split('!!');
|
||||||
|
let withdraw_order_id = user_claim_id[0];
|
||||||
|
let user_id = user_claim_id[1];
|
||||||
|
|
||||||
|
let deposit_withdraw_user_claim_obj = {
|
||||||
|
claim_id:user_claim_request.claim_id
|
||||||
|
}
|
||||||
|
|
||||||
|
let deposit_withdraw_user_claim_str = JSON.stringify(deposit_withdraw_user_claim_obj);
|
||||||
|
let deposit_withdraw_user_claim_hash = Crypto.SHA256(deposit_withdraw_user_claim_str);
|
||||||
|
|
||||||
|
if (deposit_withdraw_user_claim_hash==user_claim_request.hash &&
|
||||||
|
localbitcoinplusplus.wallets.prototype.verify(deposit_withdraw_user_claim_hash,
|
||||||
|
user_claim_request.sign, user_claim_request.userPubKey)) {
|
||||||
|
//If the request is valid, find out if the requester is depositor or withdrawer
|
||||||
|
console.log(withdraw_order_id);
|
||||||
|
|
||||||
|
readDB("withdraw_cash", withdraw_order_id, function(withdraw_data) {
|
||||||
|
if (typeof withdraw_data=="object") {
|
||||||
|
if (withdraw_data.depositor_flo_id==user_id) {
|
||||||
|
// Depositor claimed to deposit the cash
|
||||||
|
withdraw_data.status = 3;
|
||||||
|
updateinDB('withdraw_cash', withdraw_data, withdraw_data.id);
|
||||||
|
} else if (withdraw_data.trader_flo_address==user_id) {
|
||||||
|
// Withdrawer confirmed the payment
|
||||||
|
readDBbyIndex('cash_balances', 'trader_flo_address', withdraw_data.depositor_flo_id, function(depositor_cash_data) {
|
||||||
|
if (typeof depositor_cash_data=="object") {
|
||||||
|
depositor_cash_data.cash_balance += parseFloat(withdraw_data.withdraw_amount);
|
||||||
|
updateinDB('cash_balances', depositor_cash_data);
|
||||||
|
removeByIndex('deposit', withdraw_data.depositor_flo_id);
|
||||||
|
removeinDB('withdraw_cash', withdraw_data.id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -11433,6 +11518,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeByIndex(tablename, indexName, indexValue, callback) {
|
||||||
|
var request = db.transaction([tablename], "readwrite")
|
||||||
|
.objectStore(tablename);
|
||||||
|
var index = request.index(indexName);
|
||||||
|
var request = index.openCursor(IDBKeyRange.only(indexValue));
|
||||||
|
request.onsuccess = function() {
|
||||||
|
var cursor = request.result;
|
||||||
|
|
||||||
|
if (cursor) {
|
||||||
|
cursor.delete();
|
||||||
|
cursor.continue();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function removeAllinDB(tablename, callback) {
|
function removeAllinDB(tablename, callback) {
|
||||||
var request = db.transaction([tablename], "readwrite")
|
var request = db.transaction([tablename], "readwrite")
|
||||||
var objectStore = request.objectStore(tablename);
|
var objectStore = request.objectStore(tablename);
|
||||||
@ -11514,7 +11614,7 @@
|
|||||||
|
|
||||||
// rebuild private key
|
// rebuild private key
|
||||||
let supernode_transaction_key_arr = [];
|
let supernode_transaction_key_arr = [];
|
||||||
if (localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(idbData.myLocalFLOPublicKey)) {
|
//if (localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(idbData.myLocalFLOPublicKey)) {
|
||||||
readAllDB("my_supernode_private_key_chunks", function(chunks) {
|
readAllDB("my_supernode_private_key_chunks", function(chunks) {
|
||||||
if (typeof chunks == "object" && chunks.length>0) {
|
if (typeof chunks == "object" && chunks.length>0) {
|
||||||
let txKey = chunks.map(chunk=>{
|
let txKey = chunks.map(chunk=>{
|
||||||
@ -11531,7 +11631,7 @@
|
|||||||
const TRANSACTION_KEY = localbitcoinplusplus.wallets.supernode_transaction_key = txKey[0][0];
|
const TRANSACTION_KEY = localbitcoinplusplus.wallets.supernode_transaction_key = txKey[0][0];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
//}
|
||||||
|
|
||||||
localbitcoinplusplus.actions.sync_with_supernode(MY_LOCAL_FLO_ADDRESS);
|
localbitcoinplusplus.actions.sync_with_supernode(MY_LOCAL_FLO_ADDRESS);
|
||||||
|
|
||||||
@ -11696,14 +11796,14 @@
|
|||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
// Register as supernode
|
// Distribute the private keys
|
||||||
const register_as_supernode_div = document.createElement('div');
|
const register_as_supernode_div = document.createElement('div');
|
||||||
|
|
||||||
const register_as_supernode_input = document.createElement('input');
|
const register_as_supernode_input = document.createElement('input');
|
||||||
register_as_supernode_input.type = 'text';
|
register_as_supernode_input.type = 'text';
|
||||||
|
|
||||||
let register_as_supernode_btn = document.createElement("button");
|
let register_as_supernode_btn = document.createElement("button");
|
||||||
let register_as_supernode_btn_text = document.createTextNode("Register Supernode");
|
let register_as_supernode_btn_text = document.createTextNode("Shamir Secretify My Private Key");
|
||||||
register_as_supernode_btn.appendChild(register_as_supernode_btn_text);
|
register_as_supernode_btn.appendChild(register_as_supernode_btn_text);
|
||||||
register_as_supernode_btn.onclick = function() {
|
register_as_supernode_btn.onclick = function() {
|
||||||
|
|
||||||
@ -11720,11 +11820,11 @@
|
|||||||
throw new Error(error);
|
throw new Error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
let su_list = localbitcoinplusplus.master_configurations.supernodesPubKeys;
|
// let su_list = localbitcoinplusplus.master_configurations.supernodesPubKeys;
|
||||||
|
|
||||||
if (!su_list.includes(publicKey_for_users_entered_private_key)) {
|
// if (!su_list.includes(publicKey_for_users_entered_private_key)) {
|
||||||
throw new Error(`The public key ${publicKey_for_users_entered_private_key} is not registered as supernode yet.`);
|
// throw new Error(`The public key ${publicKey_for_users_entered_private_key} is not registered as supernode yet.`);
|
||||||
}
|
// }
|
||||||
|
|
||||||
let pvt_key_shamirs_secret_shares = localbitcoinplusplus.wallets.prototype.createShamirsSecretShares(users_entered_private_key, 10, 5);
|
let pvt_key_shamirs_secret_shares = localbitcoinplusplus.wallets.prototype.createShamirsSecretShares(users_entered_private_key, 10, 5);
|
||||||
if (typeof pvt_key_shamirs_secret_shares=="object" && pvt_key_shamirs_secret_shares.length>0) {
|
if (typeof pvt_key_shamirs_secret_shares=="object" && pvt_key_shamirs_secret_shares.length>0) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user