Unified the contract interface and tx interface. Fixes #62
This commit is contained in:
parent
e7c9b86a5a
commit
1020d7ff67
@ -27,7 +27,6 @@ General command line options
|
|||||||
|
|
||||||
```
|
```
|
||||||
Shared between ethereum and ethereal
|
Shared between ethereum and ethereal
|
||||||
-m Start mining blocks
|
|
||||||
-genaddr Generates a new address and private key (destructive action)
|
-genaddr Generates a new address and private key (destructive action)
|
||||||
-p Port on which the server will accept incomming connections
|
-p Port on which the server will accept incomming connections
|
||||||
-upnp Enable UPnP
|
-upnp Enable UPnP
|
||||||
@ -41,6 +40,7 @@ Ethereum only
|
|||||||
ethereum [options] [filename]
|
ethereum [options] [filename]
|
||||||
-js Start the JavaScript REPL
|
-js Start the JavaScript REPL
|
||||||
filename Load the given file and interpret as JavaScript
|
filename Load the given file and interpret as JavaScript
|
||||||
|
-m Start mining blocks
|
||||||
|
|
||||||
Etheral only
|
Etheral only
|
||||||
-asset_path absolute path to GUI assets directory
|
-asset_path absolute path to GUI assets directory
|
||||||
|
@ -170,6 +170,7 @@ ApplicationWindow {
|
|||||||
visible: false
|
visible: false
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: "#00000000"
|
color: "#00000000"
|
||||||
|
/*
|
||||||
TabView{
|
TabView{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.rightMargin: 5
|
anchors.rightMargin: 5
|
||||||
@ -182,6 +183,10 @@ ApplicationWindow {
|
|||||||
addTab("Contracts", newContract)
|
addTab("Contracts", newContract)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
Component.onCompleted: {
|
||||||
|
newContract.createObject(newTxView)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
@ -574,7 +579,14 @@ ApplicationWindow {
|
|||||||
}else{
|
}else{
|
||||||
isContract = "No"
|
isContract = "No"
|
||||||
}
|
}
|
||||||
txModel.insert(0, {inout: inout, hash: tx.hash, address: tx.address, value: tx.value, contract: isContract})
|
|
||||||
|
var address;
|
||||||
|
if(inout == "recv") {
|
||||||
|
address = tx.sender;
|
||||||
|
} else {
|
||||||
|
address = tx.address;
|
||||||
|
}
|
||||||
|
txModel.insert(0, {inout: inout, hash: tx.hash, address: address, value: tx.value, contract: isContract})
|
||||||
}
|
}
|
||||||
|
|
||||||
function addBlock(block, initial) {
|
function addBlock(block, initial) {
|
||||||
@ -625,6 +637,7 @@ ApplicationWindow {
|
|||||||
id: newContract
|
id: newContract
|
||||||
Column {
|
Column {
|
||||||
id: mainContractColumn
|
id: mainContractColumn
|
||||||
|
anchors.fill: parent
|
||||||
function contractFormReady(){
|
function contractFormReady(){
|
||||||
if(codeView.text.length > 0 && txValue.text.length > 0 && txGas.text.length > 0 && txGasPrice.length > 0) {
|
if(codeView.text.length > 0 && txValue.text.length > 0 && txGas.text.length > 0 && txGasPrice.length > 0) {
|
||||||
txButton.state = "READY"
|
txButton.state = "READY"
|
||||||
@ -646,6 +659,8 @@ ApplicationWindow {
|
|||||||
PropertyChanges { target: codeView; visible:false}
|
PropertyChanges { target: codeView; visible:false}
|
||||||
PropertyChanges { target: txButton; visible:false}
|
PropertyChanges { target: txButton; visible:false}
|
||||||
PropertyChanges { target: txDataLabel; visible:false}
|
PropertyChanges { target: txDataLabel; visible:false}
|
||||||
|
PropertyChanges { target: atLabel; visible:false}
|
||||||
|
PropertyChanges { target: txFuelRecipient; visible:false}
|
||||||
|
|
||||||
PropertyChanges { target: txResult; visible:true}
|
PropertyChanges { target: txResult; visible:true}
|
||||||
PropertyChanges { target: txOutput; visible:true}
|
PropertyChanges { target: txOutput; visible:true}
|
||||||
@ -672,82 +687,70 @@ ApplicationWindow {
|
|||||||
anchors.leftMargin: 5
|
anchors.leftMargin: 5
|
||||||
anchors.topMargin: 5
|
anchors.topMargin: 5
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: txFuelRecipient
|
||||||
|
placeholderText: "Address / Name or empty for contract"
|
||||||
|
//validator: RegExpValidator { regExp: /[a-f0-9]{40}/ }
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
id: txValue
|
id: txValue
|
||||||
width: 200
|
width: 222
|
||||||
placeholderText: "Amount"
|
placeholderText: "Amount"
|
||||||
validator: RegExpValidator { regExp: /\d*/ }
|
validator: RegExpValidator { regExp: /\d*/ }
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
contractFormReady()
|
contractFormReady()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
TextField {
|
TextField {
|
||||||
id: txGas
|
id: txGas
|
||||||
width: 200
|
width: 50
|
||||||
validator: RegExpValidator { regExp: /\d*/ }
|
validator: RegExpValidator { regExp: /\d*/ }
|
||||||
placeholderText: "Gas"
|
placeholderText: "Gas"
|
||||||
|
text: "500"
|
||||||
|
/*
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
contractFormReady()
|
contractFormReady()
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
Label {
|
||||||
|
id: atLabel
|
||||||
|
text: "@"
|
||||||
|
}
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
id: txGasPrice
|
id: txGasPrice
|
||||||
width: 200
|
width: 200
|
||||||
placeholderText: "Gas price"
|
placeholderText: "Gas price"
|
||||||
|
text: "1000000"
|
||||||
validator: RegExpValidator { regExp: /\d*/ }
|
validator: RegExpValidator { regExp: /\d*/ }
|
||||||
|
/*
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
contractFormReady()
|
contractFormReady()
|
||||||
}
|
}
|
||||||
}
|
*/
|
||||||
|
|
||||||
Row {
|
|
||||||
id: rowContract
|
|
||||||
ExclusiveGroup { id: contractTypeGroup }
|
|
||||||
RadioButton {
|
|
||||||
id: createContractRadio
|
|
||||||
text: "Create contract"
|
|
||||||
checked: true
|
|
||||||
exclusiveGroup: contractTypeGroup
|
|
||||||
onClicked: {
|
|
||||||
txFuelRecipient.visible = false
|
|
||||||
txDataLabel.text = "Contract code"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RadioButton {
|
|
||||||
id: runContractRadio
|
|
||||||
text: "Run contract"
|
|
||||||
exclusiveGroup: contractTypeGroup
|
|
||||||
onClicked: {
|
|
||||||
txFuelRecipient.visible = true
|
|
||||||
txDataLabel.text = "Contract arguments"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: txDataLabel
|
id: txDataLabel
|
||||||
text: "Contract code"
|
text: "Data"
|
||||||
}
|
}
|
||||||
|
|
||||||
TextArea {
|
TextArea {
|
||||||
id: codeView
|
id: codeView
|
||||||
height: 300
|
height: 300
|
||||||
anchors.topMargin: 5
|
anchors.topMargin: 5
|
||||||
Layout.fillWidth: true
|
width: 400
|
||||||
width: parent.width /2
|
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
contractFormReady()
|
contractFormReady()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextField {
|
|
||||||
id: txFuelRecipient
|
|
||||||
placeholderText: "Contract address"
|
|
||||||
//validator: RegExpValidator { regExp: /[a-f0-9]{40}/ }
|
|
||||||
visible: false
|
|
||||||
width: 530
|
|
||||||
}
|
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
id: txButton
|
id: txButton
|
||||||
@ -790,7 +793,7 @@ ApplicationWindow {
|
|||||||
Button {
|
Button {
|
||||||
id: newTxButton
|
id: newTxButton
|
||||||
visible: false
|
visible: false
|
||||||
text: "Create an other contract"
|
text: "Create a new transaction"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
txResult.text = ""
|
txResult.text = ""
|
||||||
|
Loading…
Reference in New Issue
Block a user