good morning!!!!

Skip to content
Snippets Groups Projects
Commit bb72347a authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Minor fixes and sample coin "improvements"

parent 43f1214f
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,10 @@ function postData(data, cb) {
eth._callbacks[data._seed] = cb;
}
if(data.args === undefined) {
data.args = []
}
navigator.qt.postMessage(JSON.stringify(data));
}
......@@ -34,6 +38,14 @@ window.eth = {
createTx: function(recipient, value, gas, gasPrice, data, cb) {
postData({call: "createTx", args: [recipient, value, gas, gasPrice, data]}, cb)
},
getStorage: function(address, storageAddress, cb) {
postData({call: "getStorage", args: [address, storageAddress]}, cb)
},
getKey: function(cb) {
postData({call: "getKey"}, cb)
},
}
window.eth._callbacks = {}
......
ethereal/assets/icon.png

84.7 KiB

......@@ -25,12 +25,15 @@ ApplicationWindow {
WebView {
objectName: "webView"
id: webview
anchors.fill: parent
/*
anchors {
left: parent.left
right: parent.right
bottom: sizeGrip.top
top: parent.top
}
*/
onTitleChanged: { window.title = title }
experimental.preferences.javascriptEnabled: true
......@@ -38,7 +41,7 @@ ApplicationWindow {
experimental.preferences.developerExtrasEnabled: true
experimental.userScripts: [ui.assetPath("ethereum.js")]
experimental.onMessageReceived: {
console.log("[onMessageReceived]: ", message.data)
//console.log("[onMessageReceived]: ", message.data)
var data = JSON.parse(message.data)
switch(data.call) {
......@@ -57,6 +60,20 @@ ApplicationWindow {
var tx = eth.createTx(data.args[0], data.args[1],data.args[2],data.args[3],data.args[4])
postData(data._seed, tx)
}
break
case "getStorage":
if(data.args.length < 2) {
postData(data._seed, null)
} else {
var stateObject = eth.getStateObject(data.args[0])
var storage = stateObject.getStorage(data.args[1])
postData(data._seed, storage)
}
break
case "getKey":
var keys = eth.getKey()
postData(data._seed, keys)
break
}
}
function postData(seed, data) {
......@@ -67,7 +84,7 @@ ApplicationWindow {
Rectangle {
id: sizeGrip
color: "gray"
visible: true
visible: false
height: 10
anchors {
left: root.left
......@@ -86,7 +103,7 @@ ApplicationWindow {
WebView {
id: inspector
visible: true
visible: false
url: webview.experimental.remoteInspectorUrl
anchors {
left: root.left
......
<html>
<head>
<title>jeffcoin</title>
<body>
<h1>Jeff Coin</h1>
<img src="file:///Users/jeffrey/Desktop/iconnew.png">
<div id="transactions">
<input id="addr" type="text" placeholder="Receiver address"></input><br>
<input id="amount" type="text" placeholder="Amount"></input><br>
<button onclick="createTransaction();">Send Tx</button>
</div>
<div><button onclick="test();">Tests</button></div>
<script type="text/javascript">
var jefcoinAddr = "3dff537f51350239abc95c76a5864aa605259e7d"
function createTransaction() {
debug("test")
var addr = document.querySelector("#addr").value;
var amount = document.querySelector("#amount").value;
eth.createTx(addr, amount, "100", "250", "", function(tx) {
var data = "0x" + addr + "\n" + amount
eth.createTx(jefcoinAddr, 0, "10000000", "250", data, function(tx) {
debug("received tx hash:", tx)
})
}
// Any test related actions here please
function tests() {
eth.getBlock(1, function(block) {
debug("queried block:", block)
eth.getKey(function(keys) {
debug(keys)
})
}
function init() {
eth.getKey(function(key) {
eth.getStorage(jefcoinAddr, key, function(storage) {
debug("Currently in storage: ", storage);
document.querySelector("#currentAmount").innerHTML = "Amount: " + storage;
})
})
}
</script>
<style type="text/css">
input[type="text"] {
width: 300px;
}
</style>
</head>
<body onload="init();">
<h1>Jeff Coin</h1>
<img src="icon.png">
<div id="currentAmount"></div>
<div id="transactions">
<input id="addr" type="text" placeholder="Receiver address"></input><br>
<input id="amount" type="text" placeholder="Amount"></input><br>
<button onclick="createTransaction();">Send Tx</button>
</div>
<div><button onclick="tests();">Tests</button></div>
<div id="debug" style="border: 1px solid block"></div>
......
......@@ -7,7 +7,7 @@ import (
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/go-ethereum/ethereal/ui"
"github.com/ethereum/go-ethereum/utils"
"github.com/niemeyer/qml"
"github.com/go-qml/qml"
"log"
"os"
"os/signal"
......
......@@ -8,7 +8,7 @@ import (
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethdb"
"github.com/ethereum/eth-go/ethutil"
"github.com/niemeyer/qml"
"github.com/go-qml/qml"
"math/big"
"strings"
)
......@@ -24,6 +24,18 @@ type Tx struct {
Contract bool
}
type Key struct {
Address string
}
type KeyRing struct {
Keys []interface{}
}
func NewKeyRing(keys []interface{}) *KeyRing {
return &KeyRing{Keys: keys}
}
func NewTxFromTransaction(tx *ethchain.Transaction) *Tx {
hash := hex.EncodeToString(tx.Hash())
sender := hex.EncodeToString(tx.Recipient)
......
......@@ -10,6 +10,20 @@ import (
"strings"
)
type Contract struct {
object *ethchain.StateObject
}
func NewContract(object *ethchain.StateObject) *Contract {
return &Contract{object: object}
}
func (c *Contract) GetStorage(address string) string {
val := c.object.GetMem(ethutil.Big("0x" + address))
return val.BigInt().String()
}
type EthLib struct {
stateManager *ethchain.StateManager
blockChain *ethchain.BlockChain
......@@ -43,6 +57,16 @@ func (lib *EthLib) CreateAndSetPrivKey() (string, string, string, string) {
return mnemonicString, fmt.Sprintf("%x", pair.Address()), fmt.Sprintf("%x", prv), fmt.Sprintf("%x", pub)
}
func (lib *EthLib) GetKey() string {
return ethutil.Hex(ethutil.Config.Db.GetKeys()[0].Address())
}
func (lib *EthLib) GetStateObject(address string) *Contract {
stateObject := lib.stateManager.ProcState().GetContract(ethutil.FromHex(address))
return NewContract(stateObject)
}
func (lib *EthLib) CreateTx(recipient, valueStr, gasStr, gasPriceStr, dataStr string) (string, error) {
var hash []byte
var contractCreation bool
......
......@@ -7,7 +7,7 @@ import (
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/go-ethereum/utils"
"github.com/niemeyer/qml"
"github.com/go-qml/qml"
"os"
"path"
"path/filepath"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment