func decodeTopic(s string) (common.Hash, error) {
    b, err := hexutil.Decode(s)
    if err == nil && len(b) != common.HashLength {
        err = fmt.Errorf("hex has invalid length %d after decoding; expected %d for topic", len(b), common.HashLength)
    }