diff options
author | zelig <viktor.tron@gmail.com> | 2015-05-20 11:38:20 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-05-20 11:38:20 +0800 |
commit | 00f59f5014360cda47e50d9791caf7dd88022c20 (patch) | |
tree | 22a11d9939d76c238b79f8bf54fed4734fd8649c /cmd/geth | |
parent | b0ae84aa0dae65f00492f981bb61887331def2a5 (diff) | |
download | dexon-00f59f5014360cda47e50d9791caf7dd88022c20.tar dexon-00f59f5014360cda47e50d9791caf7dd88022c20.tar.gz dexon-00f59f5014360cda47e50d9791caf7dd88022c20.tar.bz2 dexon-00f59f5014360cda47e50d9791caf7dd88022c20.tar.lz dexon-00f59f5014360cda47e50d9791caf7dd88022c20.tar.xz dexon-00f59f5014360cda47e50d9791caf7dd88022c20.tar.zst dexon-00f59f5014360cda47e50d9791caf7dd88022c20.zip |
fix eth.sign. now implemented in admin jsre until web3.js has it .
Diffstat (limited to 'cmd/geth')
-rw-r--r-- | cmd/geth/admin.go | 25 | ||||
-rw-r--r-- | cmd/geth/js_test.go | 2 |
2 files changed, 26 insertions, 1 deletions
diff --git a/cmd/geth/admin.go b/cmd/geth/admin.go index 53dd0e6ad..523b7c406 100644 --- a/cmd/geth/admin.go +++ b/cmd/geth/admin.go @@ -35,6 +35,7 @@ func (js *jsre) adminBindings() { eth := ethO.Object() eth.Set("pendingTransactions", js.pendingTransactions) eth.Set("resend", js.resend) + eth.Set("sign", js.sign) js.re.Set("admin", struct{}{}) t, _ := js.re.Get("admin") @@ -177,6 +178,30 @@ func (js *jsre) resend(call otto.FunctionCall) otto.Value { return otto.FalseValue() } +func (js *jsre) sign(call otto.FunctionCall) otto.Value { + if len(call.ArgumentList) != 2 { + fmt.Println("requires 2 arguments: eth.sign(signer, data)") + return otto.UndefinedValue() + } + signer, err := call.Argument(0).ToString() + if err != nil { + fmt.Println(err) + return otto.UndefinedValue() + } + + data, err := call.Argument(1).ToString() + if err != nil { + fmt.Println(err) + return otto.UndefinedValue() + } + v, err := js.xeth.Sign(signer, data, false) + if err != nil { + fmt.Println(err) + return otto.UndefinedValue() + } + return js.re.ToVal(v) +} + func (js *jsre) debugBlock(call otto.FunctionCall) otto.Value { block, err := js.getBlock(call) if err != nil { diff --git a/cmd/geth/js_test.go b/cmd/geth/js_test.go index 71c1fedb9..41e1034e9 100644 --- a/cmd/geth/js_test.go +++ b/cmd/geth/js_test.go @@ -230,7 +230,7 @@ func TestSignature(t *testing.T) { defer ethereum.Stop() defer os.RemoveAll(tmp) - val, err := repl.re.Run(`eth.sign({from: "` + testAddress + `", data: "` + testHash + `"})`) + val, err := repl.re.Run(`eth.sign("` + testAddress + `", "` + testHash + `")`) // This is a very preliminary test, lacking actual signature verification if err != nil { |