fix(@desktop/wallet): Move selected recipient and send type to nim
fixes #12206
This commit is contained in:
parent
c8c9c706d9
commit
76615b0bf7
|
@ -88,12 +88,12 @@ proc authenticateUser*(self: Controller, keyUid = "") =
|
|||
keyUid: keyUid)
|
||||
self.events.emit(SIGNAL_SHARED_KEYCARD_MODULE_AUTHENTICATE_USER, data)
|
||||
|
||||
proc suggestedRoutes*(self: Controller, account: string, amount: Uint256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: int, lockedInAmounts: string): string =
|
||||
proc suggestedRoutes*(self: Controller, account: string, amount: Uint256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: SendType, lockedInAmounts: string): string =
|
||||
let suggestedRoutes = self.transactionService.suggestedRoutes(account, amount, token, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs, sendType, lockedInAmounts)
|
||||
return suggestedRoutes.toJson()
|
||||
|
||||
proc transfer*(self: Controller, from_addr: string, to_addr: string, tokenSymbol: string,
|
||||
value: string, uuid: string, selectedRoutes: seq[TransactionPathDto], password: string, sendType: int) =
|
||||
value: string, uuid: string, selectedRoutes: seq[TransactionPathDto], password: string, sendType: SendType) =
|
||||
self.transactionService.transfer(from_addr, to_addr, tokenSymbol, value, uuid, selectedRoutes, password, sendType)
|
||||
|
||||
proc areTestNetworksEnabled*(self: Controller): bool =
|
||||
|
|
|
@ -23,14 +23,14 @@ method refreshWalletAccounts*(self: AccessInterface) {.base.} =
|
|||
method getTokenBalanceOnChain*(self: AccessInterface, address: string, chainId: int, symbol: string): CurrencyAmount {.base.} =
|
||||
raise newException(ValueError, "No implementation available")
|
||||
|
||||
method suggestedRoutes*(self: AccessInterface, account: string, amount: UInt256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: int, lockedInAmounts: string): string {.base.} =
|
||||
method suggestedRoutes*(self: AccessInterface, account: string, amount: UInt256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: SendType, lockedInAmounts: string): string {.base.} =
|
||||
raise newException(ValueError, "No implementation available")
|
||||
|
||||
method suggestedRoutesReady*(self: AccessInterface, suggestedRoutes: SuggestedRoutesDto) {.base.} =
|
||||
raise newException(ValueError, "No implementation available")
|
||||
|
||||
method authenticateAndTransfer*(self: AccessInterface, from_addr: string, to_addr: string,
|
||||
tokenSymbol: string, value: string, uuid: string, sendType: int) {.base.} =
|
||||
tokenSymbol: string, value: string, uuid: string, sendType: SendType) {.base.} =
|
||||
raise newException(ValueError, "No implementation available")
|
||||
|
||||
method onUserAuthenticated*(self: AccessInterface, password: string) {.base.} =
|
||||
|
|
|
@ -30,7 +30,7 @@ type TmpSendTransactionDetails = object
|
|||
value: string
|
||||
paths: seq[TransactionPathDto]
|
||||
uuid: string
|
||||
sendType: int
|
||||
sendType: SendType
|
||||
|
||||
type
|
||||
Module* = ref object of io_interface.AccessInterface
|
||||
|
@ -242,7 +242,7 @@ method viewDidLoad*(self: Module) =
|
|||
method getTokenBalanceOnChain*(self: Module, address: string, chainId: int, symbol: string): CurrencyAmount =
|
||||
return self.controller.getTokenBalanceOnChain(address, chainId, symbol)
|
||||
|
||||
method authenticateAndTransfer*(self: Module, from_addr: string, to_addr: string, tokenSymbol: string, value: string, uuid: string, sendType: int) =
|
||||
method authenticateAndTransfer*(self: Module, from_addr: string, to_addr: string, tokenSymbol: string, value: string, uuid: string, sendType: SendType) =
|
||||
self.tmpSendTransactionDetails.fromAddr = from_addr
|
||||
self.tmpSendTransactionDetails.toAddr = to_addr
|
||||
self.tmpSendTransactionDetails.tokenSymbol = tokenSymbol
|
||||
|
@ -290,7 +290,7 @@ method onUserAuthenticated*(self: Module, password: string) =
|
|||
method transactionWasSent*(self: Module, chainId: int, txHash, uuid, error: string) =
|
||||
self.view.transactionWasSent(chainId, txHash, uuid, error)
|
||||
|
||||
method suggestedRoutes*(self: Module, account: string, amount: UInt256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: int, lockedInAmounts: string): string =
|
||||
method suggestedRoutes*(self: Module, account: string, amount: UInt256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: SendType, lockedInAmounts: string): string =
|
||||
return self.controller.suggestedRoutes(account, amount, token, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs, sendType, lockedInAmounts)
|
||||
|
||||
method suggestedRoutesReady*(self: Module, suggestedRoutes: SuggestedRoutesDto) =
|
||||
|
|
|
@ -4,6 +4,7 @@ import ./io_interface, ./accounts_model, ./account_item, ./network_model, ./netw
|
|||
import app/modules/shared_models/token_model
|
||||
import app/modules/shared_models/collectibles_model as collectibles
|
||||
import app/modules/shared_models/collectibles_nested_model as nested_collectibles
|
||||
import app_service/service/transaction/dto as transaction_dto
|
||||
|
||||
QtObject:
|
||||
type
|
||||
|
@ -22,6 +23,8 @@ QtObject:
|
|||
transactionRoutes: TransactionRoutes
|
||||
selectedAssetSymbol: string
|
||||
showUnPreferredChains: bool
|
||||
sendType: transaction_dto.SendType
|
||||
selectedRecipient: string
|
||||
# for receive modal
|
||||
selectedReceiveAccount: AccountItem
|
||||
|
||||
|
@ -143,6 +146,28 @@ QtObject:
|
|||
read = getShowUnPreferredChains
|
||||
notify = showUnPreferredChainsChanged
|
||||
|
||||
proc sendTypeChanged*(self: View) {.signal.}
|
||||
proc getSendType(self: View): int {.slot.} =
|
||||
return ord(self.sendType)
|
||||
proc setSendType(self: View, sendType: int) {.slot.} =
|
||||
self.sendType = (SendType)sendType
|
||||
self.sendTypeChanged()
|
||||
QtProperty[int] sendType:
|
||||
write = setSendType
|
||||
read = getSendType
|
||||
notify = sendTypeChanged
|
||||
|
||||
proc selectedRecipientChanged*(self: View) {.signal.}
|
||||
proc getSelectedRecipient(self: View): string {.slot.} =
|
||||
return self.selectedRecipient
|
||||
proc setSelectedRecipient(self: View, selectedRecipient: string) {.slot.} =
|
||||
self.selectedRecipient = selectedRecipient
|
||||
self.selectedRecipientChanged()
|
||||
QtProperty[string] selectedRecipient:
|
||||
read = getSelectedRecipient
|
||||
write = setSelectedRecipient
|
||||
notify = selectedRecipientChanged
|
||||
|
||||
proc updateNetworksDisabledChains(self: View) =
|
||||
# if the setting to show unpreferred chains is toggled, add all unpreferred chains to disabled chains list
|
||||
if not self.showUnPreferredChains:
|
||||
|
@ -172,15 +197,14 @@ QtObject:
|
|||
proc transactionWasSent*(self: View, chainId: int, txHash: string, uuid: string, error: string) {.slot} =
|
||||
self.transactionSent(chainId, txHash, uuid, error)
|
||||
|
||||
proc authenticateAndTransfer*(self: View, from_addr: string, to_addr: string, tokenSymbol: string,
|
||||
value: string, uuid: string, sendType: int) {.slot.} =
|
||||
self.delegate.authenticateAndTransfer(from_addr, to_addr, tokenSymbol, value, uuid, sendType)
|
||||
proc authenticateAndTransfer*(self: View, value: string, uuid: string) {.slot.} =
|
||||
self.delegate.authenticateAndTransfer(self.selectedSenderAccount.address(), self.selectedRecipient, self.selectedAssetSymbol, value, uuid, self.sendType)
|
||||
|
||||
proc suggestedRoutesReady*(self: View, suggestedRoutes: QVariant) {.signal.}
|
||||
proc setTransactionRoute*(self: View, routes: TransactionRoutes) =
|
||||
self.transactionRoutes = routes
|
||||
self.suggestedRoutesReady(newQVariant(self.transactionRoutes))
|
||||
proc suggestedRoutes*(self: View, amount: string, sendType: int): string {.slot.} =
|
||||
self.transactionRoutes = routes
|
||||
self.suggestedRoutesReady(newQVariant(self.transactionRoutes))
|
||||
proc suggestedRoutes*(self: View, amount: string): string {.slot.} =
|
||||
var parsedAmount = stint.u256(0)
|
||||
try:
|
||||
parsedAmount = amount.parse(Uint256)
|
||||
|
@ -189,7 +213,7 @@ QtObject:
|
|||
|
||||
return self.delegate.suggestedRoutes(self.selectedSenderAccount.address(),
|
||||
parsedAmount, self.selectedAssetSymbol, self.fromNetworksModel.getRouteDisabledNetworkChainIds(),
|
||||
self.toNetworksModel.getRouteDisabledNetworkChainIds(), self.toNetworksModel.getRoutePreferredNetworkChainIds(), sendType, self.fromNetworksModel.getRouteLockedChainIds())
|
||||
self.toNetworksModel.getRouteDisabledNetworkChainIds(), self.toNetworksModel.getRoutePreferredNetworkChainIds(), self.sendType, self.fromNetworksModel.getRouteLockedChainIds())
|
||||
|
||||
proc switchSenderAccountByAddress*(self: View, address: string) =
|
||||
let (account, index) = self.senderAccounts.getItemByAddress(address)
|
||||
|
@ -235,6 +259,8 @@ QtObject:
|
|||
self.toNetworksModel.updateToNetworks(path)
|
||||
|
||||
proc resetStoredProperties*(self: View) {.slot.} =
|
||||
self.sendType = transaction_dto.SendType.Transfer
|
||||
self.selectedRecipient = ""
|
||||
self.fromNetworksModel.reset()
|
||||
self.toNetworksModel.reset()
|
||||
self.transactionRoutes = newTransactionRoutes()
|
||||
|
|
|
@ -20,7 +20,7 @@ type
|
|||
disabledFromChainIDs: seq[int]
|
||||
disabledToChainIDs: seq[int]
|
||||
preferredChainIDs: seq[int]
|
||||
sendType: int
|
||||
sendType: SendType
|
||||
lockedInAmounts: string
|
||||
|
||||
proc getGasEthValue*(gweiValue: float, gasLimit: uint64): float =
|
||||
|
@ -88,12 +88,12 @@ const getSuggestedRoutesTask*: Task = proc(argEncoded: string) {.gcsafe, nimcall
|
|||
except:
|
||||
discard
|
||||
|
||||
let response = eth.suggestedRoutes(arg.account, amountAsHex, arg.token, arg.disabledFromChainIDs, arg.disabledToChainIDs, arg.preferredChainIDs, arg.sendType, lockedInAmounts).result
|
||||
let response = eth.suggestedRoutes(arg.account, amountAsHex, arg.token, arg.disabledFromChainIDs, arg.disabledToChainIDs, arg.preferredChainIDs, ord(arg.sendType), lockedInAmounts).result
|
||||
var bestPaths = response["Best"].getElems().map(x => x.toTransactionPathDto())
|
||||
|
||||
# retry along with unpreferred chains incase no route is possible with preferred chains
|
||||
if(bestPaths.len == 0 and arg.preferredChainIDs.len > 0):
|
||||
let response = eth.suggestedRoutes(arg.account, amountAsHex, arg.token, arg.disabledFromChainIDs, arg.disabledToChainIDs, @[], arg.sendType, lockedInAmounts).result
|
||||
let response = eth.suggestedRoutes(arg.account, amountAsHex, arg.token, arg.disabledFromChainIDs, arg.disabledToChainIDs, @[], ord(arg.sendType), lockedInAmounts).result
|
||||
bestPaths = response["Best"].getElems().map(x => x.toTransactionPathDto())
|
||||
|
||||
bestPaths.sort(sortAsc[TransactionPathDto])
|
||||
|
|
|
@ -310,10 +310,10 @@ QtObject:
|
|||
uuid: string,
|
||||
routes: seq[TransactionPathDto],
|
||||
password: string,
|
||||
sendType: int
|
||||
sendType: SendType
|
||||
) =
|
||||
try:
|
||||
let isERC721Transfer = sendType == ord(ERC721Transfer)
|
||||
let isERC721Transfer = sendType == ERC721Transfer
|
||||
var paths: seq[TransactionBridgeDto] = @[]
|
||||
var chainID = 0
|
||||
|
||||
|
@ -387,7 +387,7 @@ QtObject:
|
|||
uuid: string,
|
||||
selectedRoutes: seq[TransactionPathDto],
|
||||
password: string,
|
||||
sendType: int
|
||||
sendType: SendType
|
||||
) =
|
||||
try:
|
||||
var chainID = 0
|
||||
|
@ -424,7 +424,7 @@ QtObject:
|
|||
error "error handling suggestedRoutesReady response", errDesription=e.msg
|
||||
self.events.emit(SIGNAL_SUGGESTED_ROUTES_READY, SuggestedRoutesArgs(suggestedRoutes: suggestedRoutesDto))
|
||||
|
||||
proc suggestedRoutes*(self: Service, account: string, amount: Uint256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: int, lockedInAmounts: string): SuggestedRoutesDto =
|
||||
proc suggestedRoutes*(self: Service, account: string, amount: Uint256, token: string, disabledFromChainIDs, disabledToChainIDs, preferredChainIDs: seq[int], sendType: SendType, lockedInAmounts: string): SuggestedRoutesDto =
|
||||
let arg = GetSuggestedRoutesTaskArg(
|
||||
tptr: cast[ByteAddress](getSuggestedRoutesTask),
|
||||
vptr: cast[ByteAddress](self.vptr),
|
||||
|
|
|
@ -63,7 +63,6 @@ StatusSectionLayout {
|
|||
|
||||
property Component sendTransactionModalComponent: SendModal {
|
||||
anchors.centerIn: parent
|
||||
selectedAccount: WalletStore.dappBrowserAccount
|
||||
preSelectedHolding: store.getAsset(WalletStore.dappBrowserAccount.assets, "ETH")
|
||||
preSelectedHoldingType: Constants.HoldingType.Asset
|
||||
}
|
||||
|
|
|
@ -118,7 +118,7 @@ Item {
|
|||
id: releaseEnsModal
|
||||
modalHeader: qsTr("Release your username")
|
||||
interactive: false
|
||||
sendType: Constants.SendType.ENSRelease
|
||||
preSelectedSendType: Constants.SendType.ENSRelease
|
||||
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(0)
|
||||
preSelectedHolding: store.getAsset(releaseEnsModal.store.assets, Constants.ethToken)
|
||||
|
@ -131,7 +131,7 @@ Item {
|
|||
root.ensUsernamesStore.authenticateAndReleaseEns(
|
||||
root.chainId,
|
||||
root.username,
|
||||
selectedAccount.address,
|
||||
store.selectedSenderAccount.address,
|
||||
path.gasAmount,
|
||||
eip1559Enabled ? "" : path.gasFees.gasPrice,
|
||||
eip1559Enabled ? path.gasFees.maxPriorityFeePerGas : "",
|
||||
|
|
|
@ -63,7 +63,7 @@ Item {
|
|||
id: connectEnsModal
|
||||
modalHeader: qsTr("Connect username with your pubkey")
|
||||
interactive: false
|
||||
sendType: Constants.SendType.ENSSetPubKey
|
||||
preSelectedSendType: Constants.SendType.ENSSetPubKey
|
||||
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(0)
|
||||
preSelectedHolding: store.getAsset(connectEnsModal.store.assets, Constants.ethToken)
|
||||
|
@ -75,7 +75,7 @@ Item {
|
|||
root.ensUsernamesStore.authenticateAndSetPubKey(
|
||||
root.ensUsernamesStore.chainId,
|
||||
ensUsername.text + (isStatus ? ".stateofus.eth" : "" ),
|
||||
selectedAccount.address,
|
||||
store.selectedSenderAccount.address,
|
||||
path.gasAmount,
|
||||
eip1559Enabled ? "" : path.gasFees.gasPrice,
|
||||
"",
|
||||
|
|
|
@ -48,7 +48,7 @@ Item {
|
|||
sourceComponent: SendModal {
|
||||
id: buyEnsModal
|
||||
interactive: false
|
||||
sendType: Constants.SendType.ENSRegister
|
||||
preSelectedSendType: Constants.SendType.ENSRegister
|
||||
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(10)
|
||||
preSelectedHolding: store.getAsset(buyEnsModal.store.assets, JSON.parse(root.stickersStore.getStatusToken()).symbol)
|
||||
|
@ -61,7 +61,7 @@ Item {
|
|||
root.ensUsernamesStore.authenticateAndRegisterEns(
|
||||
root.ensUsernamesStore.chainId,
|
||||
username,
|
||||
selectedAccount.address,
|
||||
store.selectedSenderAccount.address,
|
||||
path.gasAmount,
|
||||
eip1559Enabled ? "" : path.gasFees.gasPrice,
|
||||
eip1559Enabled ? path.gasFees.maxPriorityFeePerGas : "",
|
||||
|
|
|
@ -150,14 +150,14 @@ Item {
|
|||
networkConnectionStore: root.networkConnectionStore
|
||||
onLaunchShareAddressModal: Global.openPopup(receiveModalComponent)
|
||||
onLaunchSendModal: {
|
||||
root.sendModalPopup.sendType = Constants.SendType.Transfer
|
||||
root.sendModalPopup.preSelectedSendType = Constants.SendType.Transfer
|
||||
root.sendModalPopup.preSelectedHoldingID = walletStore.currentViewedHoldingID
|
||||
root.sendModalPopup.preSelectedHoldingType = walletStore.currentViewedHoldingType
|
||||
root.sendModalPopup.onlyAssets = false
|
||||
root.sendModalPopup.open()
|
||||
}
|
||||
onLaunchBridgeModal: {
|
||||
root.sendModalPopup.sendType = Constants.SendType.Bridge
|
||||
root.sendModalPopup.preSelectedSendType = Constants.SendType.Bridge
|
||||
root.sendModalPopup.preSelectedHoldingID = walletStore.currentViewedHoldingID
|
||||
root.sendModalPopup.preSelectedHoldingType = walletStore.currentViewedHoldingType
|
||||
root.sendModalPopup.onlyAssets = true
|
||||
|
|
|
@ -1328,38 +1328,32 @@ Item {
|
|||
id: sendModal
|
||||
active: false
|
||||
|
||||
function open(address = "") {
|
||||
function open() {
|
||||
this.active = true
|
||||
this.item.addressText = address;
|
||||
this.item.open()
|
||||
}
|
||||
function closed() {
|
||||
// this.sourceComponent = undefined // kill an opened instance
|
||||
this.active = false
|
||||
}
|
||||
property var selectedAccount
|
||||
property var preSelectedHolding
|
||||
property string preSelectedHoldingID
|
||||
property int preSelectedHoldingType
|
||||
property int sendType: -1
|
||||
property int preSelectedSendType: Constants.SendType.Unknown
|
||||
property bool onlyAssets: false
|
||||
sourceComponent: SendModal {
|
||||
onlyAssets: sendModal.onlyAssets
|
||||
onClosed: {
|
||||
sendModal.closed()
|
||||
sendModal.sendType = -1
|
||||
sendModal.preSelectedSendType = Constants.SendType.Unknown
|
||||
sendModal.preSelectedHoldingID = ""
|
||||
sendModal.preSelectedHoldingType = Constants.HoldingType.Unknown
|
||||
sendModal.preSelectedHolding = undefined
|
||||
sendModal.selectedAccount = undefined
|
||||
}
|
||||
}
|
||||
onLoaded: {
|
||||
if (!!sendModal.selectedAccount) {
|
||||
item.selectedAccount = sendModal.selectedAccount
|
||||
}
|
||||
if(sendModal.sendType >= 0) {
|
||||
item.sendType = sendModal.sendType
|
||||
if(sendModal.preSelectedSendType !== Constants.SendType.Unknown) {
|
||||
item.preSelectedSendType = sendModal.preSelectedSendType
|
||||
}
|
||||
if(preSelectedHoldingType !== Constants.HoldingType.Unknown) {
|
||||
item.preSelectedHoldingID = sendModal.preSelectedHoldingID
|
||||
|
|
|
@ -29,6 +29,7 @@ StatusDialog {
|
|||
property var preSelectedHolding
|
||||
property string preSelectedHoldingID
|
||||
property int preSelectedHoldingType
|
||||
property int preSelectedSendType
|
||||
property bool interactive: true
|
||||
property alias onlyAssets: holdingSelector.onlyAssets
|
||||
|
||||
|
@ -36,13 +37,10 @@ StatusDialog {
|
|||
|
||||
property TransactionStore store: TransactionStore {}
|
||||
property CurrenciesStore currencyStore: store.currencyStore
|
||||
property var selectedAccount: store.selectedSenderAccount
|
||||
property var collectiblesModel: store.collectiblesModel
|
||||
property var nestedCollectiblesModel: store.nestedCollectiblesModel
|
||||
property var bestRoutes
|
||||
property alias addressText: recipientLoader.addressText
|
||||
property bool isLoading: false
|
||||
property int sendType: Constants.SendType.Transfer
|
||||
|
||||
property MessageDialog sendingError: MessageDialog {
|
||||
id: sendingError
|
||||
|
@ -52,24 +50,15 @@ StatusDialog {
|
|||
}
|
||||
|
||||
property var sendTransaction: function() {
|
||||
let recipientAddress = Utils.isValidAddress(popup.addressText) ? popup.addressText : recipientLoader.resolvedENSAddress
|
||||
d.isPendingTx = true
|
||||
popup.store.authenticateAndTransfer(
|
||||
popup.selectedAccount.address,
|
||||
recipientAddress,
|
||||
d.selectedSymbol,
|
||||
amountToSendInput.cryptoValueToSend,
|
||||
d.uuid,
|
||||
sendType)
|
||||
popup.store.authenticateAndTransfer(amountToSendInput.cryptoValueToSend, d.uuid)
|
||||
}
|
||||
|
||||
property var recalculateRoutesAndFees: Backpressure.debounce(popup, 600, function() {
|
||||
if(!!popup.selectedAccount && !!holdingSelector.selectedItem
|
||||
if(!!store.selectedSenderAccount && !!holdingSelector.selectedItem
|
||||
&& recipientLoader.ready && amountToSendInput.inputNumberValid) {
|
||||
popup.isLoading = true
|
||||
|
||||
popup.store.suggestedRoutes(d.isERC721Transfer ? "1" : amountToSendInput.cryptoValueToSend,
|
||||
popup.sendType)
|
||||
popup.store.suggestedRoutes(d.isERC721Transfer ? "1" : amountToSendInput.cryptoValueToSend)
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -82,16 +71,15 @@ StatusDialog {
|
|||
readonly property double maxFiatBalance: isSelectedHoldingValidAsset ? selectedHolding.totalCurrencyBalance.amount : 0
|
||||
readonly property double maxCryptoBalance: isSelectedHoldingValidAsset ? selectedHolding.totalBalance.amount : 0
|
||||
readonly property double maxInputBalance: amountToSendInput.inputIsFiat ? maxFiatBalance : maxCryptoBalance
|
||||
readonly property string selectedSymbol: store.selectedAssetSymbol
|
||||
readonly property string inputSymbol: amountToSendInput.inputIsFiat ? popup.currencyStore.currentCurrency : selectedSymbol
|
||||
readonly property string inputSymbol: amountToSendInput.inputIsFiat ? popup.currencyStore.currentCurrency : store.selectedAssetSymbol
|
||||
readonly property bool errorMode: popup.isLoading || !recipientLoader.ready ? false : errorType !== Constants.NoError || networkSelector.errorMode || !amountToSendInput.inputNumberValid
|
||||
readonly property string uuid: Utils.uuid()
|
||||
property bool isPendingTx: false
|
||||
property string totalTimeEstimate
|
||||
property double totalFeesInFiat
|
||||
property double totalAmountToReceive
|
||||
readonly property bool isBridgeTx: popup.sendType === Constants.SendType.Bridge
|
||||
readonly property bool isERC721Transfer: popup.sendType === Constants.SendType.ERC721Transfer
|
||||
readonly property bool isBridgeTx: store.sendType === Constants.SendType.Bridge
|
||||
readonly property bool isERC721Transfer: store.sendType === Constants.SendType.ERC721Transfer
|
||||
property var selectedHolding: null
|
||||
property var selectedHoldingType: Constants.HoldingType.Unknown
|
||||
readonly property bool isSelectedHoldingValidAsset: !!selectedHolding && selectedHoldingType === Constants.HoldingType.Asset
|
||||
|
@ -125,11 +113,11 @@ StatusDialog {
|
|||
|
||||
onSelectedHoldingChanged: {
|
||||
if (d.selectedHoldingType === Constants.HoldingType.Asset) {
|
||||
if(popup.sendType !== Constants.SendType.Bridge)
|
||||
popup.sendType = Constants.SendType.Transfer
|
||||
if(store.sendType !== Constants.SendType.Bridge)
|
||||
store.setSendType(Constants.SendType.Transfer)
|
||||
store.setSelectedAssetSymbol(selectedHolding.symbol)
|
||||
} else if (d.selectedHoldingType === Constants.HoldingType.Collectible) {
|
||||
popup.sendType = Constants.SendType.ERC721Transfer
|
||||
store.setSendType(Constants.SendType.ERC721Transfer)
|
||||
amountToSendInput.input.text = 1
|
||||
store.setSelectedAssetSymbol(selectedHolding.contractAddress+":"+selectedHolding.tokenId)
|
||||
store.setRouteEnabledFromChains(selectedHolding.chainId)
|
||||
|
@ -148,11 +136,13 @@ StatusDialog {
|
|||
color: Theme.palette.baseColor3
|
||||
}
|
||||
|
||||
onSelectedAccountChanged: popup.recalculateRoutesAndFees()
|
||||
|
||||
onOpened: {
|
||||
amountToSendInput.input.input.edit.forceActiveFocus()
|
||||
|
||||
if(popup.preSelectedSendType !== Constants.SendType.Unknown) {
|
||||
store.setSendType(popup.preSelectedSendType)
|
||||
}
|
||||
|
||||
if (popup.preSelectedHoldingType !== Constants.HoldingType.Unknown) {
|
||||
tokenListRect.browsingHoldingType = popup.preSelectedHoldingType
|
||||
if(!!popup.preSelectedHolding) {
|
||||
|
@ -173,7 +163,7 @@ StatusDialog {
|
|||
|
||||
if(d.isBridgeTx) {
|
||||
recipientLoader.selectedRecipientType = TabAddressSelectorView.Type.Address
|
||||
recipientLoader.selectedRecipient = {address: popup.selectedAccount.address}
|
||||
recipientLoader.selectedRecipient = {address: store.selectedSenderAccount.address}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -187,9 +177,13 @@ StatusDialog {
|
|||
|
||||
sorters: RoleSorter { roleName: "position"; sortOrder: Qt.AscendingOrder }
|
||||
}
|
||||
selectedAccount: !!popup.selectedAccount ? popup.selectedAccount: {}
|
||||
selectedAccount: !!store.selectedSenderAccount ? store.selectedSenderAccount: {}
|
||||
getNetworkShortNames: function(chainIds) {return store.getNetworkShortNames(chainIds)}
|
||||
onSelectedIndexChanged: store.switchSenderAccount(selectedIndex)
|
||||
onSelectedIndexChanged: {
|
||||
store.switchSenderAccount(selectedIndex)
|
||||
d.setSelectedHoldingId(d.selectedHolding.symbol, d.selectedHoldingType)
|
||||
popup.recalculateRoutesAndFees()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -249,8 +243,8 @@ StatusDialog {
|
|||
id: holdingSelector
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
assetsModel: popup.selectedAccount && popup.selectedAccount.assets ? popup.selectedAccount.assets : null
|
||||
collectiblesModel: popup.selectedAccount ? popup.nestedCollectiblesModel : null
|
||||
assetsModel:store.selectedSenderAccount && store.selectedSenderAccount.assets ? store.selectedSenderAccount.assets : null
|
||||
collectiblesModel: store.selectedSenderAccount ? popup.nestedCollectiblesModel : null
|
||||
currentCurrencySymbol: RootStore.currencyStore.currentCurrencySymbol
|
||||
visible: (!!d.selectedHolding && d.selectedHoldingType !== Constants.HoldingType.Unknown) ||
|
||||
(!!d.hoveredHolding && d.hoveredHoldingType !== Constants.HoldingType.Unknown)
|
||||
|
@ -294,7 +288,7 @@ StatusDialog {
|
|||
Layout.fillWidth: true
|
||||
isBridgeTx: d.isBridgeTx
|
||||
interactive: popup.interactive
|
||||
selectedSymbol: d.selectedSymbol
|
||||
selectedSymbol: store.selectedAssetSymbol
|
||||
maxInputBalance: d.maxInputBalance
|
||||
currentCurrency: popup.currencyStore.currentCurrency
|
||||
|
||||
|
@ -324,7 +318,7 @@ StatusDialog {
|
|||
visible: !!popup.bestRoutes && popup.bestRoutes !== undefined &&
|
||||
popup.bestRoutes.count > 0 && amountToSendInput.inputNumberValid
|
||||
isLoading: popup.isLoading
|
||||
selectedSymbol: d.selectedSymbol
|
||||
selectedSymbol: store.selectedAssetSymbol
|
||||
isBridgeTx: d.isBridgeTx
|
||||
cryptoValueToReceive: d.totalAmountToReceive
|
||||
inputIsFiat: amountToSendInput.inputIsFiat
|
||||
|
@ -376,8 +370,8 @@ StatusDialog {
|
|||
anchors.rightMargin: Style.current.bigPadding
|
||||
|
||||
visible: !d.selectedHolding
|
||||
assets: popup.selectedAccount && popup.selectedAccount.assets ? popup.selectedAccount.assets : null
|
||||
collectibles: popup.selectedAccount ? popup.nestedCollectiblesModel : null
|
||||
assets: store.selectedSenderAccount && store.selectedSenderAccount.assets ? store.selectedSenderAccount.assets : null
|
||||
collectibles: store.selectedSenderAccount ? popup.nestedCollectiblesModel : null
|
||||
onlyAssets: holdingSelector.onlyAssets
|
||||
searchTokenSymbolByAddressFn: function (address) {
|
||||
return store.findTokenSymbolByAddress(address)
|
||||
|
@ -422,6 +416,7 @@ StatusDialog {
|
|||
selectedAsset: d.selectedHolding
|
||||
onIsLoading: popup.isLoading = true
|
||||
onRecalculateRoutesAndFees: popup.recalculateRoutesAndFees()
|
||||
onAddressTextChanged: store.setSelectedRecipient(addressText)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -432,7 +427,7 @@ StatusDialog {
|
|||
anchors.leftMargin: Style.current.bigPadding
|
||||
anchors.rightMargin: Style.current.bigPadding
|
||||
store: popup.store
|
||||
selectedAccount: popup.selectedAccount
|
||||
selectedAccount: store.selectedSenderAccount
|
||||
onRecipientSelected: {
|
||||
recipientLoader.selectedRecipientType = type
|
||||
recipientLoader.selectedRecipient = recipient
|
||||
|
@ -449,7 +444,7 @@ StatusDialog {
|
|||
anchors.rightMargin: Style.current.bigPadding
|
||||
store: popup.store
|
||||
interactive: popup.interactive
|
||||
selectedAccount: popup.selectedAccount
|
||||
selectedAccount: store.selectedSenderAccount
|
||||
ensAddressOrEmpty: recipientLoader.resolvedENSAddress
|
||||
amountToSend: amountToSendInput.cryptoValueToSendFloat
|
||||
minSendCryptoDecimals: amountToSendInput.minSendCryptoDecimals
|
||||
|
@ -470,7 +465,7 @@ StatusDialog {
|
|||
anchors.leftMargin: Style.current.bigPadding
|
||||
anchors.rightMargin: Style.current.bigPadding
|
||||
visible: recipientLoader.ready && !!d.selectedHolding && networkSelector.advancedOrCustomMode && amountToSendInput.inputNumberValid
|
||||
selectedTokenSymbol: d.selectedSymbol
|
||||
selectedTokenSymbol: store.selectedAssetSymbol
|
||||
isLoading: popup.isLoading
|
||||
bestRoutes: popup.bestRoutes
|
||||
store: popup.store
|
||||
|
|
|
@ -200,7 +200,7 @@ Item {
|
|||
required property string packId
|
||||
|
||||
interactive: false
|
||||
sendType: Constants.SendType.StickersBuy
|
||||
preSelectedSendType: Constants.SendType.StickersBuy
|
||||
preSelectedRecipient: root.store.stickersStore.getStickersMarketAddress()
|
||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(parseFloat(price))
|
||||
preSelectedHolding: store.getAsset(buyStickersModal.store.assets, JSON.parse(root.store.stickersStore.getStatusToken()).symbol)
|
||||
|
@ -211,7 +211,7 @@ Item {
|
|||
let eip1559Enabled = path.gasFees.eip1559Enabled
|
||||
let maxFeePerGas = path.gasFees.maxFeePerGasM
|
||||
root.store.stickersStore.authenticateAndBuy(packId,
|
||||
selectedAccount.address,
|
||||
store.selectedSenderAccount.address,
|
||||
path.gasAmount,
|
||||
eip1559Enabled ? "" : path.gasFees.gasPrice,
|
||||
eip1559Enabled ? path.gasFees.maxPriorityFeePerGas : "",
|
||||
|
|
|
@ -69,7 +69,7 @@ ModalPopup {
|
|||
SendModal {
|
||||
id: buyStickersPackModal
|
||||
interactive: false
|
||||
sendType: Constants.SendType.StickersBuy
|
||||
preSelectedSendType: Constants.SendType.StickersBuy
|
||||
preSelectedRecipient: stickerPackDetailsPopup.store.stickersStore.getStickersMarketAddress()
|
||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(parseFloat(price))
|
||||
preSelectedHolding: store.getAsset(buyStickersPackModal.store.assets, JSON.parse(stickerPackDetailsPopup.store.stickersStore.getStatusToken()).symbol)
|
||||
|
@ -80,7 +80,7 @@ ModalPopup {
|
|||
let eip1559Enabled = path.gasFees.eip1559Enabled
|
||||
let maxFeePerGas = path.gasFees.maxFeePerGasM
|
||||
stickerPackDetailsPopup.store.stickersStore.authenticateAndBuy(packId,
|
||||
selectedAccount.address,
|
||||
store.selectedSenderAccount.address,
|
||||
path.gasAmount,
|
||||
eip1559Enabled ? "" : path.gasFees.gasPrice,
|
||||
eip1559Enabled ? path.gasFees.maxPriorityFeePerGas : "",
|
||||
|
|
|
@ -37,6 +37,16 @@ QtObject {
|
|||
}
|
||||
property string selectedAssetSymbol: walletSectionSendInst.selectedAssetSymbol
|
||||
property bool showUnPreferredChains: walletSectionSendInst.showUnPreferredChains
|
||||
property int sendType: walletSectionSendInst.sendType
|
||||
property string selectedRecipient: walletSectionSendInst.selectedRecipient
|
||||
|
||||
function setSendType(sendType) {
|
||||
walletSectionSendInst.setSendType(sendType)
|
||||
}
|
||||
|
||||
function setSelectedRecipient(recipientAddress) {
|
||||
walletSectionSendInst.setSelectedRecipient(recipientAddress)
|
||||
}
|
||||
|
||||
function getEtherscanLink(chainID) {
|
||||
return networksModule.all.getBlockExplorerURL(chainID)
|
||||
|
@ -46,12 +56,12 @@ QtObject {
|
|||
globalUtils.copyToClipboard(text)
|
||||
}
|
||||
|
||||
function authenticateAndTransfer(from, to, tokenSymbol, amount, uuid, sendType) {
|
||||
walletSectionSendInst.authenticateAndTransfer(from, to, tokenSymbol, amount, uuid, sendType)
|
||||
function authenticateAndTransfer(amount, uuid) {
|
||||
walletSectionSendInst.authenticateAndTransfer(amount, uuid)
|
||||
}
|
||||
|
||||
function suggestedRoutes(amount, sendType) {
|
||||
walletSectionSendInst.suggestedRoutes(amount, sendType)
|
||||
function suggestedRoutes(amount) {
|
||||
walletSectionSendInst.suggestedRoutes(amount)
|
||||
}
|
||||
|
||||
function resolveENS(value) {
|
||||
|
|
|
@ -984,7 +984,8 @@ QtObject {
|
|||
ENSSetPubKey,
|
||||
StickersBuy,
|
||||
Bridge,
|
||||
ERC721Transfer
|
||||
ERC721Transfer,
|
||||
Unknown
|
||||
}
|
||||
|
||||
enum ErrorType {
|
||||
|
|
Loading…
Reference in New Issue