Skip to content

Commit

Permalink
<doc>(changelog): add change log of 3.6.0. (#887)
Browse files Browse the repository at this point in the history
  • Loading branch information
kyonRay authored Feb 19, 2024
1 parent fd62576 commit b765754
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 2 deletions.
54 changes: 54 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,57 @@
## v3.6.0
(2024-02-08)

请阅读Java SDK v3.x+文档:

- [中文用户手册](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develop/sdk/java_sdk/index.html)

### 新增

- 新增[FISCO BCOS 3.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v3.6.0) 版本新的交易字段的支持,包括:`value`, `gasPrice`, `gasLimit`, `maxFeePerGas`, `maxPriorityFeePerGas`,新字段对应的交易版本号升级到 `v1`。详情见: https://github.com/FISCO-BCOS/java-sdk/pull/841
- 新增 `TransactionManager` 类,默认发交易模式子类 `DefaultTransactionManager`, 以及可支持签名拼装的子类 `ProxySignTransactionManager`。这些类型默认发送`v1`版本号的交易,支持[FISCO BCOS 3.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v3.6.0) 版本新增的所有交易字段。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/847
- 新增 `AssembleTransactionService`类,以及`AssembleEIP1559TransactionService`类,提供开发者从合约调用参数到拼装整个交易的服务接口。此外,还提供了`TransactionManager`的Setter接口,开发者可以自定义多种交易拼装模式。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/852
- 新增 `TransferTransactionService` 类,提供用户发送原生转账交易。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/847
- 新增 `GasProvider``NonceAndBlockLimitProvider` 的接口,开发者可以自定义交易的`gasPrice`, `gasLimit`, `maxFeePerGas`, `maxPriorityFeePerGas``nonce``blockLimit`等字段。**注意:目前只在`TransactionManager`的接口中使用**。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/863
- 新增 `BalanceService`类,用户可以通过这些接口更改账户余额。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/854
- 新增 `Contract`类的事件订阅功能,在合约文件生成Java文件之后,用户可以通过这些接口订阅合约的事件。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/855
- 新增 `Contract`类切换 `TransactionManager` 发送交易的方式,开发者可以手动切换TransactionManager,发起 `v1` 版本的交易。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/855
- 新增支持合约的payable关键字,在合约文件生成Java文件之后,用户可以通过接口调用合约并带上转账value。详情见:
- 新增 `JsonTransactionResponse``encodeTransactionData`, `decodeTransaction`的方法,提供用户交易Data字节计算,解码Tars编码后的交易。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/857
- 新增 `TransactionReceipt``BcosBlockHeader` 的哈希计算方法,用户可以通过这些接口计算交易回执、区块头的哈希。

### 更新

-`ContractCodec` 中包含`CryptoSuite`的构造函数置为@Deprecated,推荐开发者使用包含`Hash`的构造函数。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/844
-`JsonTransactionResponse`类的 `readFromHexString``writeToHexString`置为 **Deprecated**,推荐开发者使用 `encodeTransactionData`, `decodeTransaction`的方法。

### 修复

- 修复 `Config` 在初始化时出现异常的报错信息。详情见:https://github.com/FISCO-BCOS/java-sdk/pull/875

### 兼容性说明

- FISCO BCOS 2.0+ 版本请使用 `org.fisco.bcos.sdk:bcos-java-sdk:2.9.3` 版本,代码分支为 `master-2.0`
- 兼容java-sdk v3.0+的历史版本
- 支持[FISCO BCOS 3.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v3.6.0)版本,以及3.0.0正式版以来的所有版本。
- 账户权限管理接口、BFS新增的list分页接口与link接口只在 FISCO BCOS 3.1.0及以上支持使用。
- 新增的CRUD接口,如条件范围遍历查询、修改、删除等接口,只在FISCO BCOS 3.2.0及以上支持使用。
- 新增的ShardService, 只在FISCO BCOS 3.3.0及以上支持使用。
- Call With Sign接口只在FISCO BCOS 3.4.0及以上有效果,低于3.4.0版本的节点可正常调用但不会处理签名。
- 新增的Tars Client,只在FISCO BCOS 3.5.0及以上支持使用。
- 新增的交易字段,交易版本号升级为 `v1`,以及配套的`TransactionManager`, `AssembleTransactionService`, `TransferTransactionService`等,都只能在FISCO BCOS 3.6.0及以上支持使用。
- 新增的BalanceService只能在3.6.0中使用。

### 遗留问题说明

在工作量与收益之间做平衡之后,目前还遗留以下几种场景的编解码仍然可能会有问题,欢迎社区用户贡献解决方案或实现代码 :-)
- 三维及以上的数组作为输入输出参数时,使用`contract2java`编译成Java文件后,方法接口可能会出现调用错误。
- 在使用类似 `bytes[2][]` 这样的动态数组套静态数组,且基础类型仍然是动态类型的类型时,使用`contract2java`编译成Java文件后,方法接口调用时编解码可能会出现问题。
- 在使用liquid合约时,如果使用上一条所述的类型作为输入输出参数,在合约方法接口调用时编解码可能会出现问题。
- 在使用liquid合约时,将u256与i256类型的输入输出参数,如果输入最大值,BigInteger生成的bytes会超过大小限制。
- 在使用liquid合约时,因为liquid合约的事件编码与Solidity合约的事件编码不同,所以在使用liquid合约的事件时,会出现Java sdk解析失败的问题。

---

## v3.5.0
(2023-10-16)

Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ ext {
webankJavaCryptoVersion = "1.0.3"
junitVersion = '4.13.2'
commonsCollections4Version = "4.4"
bcosSdkJniVersion = "3.6.0-SNAPSHOT"
bcosSdkJniVersion = "3.6.0"
slf4jApiVerison = '1.7.36'
mockitoVersion = '4.8.0'
gsonVersion = '2.10.1'
Expand All @@ -35,7 +35,7 @@ ext {
// integrationTest.mustRunAfter test
allprojects {
group = 'org.fisco-bcos.java-sdk'
version = '3.6.0-SNAPSHOT'
version = '3.6.0'

apply plugin: 'maven-publish'
apply plugin: 'idea'
Expand Down

0 comments on commit b765754

Please sign in to comment.