71 lines
1.2 KiB
QML
71 lines
1.2 KiB
QML
|
import QtQuick 2.0
|
||
|
import QtQuick.Controls 1.0;
|
||
|
import QtQuick.Layouts 1.0;
|
||
|
import Ethereum 1.0
|
||
|
|
||
|
QmlApp {
|
||
|
minimumWidth: 350
|
||
|
maximumWidth: 350
|
||
|
maximumHeight: 80
|
||
|
minimumHeight: 80
|
||
|
|
||
|
title: "Generic Coin"
|
||
|
|
||
|
property string contractAddr: "f299f6c74515620e4c4cd8fe3d205b5c4f2e25c8"
|
||
|
property string addr: "2ef47100e0787b915105fd5e3f4ff6752079d5cb"
|
||
|
|
||
|
Component.onCompleted: {
|
||
|
eth.watch(contractAddr, addr)
|
||
|
eth.watch(addr, contractAddr)
|
||
|
setAmount()
|
||
|
}
|
||
|
|
||
|
function onStorageChangeCb(storageObject) {
|
||
|
setAmount()
|
||
|
}
|
||
|
|
||
|
function setAmount(){
|
||
|
var state = eth.getStateObject(contractAddr)
|
||
|
var storage = state.getStorage(addr)
|
||
|
amountLabel.text = storage
|
||
|
}
|
||
|
Column {
|
||
|
spacing: 5
|
||
|
Row {
|
||
|
spacing: 20
|
||
|
Label {
|
||
|
id: genLabel
|
||
|
text: "Generic coin balance:"
|
||
|
}
|
||
|
Label {
|
||
|
id: amountLabel
|
||
|
}
|
||
|
}
|
||
|
Row {
|
||
|
spacing: 20
|
||
|
TextField {
|
||
|
id: address
|
||
|
placeholderText: "Address"
|
||
|
}
|
||
|
TextField {
|
||
|
id: amount
|
||
|
placeholderText: "Amount"
|
||
|
}
|
||
|
}
|
||
|
Button {
|
||
|
text: "Send coins"
|
||
|
onClicked: {
|
||
|
var privKey = eth.getKey().privateKey
|
||
|
if(privKey){
|
||
|
var result = eth.transact(privKey, contractAddr, 0,"100000","250", "0x" + address.text + "\n" + amount.text)
|
||
|
resultTx.text = result.hash
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
Label {
|
||
|
id: resultTx
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|