Skip to content

Releases: Kr1ptal/ethers-kt

v0.5.0

23 Mar 13:39
5bff9ba
Compare
Choose a tag to compare

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 to Provider#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

23 Feb 16:09
7e51874
Compare
Choose a tag to compare

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 to ReadWriteContractCall
  • 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 and blobGasUsedRatio to FeeHistory 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 into Log, and returning all logs from a CallFrame (#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 of AbiFunction from ByteArray to Bytes
  • [breaking] Rename Bytes#ZERO to Bytes#EMPTY

v0.3.0

29 Jan 08:46
21e26de
Compare
Choose a tag to compare

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

02 Jan 20:23
d6ba905
Compare
Choose a tag to compare

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

01 Nov 15:49
0b4b722
Compare
Choose a tag to compare

Initial version release