Added SEND_COIN case
This commit is contained in:
parent
d22f71b6ed
commit
48fff83732
@ -108,7 +108,7 @@ class WebBrowser extends LitElement {
|
|||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this.url = 'about:blank';
|
this.url = 'about:blank';
|
||||||
|
this.myAddress = window.parent.reduxStore.getState().app.selectedAddress;
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
this.name = urlParams.get('name');
|
this.name = urlParams.get('name');
|
||||||
this.service = urlParams.get('service');
|
this.service = urlParams.get('service');
|
||||||
@ -231,7 +231,7 @@ class WebBrowser extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
console.log(2, 'browser page here');
|
console.log(3, 'browser page here');
|
||||||
return html`
|
return html`
|
||||||
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
||||||
<div class="layout horizontal center">
|
<div class="layout horizontal center">
|
||||||
@ -450,8 +450,7 @@ class WebBrowser extends LitElement {
|
|||||||
// TODO: prompt user to share wallet balance. If they confirm, call `GET /crosschain/:coin/walletbalance`, or for QORT, call `GET /addresses/balance/:address`
|
// TODO: prompt user to share wallet balance. If they confirm, call `GET /crosschain/:coin/walletbalance`, or for QORT, call `GET /addresses/balance/:address`
|
||||||
// then set the response string from the core to the `response` variable (defined above)
|
// then set the response string from the core to the `response` variable (defined above)
|
||||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||||
console.log('case passed here');
|
console.log({data});
|
||||||
console.log(data.coin, "data coin here");
|
|
||||||
const res3 = await showModalAndWait(
|
const res3 = await showModalAndWait(
|
||||||
actions.GET_WALLET_BALANCE
|
actions.GET_WALLET_BALANCE
|
||||||
);
|
);
|
||||||
@ -535,10 +534,159 @@ class WebBrowser extends LitElement {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'SEND_COIN':
|
case 'SEND_COIN':
|
||||||
|
console.log({data});
|
||||||
// Params: data.coin, data.destinationAddress, data.amount, data.fee
|
// Params: data.coin, data.destinationAddress, data.amount, data.fee
|
||||||
// TODO: prompt user to send. If they confirm, call `POST /crosschain/:coin/send`, or for QORT, broadcast a PAYMENT transaction
|
// TODO: prompt user to send. If they confirm, call `POST /crosschain/:coin/send`, or for QORT, broadcast a PAYMENT transaction
|
||||||
// then set the response string from the core to the `response` variable (defined above)
|
// then set the response string from the core to the `response` variable (defined above)
|
||||||
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
// If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}`
|
||||||
|
const amount = data.amount;
|
||||||
|
let recipient = data.destinationAddress;
|
||||||
|
const fee = data.fee
|
||||||
|
this.loader.show();
|
||||||
|
|
||||||
|
const walletBalance = await parentEpml.request('apiCall', {
|
||||||
|
url: `/addresses/balance/${this.myAddress.address}?apiKey=${this.getApiKey()}`,
|
||||||
|
}).then((res) => {
|
||||||
|
if (isNaN(Number(res))) {
|
||||||
|
let snack4string = get("chatpage.cchange48")
|
||||||
|
parentEpml.request('showSnackBar', `${snack4string}`)
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
return Number(res).toFixed(8);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const myRef = await parentEpml.request("apiCall", {
|
||||||
|
type: "api",
|
||||||
|
url: `/addresses/lastreference/${this.myAddress.address}`,
|
||||||
|
})
|
||||||
|
|
||||||
|
if (parseFloat(amount) + parseFloat(data.fee) > parseFloat(walletBalance)) {
|
||||||
|
this.loader.hide();
|
||||||
|
let snack1string = get("chatpage.cchange51");
|
||||||
|
parentEpml.request('showSnackBar', `${snack1string}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parseFloat(amount) <= 0) {
|
||||||
|
this.loader.hide();
|
||||||
|
let snack2string = get("chatpage.cchange52");
|
||||||
|
parentEpml.request('showSnackBar', `${snack2string}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (recipient.length === 0) {
|
||||||
|
this.loader.hide();
|
||||||
|
let snack3string = get("chatpage.cchange53");
|
||||||
|
parentEpml.request('showSnackBar', `${snack3string}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateName = async (receiverName) => {
|
||||||
|
let myRes;
|
||||||
|
let myNameRes = await parentEpml.request('apiCall', {
|
||||||
|
type: 'api',
|
||||||
|
url: `/names/${receiverName}`,
|
||||||
|
})
|
||||||
|
|
||||||
|
if (myNameRes.error === 401) {
|
||||||
|
myRes = false;
|
||||||
|
} else {
|
||||||
|
myRes = myNameRes;
|
||||||
|
}
|
||||||
|
return myRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateAddress = async (receiverAddress) => {
|
||||||
|
let myAddress = await window.parent.validateAddress(receiverAddress);
|
||||||
|
return myAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateReceiver = async (recipient) => {
|
||||||
|
let lastRef = myRef;
|
||||||
|
let isAddress;
|
||||||
|
|
||||||
|
try {
|
||||||
|
isAddress = await validateAddress(recipient);
|
||||||
|
} catch (err) {
|
||||||
|
isAddress = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isAddress) {
|
||||||
|
let myTransaction = await makeTransactionRequest(recipient, lastRef);
|
||||||
|
getTxnRequestResponse(myTransaction);
|
||||||
|
} else {
|
||||||
|
let myNameRes = await validateName(recipient);
|
||||||
|
if (myNameRes !== false) {
|
||||||
|
let myNameAddress = myNameRes.owner
|
||||||
|
let myTransaction = await makeTransactionRequest(myNameAddress, lastRef)
|
||||||
|
getTxnRequestResponse(myTransaction)
|
||||||
|
} else {
|
||||||
|
console.error(`${translate("chatpage.cchange54")}`)
|
||||||
|
parentEpml.request('showSnackBar', `${translate("chatpage.cchange54")}`)
|
||||||
|
this.loader.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const getName = async (recipient)=> {
|
||||||
|
try {
|
||||||
|
const getNames = await parentEpml.request("apiCall", {
|
||||||
|
type: "api",
|
||||||
|
url: `/names/address/${recipient}`,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (getNames.length > 0 ) {
|
||||||
|
return getNames[0].name;
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const makeTransactionRequest = async (receiver, lastRef) => {
|
||||||
|
let myReceiver = receiver;
|
||||||
|
let mylastRef = lastRef;
|
||||||
|
let dialogamount = get("transactions.amount");
|
||||||
|
let dialogAddress = get("login.address");
|
||||||
|
let dialogName = get("login.name");
|
||||||
|
let dialogto = get("transactions.to");
|
||||||
|
let recipientName = await getName(myReceiver);
|
||||||
|
let myTxnrequest = await parentEpml.request('transaction', {
|
||||||
|
type: 2,
|
||||||
|
nonce: this.myAddress.nonce,
|
||||||
|
params: {
|
||||||
|
recipient: myReceiver,
|
||||||
|
recipientName: recipientName,
|
||||||
|
amount: amount,
|
||||||
|
lastReference: mylastRef,
|
||||||
|
fee: fee,
|
||||||
|
dialogamount: dialogamount,
|
||||||
|
dialogto: dialogto,
|
||||||
|
dialogAddress,
|
||||||
|
dialogName
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return myTxnrequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
const getTxnRequestResponse = (txnResponse) => {
|
||||||
|
if (txnResponse.success === false && txnResponse.message) {
|
||||||
|
parentEpml.request('showSnackBar', `${txnResponse.message}`);
|
||||||
|
this.loader.hide();
|
||||||
|
throw new Error(txnResponse);
|
||||||
|
} else if (txnResponse.success === true && !txnResponse.data.error) {
|
||||||
|
parentEpml.request('showSnackBar', `${get("chatpage.cchange55")}`)
|
||||||
|
this.loader.hide();
|
||||||
|
} else {
|
||||||
|
parentEpml.request('showSnackBar', `${txnResponse.data.message}`);
|
||||||
|
this.loader.hide();
|
||||||
|
throw new Error(txnResponse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
validateReceiver(recipient);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user