chore(@desktop/wallet): Unifying the various "TokensTypes" across the app
fixes #12501
This commit is contained in:
parent
672800611d
commit
26f29a4fe6
|
@ -34,8 +34,6 @@ import ../../../../app_service/service/community_tokens/service as community_tok
|
||||||
import ../../../../app_service/service/shared_urls/service as shared_urls_service
|
import ../../../../app_service/service/shared_urls/service as shared_urls_service
|
||||||
import ../../../../app_service/service/visual_identity/service as visual_identity
|
import ../../../../app_service/service/visual_identity/service as visual_identity
|
||||||
import ../../../../app_service/service/contacts/dto/contacts as contacts_dto
|
import ../../../../app_service/service/contacts/dto/contacts as contacts_dto
|
||||||
import ../../../../app_service/service/community/dto/community as community_dto
|
|
||||||
import ../../../../app_service/common/types
|
|
||||||
|
|
||||||
export io_interface
|
export io_interface
|
||||||
|
|
||||||
|
@ -1307,11 +1305,11 @@ method createOrEditCommunityTokenPermission*(self: Module, communityId: string,
|
||||||
|
|
||||||
let viewAmount = tokenCriteria{"amount"}.getFloat
|
let viewAmount = tokenCriteria{"amount"}.getFloat
|
||||||
var tokenCriteriaDto = tokenCriteria.toTokenCriteriaDto
|
var tokenCriteriaDto = tokenCriteria.toTokenCriteriaDto
|
||||||
if tokenCriteriaDto.`type` == community_dto.TokenType.ERC20:
|
if tokenCriteriaDto.`type` == TokenType.ERC20:
|
||||||
tokenCriteriaDto.decimals = self.controller.getTokenDecimals(tokenCriteriaDto.symbol)
|
tokenCriteriaDto.decimals = self.controller.getTokenDecimals(tokenCriteriaDto.symbol)
|
||||||
|
|
||||||
let contractAddresses = self.controller.getContractAddressesForToken(tokenCriteriaDto.symbol)
|
let contractAddresses = self.controller.getContractAddressesForToken(tokenCriteriaDto.symbol)
|
||||||
if contractAddresses.len == 0 and tokenCriteriaDto.`type` != community_dto.TokenType.ENS:
|
if contractAddresses.len == 0 and tokenCriteriaDto.`type` != TokenType.ENS:
|
||||||
if permissionId == "":
|
if permissionId == "":
|
||||||
self.onCommunityTokenPermissionCreationFailed(communityId)
|
self.onCommunityTokenPermissionCreationFailed(communityId)
|
||||||
return
|
return
|
||||||
|
|
|
@ -582,7 +582,7 @@ proc buildTokensAndCollectiblesFromCommunities(self: Module, communityTokens: se
|
||||||
infiniteSupply,
|
infiniteSupply,
|
||||||
)
|
)
|
||||||
|
|
||||||
if tokenMetadata.tokenType == community_dto.TokenType.ERC20:
|
if tokenMetadata.tokenType == TokenType.ERC20:
|
||||||
# Community ERC20 tokens
|
# Community ERC20 tokens
|
||||||
tokenListItems.add(communityTokenItem)
|
tokenListItems.add(communityTokenItem)
|
||||||
else:
|
else:
|
||||||
|
@ -635,12 +635,12 @@ method onCommunityTokenMetadataAdded*(self: Module, communityId: string, tokenMe
|
||||||
infiniteSupply,
|
infiniteSupply,
|
||||||
)
|
)
|
||||||
|
|
||||||
if tokenMetadata.tokenType == community_dto.TokenType.ERC721 and
|
if tokenMetadata.tokenType == TokenType.ERC721 and
|
||||||
not self.view.collectiblesListModel().hasItem(tokenMetadata.symbol):
|
not self.view.collectiblesListModel().hasItem(tokenMetadata.symbol):
|
||||||
self.view.collectiblesListModel.addItems(@[tokenListItem])
|
self.view.collectiblesListModel.addItems(@[tokenListItem])
|
||||||
return
|
return
|
||||||
|
|
||||||
if tokenMetadata.tokenType == community_dto.TokenType.ERC20 and
|
if tokenMetadata.tokenType == TokenType.ERC20 and
|
||||||
not self.view.tokenListModel().hasItem(tokenMetadata.symbol):
|
not self.view.tokenListModel().hasItem(tokenMetadata.symbol):
|
||||||
self.view.tokenListModel.addItems(@[tokenListItem])
|
self.view.tokenListModel.addItems(@[tokenListItem])
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import stint
|
import stint
|
||||||
import ./io_interface as community_tokens_module_interface
|
import ./io_interface as community_tokens_module_interface
|
||||||
|
|
||||||
import ../../../../../app_service/service/community_tokens/service as community_tokens_service
|
import app_service/service/community_tokens/service as community_tokens_service
|
||||||
import ../../../../../app_service/service/transaction/service as transaction_service
|
import app_service/service/transaction/service as transaction_service
|
||||||
import ../../../../../app_service/service/network/service as networks_service
|
import app_service/service/network/service as networks_service
|
||||||
import ../../../../../app_service/service/community/service as community_service
|
import app_service/service/community/service as community_service
|
||||||
import ../../../../../app_service/service/community/dto/community
|
import app_service/common/types
|
||||||
import ../../../../core/signals/types
|
import app/core/signals/types
|
||||||
import ../../../../core/eventemitter
|
import app/core/eventemitter
|
||||||
import ../../../shared_modules/keycard_popup/io_interface as keycard_shared_module
|
import ../../../shared_modules/keycard_popup/io_interface as keycard_shared_module
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ import ../../../../../app_service/service/community_tokens/service as community_
|
||||||
import ../../../../../app_service/service/transaction/service as transaction_service
|
import ../../../../../app_service/service/transaction/service as transaction_service
|
||||||
import ../../../../../app_service/service/network/service as networks_service
|
import ../../../../../app_service/service/network/service as networks_service
|
||||||
import ../../../../../app_service/service/community/service as community_service
|
import ../../../../../app_service/service/community/service as community_service
|
||||||
import ../../../../../app_service/service/community/dto/community
|
|
||||||
import ../../../../../app_service/service/accounts/utils as utl
|
import ../../../../../app_service/service/accounts/utils as utl
|
||||||
import ../../../../../app_service/common/types
|
import ../../../../../app_service/common/types
|
||||||
import ../../../../core/eventemitter
|
import ../../../../core/eventemitter
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import NimQml, json, strutils, sequtils
|
import NimQml, json, strutils, sequtils
|
||||||
|
|
||||||
import ./io_interface as community_tokens_module_interface
|
import ./io_interface as community_tokens_module_interface
|
||||||
import ../../../shared_models/currency_amount
|
import app/modules/shared_models/currency_amount
|
||||||
import ../../../../../app_service/common/conversion
|
import app_service/common/conversion
|
||||||
import ../../../../../app_service/service/community/dto/community
|
import app_service/common/types
|
||||||
|
|
||||||
QtObject:
|
QtObject:
|
||||||
type
|
type
|
||||||
|
|
|
@ -4,6 +4,7 @@ import logging
|
||||||
import ./collectibles_item
|
import ./collectibles_item
|
||||||
import web3/ethtypes as eth
|
import web3/ethtypes as eth
|
||||||
import backend/activity as backend_activity
|
import backend/activity as backend_activity
|
||||||
|
import app_service/common/types
|
||||||
|
|
||||||
type
|
type
|
||||||
CollectibleRole* {.pure.} = enum
|
CollectibleRole* {.pure.} = enum
|
||||||
|
@ -187,7 +188,7 @@ QtObject:
|
||||||
proc getActivityToken*(self: CollectiblesModel, id: string): backend_activity.Token =
|
proc getActivityToken*(self: CollectiblesModel, id: string): backend_activity.Token =
|
||||||
for item in self.items:
|
for item in self.items:
|
||||||
if(cmpIgnoreCase(item.getId(), id) == 0):
|
if(cmpIgnoreCase(item.getId(), id) == 0):
|
||||||
result.tokenType = backend_activity.TokenType.Erc721
|
result.tokenType = TokenType.ERC721
|
||||||
result.chainId = backend_activity.ChainId(item.getChainId())
|
result.chainId = backend_activity.ChainId(item.getChainId())
|
||||||
var contract = item.getContractAddress()
|
var contract = item.getContractAddress()
|
||||||
if len(contract) > 0:
|
if len(contract) > 0:
|
||||||
|
|
|
@ -16,9 +16,9 @@ import app/core/eventemitter
|
||||||
import app/core/signals/types
|
import app/core/signals/types
|
||||||
|
|
||||||
import backend/activity as backend_activity
|
import backend/activity as backend_activity
|
||||||
import backend/backend as backend
|
|
||||||
|
|
||||||
import app_service/common/conversion
|
import app_service/common/conversion
|
||||||
|
import app_service/common/types
|
||||||
import app_service/service/currency/service as currency_service
|
import app_service/service/currency/service as currency_service
|
||||||
import app_service/service/transaction/service as transaction_service
|
import app_service/service/transaction/service as transaction_service
|
||||||
import app_service/service/token/service as token_service
|
import app_service/service/token/service as token_service
|
||||||
|
@ -358,7 +358,7 @@ QtObject:
|
||||||
for chainId in self.chainIds:
|
for chainId in self.chainIds:
|
||||||
let token = self.tokenService.findTokenBySymbol(chainId, tokenCode)
|
let token = self.tokenService.findTokenBySymbol(chainId, tokenCode)
|
||||||
if token != nil:
|
if token != nil:
|
||||||
let tokenType = if token.symbol == "ETH": backend_activity.TokenType.Native else: backend_activity.TokenType.Erc20
|
let tokenType = if token.symbol == "ETH": TokenType.Native else: TokenType.ERC20
|
||||||
assets.add(backend_activity.Token(
|
assets.add(backend_activity.Token(
|
||||||
tokenType: tokenType,
|
tokenType: tokenType,
|
||||||
chainId: backend_activity.ChainId(token.chainId),
|
chainId: backend_activity.ChainId(token.chainId),
|
||||||
|
|
|
@ -4,6 +4,8 @@ import logging
|
||||||
import ./collectibles_item
|
import ./collectibles_item
|
||||||
import web3/ethtypes as eth
|
import web3/ethtypes as eth
|
||||||
import backend/activity as backend_activity
|
import backend/activity as backend_activity
|
||||||
|
import app_service/common/utils as common_utils
|
||||||
|
import app_service/common/types
|
||||||
|
|
||||||
type
|
type
|
||||||
CollectibleRole* {.pure.} = enum
|
CollectibleRole* {.pure.} = enum
|
||||||
|
@ -350,7 +352,7 @@ QtObject:
|
||||||
proc getActivityToken*(self: Model, id: string): backend_activity.Token =
|
proc getActivityToken*(self: Model, id: string): backend_activity.Token =
|
||||||
for item in self.items:
|
for item in self.items:
|
||||||
if(cmpIgnoreCase(item.getId(), id) == 0):
|
if(cmpIgnoreCase(item.getId(), id) == 0):
|
||||||
result.tokenType = backend_activity.TokenType.Erc721
|
result.tokenType = TokenType.ERC721
|
||||||
result.chainId = backend_activity.ChainId(item.getChainId())
|
result.chainId = backend_activity.ChainId(item.getChainId())
|
||||||
var contract = item.getContractAddress()
|
var contract = item.getContractAddress()
|
||||||
if len(contract) > 0:
|
if len(contract) > 0:
|
||||||
|
@ -380,4 +382,3 @@ QtObject:
|
||||||
if chainId > 0 and len(tokenAddress) > 0 and len(tokenId) > 0:
|
if chainId > 0 and len(tokenAddress) > 0 and len(tokenId) > 0:
|
||||||
return $chainId & "+" & tokenAddress & "+" & tokenId
|
return $chainId & "+" & tokenAddress & "+" & tokenId
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import NimQml, Tables
|
import NimQml, Tables
|
||||||
|
|
||||||
|
import app_service/common/types
|
||||||
|
|
||||||
import token_criteria_item
|
import token_criteria_item
|
||||||
import ../../../app_service/service/community/dto/community
|
|
||||||
|
|
||||||
type
|
type
|
||||||
ModelRole {.pure.} = enum
|
ModelRole {.pure.} = enum
|
||||||
|
|
|
@ -80,9 +80,10 @@ type Shard* = ref object
|
||||||
cluster*: int
|
cluster*: int
|
||||||
index*: int
|
index*: int
|
||||||
|
|
||||||
# ToDo: Will be streamlined to single TokenType under https://github.com/status-im/status-desktop/pull/12654/files
|
type TokenType* {.pure.} = enum
|
||||||
type NewTokenType* {.pure.} = enum
|
|
||||||
Native = 0
|
Native = 0
|
||||||
ERC20 = 1,
|
ERC20 = 1,
|
||||||
ERC721 = 2,
|
ERC721 = 2,
|
||||||
ERC1155
|
ERC1155 = 3,
|
||||||
|
Unknown = 4,
|
||||||
|
ENS = 5
|
||||||
|
|
|
@ -73,12 +73,6 @@ type TokenPermissionState* {.pure.}= enum
|
||||||
UpdatePending = 2,
|
UpdatePending = 2,
|
||||||
RemovalPending = 3,
|
RemovalPending = 3,
|
||||||
|
|
||||||
type TokenType* {.pure.}= enum
|
|
||||||
Unknown = 0,
|
|
||||||
ERC20 = 1,
|
|
||||||
ERC721 = 2,
|
|
||||||
ENS = 3 # ENS is also ERC721 but we want to distinguish without heuristics
|
|
||||||
|
|
||||||
type TokenCriteriaDto* = object
|
type TokenCriteriaDto* = object
|
||||||
contractAddresses* {.serializedFieldName("contract_addresses").}: Table[int, string]
|
contractAddresses* {.serializedFieldName("contract_addresses").}: Table[int, string]
|
||||||
`type`* {.serializedFieldName("type").}: TokenType
|
`type`* {.serializedFieldName("type").}: TokenType
|
||||||
|
|
|
@ -127,8 +127,8 @@ QtObject:
|
||||||
if flatTokensList.hasKey(unique_key):
|
if flatTokensList.hasKey(unique_key):
|
||||||
flatTokensList[unique_key].sources.add(s.name)
|
flatTokensList[unique_key].sources.add(s.name)
|
||||||
else:
|
else:
|
||||||
let tokenType = if s.name == "native" : NewTokenType.Native
|
let tokenType = if s.name == "native" : TokenType.Native
|
||||||
else: NewTokenType.ERC20
|
else: TokenType.ERC20
|
||||||
flatTokensList[unique_key] = TokenItem(
|
flatTokensList[unique_key] = TokenItem(
|
||||||
key: unique_key,
|
key: unique_key,
|
||||||
name: token.name,
|
name: token.name,
|
||||||
|
@ -159,8 +159,8 @@ QtObject:
|
||||||
if not addedChains.contains(token.chainID):
|
if not addedChains.contains(token.chainID):
|
||||||
tokenBySymbolList[token_by_symbol_key].addressPerChainId.add(AddressPerChain(chainId: token.chainID, address: token.address))
|
tokenBySymbolList[token_by_symbol_key].addressPerChainId.add(AddressPerChain(chainId: token.chainID, address: token.address))
|
||||||
else:
|
else:
|
||||||
let tokenType = if s.name == "native": NewTokenType.Native
|
let tokenType = if s.name == "native": TokenType.Native
|
||||||
else: NewTokenType.ERC20
|
else: TokenType.ERC20
|
||||||
tokenBySymbolList[token_by_symbol_key] = TokenBySymbolItem(
|
tokenBySymbolList[token_by_symbol_key] = TokenBySymbolItem(
|
||||||
key: token_by_symbol_key,
|
key: token_by_symbol_key,
|
||||||
name: token.name,
|
name: token.name,
|
||||||
|
|
|
@ -36,7 +36,7 @@ type
|
||||||
decimals*: int
|
decimals*: int
|
||||||
# will remain empty until backend provides us this data
|
# will remain empty until backend provides us this data
|
||||||
image*: string
|
image*: string
|
||||||
`type`*: common_types.NewTokenType
|
`type`*: common_types.TokenType
|
||||||
communityId*: string
|
communityId*: string
|
||||||
|
|
||||||
proc `$`*(self: TokenItem): string =
|
proc `$`*(self: TokenItem): string =
|
||||||
|
|
|
@ -6,6 +6,7 @@ import stint
|
||||||
import web3/ethtypes as eth
|
import web3/ethtypes as eth
|
||||||
import web3/conversions
|
import web3/conversions
|
||||||
|
|
||||||
|
import app_service/common/types
|
||||||
from gen import rpc
|
from gen import rpc
|
||||||
import backend
|
import backend
|
||||||
|
|
||||||
|
@ -35,10 +36,6 @@ type
|
||||||
ActivityStatus* {.pure.} = enum
|
ActivityStatus* {.pure.} = enum
|
||||||
Failed, Pending, Complete, Finalized
|
Failed, Pending, Complete, Finalized
|
||||||
|
|
||||||
# see status-go/services/wallet/activity/filter.go TokenType
|
|
||||||
TokenType* {.pure.} = enum
|
|
||||||
Native, Erc20, Erc721, Erc1155
|
|
||||||
|
|
||||||
# see status-go/services/wallet/activity/filter.go TokenID
|
# see status-go/services/wallet/activity/filter.go TokenID
|
||||||
TokenId* = distinct string
|
TokenId* = distinct string
|
||||||
|
|
||||||
|
@ -94,14 +91,18 @@ proc `%`*(tt: TokenType): JsonNode {.inline.} =
|
||||||
|
|
||||||
proc `$`*(tt: TokenType): string {.inline.} =
|
proc `$`*(tt: TokenType): string {.inline.} =
|
||||||
case tt:
|
case tt:
|
||||||
of Native:
|
of TokenType.Native:
|
||||||
return "ETH"
|
return "ETH"
|
||||||
of Erc20:
|
of TokenType.ERC20:
|
||||||
return "ERC-20"
|
return "ERC-20"
|
||||||
of Erc721:
|
of TokenType.ERC721:
|
||||||
return "ERC-721"
|
return "ERC-721"
|
||||||
of Erc1155:
|
of TokenType.ERC1155:
|
||||||
return "ERC-1155"
|
return "ERC-1155"
|
||||||
|
of TokenType.Unknown:
|
||||||
|
return "Unknown"
|
||||||
|
of TokenType.ENS:
|
||||||
|
return "ENS"
|
||||||
|
|
||||||
proc fromJson*(jn: JsonNode, T: typedesc[TokenType]): TokenType {.inline.} =
|
proc fromJson*(jn: JsonNode, T: typedesc[TokenType]): TokenType {.inline.} =
|
||||||
return cast[TokenType](jn.getInt())
|
return cast[TokenType](jn.getInt())
|
||||||
|
|
|
@ -3,6 +3,7 @@ import QtQuick.Controls 2.14
|
||||||
import QtQuick.Layouts 1.14
|
import QtQuick.Layouts 1.14
|
||||||
|
|
||||||
import AppLayouts.Communities.controls 1.0
|
import AppLayouts.Communities.controls 1.0
|
||||||
|
import utils 1.0
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: root
|
id: root
|
||||||
|
@ -17,12 +18,12 @@ ColumnLayout {
|
||||||
QtObject {
|
QtObject {
|
||||||
id: d
|
id: d
|
||||||
|
|
||||||
readonly property bool ensLayout: root.type === HoldingTypes.Type.Ens
|
readonly property bool ensLayout: root.type === Constants.TokenType.ENS
|
||||||
|
|
||||||
readonly property var holdingTypesModel: [
|
readonly property var holdingTypesModel: [
|
||||||
{ value: HoldingTypes.Type.Asset, text: "Asset" },
|
{ value: Constants.TokenType.ERC20, text: "Asset" },
|
||||||
{ value: HoldingTypes.Type.Collectible, text: "Collectible" },
|
{ value: Constants.TokenType.ERC721, text: "Collectible" },
|
||||||
{ value: HoldingTypes.Type.Ens, text: "ENS" }
|
{ value: Constants.TokenType.ENS, text: "ENS" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +73,7 @@ ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
visible: !d.ensLayout
|
visible: !d.ensLayout
|
||||||
model: root.type === HoldingTypes.Type.Asset
|
model: root.type === Constants.TokenType.ERC20
|
||||||
? root.assetKeys : root.collectibleKeys
|
? root.assetKeys : root.collectibleKeys
|
||||||
|
|
||||||
onActivated: root.key = currentText
|
onActivated: root.key = currentText
|
||||||
|
|
|
@ -8,6 +8,8 @@ import AppLayouts.Communities.controls 1.0
|
||||||
|
|
||||||
import Models 1.0
|
import Models 1.0
|
||||||
|
|
||||||
|
import utils 1.0
|
||||||
|
|
||||||
Flickable {
|
Flickable {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
@ -132,7 +134,7 @@ Flickable {
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
enabled: d.newKey && (d.newAmount || d.newType === HoldingTypes.Type.Ens)
|
enabled: d.newKey && (d.newAmount || d.newType === Constants.TokenType.ENS)
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: "Add new holding"
|
text: "Add new holding"
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ SplitView {
|
||||||
text: "Update"
|
text: "Update"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
holdingsDropdown.close()
|
holdingsDropdown.close()
|
||||||
holdingsDropdown.setActiveTab(HoldingTypes.Type.Ens)
|
holdingsDropdown.setActiveTab(Constants.TokenType.ENS)
|
||||||
holdingsDropdown.openUpdateFlow()
|
holdingsDropdown.openUpdateFlow()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ SplitView {
|
||||||
|
|
||||||
property var preSelectedAccount: txStore.selectedSenderAccount
|
property var preSelectedAccount: txStore.selectedSenderAccount
|
||||||
property string preSelectedHoldingID
|
property string preSelectedHoldingID
|
||||||
property int preSelectedHoldingType
|
property int preSelectedHoldingType: Constants.TokenType.Unknown
|
||||||
property int preSelectedSendType: Constants.SendType.Unknown
|
property int preSelectedSendType: Constants.SendType.Unknown
|
||||||
property bool onlyAssets: false
|
property bool onlyAssets: false
|
||||||
property string preDefinedAmountToSend
|
property string preDefinedAmountToSend
|
||||||
|
@ -204,13 +204,16 @@ SplitView {
|
||||||
}
|
}
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: tokenType
|
id: tokenType
|
||||||
model: ["Unknown", "Asset", "Collectible"]
|
model: ["Native", "Asset", "Collectible", "Fungible Token", "Unknown", "ENS"]
|
||||||
onCurrentIndexChanged: loader.preSelectedHoldingType = currentIndex
|
currentIndex: 4
|
||||||
|
onCurrentIndexChanged: {
|
||||||
|
loader.preSelectedHoldingType = currentIndex
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StatusInput {
|
StatusInput {
|
||||||
enabled: tokenType.currentIndex !== 0
|
enabled: tokenType.currentIndex > 0 && tokenType.currentIndex < 3
|
||||||
label: "preSelectedHoldingID (case sensitive)"
|
label: "preSelectedHoldingID (case sensitive)"
|
||||||
onTextChanged: loader.preSelectedHoldingID = text
|
onTextChanged: loader.preSelectedHoldingID = text
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import Models 1.0
|
||||||
import StatusQ.Core.Utils 0.1
|
import StatusQ.Core.Utils 0.1
|
||||||
import AppLayouts.Communities.controls 1.0
|
import AppLayouts.Communities.controls 1.0
|
||||||
|
|
||||||
|
import utils 1.0
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
@ -584,7 +586,7 @@ QtObject {
|
||||||
function createHoldingsModel1() {
|
function createHoldingsModel1() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "zrx",
|
key: "zrx",
|
||||||
amount: 15,
|
amount: 15,
|
||||||
available: false
|
available: false
|
||||||
|
@ -595,7 +597,7 @@ QtObject {
|
||||||
function createHoldingsModel1b() {
|
function createHoldingsModel1b() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Ens,
|
type: Constants.TokenType.ENS,
|
||||||
key: "*.eth",
|
key: "*.eth",
|
||||||
amount: 1,
|
amount: 1,
|
||||||
available: true
|
available: true
|
||||||
|
@ -606,13 +608,13 @@ QtObject {
|
||||||
function createHoldingsModel2() {
|
function createHoldingsModel2() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Collectible,
|
type: Constants.TokenType.ERC721,
|
||||||
key: "Kitty6",
|
key: "Kitty6",
|
||||||
amount: 50.25,
|
amount: 50.25,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "Dai",
|
key: "Dai",
|
||||||
amount: 11,
|
amount: 11,
|
||||||
available: true
|
available: true
|
||||||
|
@ -623,13 +625,13 @@ QtObject {
|
||||||
function createHoldingsModel2b() {
|
function createHoldingsModel2b() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Collectible,
|
type: Constants.TokenType.ERC721,
|
||||||
key: "Anniversary2",
|
key: "Anniversary2",
|
||||||
amount: 1,
|
amount: 1,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "snt",
|
key: "snt",
|
||||||
amount: 666,
|
amount: 666,
|
||||||
available: true
|
available: true
|
||||||
|
@ -640,19 +642,19 @@ QtObject {
|
||||||
function createHoldingsModel3() {
|
function createHoldingsModel3() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "socks",
|
key: "socks",
|
||||||
amount: 15,
|
amount: 15,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Collectible,
|
type: Constants.TokenType.ERC721,
|
||||||
key: "Kitty4",
|
key: "Kitty4",
|
||||||
amount: 50.25,
|
amount: 50.25,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Collectible,
|
type: Constants.TokenType.ERC721,
|
||||||
key: "SuperRare",
|
key: "SuperRare",
|
||||||
amount: 11,
|
amount: 11,
|
||||||
available: false
|
available: false
|
||||||
|
@ -663,25 +665,25 @@ QtObject {
|
||||||
function createHoldingsModel4() {
|
function createHoldingsModel4() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "socks",
|
key: "socks",
|
||||||
amount: 15,
|
amount: 15,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "snt",
|
key: "snt",
|
||||||
amount: 25000,
|
amount: 25000,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Ens,
|
type: Constants.TokenType.ENS,
|
||||||
key: "foo.bar.eth",
|
key: "foo.bar.eth",
|
||||||
amount: 1,
|
amount: 1,
|
||||||
available: false
|
available: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "Amp",
|
key: "Amp",
|
||||||
amount: 2,
|
amount: 2,
|
||||||
available: true
|
available: true
|
||||||
|
@ -692,31 +694,31 @@ QtObject {
|
||||||
function createHoldingsModel5() {
|
function createHoldingsModel5() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "socks",
|
key: "socks",
|
||||||
amount: 15,
|
amount: 15,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "zrx",
|
key: "zrx",
|
||||||
amount: 10,
|
amount: 10,
|
||||||
available: false
|
available: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "1inch",
|
key: "1inch",
|
||||||
amount: 25000,
|
amount: 25000,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "Aave",
|
key: "Aave",
|
||||||
amount: 100,
|
amount: 100,
|
||||||
available: true
|
available: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: HoldingTypes.Type.Asset,
|
type: Constants.TokenType.ERC20,
|
||||||
key: "Amp",
|
key: "Amp",
|
||||||
amount: 2,
|
amount: 2,
|
||||||
available: true
|
available: true
|
||||||
|
|
|
@ -82,9 +82,9 @@ QtObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getHolding(holdingId, holdingType) {
|
function getHolding(holdingId, holdingType) {
|
||||||
if (holdingType === Constants.HoldingType.Asset) {
|
if (holdingType === Constants.TokenType.ERC20) {
|
||||||
return getAsset(selectedSenderAccount.assets, holdingId)
|
return getAsset(selectedSenderAccount.assets, holdingId)
|
||||||
} else if (holdingType === Constants.HoldingType.Collectible) {
|
} else if (holdingType === Constants.TokenType.ERC721) {
|
||||||
return getCollectible(holdingId)
|
return getCollectible(holdingId)
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
|
@ -92,9 +92,9 @@ QtObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSelectorHolding(holdingId, holdingType) {
|
function getSelectorHolding(holdingId, holdingType) {
|
||||||
if (holdingType === Constants.HoldingType.Asset) {
|
if (holdingType === Constants.TokenType.ERC20) {
|
||||||
return getAsset(selectedSenderAccount.assets, holdingId)
|
return getAsset(selectedSenderAccount.assets, holdingId)
|
||||||
} else if (holdingType === Constants.HoldingType.Collectible) {
|
} else if (holdingType === Constants.TokenType.ERC721) {
|
||||||
return getSelectorCollectible(holdingId)
|
return getSelectorCollectible(holdingId)
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
|
@ -118,9 +118,9 @@ QtObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
function holdingToSelectorHolding(holding, holdingType) {
|
function holdingToSelectorHolding(holding, holdingType) {
|
||||||
if (holdingType === Constants.HoldingType.Asset) {
|
if (holdingType === Constants.TokenType.Asset) {
|
||||||
return assetToSelectorAsset(holding)
|
return assetToSelectorAsset(holding)
|
||||||
} else if (holdingType === Constants.HoldingType.Collectible) {
|
} else if (holdingType === Constants.TokenType.Collectible) {
|
||||||
return collectibleToSelectorCollectible(holding)
|
return collectibleToSelectorCollectible(holding)
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
|
|
|
@ -64,7 +64,7 @@ StatusSectionLayout {
|
||||||
property Component sendTransactionModalComponent: SendModal {
|
property Component sendTransactionModalComponent: SendModal {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
preSelectedHoldingID: "ETH"
|
preSelectedHoldingID: "ETH"
|
||||||
preSelectedHoldingType: Constants.HoldingType.Asset
|
preSelectedHoldingType: Constants.TokenType.ERC20
|
||||||
}
|
}
|
||||||
|
|
||||||
property Component signMessageModalComponent: SignMessageModal {}
|
property Component signMessageModalComponent: SignMessageModal {}
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
import QtQml 2.14
|
import QtQml 2.14
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
enum Type {
|
|
||||||
Unknown, Asset, Collectible, Ens
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Mode {
|
enum Mode {
|
||||||
Add, Update, UpdateOrRemove
|
Add, Update, UpdateOrRemove
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@ import StatusQ.Internal 0.1 as Internal
|
||||||
|
|
||||||
import AppLayouts.Communities.controls 1.0
|
import AppLayouts.Communities.controls 1.0
|
||||||
|
|
||||||
|
import utils 1.0
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
function getTokenByKey(model, key) {
|
function getTokenByKey(model, key) {
|
||||||
if (!model)
|
if (!model)
|
||||||
|
@ -81,13 +83,13 @@ QtObject {
|
||||||
amount = AmountsArithmetic.toNumber(AmountsArithmetic.fromString(amount))
|
amount = AmountsArithmetic.toNumber(AmountsArithmetic.fromString(amount))
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case HoldingTypes.Type.Asset:
|
case Constants.TokenType.ERC20:
|
||||||
return `${LocaleUtils.numberToLocaleString(amount)} ${name}`
|
return `${LocaleUtils.numberToLocaleString(amount)} ${name}`
|
||||||
case HoldingTypes.Type.Collectible:
|
case Constants.TokenType.ERC721:
|
||||||
if (amount === 1)
|
if (amount === 1)
|
||||||
return name
|
return name
|
||||||
return `${LocaleUtils.numberToLocaleString(amount)} ${name}`
|
return `${LocaleUtils.numberToLocaleString(amount)} ${name}`
|
||||||
case HoldingTypes.Type.Ens:
|
case Constants.TokenType.ENS:
|
||||||
if (name === "*.eth")
|
if (name === "*.eth")
|
||||||
return qsTr("Any ENS username")
|
return qsTr("Any ENS username")
|
||||||
if (name.startsWith("*."))
|
if (name.startsWith("*."))
|
||||||
|
|
|
@ -51,7 +51,7 @@ Control {
|
||||||
readonly property string memberchipRequestRejectedText: qsTr("Membership Request Rejected")
|
readonly property string memberchipRequestRejectedText: qsTr("Membership Request Rejected")
|
||||||
|
|
||||||
function holdingsTextFormat(name, amount) {
|
function holdingsTextFormat(name, amount) {
|
||||||
return PermissionsHelpers.setHoldingsTextFormat(HoldingTypes.Type.Asset, name, amount)
|
return PermissionsHelpers.setHoldingsTextFormat(Constants.TokenType.ERC20, name, amount)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getInvitationPendingText() {
|
function getInvitationPendingText() {
|
||||||
|
|
|
@ -20,9 +20,9 @@ StatusDropdown {
|
||||||
property var collectiblesModel
|
property var collectiblesModel
|
||||||
property bool isENSTab: true
|
property bool isENSTab: true
|
||||||
property string noDataText: {
|
property string noDataText: {
|
||||||
if(d.currentHoldingType === HoldingTypes.Type.Asset)
|
if(d.currentHoldingType === Constants.TokenType.ERC20)
|
||||||
return noDataTextForAssets
|
return noDataTextForAssets
|
||||||
if(d.currentHoldingType === HoldingTypes.Type.Collectible)
|
if(d.currentHoldingType === Constants.TokenType.ERC721)
|
||||||
return noDataTextForCollectibles
|
return noDataTextForCollectibles
|
||||||
return qsTr("No data found")
|
return qsTr("No data found")
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ StatusDropdown {
|
||||||
|
|
||||||
function openUpdateFlow() {
|
function openUpdateFlow() {
|
||||||
d.initialHoldingMode = HoldingTypes.Mode.UpdateOrRemove
|
d.initialHoldingMode = HoldingTypes.Mode.UpdateOrRemove
|
||||||
if(d.currentHoldingType !== HoldingTypes.Type.Ens) {
|
if(d.currentHoldingType !== Constants.TokenType.ENS) {
|
||||||
if(statesStack.size === 0)
|
if(statesStack.size === 0)
|
||||||
statesStack.push(HoldingsDropdown.FlowType.List_Deep1)
|
statesStack.push(HoldingsDropdown.FlowType.List_Deep1)
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ StatusDropdown {
|
||||||
}
|
}
|
||||||
|
|
||||||
function reset() {
|
function reset() {
|
||||||
d.currentHoldingType = HoldingTypes.Type.Asset
|
d.currentHoldingType = Constants.TokenType.ERC20
|
||||||
d.initialHoldingMode = HoldingTypes.Mode.Add
|
d.initialHoldingMode = HoldingTypes.Mode.Add
|
||||||
|
|
||||||
root.assetKey = ""
|
root.assetKey = ""
|
||||||
|
@ -91,7 +91,7 @@ StatusDropdown {
|
||||||
|
|
||||||
// Internal management properties and signals:
|
// Internal management properties and signals:
|
||||||
readonly property var holdingTypes: [
|
readonly property var holdingTypes: [
|
||||||
HoldingTypes.Type.Asset, HoldingTypes.Type.Collectible, HoldingTypes.Type.Ens
|
Constants.TokenType.ERC20, Constants.TokenType.ERC721, Constants.TokenType.ENS
|
||||||
]
|
]
|
||||||
readonly property var tabsModel: [qsTr("Assets"), qsTr("Collectibles"), qsTr("ENS")]
|
readonly property var tabsModel: [qsTr("Assets"), qsTr("Collectibles"), qsTr("ENS")]
|
||||||
readonly property var tabsModelNoEns: [qsTr("Assets"), qsTr("Collectibles")]
|
readonly property var tabsModelNoEns: [qsTr("Assets"), qsTr("Collectibles")]
|
||||||
|
@ -102,7 +102,7 @@ StatusDropdown {
|
||||||
readonly property bool ensReady: d.ensDomainNameValid
|
readonly property bool ensReady: d.ensDomainNameValid
|
||||||
|
|
||||||
property int extendedDropdownType: ExtendedDropdownContent.Type.Assets
|
property int extendedDropdownType: ExtendedDropdownContent.Type.Assets
|
||||||
property int currentHoldingType: HoldingTypes.Type.Asset
|
property int currentHoldingType: Constants.TokenType.ERC20
|
||||||
|
|
||||||
property bool updateSelected: false
|
property bool updateSelected: false
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ StatusDropdown {
|
||||||
|
|
||||||
function setInitialFlow() {
|
function setInitialFlow() {
|
||||||
statesStack.clear()
|
statesStack.clear()
|
||||||
if(d.currentHoldingType !== HoldingTypes.Type.Ens)
|
if(d.currentHoldingType !== Constants.TokenType.ENS)
|
||||||
statesStack.push(HoldingsDropdown.FlowType.List_Deep1)
|
statesStack.push(HoldingsDropdown.FlowType.List_Deep1)
|
||||||
else
|
else
|
||||||
statesStack.push(HoldingsDropdown.FlowType.Selected)
|
statesStack.push(HoldingsDropdown.FlowType.Selected)
|
||||||
|
@ -197,17 +197,17 @@ StatusDropdown {
|
||||||
state: d.currentHoldingType
|
state: d.currentHoldingType
|
||||||
states: [
|
states: [
|
||||||
State {
|
State {
|
||||||
name: HoldingTypes.Type.Asset
|
name: Constants.TokenType.ERC20
|
||||||
PropertyChanges {target: loader; sourceComponent: listLayout}
|
PropertyChanges {target: loader; sourceComponent: listLayout}
|
||||||
PropertyChanges {target: d; extendedDropdownType: ExtendedDropdownContent.Type.Assets}
|
PropertyChanges {target: d; extendedDropdownType: ExtendedDropdownContent.Type.Assets}
|
||||||
},
|
},
|
||||||
State {
|
State {
|
||||||
name: HoldingTypes.Type.Collectible
|
name: Constants.TokenType.ERC721
|
||||||
PropertyChanges {target: loader; sourceComponent: listLayout}
|
PropertyChanges {target: loader; sourceComponent: listLayout}
|
||||||
PropertyChanges {target: d; extendedDropdownType: ExtendedDropdownContent.Type.Collectibles}
|
PropertyChanges {target: d; extendedDropdownType: ExtendedDropdownContent.Type.Collectibles}
|
||||||
},
|
},
|
||||||
State {
|
State {
|
||||||
name: HoldingTypes.Type.Ens
|
name: Constants.TokenType.ENS
|
||||||
PropertyChanges {target: loader; sourceComponent: ensLayout}
|
PropertyChanges {target: loader; sourceComponent: ensLayout}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -245,9 +245,9 @@ StatusDropdown {
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: loader
|
target: loader
|
||||||
sourceComponent: {
|
sourceComponent: {
|
||||||
if (d.currentHoldingType === HoldingTypes.Type.Asset)
|
if (d.currentHoldingType === Constants.TokenType.ERC20)
|
||||||
return assetLayout
|
return assetLayout
|
||||||
if (d.currentHoldingType === HoldingTypes.Type.Collectible)
|
if (d.currentHoldingType === Constants.TokenType.ERC721)
|
||||||
return collectibleLayout
|
return collectibleLayout
|
||||||
return ensLayout
|
return ensLayout
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ StatusDialog {
|
||||||
root.sendModalPopup.preSelectedSendType = Constants.SendType.Transfer
|
root.sendModalPopup.preSelectedSendType = Constants.SendType.Transfer
|
||||||
root.sendModalPopup.preSelectedAccount = ModelUtils.getByKey(root.accounts, "address", token.accountAddress)
|
root.sendModalPopup.preSelectedAccount = ModelUtils.getByKey(root.accounts, "address", token.accountAddress)
|
||||||
root.sendModalPopup.preSelectedHoldingID = token.key
|
root.sendModalPopup.preSelectedHoldingID = token.key
|
||||||
root.sendModalPopup.preSelectedHoldingType = Constants.HoldingType.Collectible
|
root.sendModalPopup.preSelectedHoldingType = Constants.TokenType.ERC721
|
||||||
root.sendModalPopup.open()
|
root.sendModalPopup.open()
|
||||||
close()
|
close()
|
||||||
}
|
}
|
||||||
|
|
|
@ -358,16 +358,16 @@ StatusScrollView {
|
||||||
const modelItem = selectedHoldingsModel.get(index)
|
const modelItem = selectedHoldingsModel.get(index)
|
||||||
|
|
||||||
switch(modelItem.type) {
|
switch(modelItem.type) {
|
||||||
case HoldingTypes.Type.Asset:
|
case Constants.TokenType.ERC20:
|
||||||
dropdown.assetKey = modelItem.key
|
dropdown.assetKey = modelItem.key
|
||||||
dropdown.assetAmount = modelItem.amount
|
dropdown.assetAmount = modelItem.amount
|
||||||
dropdown.assetMultiplierIndex = modelItem.multiplierIndex
|
dropdown.assetMultiplierIndex = modelItem.multiplierIndex
|
||||||
dropdown.setActiveTab(HoldingTypes.Type.Asset)
|
dropdown.setActiveTab(Constants.TokenType.ERC20)
|
||||||
break
|
break
|
||||||
case HoldingTypes.Type.Collectible:
|
case Constants.TokenType.ERC721:
|
||||||
dropdown.collectibleKey = modelItem.key
|
dropdown.collectibleKey = modelItem.key
|
||||||
dropdown.collectibleAmount = modelItem.amount
|
dropdown.collectibleAmount = modelItem.amount
|
||||||
dropdown.setActiveTab(HoldingTypes.Type.Collectible)
|
dropdown.setActiveTab(Constants.TokenType.ERC721)
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
console.warn("Unsupported token type.")
|
console.warn("Unsupported token type.")
|
||||||
|
|
|
@ -125,13 +125,13 @@ StatusScrollView {
|
||||||
|
|
||||||
function getTokenKeysAndAmounts() {
|
function getTokenKeysAndAmounts() {
|
||||||
return ModelUtils.modelToArray(selectedHoldingsModel, ["type", "key", "amount"])
|
return ModelUtils.modelToArray(selectedHoldingsModel, ["type", "key", "amount"])
|
||||||
.filter(item => item.type !== HoldingTypes.Type.Ens)
|
.filter(item => item.type !== Constants.TokenType.ENS)
|
||||||
.map(item => ({ key: item.key, amount: item.amount }))
|
.map(item => ({ key: item.key, amount: item.amount }))
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEnsNames() {
|
function getEnsNames() {
|
||||||
return ModelUtils.modelToArray(selectedHoldingsModel, ["type", "name"])
|
return ModelUtils.modelToArray(selectedHoldingsModel, ["type", "name"])
|
||||||
.filter(item => item.type === HoldingTypes.Type.Ens)
|
.filter(item => item.type === Constants.TokenType.ENS)
|
||||||
.map(item => item.name)
|
.map(item => item.name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -271,7 +271,7 @@ StatusScrollView {
|
||||||
const modelItem = PermissionsHelpers.getTokenByKey(
|
const modelItem = PermissionsHelpers.getTokenByKey(
|
||||||
root.assetsModel, key)
|
root.assetsModel, key)
|
||||||
|
|
||||||
addItem(HoldingTypes.Type.Asset, modelItem, amount)
|
addItem(Constants.TokenType.ERC20, modelItem, amount)
|
||||||
dropdown.close()
|
dropdown.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -279,13 +279,13 @@ StatusScrollView {
|
||||||
const modelItem = PermissionsHelpers.getTokenByKey(
|
const modelItem = PermissionsHelpers.getTokenByKey(
|
||||||
root.collectiblesModel, key)
|
root.collectiblesModel, key)
|
||||||
|
|
||||||
addItem(HoldingTypes.Type.Collectible, modelItem, amount)
|
addItem(Constants.TokenType.ERC721, modelItem, amount)
|
||||||
dropdown.close()
|
dropdown.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
onAddEns: {
|
onAddEns: {
|
||||||
d.dirtyValues.selectedHoldingsModel.append(
|
d.dirtyValues.selectedHoldingsModel.append(
|
||||||
{ type: HoldingTypes.Type.Ens, key: domain, amount: 1 })
|
{ type: Constants.TokenType.ENS, key: domain, amount: 1 })
|
||||||
dropdown.close()
|
dropdown.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,7 +294,7 @@ StatusScrollView {
|
||||||
const modelItem = PermissionsHelpers.getTokenByKey(root.assetsModel, key)
|
const modelItem = PermissionsHelpers.getTokenByKey(root.assetsModel, key)
|
||||||
|
|
||||||
d.dirtyValues.selectedHoldingsModel.set(
|
d.dirtyValues.selectedHoldingsModel.set(
|
||||||
itemIndex, { type: HoldingTypes.Type.Asset, key, amount: parseFloat(amount) })
|
itemIndex, { type: Constants.TokenType.ERC20, key, amount: parseFloat(amount) })
|
||||||
dropdown.close()
|
dropdown.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,14 +305,14 @@ StatusScrollView {
|
||||||
|
|
||||||
d.dirtyValues.selectedHoldingsModel.set(
|
d.dirtyValues.selectedHoldingsModel.set(
|
||||||
itemIndex,
|
itemIndex,
|
||||||
{ type: HoldingTypes.Type.Collectible, key, amount: parseFloat(amount) })
|
{ type: Constants.TokenType.ERC721, key, amount: parseFloat(amount) })
|
||||||
dropdown.close()
|
dropdown.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
onUpdateEns: {
|
onUpdateEns: {
|
||||||
d.dirtyValues.selectedHoldingsModel.set(
|
d.dirtyValues.selectedHoldingsModel.set(
|
||||||
tokensSelector.editedIndex,
|
tokensSelector.editedIndex,
|
||||||
{ type: HoldingTypes.Type.Ens, key: domain, amount: 1 })
|
{ type: Constants.TokenType.ENS, key: domain, amount: 1 })
|
||||||
dropdown.close()
|
dropdown.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -347,15 +347,15 @@ StatusScrollView {
|
||||||
const modelItem = tokensSelector.model.get(index)
|
const modelItem = tokensSelector.model.get(index)
|
||||||
|
|
||||||
switch(modelItem.type) {
|
switch(modelItem.type) {
|
||||||
case HoldingTypes.Type.Asset:
|
case Constants.TokenType.ERC20:
|
||||||
dropdown.assetKey = modelItem.key
|
dropdown.assetKey = modelItem.key
|
||||||
dropdown.assetAmount = modelItem.amount
|
dropdown.assetAmount = modelItem.amount
|
||||||
break
|
break
|
||||||
case HoldingTypes.Type.Collectible:
|
case Constants.TokenType.ERC721:
|
||||||
dropdown.collectibleKey = modelItem.key
|
dropdown.collectibleKey = modelItem.key
|
||||||
dropdown.collectibleAmount = modelItem.amount
|
dropdown.collectibleAmount = modelItem.amount
|
||||||
break
|
break
|
||||||
case HoldingTypes.Type.Ens:
|
case Constants.TokenType.ENS:
|
||||||
dropdown.ensDomainName = modelItem.key
|
dropdown.ensDomainName = modelItem.key
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -25,10 +25,10 @@ SortFilterProxyModel {
|
||||||
name: "text"
|
name: "text"
|
||||||
|
|
||||||
function getName(type, key) {
|
function getName(type, key) {
|
||||||
if (type === HoldingTypes.Type.Ens)
|
if (type === Constants.TokenType.ENS)
|
||||||
return key
|
return key
|
||||||
|
|
||||||
const model = type === HoldingTypes.Type.Asset
|
const model = type === Constants.TokenType.ERC20
|
||||||
? assetsModel
|
? assetsModel
|
||||||
: collectiblesModel
|
: collectiblesModel
|
||||||
const item = PermissionsHelpers.getTokenByKey(model, key)
|
const item = PermissionsHelpers.getTokenByKey(model, key)
|
||||||
|
@ -55,10 +55,10 @@ SortFilterProxyModel {
|
||||||
name: "imageSource"
|
name: "imageSource"
|
||||||
|
|
||||||
function getIcon(type, key) {
|
function getIcon(type, key) {
|
||||||
if (type === HoldingTypes.Type.Ens)
|
if (type === Constants.TokenType.ENS)
|
||||||
return Style.png("tokens/ENS")
|
return Style.png("tokens/ENS")
|
||||||
|
|
||||||
const model = type === HoldingTypes.Type.Asset
|
const model = type === Constants.TokenType.ERC20
|
||||||
? assetsModel : collectiblesModel
|
? assetsModel : collectiblesModel
|
||||||
|
|
||||||
return PermissionsHelpers.getTokenIconByKey(model, key)
|
return PermissionsHelpers.getTokenIconByKey(model, key)
|
||||||
|
|
|
@ -122,7 +122,7 @@ Item {
|
||||||
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
||||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(0)
|
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(0)
|
||||||
preSelectedHoldingID: Constants.ethToken
|
preSelectedHoldingID: Constants.ethToken
|
||||||
preSelectedHoldingType: Constants.HoldingType.Asset
|
preSelectedHoldingType: Constants.TokenType.ERC20
|
||||||
sendTransaction: function() {
|
sendTransaction: function() {
|
||||||
if(bestRoutes.count === 1) {
|
if(bestRoutes.count === 1) {
|
||||||
let path = bestRoutes.firstItem()
|
let path = bestRoutes.firstItem()
|
||||||
|
|
|
@ -67,7 +67,7 @@ Item {
|
||||||
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
||||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(0)
|
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(0)
|
||||||
preSelectedHoldingID: Constants.ethToken
|
preSelectedHoldingID: Constants.ethToken
|
||||||
preSelectedHoldingType: Constants.HoldingType.Asset
|
preSelectedHoldingType: Constants.TokenType.ERC20
|
||||||
sendTransaction: function() {
|
sendTransaction: function() {
|
||||||
if(bestRoutes.count === 1) {
|
if(bestRoutes.count === 1) {
|
||||||
let path = bestRoutes.firstItem()
|
let path = bestRoutes.firstItem()
|
||||||
|
|
|
@ -52,7 +52,7 @@ Item {
|
||||||
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
preSelectedRecipient: root.ensUsernamesStore.getEnsRegisteredAddress()
|
||||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(10)
|
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(10)
|
||||||
preSelectedHoldingID: JSON.parse(root.stickersStore.getStatusToken()).symbol
|
preSelectedHoldingID: JSON.parse(root.stickersStore.getStatusToken()).symbol
|
||||||
preSelectedHoldingType: Constants.HoldingType.Asset
|
preSelectedHoldingType: Constants.TokenType.ERC20
|
||||||
sendTransaction: function() {
|
sendTransaction: function() {
|
||||||
if(bestRoutes.count === 1) {
|
if(bestRoutes.count === 1) {
|
||||||
let path = bestRoutes.firstItem()
|
let path = bestRoutes.firstItem()
|
||||||
|
|
|
@ -124,9 +124,9 @@ QtObject {
|
||||||
|
|
||||||
property var cryptoRampServicesModel: walletSectionBuySellCrypto.model
|
property var cryptoRampServicesModel: walletSectionBuySellCrypto.model
|
||||||
|
|
||||||
function resetCurrentViewedHolding() {
|
function resetCurrentViewedHolding(type) {
|
||||||
currentViewedHoldingID = ""
|
currentViewedHoldingID = ""
|
||||||
currentViewedHoldingType = Constants.HoldingType.Unknown
|
currentViewedHoldingType = type
|
||||||
}
|
}
|
||||||
|
|
||||||
function setCurrentViewedHoldingType(type) {
|
function setCurrentViewedHoldingType(type) {
|
||||||
|
|
|
@ -113,7 +113,7 @@ Item {
|
||||||
text: qsTr("Activity")
|
text: qsTr("Activity")
|
||||||
}
|
}
|
||||||
onCurrentIndexChanged: {
|
onCurrentIndexChanged: {
|
||||||
RootStore.setCurrentViewedHoldingType(walletTabBar.currentIndex === 1 ? Constants.HoldingType.Collectible : Constants.HoldingType.Asset)
|
RootStore.setCurrentViewedHoldingType(walletTabBar.currentIndex === 1 ? Constants.TokenType.ERC721 : Constants.TokenType.ERC20)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
StackLayout {
|
StackLayout {
|
||||||
|
@ -129,7 +129,7 @@ Item {
|
||||||
assetDetailsLaunched: stack.currentIndex === 2
|
assetDetailsLaunched: stack.currentIndex === 2
|
||||||
onAssetClicked: {
|
onAssetClicked: {
|
||||||
assetDetailView.token = token
|
assetDetailView.token = token
|
||||||
RootStore.setCurrentViewedHolding(token.symbol, Constants.HoldingType.Asset)
|
RootStore.setCurrentViewedHolding(token.symbol, Constants.TokenType.ERC20)
|
||||||
stack.currentIndex = 2
|
stack.currentIndex = 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,7 +137,7 @@ Item {
|
||||||
collectiblesModel: RootStore.collectiblesStore.ownedCollectibles
|
collectiblesModel: RootStore.collectiblesStore.ownedCollectibles
|
||||||
onCollectibleClicked: {
|
onCollectibleClicked: {
|
||||||
RootStore.collectiblesStore.getDetailedCollectible(chainId, contractAddress, tokenId)
|
RootStore.collectiblesStore.getDetailedCollectible(chainId, contractAddress, tokenId)
|
||||||
RootStore.setCurrentViewedHolding(uid, Constants.HoldingType.Collectible)
|
RootStore.setCurrentViewedHolding(uid, Constants.TokenType.ERC721)
|
||||||
stack.currentIndex = 1
|
stack.currentIndex = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,7 +163,7 @@ Item {
|
||||||
|
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if (!visible)
|
if (!visible)
|
||||||
RootStore.resetCurrentViewedHolding()
|
RootStore.resetCurrentViewedHolding(Constants.TokenType.ERC721)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AssetsDetailView {
|
AssetsDetailView {
|
||||||
|
@ -180,7 +180,7 @@ Item {
|
||||||
|
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if (!visible)
|
if (!visible)
|
||||||
RootStore.resetCurrentViewedHolding()
|
RootStore.resetCurrentViewedHolding(Constants.TokenType.ERC20)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1420,7 +1420,7 @@ Item {
|
||||||
property var preSelectedRecipient
|
property var preSelectedRecipient
|
||||||
property int preSelectedRecipientType
|
property int preSelectedRecipientType
|
||||||
property string preSelectedHoldingID
|
property string preSelectedHoldingID
|
||||||
property int preSelectedHoldingType
|
property int preSelectedHoldingType: Constants.TokenType.Unknown
|
||||||
property int preSelectedSendType: Constants.SendType.Unknown
|
property int preSelectedSendType: Constants.SendType.Unknown
|
||||||
property string preDefinedAmountToSend
|
property string preDefinedAmountToSend
|
||||||
property bool onlyAssets: false
|
property bool onlyAssets: false
|
||||||
|
@ -1431,7 +1431,7 @@ Item {
|
||||||
sendModal.closed()
|
sendModal.closed()
|
||||||
sendModal.preSelectedSendType = Constants.SendType.Unknown
|
sendModal.preSelectedSendType = Constants.SendType.Unknown
|
||||||
sendModal.preSelectedHoldingID = ""
|
sendModal.preSelectedHoldingID = ""
|
||||||
sendModal.preSelectedHoldingType = Constants.HoldingType.Unknown
|
sendModal.preSelectedHoldingType = Constants.TokenType.Unknown
|
||||||
sendModal.preSelectedAccount = undefined
|
sendModal.preSelectedAccount = undefined
|
||||||
sendModal.preSelectedRecipient = undefined
|
sendModal.preSelectedRecipient = undefined
|
||||||
sendModal.preDefinedAmountToSend = ""
|
sendModal.preDefinedAmountToSend = ""
|
||||||
|
@ -1448,7 +1448,7 @@ Item {
|
||||||
if(sendModal.preSelectedSendType !== Constants.SendType.Unknown) {
|
if(sendModal.preSelectedSendType !== Constants.SendType.Unknown) {
|
||||||
item.preSelectedSendType = sendModal.preSelectedSendType
|
item.preSelectedSendType = sendModal.preSelectedSendType
|
||||||
}
|
}
|
||||||
if(preSelectedHoldingType !== Constants.HoldingType.Unknown) {
|
if(preSelectedHoldingType !== Constants.TokenType.Unknown) {
|
||||||
item.preSelectedHoldingID = sendModal.preSelectedHoldingID
|
item.preSelectedHoldingID = sendModal.preSelectedHoldingID
|
||||||
item.preSelectedHoldingType = sendModal.preSelectedHoldingType
|
item.preSelectedHoldingType = sendModal.preSelectedHoldingType
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ QtObject {
|
||||||
preSelectedAccount: null,
|
preSelectedAccount: null,
|
||||||
preSelectedRecipientType: TabAddressSelectorView.Type.Address,
|
preSelectedRecipientType: TabAddressSelectorView.Type.Address,
|
||||||
preSelectedRecipient: null,
|
preSelectedRecipient: null,
|
||||||
preSelectedHoldingType: 0,
|
preSelectedHoldingType: Constants.TokenType.Unknown,
|
||||||
preSelectedHolding: null,
|
preSelectedHolding: null,
|
||||||
preSelectedHoldingID: "",
|
preSelectedHoldingID: "",
|
||||||
preDefinedAmountToSend: "",
|
preDefinedAmountToSend: "",
|
||||||
|
@ -56,10 +56,10 @@ QtObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isCollectible) {
|
if (isCollectible) {
|
||||||
req.preSelectedHoldingType = Constants.HoldingType.Collectible
|
req.preSelectedHoldingType = Constants.TokenType.ERC721
|
||||||
req.preSelectedHolding = token
|
req.preSelectedHolding = token
|
||||||
} else {
|
} else {
|
||||||
req.preSelectedHoldingType = Constants.HoldingType.Asset
|
req.preSelectedHoldingType = Constants.TokenType.ERC20
|
||||||
req.preSelectedHoldingID = token
|
req.preSelectedHoldingID = token
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ StatusDialog {
|
||||||
property string preDefinedAmountToSend
|
property string preDefinedAmountToSend
|
||||||
// token symbol
|
// token symbol
|
||||||
property string preSelectedHoldingID
|
property string preSelectedHoldingID
|
||||||
property int preSelectedHoldingType
|
property int preSelectedHoldingType: Constants.TokenType.Unknown
|
||||||
property int preSelectedSendType
|
property int preSelectedSendType
|
||||||
property bool interactive: true
|
property bool interactive: true
|
||||||
property alias onlyAssets: holdingSelector.onlyAssets
|
property alias onlyAssets: holdingSelector.onlyAssets
|
||||||
|
@ -89,11 +89,11 @@ StatusDialog {
|
||||||
readonly property bool isBridgeTx: store.sendType === Constants.SendType.Bridge
|
readonly property bool isBridgeTx: store.sendType === Constants.SendType.Bridge
|
||||||
readonly property bool isERC721Transfer: store.sendType === Constants.SendType.ERC721Transfer
|
readonly property bool isERC721Transfer: store.sendType === Constants.SendType.ERC721Transfer
|
||||||
property var selectedHolding: null
|
property var selectedHolding: null
|
||||||
property var selectedHoldingType: Constants.HoldingType.Unknown
|
property var selectedHoldingType: Constants.TokenType.Unknown
|
||||||
readonly property bool isSelectedHoldingValidAsset: !!selectedHolding && selectedHoldingType === Constants.HoldingType.Asset
|
readonly property bool isSelectedHoldingValidAsset: !!selectedHolding && selectedHoldingType === Constants.TokenType.ERC20
|
||||||
property var hoveredHolding: null
|
property var hoveredHolding: null
|
||||||
property var hoveredHoldingType: Constants.HoldingType.Unknown
|
property var hoveredHoldingType: Constants.TokenType.Unknown
|
||||||
readonly property bool isHoveredHoldingValidAsset: !!hoveredHolding && hoveredHoldingType === Constants.HoldingType.Asset
|
readonly property bool isHoveredHoldingValidAsset: !!hoveredHolding && hoveredHoldingType === Constants.TokenType.ERC20
|
||||||
|
|
||||||
function setSelectedHoldingId(holdingId, holdingType) {
|
function setSelectedHoldingId(holdingId, holdingType) {
|
||||||
let holding = store.getHolding(holdingId, holdingType)
|
let holding = store.getHolding(holdingId, holdingType)
|
||||||
|
@ -120,11 +120,11 @@ StatusDialog {
|
||||||
}
|
}
|
||||||
|
|
||||||
onSelectedHoldingChanged: {
|
onSelectedHoldingChanged: {
|
||||||
if (d.selectedHoldingType === Constants.HoldingType.Asset) {
|
if (d.selectedHoldingType === Constants.TokenType.ERC20) {
|
||||||
if(!d.ensOrStickersPurpose && store.sendType !== Constants.SendType.Bridge)
|
if(!d.ensOrStickersPurpose && store.sendType !== Constants.SendType.Bridge)
|
||||||
store.setSendType(Constants.SendType.Transfer)
|
store.setSendType(Constants.SendType.Transfer)
|
||||||
store.setSelectedAssetSymbol(selectedHolding.symbol)
|
store.setSelectedAssetSymbol(selectedHolding.symbol)
|
||||||
} else if (d.selectedHoldingType === Constants.HoldingType.Collectible) {
|
} else if (d.selectedHoldingType === Constants.TokenType.ERC721) {
|
||||||
store.setSendType(Constants.SendType.ERC721Transfer)
|
store.setSendType(Constants.SendType.ERC721Transfer)
|
||||||
amountToSendInput.input.text = 1
|
amountToSendInput.input.text = 1
|
||||||
store.setSelectedAssetSymbol(selectedHolding.contractAddress+":"+selectedHolding.tokenId)
|
store.setSelectedAssetSymbol(selectedHolding.contractAddress+":"+selectedHolding.tokenId)
|
||||||
|
@ -157,7 +157,8 @@ StatusDialog {
|
||||||
store.setSendType(popup.preSelectedSendType)
|
store.setSendType(popup.preSelectedSendType)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (popup.preSelectedHoldingType !== Constants.HoldingType.Unknown) {
|
if ((popup.preSelectedHoldingType > Constants.TokenType.Native) &&
|
||||||
|
(popup.preSelectedHoldingType < Constants.TokenType.ERC1155)) {
|
||||||
tokenListRect.browsingHoldingType = popup.preSelectedHoldingType
|
tokenListRect.browsingHoldingType = popup.preSelectedHoldingType
|
||||||
if (!!popup.preSelectedHoldingID) {
|
if (!!popup.preSelectedHoldingID) {
|
||||||
d.setSelectedHoldingId(popup.preSelectedHoldingID, popup.preSelectedHoldingType)
|
d.setSelectedHoldingId(popup.preSelectedHoldingID, popup.preSelectedHoldingType)
|
||||||
|
@ -262,8 +263,8 @@ StatusDialog {
|
||||||
collectiblesModel: popup.preSelectedAccount ? popup.nestedCollectiblesModel : null
|
collectiblesModel: popup.preSelectedAccount ? popup.nestedCollectiblesModel : null
|
||||||
networksModel: popup.store.allNetworksModel
|
networksModel: popup.store.allNetworksModel
|
||||||
currentCurrencySymbol: d.currencyStore.currentCurrencySymbol
|
currentCurrencySymbol: d.currencyStore.currentCurrencySymbol
|
||||||
visible: (!!d.selectedHolding && d.selectedHoldingType !== Constants.HoldingType.Unknown) ||
|
visible: (!!d.selectedHolding && d.selectedHoldingType !== Constants.TokenType.Unknown) ||
|
||||||
(!!d.hoveredHolding && d.hoveredHoldingType !== Constants.HoldingType.Unknown)
|
(!!d.hoveredHolding && d.hoveredHoldingType !== Constants.TokenType.Unknown)
|
||||||
onItemSelected: {
|
onItemSelected: {
|
||||||
d.setSelectedHoldingId(holdingId, holdingType)
|
d.setSelectedHoldingId(holdingId, holdingType)
|
||||||
}
|
}
|
||||||
|
@ -408,7 +409,7 @@ StatusDialog {
|
||||||
if(hovered) {
|
if(hovered) {
|
||||||
d.setHoveredHoldingId(symbol, holdingType)
|
d.setHoveredHoldingId(symbol, holdingType)
|
||||||
} else {
|
} else {
|
||||||
d.setHoveredHoldingId("", Constants.HoldingType.Unknown)
|
d.setHoveredHoldingId("", Constants.TokenType.Unknown)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,8 +54,8 @@ Item {
|
||||||
id: d
|
id: d
|
||||||
// Internal management properties and signals:
|
// Internal management properties and signals:
|
||||||
readonly property var holdingTypes: onlyAssets ?
|
readonly property var holdingTypes: onlyAssets ?
|
||||||
[Constants.HoldingType.Asset] :
|
[Constants.TokenType.ERC20] :
|
||||||
[Constants.HoldingType.Asset, Constants.HoldingType.Collectible]
|
[Constants.TokenType.ERC20, Constants.TokenType.ERC721]
|
||||||
|
|
||||||
readonly property var tabsModel: onlyAssets ?
|
readonly property var tabsModel: onlyAssets ?
|
||||||
[qsTr("Assets")] :
|
[qsTr("Assets")] :
|
||||||
|
@ -66,15 +66,15 @@ Item {
|
||||||
})
|
})
|
||||||
|
|
||||||
function isAsset(type) {
|
function isAsset(type) {
|
||||||
return type === Constants.HoldingType.Asset
|
return type === Constants.TokenType.ERC20
|
||||||
}
|
}
|
||||||
|
|
||||||
property int browsingHoldingType: Constants.HoldingType.Asset
|
property int browsingHoldingType: Constants.TokenType.ERC20
|
||||||
readonly property bool isCurrentBrowsingTypeAsset: isAsset(browsingHoldingType)
|
readonly property bool isCurrentBrowsingTypeAsset: isAsset(browsingHoldingType)
|
||||||
readonly property bool isBrowsingCollection: !isCurrentBrowsingTypeAsset && !!collectiblesModel && collectiblesModel.currentCollectionUid !== ""
|
readonly property bool isBrowsingCollection: !isCurrentBrowsingTypeAsset && !!collectiblesModel && collectiblesModel.currentCollectionUid !== ""
|
||||||
property string currentBrowsingCollectionName
|
property string currentBrowsingCollectionName
|
||||||
|
|
||||||
property var currentHoldingType: Constants.HoldingType.Unknown
|
property var currentHoldingType: Constants.TokenType.Unknown
|
||||||
|
|
||||||
property string searchText
|
property string searchText
|
||||||
readonly property string assetSymbolByAddress: isCurrentBrowsingTypeAsset ? "": root.searchAssetSymbolByAddressFn(searchText)
|
readonly property string assetSymbolByAddress: isCurrentBrowsingTypeAsset ? "": root.searchAssetSymbolByAddressFn(searchText)
|
||||||
|
@ -298,8 +298,8 @@ Item {
|
||||||
}
|
}
|
||||||
onTokenSelected: {
|
onTokenSelected: {
|
||||||
holdingItemSelector.selectedItem = selectedToken
|
holdingItemSelector.selectedItem = selectedToken
|
||||||
d.currentHoldingType = Constants.HoldingType.Asset
|
d.currentHoldingType = Constants.TokenType.ERC20
|
||||||
root.itemSelected(selectedToken.symbol, Constants.HoldingType.Asset)
|
root.itemSelected(selectedToken.symbol, Constants.TokenType.ERC20)
|
||||||
holdingItemSelector.comboBoxControl.popup.close()
|
holdingItemSelector.comboBoxControl.popup.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -316,8 +316,8 @@ Item {
|
||||||
root.collectiblesModel.currentCollectionUid = collectionUid
|
root.collectiblesModel.currentCollectionUid = collectionUid
|
||||||
} else {
|
} else {
|
||||||
holdingItemSelector.selectedItem = selectedItem
|
holdingItemSelector.selectedItem = selectedItem
|
||||||
d.currentHoldingType = Constants.HoldingType.Collectible
|
d.currentHoldingType = Constants.TokenType.ERC721
|
||||||
root.itemSelected(selectedItem.uid, Constants.HoldingType.Collectible)
|
root.itemSelected(selectedItem.uid, Constants.TokenType.ERC721)
|
||||||
holdingItemSelector.comboBoxControl.popup.close()
|
holdingItemSelector.comboBoxControl.popup.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,10 +25,10 @@ Item {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
property bool onlyAssets: false
|
property bool onlyAssets: false
|
||||||
property int browsingHoldingType: Constants.HoldingType.Asset
|
property int browsingHoldingType: Constants.TokenType.ERC20
|
||||||
|
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if(!visible)
|
if(!visible && root.collectibles)
|
||||||
root.collectibles.currentCollectionUid = ""
|
root.collectibles.currentCollectionUid = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,8 +46,8 @@ Item {
|
||||||
|
|
||||||
// Internal management properties and signals:
|
// Internal management properties and signals:
|
||||||
readonly property var holdingTypes: onlyAssets ?
|
readonly property var holdingTypes: onlyAssets ?
|
||||||
[Constants.HoldingType.Asset] :
|
[Constants.TokenType.ERC20] :
|
||||||
[Constants.HoldingType.Asset, Constants.HoldingType.Collectible]
|
[Constants.TokenType.ERC20, Constants.TokenType.ERC721]
|
||||||
|
|
||||||
readonly property var tabsModel: onlyAssets ?
|
readonly property var tabsModel: onlyAssets ?
|
||||||
[qsTr("Assets")] :
|
[qsTr("Assets")] :
|
||||||
|
@ -128,9 +128,9 @@ Item {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: tokenList.contentHeight
|
height: tokenList.contentHeight
|
||||||
|
|
||||||
header: root.browsingHoldingType === Constants.HoldingType.Asset ? tokenHeader : collectibleHeader
|
header: root.browsingHoldingType === Constants.TokenType.ERC20 ? tokenHeader : collectibleHeader
|
||||||
model: root.browsingHoldingType === Constants.HoldingType.Asset ? tokensModel : collectiblesModel
|
model: root.browsingHoldingType === Constants.TokenType.ERC20 ? tokensModel : collectiblesModel
|
||||||
delegate: root.browsingHoldingType === Constants.HoldingType.Asset ? tokenDelegate : collectiblesDelegate
|
delegate: root.browsingHoldingType === Constants.TokenType.ERC20 ? tokenDelegate : collectiblesDelegate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,19 +171,19 @@ Item {
|
||||||
TokenBalancePerChainDelegate {
|
TokenBalancePerChainDelegate {
|
||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
balancesModel: LeftJoinModel {
|
balancesModel: LeftJoinModel {
|
||||||
leftModel: balances
|
leftModel: model.balances
|
||||||
rightModel: root.networksModel
|
rightModel: root.networksModel
|
||||||
joinRole: "chainId"
|
joinRole: "chainId"
|
||||||
}
|
}
|
||||||
onTokenSelected: root.tokenSelected(symbol, Constants.HoldingType.Asset)
|
onTokenSelected: root.tokenSelected(symbol, Constants.TokenType.ERC20)
|
||||||
onTokenHovered: root.tokenHovered(symbol, Constants.HoldingType.Asset, hovered)
|
onTokenHovered: root.tokenHovered(symbol, Constants.TokenType.ERC20, hovered)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Component {
|
Component {
|
||||||
id: tokenHeader
|
id: tokenHeader
|
||||||
SearchBoxWithRightIcon {
|
SearchBoxWithRightIcon {
|
||||||
showTopBorder: !root.onlyAssets
|
showTopBorder: !root.onlyAssets
|
||||||
width: parent.width
|
width: ListView.view.width
|
||||||
placeholderText: qsTr("Search for token or enter token address")
|
placeholderText: qsTr("Search for token or enter token address")
|
||||||
onTextChanged: Qt.callLater(d.updateAssetSearchText, text)
|
onTextChanged: Qt.callLater(d.updateAssetSearchText, text)
|
||||||
}
|
}
|
||||||
|
@ -192,13 +192,13 @@ Item {
|
||||||
id: collectiblesDelegate
|
id: collectiblesDelegate
|
||||||
CollectibleNestedDelegate {
|
CollectibleNestedDelegate {
|
||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
onItemHovered: root.tokenHovered(selectedItem.uid, Constants.HoldingType.Collectible, hovered)
|
onItemHovered: root.tokenHovered(selectedItem.uid, Constants.TokenType.ERC721, hovered)
|
||||||
onItemSelected: {
|
onItemSelected: {
|
||||||
if (isCollection) {
|
if (isCollection) {
|
||||||
d.currentBrowsingCollectionName = collectionName
|
d.currentBrowsingCollectionName = collectionName
|
||||||
root.collectibles.currentCollectionUid = collectionUid
|
root.collectibles.currentCollectionUid = collectionUid
|
||||||
} else {
|
} else {
|
||||||
root.tokenSelected(selectedItem.uid, Constants.HoldingType.Collectible)
|
root.tokenSelected(selectedItem.uid, Constants.TokenType.ERC721)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,7 +204,7 @@ Item {
|
||||||
preSelectedRecipient: root.store.stickersStore.getStickersMarketAddress()
|
preSelectedRecipient: root.store.stickersStore.getStickersMarketAddress()
|
||||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(parseFloat(price))
|
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(parseFloat(price))
|
||||||
preSelectedHoldingID: JSON.parse(root.store.stickersStore.getStatusToken()).symbol
|
preSelectedHoldingID: JSON.parse(root.store.stickersStore.getStatusToken()).symbol
|
||||||
preSelectedHoldingType: Constants.HoldingType.Asset
|
preSelectedHoldingType: Constants.TokenType.ERC20
|
||||||
sendTransaction: function() {
|
sendTransaction: function() {
|
||||||
if(bestRoutes.count === 1) {
|
if(bestRoutes.count === 1) {
|
||||||
let path = bestRoutes.firstItem()
|
let path = bestRoutes.firstItem()
|
||||||
|
|
|
@ -73,7 +73,7 @@ ModalPopup {
|
||||||
preSelectedRecipient: stickerPackDetailsPopup.store.stickersStore.getStickersMarketAddress()
|
preSelectedRecipient: stickerPackDetailsPopup.store.stickersStore.getStickersMarketAddress()
|
||||||
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(parseFloat(price))
|
preDefinedAmountToSend: LocaleUtils.numberToLocaleString(parseFloat(price))
|
||||||
preSelectedHoldingID: JSON.parse(stickerPackDetailsPopup.store.stickersStore.getStatusToken()).symbol
|
preSelectedHoldingID: JSON.parse(stickerPackDetailsPopup.store.stickersStore.getStatusToken()).symbol
|
||||||
preSelectedHoldingType: Constants.HoldingType.Asset
|
preSelectedHoldingType: Constants.TokenType.ERC20
|
||||||
sendTransaction: function() {
|
sendTransaction: function() {
|
||||||
if(bestRoutes.count === 1) {
|
if(bestRoutes.count === 1) {
|
||||||
let path = bestRoutes.firstItem()
|
let path = bestRoutes.firstItem()
|
||||||
|
|
|
@ -140,9 +140,9 @@ QtObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getHolding(holdingId, holdingType) {
|
function getHolding(holdingId, holdingType) {
|
||||||
if (holdingType === Constants.HoldingType.Asset) {
|
if (holdingType === Constants.TokenType.ERC20) {
|
||||||
return getAsset(selectedSenderAccount.assets, holdingId)
|
return getAsset(selectedSenderAccount.assets, holdingId)
|
||||||
} else if (holdingType === Constants.HoldingType.Collectible) {
|
} else if (holdingType === Constants.TokenType.ERC721) {
|
||||||
return getCollectible(holdingId)
|
return getCollectible(holdingId)
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
|
@ -150,9 +150,9 @@ QtObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSelectorHolding(holdingId, holdingType) {
|
function getSelectorHolding(holdingId, holdingType) {
|
||||||
if (holdingType === Constants.HoldingType.Asset) {
|
if (holdingType === Constants.TokenType.ERC20) {
|
||||||
return getAsset(selectedSenderAccount.assets, holdingId)
|
return getAsset(selectedSenderAccount.assets, holdingId)
|
||||||
} else if (holdingType === Constants.HoldingType.Collectible) {
|
} else if (holdingType === Constants.TokenType.ERC721) {
|
||||||
return getSelectorCollectible(holdingId)
|
return getSelectorCollectible(holdingId)
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
|
@ -176,9 +176,9 @@ QtObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
function holdingToSelectorHolding(holding, holdingType) {
|
function holdingToSelectorHolding(holding, holdingType) {
|
||||||
if (holdingType === Constants.HoldingType.Asset) {
|
if (holdingType === Constants.TokenType.ERC20) {
|
||||||
return assetToSelectorAsset(holding)
|
return assetToSelectorAsset(holding)
|
||||||
} else if (holdingType === Constants.HoldingType.Collectible) {
|
} else if (holdingType === Constants.TokenType.ERC721) {
|
||||||
return collectibleToSelectorCollectible(holding)
|
return collectibleToSelectorCollectible(holding)
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
|
|
|
@ -1057,11 +1057,14 @@ QtObject {
|
||||||
Dismissed = 4
|
Dismissed = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// these are in sync with app_service/common/types.nim
|
||||||
enum TokenType {
|
enum TokenType {
|
||||||
Unknown = 0,
|
Native = 0,
|
||||||
ERC20 = 1, // Asset
|
ERC20 = 1, // Asset
|
||||||
ERC721 = 2, // Collectible
|
ERC721 = 2, // Collectible
|
||||||
ENS = 3
|
ERC1155 = 3,
|
||||||
|
Unknown = 4,
|
||||||
|
ENS = 5
|
||||||
}
|
}
|
||||||
|
|
||||||
enum TokenPrivilegesLevel {
|
enum TokenPrivilegesLevel {
|
||||||
|
@ -1256,10 +1259,6 @@ QtObject {
|
||||||
Image = 1
|
Image = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
enum HoldingType {
|
|
||||||
Unknown, Asset, Collectible
|
|
||||||
}
|
|
||||||
|
|
||||||
enum UrlUnfurlingMode {
|
enum UrlUnfurlingMode {
|
||||||
UrlUnfurlingModeAlwaysAsk = 1,
|
UrlUnfurlingModeAlwaysAsk = 1,
|
||||||
UrlUnfurlingModeEnableAll = 2,
|
UrlUnfurlingModeEnableAll = 2,
|
||||||
|
|
Loading…
Reference in New Issue