70 lines
2.4 KiB
QML
70 lines
2.4 KiB
QML
|
pragma Singleton
|
||
|
|
||
|
import QtQuick 2.15
|
||
|
import QtQml 2.15
|
||
|
|
||
|
import utils 1.0
|
||
|
import shared.stores 1.0
|
||
|
import shared.stores.send 1.0
|
||
|
import AppLayouts.Wallet.stores 1.0 as WalletStores
|
||
|
|
||
|
import StatusQ.Core 0.1
|
||
|
|
||
|
import "./panels"
|
||
|
import "./controls"
|
||
|
import "./views"
|
||
|
|
||
|
QtObject {
|
||
|
id: root
|
||
|
|
||
|
function createSendModalRequirements() {
|
||
|
return {
|
||
|
preSelectedAccount: null,
|
||
|
preSelectedRecipientType: TabAddressSelectorView.Type.Address,
|
||
|
preSelectedRecipient: null,
|
||
|
preSelectedHoldingType: 0,
|
||
|
preSelectedHolding: null,
|
||
|
preSelectedHoldingID: "",
|
||
|
preDefinedAmountToSend: "",
|
||
|
preSelectedSendType: Constants.SendType.Transfer
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// \c token is an collectible object in case of \c isCollectible == true otherwise a token code (e.g. "ETH")
|
||
|
function lookupAddressesForSendModal(senderAddress, recipientAddress, token, isCollectible, amount) {
|
||
|
let req = createSendModalRequirements()
|
||
|
|
||
|
req.preSelectedSendType = Constants.SendType.Transfer
|
||
|
let senderAccount = null
|
||
|
let resolvedAcc = WalletStores.RootStore.lookupAddressObject(senderAddress)
|
||
|
if (resolvedAcc && resolvedAcc.type == WalletStores.RootStore.LookupType.Account) {
|
||
|
req.preSelectedAccount = resolvedAcc.object
|
||
|
}
|
||
|
|
||
|
let res = WalletStores.RootStore.lookupAddressObject(recipientAddress)
|
||
|
if (res) {
|
||
|
if (res.type == WalletStores.RootStore.LookupType.Account) {
|
||
|
req.preSelectedRecipientType = TabAddressSelectorView.Type.Account
|
||
|
req.preSelectedRecipient = res.object
|
||
|
} else if (res.type == WalletStores.RootStore.LookupType.SavedAddress) {
|
||
|
req.preSelectedRecipientType = TabAddressSelectorView.Type.SavedAddress
|
||
|
req.preSelectedRecipient = res.object
|
||
|
}
|
||
|
} else {
|
||
|
req.preSelectedRecipientType = TabAddressSelectorView.Type.Address
|
||
|
req.preSelectedRecipient = recipientAddress
|
||
|
}
|
||
|
|
||
|
if (isCollectible) {
|
||
|
req.preSelectedHoldingType = Constants.HoldingType.Collectible
|
||
|
req.preSelectedHolding = token
|
||
|
} else {
|
||
|
req.preSelectedHoldingType = Constants.HoldingType.Asset
|
||
|
req.preSelectedHoldingID = token
|
||
|
}
|
||
|
|
||
|
req.preDefinedAmountToSend = LocaleUtils.numberToLocaleString(amount)
|
||
|
|
||
|
return req
|
||
|
}
|
||
|
}
|