Sale Djenic b3f8af8e06 refactor(@desktop/general): qml code referring to the old code base commented out
Qml code referring to the old code base commented out, but not deleted,
due to easier refactoring the rest of the app.
2022-02-01 11:42:42 +01:00

350 lines
14 KiB
QML

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.13
import QtQuick.Dialogs 1.3
import utils 1.0
import StatusQ.Controls 0.1
import "../panels"
import "../controls"
import "../views"
import "."
// TODO: replace with StatusModal
ModalPopup {
id: root
property alias selectFromAccount: selectFromAccount
property alias selectRecipient: selectRecipient
property alias stack: stack
property var store
//% "Send"
title: qsTrId("command-button-send")
height: 540
property MessageDialog sendingError: MessageDialog {
id: sendingError
//% "Error sending the transaction"
title: qsTrId("error-sending-the-transaction")
icon: StandardIcon.Critical
standardButtons: StandardButton.Ok
}
function sendTransaction() {
// Not Refactored Yet
// stack.currentGroup.isPending = true
// let success = false
// if(txtAmount.selectedAsset.address === "" || txtAmount.selectedAsset.address === Constants.zeroAddress){
// success = walletModel.transactionsView.transferEth(
// selectFromAccount.selectedAccount.address,
// selectRecipient.selectedRecipient.address,
// txtAmount.selectedAmount,
// gasSelector.selectedGasLimit,
// gasSelector.eip1599Enabled ? "" : gasSelector.selectedGasPrice,
// gasSelector.selectedTipLimit,
// gasSelector.selectedOverallLimit,
// transactionSigner.enteredPassword,
// stack.uuid)
// } else {
// success = walletModel.transactionsView.transferTokens(
// selectFromAccount.selectedAccount.address,
// selectRecipient.selectedRecipient.address,
// txtAmount.selectedAsset.address,
// txtAmount.selectedAmount,
// gasSelector.selectedGasLimit,
// gasSelector.eip1599Enabled ? "" : gasSelector.selectedGasPrice,
// gasSelector.selectedTipLimit,
// gasSelector.selectedOverallLimit,
// transactionSigner.enteredPassword,
// stack.uuid)
// }
// if(!success){
// //% "Invalid transaction parameters"
// sendingError.text = qsTrId("invalid-transaction-parameters")
// sendingError.open()
// }
}
TransactionStackView {
id: stack
anchors.fill: parent
anchors.leftMargin: Style.current.padding
anchors.rightMargin: Style.current.padding
onGroupActivated: {
root.title = group.headerText
btnNext.text = group.footerText
}
TransactionFormGroup {
id: group1
//% "Send"
headerText: qsTrId("command-button-send")
//% "Continue"
footerText: qsTrId("continue")
StatusAccountSelector {
id: selectFromAccount
accounts: root.store.accounts
selectedAccount: {
const currAcc = root.store.currentAccount
if (currAcc.walletType !== Constants.watchWalletType) {
return currAcc
}
return null
}
// Not Refactored Yet
// currency: walletModel.balanceView.defaultCurrency
width: stack.width
//% "From account"
label: qsTrId("from-account")
onSelectedAccountChanged: if (isValid) { gasSelector.estimateGas() }
}
SeparatorWithIcon {
id: separator
anchors.top: selectFromAccount.bottom
anchors.topMargin: 19
}
RecipientSelector {
id: selectRecipient
accounts: root.store.accounts
contacts: root.store.addedContacts
//% "Recipient"
label: qsTrId("recipient")
anchors.top: separator.bottom
anchors.topMargin: 10
width: stack.width
onSelectedRecipientChanged: if (isValid) { gasSelector.estimateGas() }
}
}
TransactionFormGroup {
id: group2
//% "Send"
headerText: qsTrId("command-button-send")
//% "Preview"
footerText: qsTr("Continue")
AssetAndAmountInput {
id: txtAmount
selectedAccount: selectFromAccount.selectedAccount
// Not Refactored Yet
// defaultCurrency: walletModel.balanceView.defaultCurrency
currentCurrency: walletSection.currentCurrency
// Not Refactored Yet
// getFiatValue: walletModel.balanceView.getFiatValue
// getCryptoValue: walletModel.balanceView.getCryptoValue
width: stack.width
onSelectedAssetChanged: if (isValid) { gasSelector.estimateGas() }
onSelectedAmountChanged: if (isValid) { gasSelector.estimateGas() }
}
GasSelector {
id: gasSelector
anchors.top: txtAmount.bottom
anchors.topMargin: Style.current.padding
// Not Refactored Yet
// gasPrice: parseFloat(walletModel.gasView.gasPrice)
// getGasEthValue: walletModel.gasView.getGasEthValue
// getFiatValue: walletModel.balanceView.getFiatValue
// defaultCurrency: walletModel.balanceView.defaultCurrency
width: stack.width
property var estimateGas: Backpressure.debounce(gasSelector, 600, function() {
// Not Refactored Yet
// if (!(selectFromAccount.selectedAccount && selectFromAccount.selectedAccount.address &&
// selectRecipient.selectedRecipient && selectRecipient.selectedRecipient.address &&
// txtAmount.selectedAsset && txtAmount.selectedAsset.address &&
// txtAmount.selectedAmount)) return
// let gasEstimate = JSON.parse(walletModel.gasView.estimateGas(
// selectFromAccount.selectedAccount.address,
// selectRecipient.selectedRecipient.address,
// txtAmount.selectedAsset.address,
// txtAmount.selectedAmount,
// ""))
// if (!gasEstimate.success) {
// //% "Error estimating gas: %1"
// console.warn(qsTrId("error-estimating-gas---1").arg(gasEstimate.error.message))
// return
// }
// selectedGasLimit = gasEstimate.result
// defaultGasLimit = selectedGasLimit
})
}
GasValidator {
id: gasValidator
anchors.top: gasSelector.bottom
selectedAccount: selectFromAccount.selectedAccount
selectedAmount: parseFloat(txtAmount.selectedAmount)
selectedAsset: txtAmount.selectedAsset
selectedGasEthValue: gasSelector.selectedGasEthValue
}
}
TransactionFormGroup {
id: group3
//% "Transaction preview"
headerText: qsTrId("transaction-preview")
//% "Sign with password"
footerText: qsTrId("sign-with-password")
TransactionPreview {
id: pvwTransaction
width: stack.width
fromAccount: selectFromAccount.selectedAccount
gas: {
"value": gasSelector.selectedGasEthValue,
"symbol": "ETH",
"fiatValue": gasSelector.selectedGasFiatValue
}
toAccount: selectRecipient.selectedRecipient
asset: txtAmount.selectedAsset
amount: { "value": txtAmount.selectedAmount, "fiatValue": txtAmount.selectedFiatAmount }
// Not Refactored Yet
// currency: walletModel.balanceView.defaultCurrency
}
SendToContractWarning {
id: sendToContractWarning
anchors.top: pvwTransaction.bottom
selectedRecipient: selectRecipient.selectedRecipient
}
}
TransactionFormGroup {
id: group4
//% "Sign with password"
headerText: qsTrId("sign-with-password")
//% "Send %1 %2"
footerText: qsTrId("send--1--2").arg(txtAmount.selectedAmount).arg(!!txtAmount.selectedAsset ? txtAmount.selectedAsset.symbol : "")
TransactionSigner {
id: transactionSigner
width: stack.width
// Not Refactored Yet
// signingPhrase: walletModel.utilsView.signingPhrase
}
}
}
footer: Item {
width: parent.width
height: btnNext.height
StatusRoundButton {
id: btnBack
anchors.left: parent.left
visible: !stack.isFirstGroup
icon.name: "arrow-right"
icon.width: 20
icon.height: 16
icon.rotation: 180
onClicked: {
stack.back()
}
}
Component {
id: transactionSettingsConfirmationPopupComponent
TransactionSettingsConfirmationPopup {
}
}
StatusButton {
id: btnNext
anchors.right: parent.right
//% "Next"
text: qsTrId("next")
enabled: stack.currentGroup.isValid && !stack.currentGroup.isPending
loading: stack.currentGroup.isPending
onClicked: {
const validity = stack.currentGroup.validate()
if (validity.isValid && !validity.isPending) {
if (stack.isLastGroup) {
return root.sendTransaction()
}
if(gasSelector.eip1599Enabled && stack.currentGroup === group2 && gasSelector.advancedMode){
if(gasSelector.showPriceLimitWarning || gasSelector.showTipLimitWarning){
Global.openPopup(transactionSettingsConfirmationPopupComponent, {
currentBaseFee: gasSelector.latestBaseFeeGwei,
currentMinimumTip: gasSelector.perGasTipLimitFloor,
currentAverageTip: gasSelector.perGasTipLimitAverage,
tipLimit: gasSelector.selectedTipLimit,
suggestedTipLimit: gasSelector.perGasTipLimitFloor,
priceLimit: gasSelector.selectedOverallLimit,
suggestedPriceLimit: gasSelector.latestBaseFeeGwei + gasSelector.perGasTipLimitFloor,
showPriceLimitWarning: gasSelector.showPriceLimitWarning,
showTipLimitWarning: gasSelector.showTipLimitWarning,
onConfirm: function(){
stack.next();
}
})
return
}
}
stack.next()
}
}
}
// Not Refactored Yet
// Connections {
// target: walletModel.transactionsView
// onTransactionWasSent: {
// try {
// let response = JSON.parse(txResult)
// if (response.uuid !== stack.uuid) return
// stack.currentGroup.isPending = false
// if (!response.success) {
// if (Utils.isInvalidPasswordMessage(response.result)){
// //% "Wrong password"
// transactionSigner.validationError = qsTrId("wrong-password")
// return
// }
// sendingError.text = response.result
// return sendingError.open()
// }
// //% "Transaction pending..."
// toastMessage.title = qsTrId("ens-transaction-pending")
// toastMessage.source = Style.svg("loading")
// toastMessage.iconColor = Style.current.primary
// toastMessage.iconRotates = true
// toastMessage.link = `${walletModel.utilsView.etherscanLink}/${response.result}`
// toastMessage.open()
// root.close()
// } catch (e) {
// console.error('Error parsing the response', e)
// }
// }
// onTransactionCompleted: {
// if (success) {
// //% "Transaction completed"
// toastMessage.title = qsTrId("transaction-completed")
// toastMessage.source = Style.svg("check-circle")
// toastMessage.iconColor = Style.current.success
// } else {
// //% "Transaction failed"
// toastMessage.title = qsTrId("ens-registration-failed-title")
// toastMessage.source = Style.svg("block-icon")
// toastMessage.iconColor = Style.current.danger
// }
// toastMessage.link = `${walletModel.utilsView.etherscanLink}/${txHash}`
// toastMessage.open()
// }
// }
}
}
/*##^##
Designer {
D{i:0;autoSize:true;height:480;width:640}
}
##^##*/