adding btc get rate and loan blockchain structure
This commit is contained in:
parent
6ff4d1579b
commit
376ff0e7da
@ -111,4 +111,76 @@
|
|||||||
findLocker, extractPubKeyFromSign
|
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 = {})
|
})(window.btcMortgage = {})
|
||||||
Loading…
Reference in New Issue
Block a user