mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-25 14:00:00 +00:00
6bcdb9ca54
add getSettings methods to src/status fix issue with calling getSettings; document issue remove most direct references to libstatus; document some common issues remove most references to libstatus wallet add mailserver layer to status lib; remove references to libstatus mailservers remove libstatus accounts references move types out of libstatus; remove libstatus types references remove libstatus browser references refactor libstatus utils references remove more references to libstatus stickers remove references to libstatus constants from src/app remove more libstatus references from src/app refactor token_list usage of libstatus refactor stickers usage of libstatus refactor chat usage of libstatus remove libstatus references from the wallet view remove logic from ens manager view fix issue with import & namespace conflict remove unnecessary imports refactor provider view to not depend on libstatus refactor provider view refactor: move accounts specific code to its own section fix account selection move collectibles to their own module update references to wallet transactions refactor: move gas methods to their own file refactor: extract tokens into their own file refactor: extract ens to its own file refactor: extract dappbrowser code to its own file refactor: extract history related code to its own file refactor: extract balance to its own file refactor: extract utils to its own file clean up wallet imports fix: identicon for transaction commands Fixes #2533
342 lines
12 KiB
QML
342 lines
12 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Layouts 1.3
|
|
import QtQuick.Controls 2.14
|
|
import "../../../../../imports"
|
|
import "../../../../../shared"
|
|
import "../../../../../shared/status"
|
|
|
|
Item {
|
|
property string username: ""
|
|
|
|
signal backBtnClicked();
|
|
signal usernameRegistered(userName: string);
|
|
|
|
StyledText {
|
|
id: sectionTitle
|
|
//% "ENS usernames"
|
|
text: qsTrId("ens-usernames")
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 24
|
|
anchors.top: parent.top
|
|
anchors.topMargin: 24
|
|
font.weight: Font.Bold
|
|
font.pixelSize: 20
|
|
}
|
|
|
|
Loader {
|
|
id: transactionDialog
|
|
function open() {
|
|
this.active = true
|
|
this.item.open()
|
|
}
|
|
function closed() {
|
|
this.active = false // kill an opened instance
|
|
}
|
|
sourceComponent: RegisterENSModal {
|
|
onClosed: {
|
|
transactionDialog.closed()
|
|
}
|
|
ensUsername: username
|
|
width: 425
|
|
height: 425
|
|
}
|
|
}
|
|
|
|
ModalPopup {
|
|
id: popup
|
|
//% "Terms of name registration"
|
|
title: qsTrId("ens-terms-header")
|
|
|
|
ScrollView {
|
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
|
ScrollBar.vertical.policy: ScrollBar.AlwaysOn
|
|
width: parent.width
|
|
height: parent.height
|
|
clip: true
|
|
|
|
Column {
|
|
spacing: Style.current.halfPadding
|
|
height: childrenRect.height
|
|
width: parent.width
|
|
|
|
|
|
StyledText {
|
|
//% "Funds are deposited for 1 year. Your SNT will be locked, but not spent."
|
|
text: qsTrId("ens-terms-point-1")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
StyledText {
|
|
//% "After 1 year, you can release the name and get your deposit back, or take no action to keep the name."
|
|
text: qsTrId("ens-terms-point-2")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
StyledText {
|
|
//% "If terms of the contract change — e.g. Status makes contract upgrades — user has the right to release the username regardless of time held."
|
|
text: qsTrId("ens-terms-point-3")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
StyledText {
|
|
//% "The contract controller cannot access your deposited funds. They can only be moved back to the address that sent them."
|
|
text: qsTrId("ens-terms-point-4")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
StyledText {
|
|
//% "Your address(es) will be publicly associated with your ENS name."
|
|
text: qsTrId("ens-terms-point-5")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
StyledText {
|
|
//% "Usernames are created as subdomain nodes of stateofus.eth and are subject to the ENS smart contract terms."
|
|
text: qsTrId("ens-terms-point-6")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
StyledText {
|
|
//% "You authorize the contract to transfer SNT on your behalf. This can only occur when you approve a transaction to authorize the transfer."
|
|
text: qsTrId("ens-terms-point-7")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
StyledText {
|
|
//% "These terms are guaranteed by the smart contract logic at addresses:"
|
|
text: qsTrId("ens-terms-point-8")
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
font.weight: Font.Bold
|
|
}
|
|
|
|
StyledText {
|
|
//% "%1 (Status UsernameRegistrar)."
|
|
text: qsTrId("-1--status-usernameregistrar--").arg(profileModel.ens.getUsernameRegistrar())
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
font.family: Style.current.fontHexRegular.name
|
|
}
|
|
|
|
StyledText {
|
|
//% "<a href='%1%2'>Look up on Etherscan</a>"
|
|
text: qsTrId("-a-href---1-2--look-up-on-etherscan--a-").arg(walletModel.utilsView.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getUsernameRegistrar())
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
onLinkActivated: appMain.openLink(link)
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
acceptedButtons: Qt.NoButton // we don't want to eat clicks on the Text
|
|
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
}
|
|
}
|
|
|
|
StyledText {
|
|
//% "%1 (ENS Registry)."
|
|
text: qsTrId("-1--ens-registry--").arg(profileModel.ens.getENSRegistry())
|
|
wrapMode: Text.WordWrap
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
font.family: Style.current.fontHexRegular.name
|
|
}
|
|
|
|
StyledText {
|
|
//% "<a href='%1%2'>Look up on Etherscan</a>"
|
|
text: qsTrId("-a-href---1-2--look-up-on-etherscan--a-").arg(walletModel.utilsView.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getENSRegistry())
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
onLinkActivated: appMain.openLink(link)
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
acceptedButtons: Qt.NoButton // we don't want to eat clicks on the Text
|
|
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
ScrollView {
|
|
id: sview
|
|
clip: true
|
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
|
contentHeight: contentItem.childrenRect.height
|
|
anchors.top: sectionTitle.bottom
|
|
anchors.topMargin: Style.current.padding
|
|
anchors.bottom: startBtn.top
|
|
anchors.bottomMargin: Style.current.padding
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
|
|
Item {
|
|
id: contentItem
|
|
anchors.right: parent.right;
|
|
anchors.left: parent.left;
|
|
|
|
Rectangle {
|
|
id: circleAt
|
|
anchors.top: parent.top
|
|
anchors.topMargin: 24
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
width: 60
|
|
height: 60
|
|
radius: 120
|
|
color: Style.current.blue
|
|
|
|
StyledText {
|
|
text: "@"
|
|
opacity: 0.7
|
|
font.weight: Font.Bold
|
|
font.pixelSize: 18
|
|
color: Style.current.white
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
}
|
|
}
|
|
|
|
StyledText {
|
|
id: ensUsername
|
|
text: username + ".stateofus.eth"
|
|
font.weight: Font.Bold
|
|
font.pixelSize: 18
|
|
anchors.top: circleAt.bottom
|
|
anchors.topMargin: 24
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
horizontalAlignment: Text.AlignHCenter
|
|
}
|
|
|
|
TextWithLabel {
|
|
id: walletAddressLbl
|
|
//% "Wallet address"
|
|
label: qsTrId("wallet-address")
|
|
text: walletModel.getDefaultAddress()
|
|
textToCopy: profileModel.profile.address
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 24
|
|
anchors.top: ensUsername.bottom
|
|
anchors.topMargin: 24
|
|
}
|
|
|
|
TextWithLabel {
|
|
id: keyLbl
|
|
//% "Key"
|
|
label: qsTrId("key")
|
|
text: {
|
|
let pubKey = profileModel.profile.pubKey;
|
|
return pubKey.substring(0, 20) + "..." + pubKey.substring(pubKey.length - 20);
|
|
}
|
|
textToCopy: profileModel.profile.pubKey
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 24
|
|
anchors.top: walletAddressLbl.bottom
|
|
anchors.topMargin: 24
|
|
}
|
|
|
|
StatusCheckBox {
|
|
id: termsAndConditionsCheckbox
|
|
anchors.top: keyLbl.bottom
|
|
anchors.topMargin: Style.current.padding
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 24
|
|
}
|
|
|
|
StyledText {
|
|
//% "Agree to <a href=\"#\">Terms of name registration.</a> I understand that my wallet address will be publicly connected to my username."
|
|
text: qsTrId("agree-to--a-href-------terms-of-name-registration---a--i-understand-that-my-wallet-address-will-be-publicly-connected-to-my-username-")
|
|
anchors.left: termsAndConditionsCheckbox.right
|
|
anchors.right: parent.right
|
|
wrapMode: Text.WordWrap
|
|
anchors.top: termsAndConditionsCheckbox.top
|
|
onLinkActivated: popup.open()
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
acceptedButtons: Qt.NoButton // we don't want to eat clicks on the Text
|
|
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
StatusButton {
|
|
anchors.bottom: parent.bottom
|
|
anchors.bottomMargin: Style.current.padding
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: Style.current.padding
|
|
//% "Back"
|
|
text: qsTrId("back")
|
|
onClicked: backBtnClicked()
|
|
}
|
|
|
|
Item {
|
|
anchors.top: startBtn.top
|
|
anchors.right: startBtn.left
|
|
anchors.rightMargin: Style.current.padding
|
|
width: childrenRect.width
|
|
|
|
Image {
|
|
id: image1
|
|
height: 50
|
|
width: 50
|
|
sourceSize.width: width
|
|
sourceSize.height: height
|
|
fillMode: Image.PreserveAspectFit
|
|
source: "../../../../../shared/img/status-logo.png"
|
|
}
|
|
|
|
StyledText {
|
|
id: ensPriceLbl
|
|
//% "10 SNT"
|
|
text: qsTrId("ens-10-SNT")
|
|
anchors.left: image1.right
|
|
anchors.leftMargin: 5
|
|
anchors.top: image1.top
|
|
color: Style.current.textColor
|
|
font.pixelSize: 14
|
|
}
|
|
|
|
StyledText {
|
|
//% "Deposit"
|
|
text: qsTrId("ens-deposit")
|
|
anchors.left: image1.right
|
|
anchors.leftMargin: 5
|
|
anchors.topMargin: 5
|
|
anchors.top: ensPriceLbl.bottom
|
|
color: Style.current.secondaryText
|
|
font.pixelSize: 14
|
|
}
|
|
}
|
|
|
|
StatusButton {
|
|
id: startBtn
|
|
anchors.bottom: parent.bottom
|
|
anchors.bottomMargin: Style.current.padding
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: Style.current.padding
|
|
text: parseFloat(utilsModel.getSNTBalance()) < 10 ?
|
|
//% "Not enough SNT"
|
|
qsTrId("not-enough-snt") :
|
|
//% "Register"
|
|
qsTrId("ens-register")
|
|
enabled: parseFloat(utilsModel.getSNTBalance()) >= 10 && termsAndConditionsCheckbox.checked
|
|
onClicked: transactionDialog.open()
|
|
}
|
|
}
|