Releases: coinbase/mesh-geth-sdk
v0.0.21
Update mesh-sdk-go
What's changed
A newer release of mesh-sdk-go provides more features, in particular some improvements to outgoing headers.
This release removes some of the geth-specific handling of outgoing headers using the context.
Context
In order to keep header management simpler, this PR removes some of the context management to make go-ethereum
add headers to requests. Instead, the HeaderForwarder http.RoundTripper
will do the work of managing outgoing headers to native nodes as well as incoming headers.
Improve Fetching of Contract Currency Details
What's Changed
Improve Fetching of Contract Currency Details.
Motivation
To improve /block latency. A major bottleneck is that contractCurrencyMap is created fresh for each transaction, so it only caches within a single transaction's logs. That's why we see repeated GetContractCurrency calls for the same contracts across different transactions.
Solution
Add an LRU cache that stores contract currency details across blocks. Also, don't go to the node for allow listed tokens to get symbol and decimals (if env var USE_TOKEN_WHITE_LIST_METADATA="true"), as they can be retrieved from the config.
New Contributors
- @marklandgrebe-cb made their first contribution in #136
Full Changelog: v0.0.18...v0.0.19
Support header forwarding
What Changed: Header Forwarding
With v0.8.6 of mesh-sdk-go
we released a utility to help with header forwarding between rosetta requests/responses and native node requests/responses. (For more context see the linked release notes.)
This update uses that utility to add support for header forwarding using the SupportHeaderForwarding
and ForwardHeaders
options in the rosetta configuration.
Updated mesh-sdk-go
version
This release now requires v0.8.6
or higher of mesh-sdk-go
Changes needed in custom clients
Add WithRPCTransport
method
If you want to use header forwarding, RPC clients passed to utils.Bootstrap
need to implement the ReplaceableRPCClient
interface. The function signature of WithRPCTransport
should look like:
func (ec *MyClientType) WithRPCTransport(endpoint string, transport http.RoundTripper) (ReplaceableRPCClient, error)
NOTE: Your client also needs to implement construction.Client
so that it can be casted back from ReplaceableRPCClient
. However, the function signature of utils.Boostrap
already requires this so that should already be the case.
Other changes
- the
utils.Bootstrap
method will re-create the passed-in client if necessary to enable header forwarding - the
client.NewClient
method now accepts an optionalhttp.RoundTripper
to configure the internal RPC client
Support new contract call args
What's Changed
- use web3 5.31.3 by @jingweicb in #131
- feat: support bytes[] as the contract call args by @yfl92 in #130
New Contributors
Full Changelog: v0.0.16...v0.0.17
Support Customized Block Hash for Balance API
What's Changed
- feat: support customized block hash for balance API by @GeekArthur in #128
Full Changelog: v0.0.15...v0.0.16
Scalability for customized trace, block hash and tx
What's Changed
- feat: support customized trace config and block hash by @GeekArthur in #126
- feat: support customized tx body by @GeekArthur in #127
Full Changelog: v0.0.14...v0.0.15
Handle contract call without method signature
What's Changed
- Rename to mesh: 57d5089
- Fix URL links in README: #124
- Handle contract call without method signature: #123
Full Changelog: v0.0.13...v0.0.14
[Fix] Add value to EstimateGas request
What's Changed
- Add value to EstimateGas request by @xiangliu-cb in #121
Full Changelog: v0.0.12...v0.0.13
EIP-4844 support
What's Changed
- Update go-ethereum's version to v1.13.14 by @songge-cb in #118
- Downgrade go-ethereum to v1.13.8 by @songge-cb in #119
New Contributors
- @songge-cb made their first contribution in #118
Full Changelog: v0.0.11...v0.0.12