2020-06-17 19:18:31 +00:00
|
|
|
import QtQuick 2.13
|
|
|
|
import QtQuick.Controls 2.13
|
2020-08-13 08:24:51 +00:00
|
|
|
import QtQuick.Layouts 1.13
|
2020-08-20 04:45:29 +00:00
|
|
|
import QtQuick.Dialogs 1.3
|
2021-09-28 15:04:06 +00:00
|
|
|
|
|
|
|
import utils 1.0
|
2021-10-21 15:07:13 +00:00
|
|
|
|
|
|
|
import StatusQ.Controls 0.1
|
|
|
|
|
2021-10-14 09:20:18 +00:00
|
|
|
import "../panels"
|
2021-10-14 10:12:22 +00:00
|
|
|
import "../controls"
|
2021-10-14 13:45:08 +00:00
|
|
|
import "../views"
|
2021-10-14 11:33:34 +00:00
|
|
|
import "."
|
2020-05-27 20:50:39 +00:00
|
|
|
|
2021-10-14 11:33:34 +00:00
|
|
|
// TODO: replace with StatusModal
|
2020-06-26 16:08:51 +00:00
|
|
|
ModalPopup {
|
2020-08-20 04:45:29 +00:00
|
|
|
id: root
|
2020-10-28 07:44:09 +00:00
|
|
|
property alias selectFromAccount: selectFromAccount
|
|
|
|
property alias selectRecipient: selectRecipient
|
|
|
|
property alias stack: stack
|
2021-11-04 18:55:21 +00:00
|
|
|
property var store
|
2020-06-26 16:08:51 +00:00
|
|
|
|
2020-07-06 20:39:55 +00:00
|
|
|
//% "Send"
|
|
|
|
title: qsTrId("command-button-send")
|
2021-07-28 12:53:48 +00:00
|
|
|
height: 540
|
2020-06-26 16:08:51 +00:00
|
|
|
|
2020-08-20 04:45:29 +00:00
|
|
|
property MessageDialog sendingError: MessageDialog {
|
|
|
|
id: sendingError
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "Error sending the transaction"
|
|
|
|
title: qsTrId("error-sending-the-transaction")
|
2020-08-20 04:45:29 +00:00
|
|
|
icon: StandardIcon.Critical
|
|
|
|
standardButtons: StandardButton.Ok
|
2020-05-27 20:50:39 +00:00
|
|
|
}
|
2020-08-20 04:45:29 +00:00
|
|
|
|
|
|
|
function sendTransaction() {
|
2021-12-13 14:24:21 +00:00
|
|
|
// 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)
|
|
|
|
// }
|
2021-06-29 13:25:05 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// if(!success){
|
|
|
|
// //% "Invalid transaction parameters"
|
|
|
|
// sendingError.text = qsTrId("invalid-transaction-parameters")
|
|
|
|
// sendingError.open()
|
|
|
|
// }
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
TransactionStackView {
|
|
|
|
id: stack
|
|
|
|
anchors.fill: parent
|
|
|
|
anchors.leftMargin: Style.current.padding
|
|
|
|
anchors.rightMargin: Style.current.padding
|
|
|
|
onGroupActivated: {
|
|
|
|
root.title = group.headerText
|
2020-09-11 14:50:22 +00:00
|
|
|
btnNext.text = group.footerText
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
TransactionFormGroup {
|
|
|
|
id: group1
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "Send"
|
|
|
|
headerText: qsTrId("command-button-send")
|
|
|
|
//% "Continue"
|
|
|
|
footerText: qsTrId("continue")
|
2020-08-20 04:45:29 +00:00
|
|
|
|
2021-10-27 10:25:42 +00:00
|
|
|
StatusAccountSelector {
|
2020-08-20 04:45:29 +00:00
|
|
|
id: selectFromAccount
|
2021-11-04 18:55:21 +00:00
|
|
|
accounts: root.store.accounts
|
2021-04-22 04:03:46 +00:00
|
|
|
selectedAccount: {
|
2021-11-04 18:55:21 +00:00
|
|
|
const currAcc = root.store.currentAccount
|
2021-04-22 04:03:46 +00:00
|
|
|
if (currAcc.walletType !== Constants.watchWalletType) {
|
|
|
|
return currAcc
|
|
|
|
}
|
|
|
|
return null
|
|
|
|
}
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// currency: walletModel.balanceView.defaultCurrency
|
2020-08-20 04:45:29 +00:00
|
|
|
width: stack.width
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "From account"
|
|
|
|
label: qsTrId("from-account")
|
2020-10-07 02:47:21 +00:00
|
|
|
onSelectedAccountChanged: if (isValid) { gasSelector.estimateGas() }
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
SeparatorWithIcon {
|
|
|
|
id: separator
|
|
|
|
anchors.top: selectFromAccount.bottom
|
|
|
|
anchors.topMargin: 19
|
|
|
|
}
|
|
|
|
RecipientSelector {
|
|
|
|
id: selectRecipient
|
2021-11-04 18:55:21 +00:00
|
|
|
accounts: root.store.accounts
|
2022-01-04 10:38:17 +00:00
|
|
|
contacts: root.store.addedContacts
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "Recipient"
|
|
|
|
label: qsTrId("recipient")
|
2020-08-20 04:45:29 +00:00
|
|
|
anchors.top: separator.bottom
|
|
|
|
anchors.topMargin: 10
|
|
|
|
width: stack.width
|
2020-10-07 02:47:21 +00:00
|
|
|
onSelectedRecipientChanged: if (isValid) { gasSelector.estimateGas() }
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
TransactionFormGroup {
|
|
|
|
id: group2
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "Send"
|
|
|
|
headerText: qsTrId("command-button-send")
|
|
|
|
//% "Preview"
|
2021-07-05 12:34:56 +00:00
|
|
|
footerText: qsTr("Continue")
|
2020-08-20 04:45:29 +00:00
|
|
|
|
|
|
|
AssetAndAmountInput {
|
|
|
|
id: txtAmount
|
|
|
|
selectedAccount: selectFromAccount.selectedAccount
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// defaultCurrency: walletModel.balanceView.defaultCurrency
|
2021-11-15 12:36:22 +00:00
|
|
|
currentCurrency: walletSection.currentCurrency
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// getFiatValue: walletModel.balanceView.getFiatValue
|
|
|
|
// getCryptoValue: walletModel.balanceView.getCryptoValue
|
2020-08-20 04:45:29 +00:00
|
|
|
width: stack.width
|
2020-10-07 02:47:21 +00:00
|
|
|
onSelectedAssetChanged: if (isValid) { gasSelector.estimateGas() }
|
|
|
|
onSelectedAmountChanged: if (isValid) { gasSelector.estimateGas() }
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
GasSelector {
|
|
|
|
id: gasSelector
|
|
|
|
anchors.top: txtAmount.bottom
|
2021-09-27 10:59:50 +00:00
|
|
|
anchors.topMargin: Style.current.padding
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// gasPrice: parseFloat(walletModel.gasView.gasPrice)
|
|
|
|
// getGasEthValue: walletModel.gasView.getGasEthValue
|
|
|
|
// getFiatValue: walletModel.balanceView.getFiatValue
|
|
|
|
// defaultCurrency: walletModel.balanceView.defaultCurrency
|
2021-07-05 12:34:56 +00:00
|
|
|
|
2020-08-20 04:45:29 +00:00
|
|
|
width: stack.width
|
feat: enable token transactions
Fixes #788.
Fixes #853.
Fixes #856.
refactor: gas estimation and transaction sends have been abstracted to allow calling `estimateGas`, `send`, and `call` on the contract method (similar to the web3 API).
Moved sticker pack gas estimation and purchase tx over to the new API
*Sticker purchase:*
- gas estimate is done using new API and debounced using a timer
*Wallet send transaction:*
- tokens can now be sent
- gas is estimated correctly for a token tx, and debounced using a timer
***NOTE***
1. If attempting to send tokens on testnet, you must use a custom token as the token addresses in the pre-built list are for mainnet and will not work on testnet.
2. The new API should support all existing gas estimates, send txs, and calls. The loading of sticker pack data, balance, count, purchased sticker packs, etc, can be moved over to the new API. Almost all of the `eth_sendTransaction`, `eth_gasEstimate`, and `eth_call` could be move over as well (that's the idea at least).
2020-09-07 09:39:17 +00:00
|
|
|
property var estimateGas: Backpressure.debounce(gasSelector, 600, function() {
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// if (!(selectFromAccount.selectedAccount && selectFromAccount.selectedAccount.address &&
|
|
|
|
// selectRecipient.selectedRecipient && selectRecipient.selectedRecipient.address &&
|
|
|
|
// txtAmount.selectedAsset && txtAmount.selectedAsset.address &&
|
|
|
|
// txtAmount.selectedAmount)) return
|
feat: enable token transactions
Fixes #788.
Fixes #853.
Fixes #856.
refactor: gas estimation and transaction sends have been abstracted to allow calling `estimateGas`, `send`, and `call` on the contract method (similar to the web3 API).
Moved sticker pack gas estimation and purchase tx over to the new API
*Sticker purchase:*
- gas estimate is done using new API and debounced using a timer
*Wallet send transaction:*
- tokens can now be sent
- gas is estimated correctly for a token tx, and debounced using a timer
***NOTE***
1. If attempting to send tokens on testnet, you must use a custom token as the token addresses in the pre-built list are for mainnet and will not work on testnet.
2. The new API should support all existing gas estimates, send txs, and calls. The loading of sticker pack data, balance, count, purchased sticker packs, etc, can be moved over to the new API. Almost all of the `eth_sendTransaction`, `eth_gasEstimate`, and `eth_call` could be move over as well (that's the idea at least).
2020-09-07 09:39:17 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// let gasEstimate = JSON.parse(walletModel.gasView.estimateGas(
|
|
|
|
// selectFromAccount.selectedAccount.address,
|
|
|
|
// selectRecipient.selectedRecipient.address,
|
|
|
|
// txtAmount.selectedAsset.address,
|
|
|
|
// txtAmount.selectedAmount,
|
|
|
|
// ""))
|
feat: enable token transactions
Fixes #788.
Fixes #853.
Fixes #856.
refactor: gas estimation and transaction sends have been abstracted to allow calling `estimateGas`, `send`, and `call` on the contract method (similar to the web3 API).
Moved sticker pack gas estimation and purchase tx over to the new API
*Sticker purchase:*
- gas estimate is done using new API and debounced using a timer
*Wallet send transaction:*
- tokens can now be sent
- gas is estimated correctly for a token tx, and debounced using a timer
***NOTE***
1. If attempting to send tokens on testnet, you must use a custom token as the token addresses in the pre-built list are for mainnet and will not work on testnet.
2. The new API should support all existing gas estimates, send txs, and calls. The loading of sticker pack data, balance, count, purchased sticker packs, etc, can be moved over to the new API. Almost all of the `eth_sendTransaction`, `eth_gasEstimate`, and `eth_call` could be move over as well (that's the idea at least).
2020-09-07 09:39:17 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// if (!gasEstimate.success) {
|
|
|
|
// //% "Error estimating gas: %1"
|
|
|
|
// console.warn(qsTrId("error-estimating-gas---1").arg(gasEstimate.error.message))
|
|
|
|
// return
|
|
|
|
// }
|
2021-07-05 12:34:56 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// selectedGasLimit = gasEstimate.result
|
|
|
|
// defaultGasLimit = selectedGasLimit
|
feat: enable token transactions
Fixes #788.
Fixes #853.
Fixes #856.
refactor: gas estimation and transaction sends have been abstracted to allow calling `estimateGas`, `send`, and `call` on the contract method (similar to the web3 API).
Moved sticker pack gas estimation and purchase tx over to the new API
*Sticker purchase:*
- gas estimate is done using new API and debounced using a timer
*Wallet send transaction:*
- tokens can now be sent
- gas is estimated correctly for a token tx, and debounced using a timer
***NOTE***
1. If attempting to send tokens on testnet, you must use a custom token as the token addresses in the pre-built list are for mainnet and will not work on testnet.
2. The new API should support all existing gas estimates, send txs, and calls. The loading of sticker pack data, balance, count, purchased sticker packs, etc, can be moved over to the new API. Almost all of the `eth_sendTransaction`, `eth_gasEstimate`, and `eth_call` could be move over as well (that's the idea at least).
2020-09-07 09:39:17 +00:00
|
|
|
})
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
2020-09-01 03:49:05 +00:00
|
|
|
GasValidator {
|
|
|
|
id: gasValidator
|
2021-07-28 12:53:48 +00:00
|
|
|
anchors.top: gasSelector.bottom
|
2020-09-01 03:49:05 +00:00
|
|
|
selectedAccount: selectFromAccount.selectedAccount
|
|
|
|
selectedAmount: parseFloat(txtAmount.selectedAmount)
|
|
|
|
selectedAsset: txtAmount.selectedAsset
|
|
|
|
selectedGasEthValue: gasSelector.selectedGasEthValue
|
|
|
|
}
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
TransactionFormGroup {
|
|
|
|
id: group3
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "Transaction preview"
|
|
|
|
headerText: qsTrId("transaction-preview")
|
|
|
|
//% "Sign with password"
|
|
|
|
footerText: qsTrId("sign-with-password")
|
2020-08-20 04:45:29 +00:00
|
|
|
|
|
|
|
TransactionPreview {
|
|
|
|
id: pvwTransaction
|
|
|
|
width: stack.width
|
|
|
|
fromAccount: selectFromAccount.selectedAccount
|
|
|
|
gas: {
|
2020-09-01 03:49:05 +00:00
|
|
|
"value": gasSelector.selectedGasEthValue,
|
|
|
|
"symbol": "ETH",
|
|
|
|
"fiatValue": gasSelector.selectedGasFiatValue
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
toAccount: selectRecipient.selectedRecipient
|
|
|
|
asset: txtAmount.selectedAsset
|
|
|
|
amount: { "value": txtAmount.selectedAmount, "fiatValue": txtAmount.selectedFiatAmount }
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// currency: walletModel.balanceView.defaultCurrency
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
2020-10-19 09:39:07 +00:00
|
|
|
SendToContractWarning {
|
|
|
|
id: sendToContractWarning
|
|
|
|
anchors.top: pvwTransaction.bottom
|
|
|
|
selectedRecipient: selectRecipient.selectedRecipient
|
|
|
|
}
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
|
|
|
TransactionFormGroup {
|
|
|
|
id: group4
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "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 : "")
|
2020-05-27 20:50:39 +00:00
|
|
|
|
2020-08-20 04:45:29 +00:00
|
|
|
TransactionSigner {
|
|
|
|
id: transactionSigner
|
|
|
|
width: stack.width
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// signingPhrase: walletModel.utilsView.signingPhrase
|
2020-08-20 04:45:29 +00:00
|
|
|
}
|
2020-07-01 14:24:07 +00:00
|
|
|
}
|
2020-05-27 20:50:39 +00:00
|
|
|
}
|
|
|
|
|
2020-08-13 08:24:51 +00:00
|
|
|
footer: Item {
|
2021-01-13 19:15:52 +00:00
|
|
|
width: parent.width
|
|
|
|
height: btnNext.height
|
|
|
|
|
2021-10-27 10:25:42 +00:00
|
|
|
StatusRoundButton {
|
2020-08-13 08:24:51 +00:00
|
|
|
id: btnBack
|
|
|
|
anchors.left: parent.left
|
2020-08-20 04:45:29 +00:00
|
|
|
visible: !stack.isFirstGroup
|
2020-10-07 02:47:21 +00:00
|
|
|
icon.name: "arrow-right"
|
|
|
|
icon.width: 20
|
|
|
|
icon.height: 16
|
2021-10-21 15:07:13 +00:00
|
|
|
icon.rotation: 180
|
2020-08-13 08:24:51 +00:00
|
|
|
onClicked: {
|
2020-08-20 04:45:29 +00:00
|
|
|
stack.back()
|
2020-08-13 08:24:51 +00:00
|
|
|
}
|
|
|
|
}
|
2021-07-05 12:34:56 +00:00
|
|
|
|
|
|
|
Component {
|
|
|
|
id: transactionSettingsConfirmationPopupComponent
|
|
|
|
TransactionSettingsConfirmationPopup {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-09-11 14:50:22 +00:00
|
|
|
StatusButton {
|
2020-08-20 04:45:29 +00:00
|
|
|
id: btnNext
|
2020-08-13 08:24:51 +00:00
|
|
|
anchors.right: parent.right
|
2020-09-14 12:12:47 +00:00
|
|
|
//% "Next"
|
|
|
|
text: qsTrId("next")
|
2020-09-17 09:08:31 +00:00
|
|
|
enabled: stack.currentGroup.isValid && !stack.currentGroup.isPending
|
2021-10-21 15:07:13 +00:00
|
|
|
loading: stack.currentGroup.isPending
|
2020-08-13 08:24:51 +00:00
|
|
|
onClicked: {
|
2020-09-09 11:04:01 +00:00
|
|
|
const validity = stack.currentGroup.validate()
|
|
|
|
if (validity.isValid && !validity.isPending) {
|
2020-08-20 04:45:29 +00:00
|
|
|
if (stack.isLastGroup) {
|
|
|
|
return root.sendTransaction()
|
|
|
|
}
|
2021-07-05 12:34:56 +00:00
|
|
|
|
|
|
|
if(gasSelector.eip1599Enabled && stack.currentGroup === group2 && gasSelector.advancedMode){
|
|
|
|
if(gasSelector.showPriceLimitWarning || gasSelector.showTipLimitWarning){
|
2021-12-07 20:33:12 +00:00
|
|
|
Global.openPopup(transactionSettingsConfirmationPopupComponent, {
|
2021-07-05 12:34:56 +00:00
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-08-20 04:45:29 +00:00
|
|
|
stack.next()
|
2020-08-19 15:29:42 +00:00
|
|
|
}
|
2020-08-13 08:24:51 +00:00
|
|
|
}
|
2020-09-10 18:55:24 +00:00
|
|
|
}
|
2020-09-14 14:58:21 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// Not Refactored Yet
|
|
|
|
// Connections {
|
|
|
|
// target: walletModel.transactionsView
|
|
|
|
// onTransactionWasSent: {
|
|
|
|
// try {
|
|
|
|
// let response = JSON.parse(txResult)
|
2020-09-10 18:55:24 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// if (response.uuid !== stack.uuid) return
|
2020-10-07 02:47:21 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// stack.currentGroup.isPending = false
|
2020-10-07 02:47:21 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// if (!response.success) {
|
|
|
|
// if (Utils.isInvalidPasswordMessage(response.result)){
|
|
|
|
// //% "Wrong password"
|
|
|
|
// transactionSigner.validationError = qsTrId("wrong-password")
|
|
|
|
// return
|
|
|
|
// }
|
|
|
|
// sendingError.text = response.result
|
|
|
|
// return sendingError.open()
|
|
|
|
// }
|
2020-09-10 18:55:24 +00:00
|
|
|
|
2021-12-13 14:24:21 +00:00
|
|
|
// //% "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()
|
|
|
|
// }
|
|
|
|
// }
|
2020-05-27 20:50:39 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*##^##
|
|
|
|
Designer {
|
|
|
|
D{i:0;autoSize:true;height:480;width:640}
|
|
|
|
}
|
|
|
|
##^##*/
|
2020-05-29 15:43:37 +00:00
|
|
|
|