go-ethereum/rpc
zhiqiangxu 6f08c2f3f1
rpc: add method to test for subscription support (#25942)
This adds two ways to check for subscription support. First, one can now check
whether the transport method (HTTP/WS/etc.) is capable of subscriptions using
the new Client.SupportsSubscriptions method.

Second, the error returned by Subscribe can now reliably be tested using this
pattern:
    
    sub, err := client.Subscribe(...)
    if errors.Is(err, rpc.ErrNotificationsUnsupported) {
        // no subscription support
    }

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-06-14 14:04:41 +02:00
..
testdata rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
client_example_test.go rpc: make ExampleClientSubscription work with the geth API (#19483) 2020-04-27 17:25:24 +02:00
client_opt_test.go node, rpc: add JWT auth support in client (#24911) 2022-09-02 17:40:41 +02:00
client_opt.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
client_test.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
client.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
constants_unix_nocgo.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
constants_unix.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
context_headers.go rpc: support injecting HTTP headers through context (#26023) 2022-11-16 15:22:12 +01:00
doc.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
endpoints.go trie, rpc, cmd/geth: fix tests on 32-bit and windows + minor rpc fixes (#21871) 2020-11-19 22:50:47 +01:00
errors.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
handler.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
http_test.go metrics/librato: ensure resp.body closed (#26969) 2023-03-27 07:44:41 -04:00
http.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
inproc.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
ipc_js.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
ipc_unix.go rpc: fix off-by-one in ipc endpoint length check (#26614) 2023-02-06 07:25:42 -05:00
ipc_windows.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
ipc.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
json.go graphql, node, rpc: improve HTTP write timeout handling (#25457) 2022-12-07 14:02:14 +01:00
metrics.go rpc: swap out timer metrics to histograms 2022-06-08 16:24:33 +03:00
server_test.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
server.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
service.go rpc: more accurate checking of handler method signatures (#27287) 2023-05-17 12:27:51 +02:00
stdio.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
subscription_test.go rpc: check that "version" is "2.0" in request objects (#25570) 2022-09-02 17:47:29 +02:00
subscription.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
testservice_test.go rpc: fix unmarshaling of null result in CallContext (#26723) 2023-02-19 14:23:18 -05:00
types_test.go rpc: add BlockNumber.MarshalText (#23324) 2021-08-25 19:30:29 +02:00
types.go rpc: change BlockNumber constant values to match ethclient (#27219) 2023-05-23 13:18:38 +02:00
websocket_test.go rpc, internal/guide: speed up tests a bit (#26193) 2022-11-17 15:30:53 +01:00
websocket.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00