Added string conversion API

* bin
* pad
* unpad
* conversion bin/hex/dec
This commit is contained in:
obscuren 2014-05-02 12:08:52 +02:00
parent 5a692b9f2b
commit ee04c6ff67
3 changed files with 61 additions and 2 deletions

@ -114,7 +114,7 @@ function debug(/**/) {
var args = arguments; var args = arguments;
var msg = "" var msg = ""
for(var i = 0; i < args.length; i++){ for(var i = 0; i < args.length; i++){
if(typeof args[i] == "object") { if(typeof args[i] === "object") {
msg += " " + JSON.stringify(args[i]) msg += " " + JSON.stringify(args[i])
} else { } else {
msg += args[i] msg += args[i]
@ -155,3 +155,60 @@ navigator.qt.onmessage = function(ev) {
} }
} }
} }
window.eth._0 = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
String.prototype.pad = function(len) {
var bin = this.bin();
var l = bin.length;
if(l < 32) {
return eth._0.substr(0, 32 - bin.length) + bin;
}
return bin;
}
String.prototype.unpad = function() {
var i, l;
for(i = 0, l = this.length; i < l; i++) {
if(this[i] != "\0") {
return this.substr(i, this.length);
}
}
return this.substr(i, this.length);
}
String.prototype.bin = function() {
if(this.substr(0, 2) == "0x") {
return this.hex2bin();
} else if(/^\d+$/.test(this)) {
return this.num2bin()
}
// Otherwise we'll return the "String" object instead of an actual string
return this.substr(0, this.length)
}
String.prototype.unbin = function() {
var i, l, o = '';
for(i = 0, l = this.length; i < l; i++) {
var n = this.charCodeAt(i).toString(16);
o += n.length < 2 ? '0' + n : n;
}
return "0x" + o;
}
String.prototype.hex2bin = function() {
bytes = []
for(var i=2; i< this.length-1; i+=2){
bytes.push(parseInt(this.substr(i, 2), 16));
}
return String.fromCharCode.apply(String, bytes);
}
String.prototype.num2bin = function() {
return ("0x"+parseInt(this).toString(16)).bin()
}

@ -123,6 +123,8 @@ ApplicationWindow {
function onObjectChangeCb(stateObject) { function onObjectChangeCb(stateObject) {
postEvent("object:"+stateObject.address(), stateObject) postEvent("object:"+stateObject.address(), stateObject)
} }
function onStorageChangeCb() {
}
} }
Rectangle { Rectangle {

@ -21,7 +21,7 @@ function createTransaction() {
} }
function init() { function init() {
eth.set({width: 500, title: "Hello world"}) eth.set({width: 500})
eth.getKey(function(key) { eth.getKey(function(key) {
eth.getStorageAt(jefcoinAddr, key, function(storage) { eth.getStorageAt(jefcoinAddr, key, function(storage) {