mirror of https://github.com/ethereum/go-ethereum
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
4.5 KiB
155 lines
4.5 KiB
import QtQuick 2.0
|
|
import Ethereum 1.0
|
|
|
|
// Which ones do we actually need?
|
|
import QtQuick.Controls 1.0;
|
|
import QtQuick.Layouts 1.0;
|
|
import QtQuick.Dialogs 1.0;
|
|
import QtQuick.Window 2.1;
|
|
import QtQuick.Controls.Styles 1.1
|
|
import QtQuick.Dialogs 1.1
|
|
|
|
ApplicationWindow {
|
|
id: wizardRoot
|
|
width: 500
|
|
height: 400
|
|
title: "Ethereal first run setup"
|
|
|
|
Column {
|
|
spacing: 5
|
|
anchors.leftMargin: 10
|
|
anchors.left: parent.left
|
|
|
|
Text {
|
|
visible: true
|
|
text: "<h2>Ethereal setup</h2>"
|
|
}
|
|
|
|
Column {
|
|
id: restoreColumn
|
|
spacing: 5
|
|
Text {
|
|
visible: true
|
|
font.pointSize: 14
|
|
text: "Restore your Ethereum account"
|
|
id: restoreLabel
|
|
}
|
|
|
|
TextField {
|
|
id: txPrivKey
|
|
width: 480
|
|
placeholderText: "Private key or mnemonic words"
|
|
focus: true
|
|
onTextChanged: {
|
|
if(this.text.length == 64){
|
|
detailLabel.text = "Private (hex) key detected."
|
|
actionButton.enabled = true
|
|
}
|
|
else if(this.text.split(" ").length == 24){
|
|
detailLabel.text = "Mnemonic key detected."
|
|
actionButton.enabled = true
|
|
}else{
|
|
detailLabel.text = ""
|
|
actionButton.enabled = false
|
|
}
|
|
}
|
|
}
|
|
Row {
|
|
spacing: 10
|
|
Button {
|
|
id: actionButton
|
|
text: "Restore"
|
|
enabled: false
|
|
onClicked: {
|
|
var success = lib.importAndSetPrivKey(txPrivKey.text)
|
|
if(success){
|
|
importedDetails.visible = true
|
|
restoreColumn.visible = false
|
|
newKey.visible = false
|
|
wizardRoot.height = 120
|
|
}
|
|
}
|
|
}
|
|
Text {
|
|
id: detailLabel
|
|
font.pointSize: 12
|
|
anchors.topMargin: 10
|
|
}
|
|
}
|
|
}
|
|
Column {
|
|
id: importedDetails
|
|
visible: false
|
|
Text {
|
|
text: "<b>Your account has been imported. Please close the application and restart it again to let the changes take effect.</b>"
|
|
wrapMode: Text.WordWrap
|
|
width: 460
|
|
}
|
|
}
|
|
Column {
|
|
spacing: 5
|
|
id: newDetailsColumn
|
|
visible: false
|
|
Text {
|
|
font.pointSize: 14
|
|
text: "Your account details"
|
|
}
|
|
Label {
|
|
text: "Address"
|
|
}
|
|
TextField {
|
|
id: addressInput
|
|
readOnly:true
|
|
width: 480
|
|
}
|
|
Label {
|
|
text: "Private key"
|
|
}
|
|
TextField {
|
|
id: privkeyInput
|
|
readOnly:true
|
|
width: 480
|
|
}
|
|
Label {
|
|
text: "Mnemonic words"
|
|
}
|
|
TextField {
|
|
id: mnemonicInput
|
|
readOnly:true
|
|
width: 480
|
|
}
|
|
Label {
|
|
text: "<b>A new account has been created. Please take the time to write down the <i>24 words</i>. You can use those to restore your account at a later date.</b>"
|
|
wrapMode: Text.WordWrap
|
|
width: 480
|
|
}
|
|
Label {
|
|
text: "Please restart the application once you have completed the steps above."
|
|
wrapMode: Text.WordWrap
|
|
width: 480
|
|
}
|
|
}
|
|
|
|
}
|
|
Button {
|
|
anchors.right: parent.right
|
|
anchors.bottom: parent.bottom
|
|
anchors.rightMargin: 10
|
|
anchors.bottomMargin: 10
|
|
id: newKey
|
|
text: "I don't have an account yet"
|
|
onClicked: {
|
|
var res = lib.createAndSetPrivKey()
|
|
mnemonicInput.text = res[0]
|
|
addressInput.text = res[1]
|
|
privkeyInput.text = res[2]
|
|
|
|
// Hide restore
|
|
restoreColumn.visible = false
|
|
|
|
// Show new details
|
|
newDetailsColumn.visible = true
|
|
newKey.visible = false
|
|
}
|
|
}
|
|
}
|
|
|