aboutsummaryrefslogtreecommitdiffstats
path: root/accounts/abi/event_test.go
diff options
context:
space:
mode:
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())
+ }
+ }
+ }
+}