Releases: Kr1ptal/ethers-kt
Releases · Kr1ptal/ethers-kt
v0.5.0
Bug Fixes
- Add missing list append in
List<CompletableFuture<T>>.await()
extension function (#89) - Don't include logs from failed CallTracer frames (#88)
- Handle empty ByteArray in RlpDecodable
- Make Provider#fromUrl actually return failure instead of throwing
- Remove deprecated "packages" parameter from log4j2.xml
- Fix decoding arrays of type Bytes/FixedBytes in AbiCodec (#102)
- [breaking] Change
ConstructorCall#call
result to include all state changes made by contract deployment (#90)
Features
- Add function to create signature from 65 bytes long array
- Validate BigInteger BlockOverride fields and allow assigning back to null
- Add "flatten" function to CallTracer and clarify "getAllLogs" docstring
- Throw an exception if multiple tracers of the same type are added to the same
MuxTracer
- Option to provide custom OkHttpClient instance to Provider#fromUrl
- Replace Stopwatch with kotlin TimeSource
- [breaking] Move
chainId
fetching from constructor toProvider#fromUrl
(#97) - Return a failure response instead of throwing if pub-sub not available in
Provider#subscribe*
methods (#98) - Make BatchRpcRequest#sendAsync return "false" future if no requests added
- Simplify Result generics
- Add Bytes#copyOfRange function and some additional docs
- [breaking] Simplify and improve ergonomics of
LogFilter
(#92) - [breaking] Add RpcClientConfig for configuring JsonRpcClient implementations (#91)
- [breaking] Generify
AbiType
(#104)
Miscellaneous Tasks
- Fix Middleware code example in docs
- Simplify applying of abigen plugin in consuming projects by releasing it as a fat jar
Performance
- 40% reduced allocation rate when decoding BigInteger/String types
Refactor
- Split Tracer into two interfaces for improved API without the need for throwing exceptions in Mux/Struct tracers
- [breaking] Treat failed transaction as successful inclusion result in
PendingInclusion
(#99)
v0.4.0
Bug Fixes
- Rlp encoding of BigInteger where its bytearray has exactly one non-zero element but is larger than RLP_STRING_SHORT
- RLP-encoding of ByteArray with a single, 0 element
- [breaking] Make encoding/decoding RLP lists non-ambiguous by returning empty List instead of null (#65)
- Gracefully handle unsuccessful http responses (close #68)
- [breaking] Correctly abi-generate complex constant names. Might break some incorrectly generated AbiFunction
constants - Set missing generic result type for
EthApi#createAccessList
function
Features
- Add
createAccessList
function toReadWriteContractCall
- Add helper method to initialize Provider with correct client directly from url
- Add
Signature#toByteArray
function - Add additional
ContractCall#call/traceCall
overloads (#67) - Add
baseFeePerBlobGas
andblobGasUsedRatio
toFeeHistory
type - Add
eth_blobBaseFee
RPC call - Add support for aggregating contract calls into
Multicall3
(#70) - Add
GasUtils
for working with eip1559 gas price mechanics - Add
eth_callMany
/debug_traceCallMany
RPC calls (#75) - Add
IntoCallRequest
interface and use it in provider function arguments (#76) - Add additional
call/traceCall
function overloads with block number/hash - Add function to
PrestateTracer.Result
to create state override from state diff (#78) - Add support for converting
CallTracer#CallLog
intoLog
, and returning all logs from aCallFrame
(#79) - Add
Web3Api
Miscellaneous Tasks
- Temporarily disable jacoco coverage reports
- Move
TxBlob
test RLP to a file, so it does not clutter the editor - Update README.md to use the new Result type functions
Refactor
- [breaking] Make
value
property private and replace it with asByteArray/toByteArray functions for
Address/Bloom/Bytes/Hash types - [breaking] Change
selector
property type ofAbiFunction
fromByteArray
toBytes
- [breaking] Rename
Bytes#ZERO
toBytes#EMPTY
v0.3.0
Bug Fixes
- TracerConfig state/block overrides field name
- Don't override kotlin compiler arg "-opt-in" in tests
Features
- Full support for ENS names and avatars, with wildcard resolution and offchain resolution
via CCIP-Read (#59) - Add additional conversion methods to
EthUnit
- Improve functional operators on
RpcRequest
/RpcResponse
(#60) - New Result type (#62)
- [breaking] Migrate the project to use new
Result
type (#63)
Miscellaneous Tasks
- Update ktlint-gradle plugin to v12.1.0
- Add ens section to README.md
- Fix gradle unit-test report aggregation and GH actions upload
- Join lint and test runs via gradle check
v0.2.0
Bug Fixes
- Project artifact publishing and move to maven central (#1)
- Ethers-abi README file (#13)
- Ethers-providers README file (#14)
- Correctly return mapped rpc requests (#25)
- Create
eth_call
params array with minimal amount of values (#28) - Add resolver error factories in generated wrappers via companion object init (#41)
eth_call
execution revert decoding (#42)- Race condition when awaiting new WS events
- Clear previous task outputs if its inputs have changed (#49)
- Normalize reserved field and parameter names
Features
- Implement support for bip32, bip39 and mnemonic key source (#2)
- Add usage examples (#24)
- Function to unwrap all batch responses (#30)
- Wei units conversion (#29)
- Force-load all generated contract wrapper classes on first access (#44)
- Add support for generating random mnemonics using SecureRandom
- Add support for eip-4844 blob transactions (#3)
- Add support for receiving unsupported tx types (#34)
- Add support for eip-4788
parentBeaconBlockRoot
header field (#43) - Add traceBlock RPC call
Miscellaneous Tasks
- Update readme files
- Add abigen plugin to quickstart gradle example
- Upgrade gradle to v8.5 (#38)
Refactor
- Convert "invoke" functions back to constructors in PrivateKeySigner (#35)
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Initial version release