|
|
@@ -29,6 +29,8 @@ const (
|
|
|
testKey = "e6fab74a43941f82d89cb7faa408e227cdad3153c4720e540e855c19b15e6674"
|
|
|
testAddress = "0x8605cdbbdb6d264aa742e77020dcbc58fcdce182"
|
|
|
testBalance = "10000000000000000000"
|
|
|
+ // of empty string
|
|
|
+ testHash = "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
@@ -215,6 +217,32 @@ func TestCheckTestAccountBalance(t *testing.T) {
|
|
|
checkEvalJSON(t, repl, `eth.getBalance(primary)`, `"`+testBalance+`"`)
|
|
|
}
|
|
|
|
|
|
+func TestSignature(t *testing.T) {
|
|
|
+ tmp, repl, ethereum := testJEthRE(t)
|
|
|
+ if err := ethereum.Start(); err != nil {
|
|
|
+ t.Errorf("error starting ethereum: %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer ethereum.Stop()
|
|
|
+ defer os.RemoveAll(tmp)
|
|
|
+
|
|
|
+ val, err := repl.re.Run(`eth.sign({from: "` + testAddress + `", data: "` + testHash + `"})`)
|
|
|
+
|
|
|
+ // This is a very preliminary test, lacking actual signature verification
|
|
|
+ if err != nil {
|
|
|
+ t.Errorf("Error runnig js: %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ output := val.String()
|
|
|
+ t.Logf("Output: %v", output)
|
|
|
+
|
|
|
+ regex := regexp.MustCompile(`^0x[0-9a-f]{130}$`)
|
|
|
+ if !regex.MatchString(output) {
|
|
|
+ t.Errorf("Signature is not 65 bytes represented in hexadecimal.")
|
|
|
+ return
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func TestContract(t *testing.T) {
|
|
|
|
|
|
tmp, repl, ethereum := testJEthRE(t)
|