Skip to content
This repository has been archived by the owner on Jul 23, 2024. It is now read-only.

Releases: klaytn/caver-java

Release v1.11.1

02 Nov 16:50
b770d62
Compare
Choose a tag to compare

v1.11.1 Release Notes

What’s New in v.1.11.1

  • API updates(#369)
    • removed API
      • governance_itemsAt
      • governance_chainConfigAt
      • governance_chainConfig
      • klay_govParamsAt
      • klay_chainConfigAt
      • klay_chainConfig
      • klay_gasPriceAt
    • updated API
      • admin_exportChain
    • added API
      • governance_getRewardsAccumulated
      • klay_forkStatus
      • klay_recoverFromTransaction
      • klay_recoverFromMessage

Release v1.10.2

17 Mar 14:19
570b0d4
Compare
Choose a tag to compare

v1.10.2 Release Notes

What’s New in v.1.10.2 (#366)

  • About The API getting governance parameters
    • getGovParamsAt is replaced by getParams in klay namespace
    • getItemsAt is replaced by getParams in governance namespace
  • About the API getting chain config
    • getChainConfigAt is replaced by getChainConfig in klay namespace
  • The fields (kir/poc) are replaced by (kff/kcf) according to klaytn API service
    • It affacts KlayRewards/GovernanceStakingInfo response type

Release v1.10.0

27 Dec 07:50
76f902d
Compare
Choose a tag to compare

What’s New in v.1.10.0 (#719, #721)

  • Added klay.getRewards API to retrieve reward related information by block with the new GC reward structure following the abolishment of the Gini coefficient KIP-82
  • Added governance.getChainConfigAt API to retrieve chain information for a certain block
  • getStakingInfo, getNodeAddress, getChainConfig, getChainConfigAt APIs, previously only available from governance namespace, is supported for klay namespace
  • Added klay.getGovParams, klay.getGovParamsAt APIs, which are functionally identical to governance.getItemsAt

Improvements

  • You can now subscribe to contract events.(#353)
  • Added IPFSOptions instance to support IPFS node and basic authentication. (#357)
  • Updated in line with the new version of KIP17, KIP37 bytecode and klaytn-contracts and added Ownable interface.(#360)

Fixes

  • Fixed to throw an exception when account key is null.(#352, #354)

Release v1.9.0

21 Jul 01:10
207ea27
Compare
Choose a tag to compare

What’s New in v.1.9.0

  • Supported KIP-71 dynamic gas fee pricing mechanism. (#328, #327, #329, #330, #331, #334, #343, #344, #346)
    • Added effectiveGasPrice field to the response object of caver.rpc.klay.getTransactionReceipt.
    • Supported value-setting logic for undefined gasPrice with dynamic gas fee pricing mechanism introduced with the proposed Magma hard fork. Any undefined gasPrice will therefore be defaulted to baseFee * 2.
    • Supported tx.suggestGasPrice function in transaction instances to easily determine the gas price.
    • Added newly introduced KIP-71 governance parameters in the return object of caver.rpc.governance APIs.
    • Added newly introduced caver.rpc.klay.getUpperBoundGasPrice and caver.rpc.klay.getLowerBoundGasPrice APIs.
      Please see KIP-71 for details.
  • Supported some of the Admin API to control peers. (#320, #323)
    • caver.rpc.admin.getNodeInfo calls admin_datadir.
    • caver.rpc.admin.getPeers calls admin_peers.
    • caver.rpc.admin.addPeer calls admin_addPeer.
    • caver.rpc.admin.removePeer calls admin_removePeer.

Improvements

  • Updated web3j version to 4.8.8. (#305)
  • Added code examples of the caver.wallet package in javadoc. (#306)
  • Added net_version rpc call to caver.rpc.net. (#320)

Fixes

  • Updated DefaultGasProvider to implement ContractGasProvider to support dynamic gas price. If you are using DefaultGasProvider such as new DefaultGasProvider(), please change it to new DefaultGasProvider(caver), (#322)

Release v1.8.0

07 Mar 05:07
d706617
Compare
Choose a tag to compare

v1.8.0 Release Notes

What's New

  • In line with Klaytn's pursuit of Ethereum equivalence, Klaytn now supports Ethereum transaction types. But what is an update without SDKs? You can start using these transactions with caver, via caver.transaction.
    • Access lists are now available with TxTypeEthereumAccessList which was introduced with EIP-2930
      • The EthereumAccessList class is available in caver.transaction.ethereumAccessList as TxTypeEthereumAccessList.
    • The transaction type TxTypeEthereumDynamicFee presented in the proposal EIP-1559 is also available
      • The EthereumDynamicFee class is available in caver.transaction.ethereumDynamicFee as TxTypeEthereumDynamicFee.
  • The newly added klay namespace API functions are now available with caver via caver.rpc.klay!
    • caver.rpc.klay.getHeader
    • caver.rpc.klay.getFeeHistory
    • caver.rpc.klay.getMaxPriorityFeePerGas
    • caver.rpc.klay.createAccessList
  • You can use the ecsign function the new Ethereum transaction types.
    • The nitty-gritty: You have to sign the transaction types EthereumAccessList and EthereumDynamicFee via ecsign to generate the ECDSA signatures.
    • If you are inquisitive, the v in the signature values {v, r, s} for the new Ethreuem transaction types is a parity (0 for even, 1 for odd) of the y-value of the Secp256k1 curve, whereas the v in Klaytn contains chainId, making them incompatible.
    • Find it here.

Release v1.6.4

03 Mar 06:31
6c4be43
Compare
Choose a tag to compare

v1.6.4 Release Notes

What’s New

  • Good news: You can now use WebSocket to subscribe to events via publish/subscribe API with caver.java. (#278)
    • Subscribe to events using caver.rpc.klay.subscribe.
      • Use the parameters newheads to get notification for the latest block and logs for logs included in new blocks for specific contracts or events.
    • Of course, you can unsubscribe using caver.rpc.klay.unsubscribe.
    • Please refer to Klaytn Docs for more details.

Bug Fixes

  • Did you know that the hex prefix "0x" used to only work in lower case? Now it accepts upper case "0X" too. 271
  • We fortified the validation logic for the privateKey. 272, 275
  • We also made some improvements in the validation logic for caver.utils.compressedPublicKey, caver.utils.decompressedPublicKey274, 285
* In the rpc layer, the default value of the parameter isFullTransaction for the methods caver.rpc.getBlockByXXX used to be true, but now it’s set to false. 280
  • We fixed and improved the contract.once method. 282
    • The EventFilterOptions class has been refactored so that you can convert and manage subscription topics more easily.
    • Before, subscribing to an event returned only the raw data. Now with the new subscribeFlowable method, you can configure the data stream yourself, i.e. register callback methods for various cases.

Release v1.6.4-rc.1

22 Oct 00:17
c1cdc1f
Compare
Choose a tag to compare
Release v1.6.4-rc.1 Pre-release
Pre-release

v1.6.4-rc.1 Release Notes

New Features

  • Supports a caver.rpc.subscribe method that pub/sub events through klay_subscription API.

Fixes

  • Modified a default value isFullTransaction field to false.
    • It affects caver.rpc.klay.getBlockByNumber(), caver.rpc.klay.getBlockByHash().

Release v1.6.3

11 Aug 07:06
4e94236
Compare
Choose a tag to compare

v1.6.3 Release Notes

Breaking changes

  • Modified field name keyRing to keyring in KeyStore class.(#269)

New Features

  • Supports Governance RPC call. (#258)
    • caver.rpc.governance provides Governance RPC call.
      • caver.rpc.governance.vote
      • caver.rpc.governance.vote
      • caver.rpc.governance.showTally
      • caver.rpc.governance.getTotalVotingPower
      • caver.rpc.governance.getMyVotingPower
      • caver.rpc.governance.getMyVotes
      • caver.rpc.governance.getChainConfig
      • caver.rpc.governance.getNodeAddress
      • caver.rpc.governance.getItemsAt
      • caver.rpc.governance.getPendingChanges
      • caver.rpc.governance.getVotes
      • caver.rpc.governance.getIdxCache
      • caver.rpc.governance.getIdxCacheFromDb
      • caver.rpc.governance.getItemCacheFromDb
      • caver.rpc.governance.getStakingInfo
    • Please refer to Klaytn Docs for more details.
  • Supports decoding function call that consists of function selector and encoded parameters. (#260, #261)
    • caver.abi.decodeFunctionCall
    • contract.decodeFunctionCall
    • kip7.decodeFunctionCall
    • kip17.decodeFunctionCall
    • kip37.decodeFunctionCall
  • Supports a method to get a caver transaction instance by transaction hash. (#263)
    • This method converts the result of caver.rpc.klay.getTransaction with the transaction hash into a transaction instance provided by caver-java.
      • caver.transaction.getTransactionByHash
  • Supports new utils methods. (#264, #267)
    • Since Klaytn supports account key updates, you need public key information to verify the signature. Also, a function to retrieve the address derived from the public key is provided.
      • caver.utils.recoverPublicKey will recover public key string from signature.
      • caver.utils.publicKeyToAddress will derive an address from a public key.
  • Supports a method that recovers public keys from a transaction instance. (#267)
    • This method recovers public keys from the signatures or feePayerSignatures field of the transaction.
      • tx.recoverPublicKeys will recover public keys from signatures.
      • tx.recoverFeePayerPublicKeys will recover public keys from feePayerSignatures.
  • Adds a new layer named Validator. (#265, #268)
    • caver.validator is a layer that provides validation methods that are necessary to use Klaytn.
      • caver.validator.validateSignedMessage will validate the signature signed on a message.
      • caver.validator.validateTransaction will validate signatures and feePayerSignatures in the transaction.
      • caver.validator.validateSender will validate signatures in the transaction.
      • caver.validator.validateFeePayer will validate feePayerSignatures in the transaction.
  • Adds a network provider that manages the network connection as a field of Caver class. (#251)

Fixed

  • Fixed a typo in method name. (#256)
    • Fixed the method name generateRolBasedKeys to generateRoleBasedKeys in KeyringFactory class.
  • Fixed an encoding/decoding logic that occurred when if the length of a dynamic array is zero. (#257)
  • Fixed a decoding issue for LegacyTransaction logic. (#266)
    • If a number type field (e.g., nonce, gas, gasPrice, value) has 0 value, it decodes as bigInteger.
  • Fixed a build problem when using an IntelliJ. (#259)

Release v1.6.3-rc.4

10 Aug 08:47
5722c5a
Compare
Choose a tag to compare
Release v1.6.3-rc.4 Pre-release
Pre-release

v1.6.3-rc.4 Release Notes

New Features

  • Supports Governance RPC call. (#258)
    • caver.rpc.governance provides Governance RPC call.
      • caver.rpc.governance.vote
      • caver.rpc.governance.vote
      • caver.rpc.governance.showTally
      • caver.rpc.governance.getTotalVotingPower
      • caver.rpc.governance.getMyVotingPower
      • caver.rpc.governance.getMyVotes
      • caver.rpc.governance.getChainConfig
      • caver.rpc.governance.getNodeAddress
      • caver.rpc.governance.getItemsAt
      • caver.rpc.governance.getPendingChanges
      • caver.rpc.governance.getVotes
      • caver.rpc.governance.getIdxCache
      • caver.rpc.governance.getIdxCacheFromDb
      • caver.rpc.governance.getItemCacheFromDb
      • caver.rpc.governance.getStakingInfo
    • Please refer to Klaytn Docs for more details.
  • Supports decoding function call that consists of function selector and encoded parameters. (#260, #261)
    • caver.abi.decodeFunctionCall
    • contract.decodeFunctionCall
    • kip7.decodeFunctionCall
    • kip17.decodeFunctionCall
    • kip37.decodeFunctionCall
  • Supports a method to get a caver transaction instance by transaction hash. (#263)
    • This method converts the result of caver.rpc.klay.getTransaction with the transaction hash into a transaction instance provided by caver-java.
      • caver.transaction.getTransactionByHash
  • Supports new utils methods. (#264, #267)
    • Since Klaytn supports account key updates, you need public key information to verify the signature. Also, a function to retrieve the address derived from the public key is provided.
      • caver.utils.recoverPublicKey will recover public key string from signature.
      • caver.utils.publicKeyToAddress will derive an address from a public key.
  • Supports a method that recovers public keys from a transaction instance. (#267)
    • This method recovers public keys from the signatures or feePayerSignatures field of the transaction.
      • tx.recoverPublicKeys will recover public keys from signatures.
      • tx.recoverFeePayerPublicKeys will recover public keys from feePayerSignatures.
  • Adds a new layer named Validator. (#265, #268)
    • caver.validator is a layer that provides validation methods that are necessary to use Klaytn.
      • caver.validator.validateSignedMessage will validate the signature signed on a message.
      • caver.validator.validateTransaction will validate signatures and feePayerSignatures in the transaction.
      • caver.validator.validateSender will validate signatures in the transaction.
      • caver.validator.validateFeePayer will validate feePayerSignatures in the transaction.
  • Adds a network provider that manages the network connection as a field of Caver class. (#251)

Fixed

  • Fixed a typo in method name. (#256)
    • Fixed the method name generateRolBasedKeys to generateRoleBasedKeys in KeyringFactory class.
  • Fixed an encoding/decoding logic that occurred when if the length of a dynamic array is zero. (#257)
  • Fixed a decoding issue for LegacyTransaction logic. (#266)
    • If a number type field (e.g., nonce, gas, gasPrice, value) has 0 value, it decodes as bigInteger.
  • Fixed a build problem when using an IntelliJ. (#259)

v1.6.3-rc.2 Release Notes

01 Jul 08:07
a8184c8
Compare
Choose a tag to compare
Pre-release

New Features

  • Adds a network provider as a field of Caver class. (#251)
    • This added field manages the network connection.

Fixes

  • Fixed typo at method name. (#256)
    • Fixed typo at method name generateRolBasedKeys. generateRolBasedKeys must be named generateRoleBasedKeys.
    • This method is in both KeyringFactory.java and KeyringFactoryWrapper.java.

Miscellaneous

  • Updated Circle CI config. (#242)
    • Separated tests from build job.
    • Refactored .circleci/config.yml.
  • Refactored Circle CI config. (#250)
    • Moved no_output_timeout option to right place.
    • Changed name of build_android_test step.
  • Separated the library of web3j used in accordance with the project version. (#253)
    • If the project version ends with "-android", using web3j-android.
    • else using web3j.
  • Updated Circle CI config version from 2 to 2.1. (#254)