aboutsummaryrefslogtreecommitdiffstats
path: root/accounts/abi/event_test.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <geffobscura@gmail.com>2016-01-27 15:38:53 +0800
committerJeffrey Wilcke <geffobscura@gmail.com>2016-02-02 22:28:59 +0800
commitbddf8f76c862fc4d096e8f51cc09b16640e3f13a (patch)
tree887c3661bd48c767f8fba563c549b8efb6dabc45 /accounts/abi/event_test.go
parentd951ff300e7c390d91b3fa34bec4424522ecf8a0 (diff)
downloadgo-tangerine-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar
go-tangerine-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.gz
go-tangerine-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.bz2
go-tangerine-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.lz
go-tangerine-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.xz
go-tangerine-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.zst
go-tangerine-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.zip
account/abi: implements event parsing
Implementation of basic event parsing and its input types. This separates methods and events and fixes an issue with go type parsing and validation.
Diffstat (limited to 'accounts/abi/event_test.go')
-rw-r--r--accounts/abi/event_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/accounts/abi/event_test.go b/accounts/abi/event_test.go
new file mode 100644
index 000000000..34a7a1684
--- /dev/null
+++ b/accounts/abi/event_test.go
@@ -0,0 +1,40 @@
+package abi
+
+import (
+ "strings"
+ "testing"
+
+ "github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/crypto"
+)
+
+func TestEventId(t *testing.T) {
+ var table = []struct {
+ definition string
+ expectations map[string]common.Hash
+ }{
+ {
+ definition: `[
+ { "type" : "event", "name" : "balance", "inputs": [{ "name" : "in", "type": "uint" }] },
+ { "type" : "event", "name" : "check", "inputs": [{ "name" : "t", "type": "address" }, { "name": "b", "type": "uint256" }] }
+ ]`,
+ expectations: map[string]common.Hash{
+ "balance": crypto.Sha3Hash([]byte("balance(uint256)")),
+ "check": crypto.Sha3Hash([]byte("check(address,uint256)")),
+ },
+ },
+ }
+
+ for _, test := range table {
+ abi, err := JSON(strings.NewReader(test.definition))
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ for name, event := range abi.Events {
+ if event.Id() != test.expectations[name] {
+ t.Errorf("expected id to be %x, got %x", test.expectations[name], event.Id())
+ }
+ }
+ }
+}