adding btc get rate and loan blockchain structure
This commit is contained in:
parent
6ff4d1579b
commit
376ff0e7da
@ -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 = {})
|
||||
Loading…
Reference in New Issue
Block a user