diff options
author | Jeffrey Wilcke <geffobscura@gmail.com> | 2016-01-27 15:38:53 +0800 |
---|---|---|
committer | Jeffrey Wilcke <geffobscura@gmail.com> | 2016-02-02 22:28:59 +0800 |
commit | bddf8f76c862fc4d096e8f51cc09b16640e3f13a (patch) | |
tree | 887c3661bd48c767f8fba563c549b8efb6dabc45 /accounts/abi/event_test.go | |
parent | d951ff300e7c390d91b3fa34bec4424522ecf8a0 (diff) | |
download | dexon-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar dexon-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.gz dexon-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.bz2 dexon-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.lz dexon-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.xz dexon-bddf8f76c862fc4d096e8f51cc09b16640e3f13a.tar.zst dexon-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.go | 40 |
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()) + } + } + } +} |