Unified the contract interface and tx interface. Fixes #62

This commit is contained in:
obscuren 2014-05-30 16:14:46 +02:00
parent e7c9b86a5a
commit 1020d7ff67
2 changed files with 54 additions and 51 deletions

View File

@ -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

View File

@ -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 = ""