Hi!
In addition to dependency updates, small bug fixes for the ABI Coder change in 1.2.8
, and many documentation improvements, this release extends the transaction event API for more granular tracking of transaction submissions.
These additions were proposed by client engineer @benjamincburns in #3438 and should:
- make it easier to ensure that transactions are submitted in order (see #1846)
- make transaction timing in performance benchmarking tools more precise
- make it easier to monitor the transaction submission process for debugging purposes
The new / changed Promievents are:
Event | Description | Handler args |
---|---|---|
sending
| Fired immediately before transmitting the transaction request, after all intermediate requests such as eth_chainId , eth_estimateGas , or eth_gasPrice have completed.
| transactionPayload
|
sent
| Fired immediately after the request body has been written to the client, but before the transaction hash is received | transactionPayload
|
confirmation
| Behaves as it does today, but includes the block hash for the most recently mined block in the event handler arguments | confNumber , receipt , latestBlockHash
|
Also of note...
As reported in #3432 by @dmihal, Web3 has long had some interaction issues with provider middle-ware like web3-provider-engine
that uses http
and provides an event emitter interface. The library has assumed that these packages support subscription endpoints when they don't. This bug should be fixed by PR #3517.
Changelog
Added
- Add
sending
andsent
events for tx submissions (#3438) - Add
latestBlockHash
arg toconfirmation
event handler payload (#3438) - Make socket providers' max listeners threshold configurable (#3469)
- Documentation about testing & ci resources for Web3.js development (#3528)
- More detailed documentation about how to use
method.encodeABI
(#3549) - Integration tests for
transactionPollingTimeout
(#3513)
Changed
- Websocket package from @web3-js/websocket@1.0.29 to websocket@1.0.31 (#3371)
- Upgrade
@web3-js/scrypt-shim@0.1.0
toscrypt-js@3.0.1
- sendSignedTransaction revert handling synthesizes tx without network call (#3457)
- Make docs grammar more idiomatic, normalize punctuation (#3543)
Fixed
- Size property de-referencing crash when calling web3.eth.clearSubscriptions (#3527)
- Abi param encoding for tuple arrays (#3538)
account.hashMessage
with non-ASCII characters (#3523)- Subscription support check in method confirmations loop (#3432)
- TS bindings for
handleRevert
added (#3452) - Docs: spelling of pre-defined block number (#3539)
- Docs: missing defaultBlock param option in
method.call
description (#3558)