Updated assets & moved messages

This commit is contained in:
obscuren 2015-01-28 14:02:36 +01:00
parent cbf162ca64
commit 9a11a94894
9 changed files with 81 additions and 65 deletions

View File

@ -15,7 +15,7 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
// MA 02110-1301 USA
var bigInt = (function () {
var BigNumber = (function () {
var base = 10000000, logBase = 7;
var sign = {
positive: false,
@ -73,7 +73,7 @@ var bigInt = (function () {
var isValid = (base == 16 ? /^[0-9A-F]*$/ : /^[0-9]+$/).test(text);
if (!isValid) throw new Error("Invalid integer");
if (base == 16) {
var val = bigInt(0);
var val = BigNumber(0);
while (text.length) {
v = text.charCodeAt(0) - 48;
if (v > 9)
@ -89,19 +89,19 @@ var bigInt = (function () {
value.push(+text.slice(divider));
text = text.slice(0, divider);
}
var val = bigInt(value, s);
var val = BigNumber(value, s);
if (first) normalize(first, val);
return val;
}
};
var goesInto = function (a, b) {
var a = bigInt(a, sign.positive), b = bigInt(b, sign.positive);
var a = BigNumber(a, sign.positive), b = BigNumber(b, sign.positive);
if (a.equals(0)) throw new Error("Cannot divide by 0");
var n = 0;
do {
var inc = 1;
var c = bigInt(a.value, sign.positive), t = c.times(10);
var c = BigNumber(a.value, sign.positive), t = c.times(10);
while (t.lesser(b)) {
c = t;
inc *= 10;
@ -119,7 +119,7 @@ var bigInt = (function () {
};
};
var bigInt = function (value, s) {
var BigNumber = function (value, s) {
var self = {
value: value,
sign: s
@ -129,11 +129,11 @@ var bigInt = (function () {
sign: s,
negate: function (m) {
var first = m || self;
return bigInt(first.value, !first.sign);
return BigNumber(first.value, !first.sign);
},
abs: function (m) {
var first = m || self;
return bigInt(first.value, sign.positive);
return BigNumber(first.value, sign.positive);
},
add: function (n, m) {
var s, first = self, second;
@ -141,8 +141,8 @@ var bigInt = (function () {
else second = parse(n, first);
s = first.sign;
if (first.sign !== second.sign) {
first = bigInt(first.value, sign.positive);
second = bigInt(second.value, sign.positive);
first = BigNumber(first.value, sign.positive);
second = BigNumber(second.value, sign.positive);
return s === sign.positive ?
o.subtract(first, second) :
o.subtract(second, first);
@ -157,7 +157,7 @@ var bigInt = (function () {
sum -= carry * base;
result.push(sum);
}
return bigInt(result, s);
return BigNumber(result, s);
},
plus: function (n, m) {
return o.add(n, m);
@ -178,7 +178,7 @@ var bigInt = (function () {
var minuend = (borrow * base) + tmp - b[i];
result.push(minuend);
}
return bigInt(result, sign.positive);
return BigNumber(result, sign.positive);
},
minus: function (n, m) {
return o.subtract(n, m);
@ -223,7 +223,7 @@ var bigInt = (function () {
sum -= carry * base;
result.push(sum);
}
return bigInt(result, s);
return BigNumber(result, s);
},
times: function (n, m) {
return o.multiply(n, m);
@ -233,9 +233,9 @@ var bigInt = (function () {
if (m) (first = parse(n)) && (second = parse(m));
else second = parse(n, first);
s = first.sign !== second.sign;
if (bigInt(first.value, first.sign).equals(0)) return {
quotient: bigInt([0], sign.positive),
remainder: bigInt([0], sign.positive)
if (BigNumber(first.value, first.sign).equals(0)) return {
quotient: BigNumber([0], sign.positive),
remainder: BigNumber([0], sign.positive)
};
if (second.equals(0)) throw new Error("Cannot divide by zero");
var a = first.value, b = second.value;
@ -248,8 +248,8 @@ var bigInt = (function () {
}
result.reverse();
return {
quotient: bigInt(result, s),
remainder: bigInt(remainder, first.sign)
quotient: BigNumber(result, s),
remainder: BigNumber(remainder, first.sign)
};
},
divide: function (n, m) {
@ -268,7 +268,7 @@ var bigInt = (function () {
var a = first, b = second;
if (b.lesser(0)) return ZERO;
if (b.equals(0)) return ONE;
var result = bigInt(a.value, a.sign);
var result = BigNumber(a.value, a.sign);
if (b.mod(2).equals(0)) {
var c = result.pow(b.over(2));
@ -377,9 +377,9 @@ var bigInt = (function () {
return o;
};
var ZERO = bigInt([0], sign.positive);
var ONE = bigInt([1], sign.positive);
var MINUS_ONE = bigInt([1], sign.negative);
var ZERO = BigNumber([0], sign.positive);
var ONE = BigNumber([1], sign.positive);
var MINUS_ONE = BigNumber([1], sign.negative);
var fnReturn = function (a) {
if (typeof a === "undefined") return ZERO;
@ -392,6 +392,6 @@ var bigInt = (function () {
})();
if (typeof module !== "undefined") {
module.exports = bigInt;
module.exports = BigNumber;
}

View File

@ -2,11 +2,13 @@
<html>
<head>
<script type="text/javascript" src="js/bignumber.js/bignumber.min.js"></script>
<script type="text/javascript" src="../bignumber.min.js"></script>
<script type="text/javascript" src="../dist/ethereum.js"></script>
<script type="text/javascript">
console.log("hello world");
var web3 = require('web3');
console.log(web3)
web3.setProvider(new web3.providers.HttpSyncProvider('http://localhost:8080'));
function watchBalance() {
@ -25,6 +27,11 @@
});
}
var request = new XMLHttpRequest();
request.open('POST', "http://localhost:8080", false);
request.send({});
</script>
</head>
<body>

View File

@ -45,9 +45,9 @@ ApplicationWindow {
mainSplit.setView(wallet.view, wallet.menuItem);
try {
newBrowserTab("http://google.com");
} catch(e) { console.log(e); }
console.log("starting browser")
newBrowserTab("http://etherian.io");
console.log("done")
// Command setup
gui.sendCommand(0)

View File

@ -1,11 +1,10 @@
import QtQuick 2.0
import QtWebEngine 1.0
//import QtWebEngine.experimental 1.0
import QtQuick.Controls 1.0;
import QtQuick.Controls.Styles 1.0
import QtQuick.Layouts 1.0;
import QtWebEngine 1.0
//import QtWebEngine.experimental 1.0
import QtQuick.Window 2.0;
import Ethereum 1.0
Rectangle {
id: window
@ -64,17 +63,6 @@ Rectangle {
}
Component.onCompleted: {
webview.url = "http://etherian.io"
}
function messages(messages, id) {
// Bit of a cheat to get proper JSON
var m = JSON.parse(JSON.parse(JSON.stringify(messages)))
webview.postEvent("eth_changed", id, m);
}
function onShhMessage(message, id) {
webview.postEvent("shh_changed", id, message)
}
Item {
@ -129,6 +117,8 @@ Rectangle {
}
iconSource: "../../bug.png"
onClicked: {
// XXX soon
return
if(inspector.visible == true){
inspector.visible = false
}else{
@ -155,13 +145,23 @@ Rectangle {
WebEngineView {
objectName: "webView"
id: webview
// anchors.fill: parent
anchors {
left: parent.left
right: parent.right
bottom: parent.bottom
top: divider.bottom
}
onLoadingChanged: {
console.log(url)
if (loadRequest.status == WebEngineView.LoadSucceededStatus) {
webview.runJavaScript(eth.readFile("bignumber.min.js"));
webview.runJavaScript(eth.readFile("dist/ethereum.js"));
}
}
onJavaScriptConsoleMessage: {
console.log(sourceID + ":" + lineNumber + ":" + JSON.stringify(message));
}
}
Rectangle {
@ -193,6 +193,7 @@ Rectangle {
top: sizeGrip.bottom
bottom: root.bottom
}
}
states: [

View File

@ -21,12 +21,9 @@
package main
import (
"encoding/json"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/javascript"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/ui/qt"
"github.com/ethereum/go-ethereum/xeth"
@ -113,6 +110,7 @@ func (app *ExtApplication) mainLoop() {
case core.NewBlockEvent:
app.container.NewBlock(ev.Block)
/* TODO remove
case state.Messages:
for id, filter := range app.filters {
msgs := filter.FilterMessages(ev)
@ -120,6 +118,7 @@ func (app *ExtApplication) mainLoop() {
app.container.Messages(msgs, id)
}
}
*/
}
}
}
@ -129,6 +128,7 @@ func (self *ExtApplication) Watch(filterOptions map[string]interface{}, identifi
}
func (self *ExtApplication) GetMessages(object map[string]interface{}) string {
/* TODO remove me
filter := qt.NewFilterFromMap(object, self.eth)
messages := filter.Find()
@ -143,4 +143,6 @@ func (self *ExtApplication) GetMessages(object map[string]interface{}) string {
}
return string(b)
*/
return ""
}

View File

@ -398,14 +398,6 @@ func (gui *Gui) setup() {
gui.setPeerInfo()
}()
// Inject javascript files each time navigation is requested.
// Unfortunately webview.experimental.userScripts injects _after_
// the page has loaded which kind of renders it useless...
//jsfiles := loadJavascriptAssets(gui)
gui.getObjectByName("webView").On("navigationRequested", func() {
//gui.getObjectByName("webView").Call("injectJs", jsfiles)
})
gui.whisper.SetView(gui.getObjectByName("whisperView"))
gui.SendCommand(update)

View File

@ -21,7 +21,6 @@
package main
import (
"encoding/json"
"errors"
"fmt"
"io/ioutil"
@ -32,7 +31,6 @@ import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/javascript"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/xeth"
"github.com/howeyc/fsnotify"
@ -147,6 +145,7 @@ func (app *HtmlApplication) NewBlock(block *types.Block) {
}
func (self *HtmlApplication) Messages(messages state.Messages, id string) {
/* TODO remove me
var msgs []javascript.JSMessage
for _, m := range messages {
msgs = append(msgs, javascript.NewJSMessage(m))
@ -155,6 +154,7 @@ func (self *HtmlApplication) Messages(messages state.Messages, id string) {
b, _ := json.Marshal(msgs)
self.webView.Call("onWatchedCb", string(b), id)
*/
}
func (app *HtmlApplication) Destroy() {

View File

@ -23,11 +23,11 @@ package main
import (
"bytes"
"fmt"
"io/ioutil"
"path"
"strconv"
"strings"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/eth"
@ -35,8 +35,6 @@ import (
"github.com/ethereum/go-ethereum/event/filter"
"github.com/ethereum/go-ethereum/javascript"
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/ui/qt"
"github.com/ethereum/go-ethereum/xeth"
"gopkg.in/qml.v1"
)
@ -313,34 +311,50 @@ func (self *UiLib) ToAscii(data string) string {
/// Ethereum filter methods
func (self *UiLib) NewFilter(object map[string]interface{}, view *qml.Common) (id int) {
/* TODO remove me
filter := qt.NewFilterFromMap(object, self.eth)
filter.MessageCallback = func(messages state.Messages) {
view.Call("messages", xeth.ToJSMessages(messages), id)
}
id = self.filterManager.InstallFilter(filter)
return id
*/
return 0
}
func (self *UiLib) NewFilterString(typ string, view *qml.Common) (id int) {
/* TODO remove me
filter := core.NewFilter(self.eth)
filter.BlockCallback = func(block *types.Block) {
view.Call("messages", "{}", id)
}
id = self.filterManager.InstallFilter(filter)
return id
*/
return 0
}
func (self *UiLib) Messages(id int) *ethutil.List {
/* TODO remove me
filter := self.filterManager.GetFilter(id)
if filter != nil {
messages := xeth.ToJSMessages(filter.Find())
return messages
}
*/
return ethutil.EmptyList()
}
func (self *UiLib) ReadFile(p string) string {
content, err := ioutil.ReadFile(self.AssetPath(path.Join("ext", p)))
if err != nil {
guilogger.Infoln("error reading file", p, ":", err)
}
return string(content)
}
func (self *UiLib) UninstallFilter(id int) {
self.filterManager.UninstallFilter(id)
}