diff --git a/eth/filters/api_test.go b/eth/filters/api_test.go index 02229a7549..4c0371ab67 100644 --- a/eth/filters/api_test.go +++ b/eth/filters/api_test.go @@ -27,13 +27,15 @@ import ( func TestUnmarshalJSONNewFilterArgs(t *testing.T) { var ( - fromBlock rpc.BlockNumber = 0x123435 - toBlock rpc.BlockNumber = 0xabcdef - address0 = common.HexToAddress("70c87d191324e6712a591f304b4eedef6ad9bb9d") - address1 = common.HexToAddress("9b2055d370f73ec7d8a03e965129118dc8f5bf83") - topic0 = common.HexToHash("3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1ca") - topic1 = common.HexToHash("9084a792d2f8b16a62b882fd56f7860c07bf5fa91dd8a2ae7e809e5180fef0b3") - topic2 = common.HexToHash("6ccae1c4af4152f460ff510e573399795dfab5dcf1fa60d1f33ac8fdc1e480ce") + fromBlock rpc.BlockNumber = 0x123435 + toBlock rpc.BlockNumber = 0xabcdef + fromBlockHash = common.HexToHash("ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1ca3") + toBlockHash = common.HexToHash("084a792d2f8b16a62b882fd56f7860c07bf5fa91dd8a2ae7e809e5180fef0b39") + address0 = common.HexToAddress("70c87d191324e6712a591f304b4eedef6ad9bb9d") + address1 = common.HexToAddress("9b2055d370f73ec7d8a03e965129118dc8f5bf83") + topic0 = common.HexToHash("3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1ca") + topic1 = common.HexToHash("9084a792d2f8b16a62b882fd56f7860c07bf5fa91dd8a2ae7e809e5180fef0b3") + topic2 = common.HexToHash("6ccae1c4af4152f460ff510e573399795dfab5dcf1fa60d1f33ac8fdc1e480ce") ) // default values @@ -182,4 +184,17 @@ func TestUnmarshalJSONNewFilterArgs(t *testing.T) { if len(test7.Topics[2]) != 0 { t.Fatalf("expected 0 topics, got %d topics", len(test7.Topics[2])) } + + // from, to block hash + var test8 FilterCriteria + vector = fmt.Sprintf(`{"fromBlock":"%s","toBlock":"%s"}`, fromBlockHash.Hex(), toBlockHash.Hex()) + if err := json.Unmarshal([]byte(vector), &test8); err != nil { + t.Fatal(err) + } + if *test8.FromBlockHash != fromBlockHash { + t.Fatalf("expected FromBlock %s, got %s", fromBlockHash.Hex(), test8.FromBlockHash.Hex()) + } + if *test8.ToBlockHash != toBlockHash { + t.Fatalf("expected ToBlock %s, got %s", toBlockHash.Hex(), test8.ToBlockHash.Hex()) + } } diff --git a/rpc/types.go b/rpc/types.go index e114fee9e2..d74c27eeee 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -177,7 +177,7 @@ func (bnh *BlockNumberOrHash) UnmarshalJSON(data []byte) error { // IsHash returns true iff the value is a block hash. func (bnh BlockNumberOrHash) IsHash() bool { - return bnh[0] == '"' && bnh[len(bnh)-1] == '"' && len(bnh) == 44 + return bnh[0] == '"' && bnh[len(bnh)-1] == '"' && len(bnh) == 68 } // Hash returns the hash value, or nil if the value is not a hash.