adding btc get rate and loan blockchain structure

This commit is contained in:
sairajzero 2023-07-21 05:16:59 +05:30
parent 6ff4d1579b
commit 376ff0e7da

View File

@ -111,4 +111,76 @@
findLocker, extractPubKeyFromSign
}
//get BTC rates
const getRate = btcMortgage.getRate = {};
getRate["BTC"] = function () {
return new Promise((resolve, reject) => {
fetch('https://api.coinlore.net/api/ticker/?id=90').then(response => {
if (response.ok) {
response.json()
.then(result => resolve(result[0].price_usd))
.catch(error => reject(error));
} else
reject(response.status);
}).catch(error => reject(error));
});
}
//Loan details on FLO blockchain
const LOAN_DETAILS_IDENTIFIER = "BTC Mortage: Loan details";
function stringifyLoanOpenData(
borrower, loan_amount, policy_id,
coborrower, collateral_value, collateral_lock_id,
lender, loan_transfer_id,
borrower_sign, coborrower_sign, lender_sign
) {
return [
LOAN_DETAILS_IDENTIFIER,
"Borrower:" + floCrypto.toFloID(borrower),
"Amount:" + loan_amount,
"Policy:" + policy_id,
"CoBorrower:" + floCrypto.toFloID(coborrower),
"CollateralValue:" + collateral_value + "BTC",
"CollateralLock:" + collateral_lock_id,
"Lender:" + floCrypto.toFloID(lender),
"TokenTransfer:" + loan_transfer_id,
"Signature-B:" + borrower_sign,
"Signature-C:" + coborrower_sign,
"Signature-L:" + lender_sign
].join('|');
/*MAYDO: Maybe make it a worded sentence?
BTC Mortage:
L#${lender_floid} is lending ${loan_amount}USD (ref#${loan_transfer_id}) to B#${borrower_floid}
inaccoradance with policy#${policy_id}
as mortage on collateral#${collateral_id} (${btc_amount}BTC) provided by C#${coborrower_floid}.
Signed by B'${borrower_sign} , C'{coborrower_sign} and L'${lender_sign}
*/
}
function parseLoanOpenData(str, tx_time) {
let splits = str.split('|');
if (splits[0] !== LOAN_DETAILS_IDENTIFIER)
throw "Invalid Loan blockchain data";
var details = { open_time: tx_time };
splits.forEach(s => {
let d = s.split(':');
switch (d[0]) {
case "Borrower": details.borrower = d[1]; break;
case "Amount": details.loan_amount = parseFloat(d[1]); break;
case "Policy": details.policy_id = d[1]; break;
case "CoBorrower": details.coborrower = d[1]; break;
case "CollateralValue": details.collateral_value = parseFloat(d[1]); break;
case "CollateralLock": details.collateral_lock_id = d[1]; break;
case "Lender": details.lender = d[1]; break;
case "TokenTransfer": details.loan_transfer_id = d[1]; break;
case "Signature-B": details.borrower_sign = d[1]; break;
case "Signature-C": details.coborrower_sign = d[1]; break;
case "Signature-L": details.lender_sign = d[1]; break;
}
});
return details;
}
})(window.btcMortgage = {})