Skip to content

Commit 5b3647c

Browse files
authored
<fix>(codec,filter): fix event abi codec bug, when overload event. (#927)
1 parent 686b86a commit 5b3647c

File tree

14 files changed

+130
-127
lines changed

14 files changed

+130
-127
lines changed

Changelog.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@
77

88
### 新增
99

10-
- 新增[FISCO BCOS 3.9.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v3.9.0) 版本新增的获取合约事件接口,用户可用主动获取的方式自定义查询合约事件、区块事件等。详情见:[#920](https://github.com/FISCO-BCOS/java-sdk/pull/920)
10+
- 新增[FISCO BCOS 3.9.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v3.9.0) 版本新增的获取合约事件接口,用户可用主动获取的方式自定义查询合约事件、区块事件等**目前仍是体验版**。详情见:[#920](https://github.com/FISCO-BCOS/java-sdk/pull/920)
1111
- 在Client类中新增获取当前链上所有配置项的接口,用户可以通过该接口获取链上所有配置项的信息。详情见:[#922](https://github.com/FISCO-BCOS/java-sdk/pull/922)
1212
- 在配置文件中新增 `enableSsl` 的配置字段,该字段的设置将会覆盖旧的 `disabalSsl` 的设置。原先 `disabalSsl` 的配置字段仍然支持,保持配置文件兼容。详情见:[#922](https://github.com/FISCO-BCOS/java-sdk/pull/923)
1313

1414
### 修复
1515

1616
- 修复 `TransactionManager` 在设置`extension`字段时会清除版本号,导致交易哈希计算错误不能上链的问题。详情见:[#922](https://github.com/FISCO-BCOS/java-sdk/pull/922)
1717
- 修复在大整数负数编解码场景中ABI和Scale编解码错误的问题。详情见:[#922](https://github.com/FISCO-BCOS/java-sdk/pull/925)
18+
- 修复存在重载事件时,ABI编解码错误的问题。
1819
- 修复在使用 `ContractCodec` 类中事件解析时没有解析事件中 `indexed` 值的问题。详情见:[#922](https://github.com/FISCO-BCOS/java-sdk/pull/925)
1920
- 修复在 `Contract` 类以及继承类中,订阅事件的接口没有返回订阅ID的问题。详情见:[#922](https://github.com/FISCO-BCOS/java-sdk/pull/925)
2021

src/main/java/org/fisco/bcos/sdk/v3/client/Client.java

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Optional;
2121
import java.util.Set;
2222
import org.fisco.bcos.sdk.jni.BcosSDKJniObj;
23+
import org.fisco.bcos.sdk.v3.client.protocol.request.LogFilterRequest;
2324
import org.fisco.bcos.sdk.v3.client.protocol.request.Transaction;
2425
import org.fisco.bcos.sdk.v3.client.protocol.response.Abi;
2526
import org.fisco.bcos.sdk.v3.client.protocol.response.BcosBlock;
@@ -34,10 +35,9 @@
3435
import org.fisco.bcos.sdk.v3.client.protocol.response.Call;
3536
import org.fisco.bcos.sdk.v3.client.protocol.response.Code;
3637
import org.fisco.bcos.sdk.v3.client.protocol.response.ConsensusStatus;
37-
import org.fisco.bcos.sdk.v3.client.protocol.response.EthFilter;
38-
import org.fisco.bcos.sdk.v3.client.protocol.response.EthLog;
39-
import org.fisco.bcos.sdk.v3.client.protocol.response.EthUninstallFilter;
4038
import org.fisco.bcos.sdk.v3.client.protocol.response.GroupPeers;
39+
import org.fisco.bcos.sdk.v3.client.protocol.response.LogFilterResponse;
40+
import org.fisco.bcos.sdk.v3.client.protocol.response.LogWrapper;
4141
import org.fisco.bcos.sdk.v3.client.protocol.response.ObserverList;
4242
import org.fisco.bcos.sdk.v3.client.protocol.response.PbftView;
4343
import org.fisco.bcos.sdk.v3.client.protocol.response.Peers;
@@ -46,6 +46,7 @@
4646
import org.fisco.bcos.sdk.v3.client.protocol.response.SyncStatus;
4747
import org.fisco.bcos.sdk.v3.client.protocol.response.SystemConfig;
4848
import org.fisco.bcos.sdk.v3.client.protocol.response.TotalTransactionCount;
49+
import org.fisco.bcos.sdk.v3.client.protocol.response.UninstallLogFilter;
4950
import org.fisco.bcos.sdk.v3.config.ConfigOption;
5051
import org.fisco.bcos.sdk.v3.crypto.CryptoSuite;
5152
import org.fisco.bcos.sdk.v3.model.EnumNodeVersion;
@@ -1043,37 +1044,33 @@ void getChainCompatibilityVersionAsync(
10431044
*/
10441045
int getNegotiatedProtocol();
10451046

1046-
EthFilter newFilter(org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter filter);
1047+
LogFilterResponse newFilter(LogFilterRequest filter);
10471048

1048-
void newFilterAsync(
1049-
org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter filter,
1050-
RespCallback<EthFilter> callback);
1049+
void newFilterAsync(LogFilterRequest filter, RespCallback<LogFilterResponse> callback);
10511050

1052-
EthFilter newBlockFilter();
1051+
LogFilterResponse newBlockFilter();
10531052

1054-
void newBlockFilterAsync(RespCallback<EthFilter> callback);
1053+
void newBlockFilterAsync(RespCallback<LogFilterResponse> callback);
10551054

1056-
EthFilter newPendingTransactionFilter();
1055+
LogFilterResponse newPendingTransactionFilter();
10571056

1058-
void newPendingTransactionFilterAsync(RespCallback<EthFilter> callback);
1057+
void newPendingTransactionFilterAsync(RespCallback<LogFilterResponse> callback);
10591058

1060-
EthLog getFilterChanges(EthFilter filter);
1059+
LogWrapper getFilterChanges(LogFilterResponse filter);
10611060

1062-
void getFilterChangesAsync(EthFilter filter, RespCallback<EthLog> callback);
1061+
void getFilterChangesAsync(LogFilterResponse filter, RespCallback<LogWrapper> callback);
10631062

1064-
EthUninstallFilter uninstallFilter(EthFilter filter);
1063+
UninstallLogFilter uninstallFilter(LogFilterResponse filter);
10651064

1066-
void uninstallFilterAsync(EthFilter filter, RespCallback<EthUninstallFilter> callback);
1065+
void uninstallFilterAsync(LogFilterResponse filter, RespCallback<UninstallLogFilter> callback);
10671066

1068-
EthLog getLogs(org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter filter);
1067+
LogWrapper getLogs(LogFilterRequest filter);
10691068

1070-
void getLogsAsync(
1071-
org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter filter,
1072-
RespCallback<EthLog> callback);
1069+
void getLogsAsync(LogFilterRequest filter, RespCallback<LogWrapper> callback);
10731070

1074-
EthLog getFilterLogs(EthFilter filter);
1071+
LogWrapper getFilterLogs(LogFilterResponse filter);
10751072

1076-
void getFilterLogsAsync(EthFilter filter, RespCallback<EthLog> callback);
1073+
void getFilterLogsAsync(LogFilterResponse filter, RespCallback<LogWrapper> callback);
10771074

10781075
void start();
10791076

src/main/java/org/fisco/bcos/sdk/v3/client/ClientImpl.java

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.fisco.bcos.sdk.v3.client.protocol.model.GroupNodeIniInfo;
4040
import org.fisco.bcos.sdk.v3.client.protocol.request.JsonRpcMethods;
4141
import org.fisco.bcos.sdk.v3.client.protocol.request.JsonRpcRequest;
42+
import org.fisco.bcos.sdk.v3.client.protocol.request.LogFilterRequest;
4243
import org.fisco.bcos.sdk.v3.client.protocol.request.Transaction;
4344
import org.fisco.bcos.sdk.v3.client.protocol.response.Abi;
4445
import org.fisco.bcos.sdk.v3.client.protocol.response.BcosBlock;
@@ -53,10 +54,9 @@
5354
import org.fisco.bcos.sdk.v3.client.protocol.response.Call;
5455
import org.fisco.bcos.sdk.v3.client.protocol.response.Code;
5556
import org.fisco.bcos.sdk.v3.client.protocol.response.ConsensusStatus;
56-
import org.fisco.bcos.sdk.v3.client.protocol.response.EthFilter;
57-
import org.fisco.bcos.sdk.v3.client.protocol.response.EthLog;
58-
import org.fisco.bcos.sdk.v3.client.protocol.response.EthUninstallFilter;
5957
import org.fisco.bcos.sdk.v3.client.protocol.response.GroupPeers;
58+
import org.fisco.bcos.sdk.v3.client.protocol.response.LogFilterResponse;
59+
import org.fisco.bcos.sdk.v3.client.protocol.response.LogWrapper;
6060
import org.fisco.bcos.sdk.v3.client.protocol.response.ObserverList;
6161
import org.fisco.bcos.sdk.v3.client.protocol.response.PbftView;
6262
import org.fisco.bcos.sdk.v3.client.protocol.response.Peers;
@@ -65,6 +65,7 @@
6565
import org.fisco.bcos.sdk.v3.client.protocol.response.SyncStatus;
6666
import org.fisco.bcos.sdk.v3.client.protocol.response.SystemConfig;
6767
import org.fisco.bcos.sdk.v3.client.protocol.response.TotalTransactionCount;
68+
import org.fisco.bcos.sdk.v3.client.protocol.response.UninstallLogFilter;
6869
import org.fisco.bcos.sdk.v3.config.ConfigOption;
6970
import org.fisco.bcos.sdk.v3.contract.precompiled.sysconfig.SystemConfigFeature;
7071
import org.fisco.bcos.sdk.v3.contract.precompiled.sysconfig.SystemConfigService;
@@ -1443,155 +1444,152 @@ public int getNegotiatedProtocol() {
14431444
}
14441445

14451446
@Override
1446-
public EthFilter newFilter(org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter params) {
1447+
public LogFilterResponse newFilter(LogFilterRequest params) {
14471448
return this.callRemoteMethod(
14481449
this.groupID,
14491450
"",
14501451
new JsonRpcRequest<>(
14511452
JsonRpcMethods.NEW_FILTER, Arrays.asList(this.groupID, params)),
1452-
EthFilter.class);
1453+
LogFilterResponse.class);
14531454
}
14541455

14551456
@Override
1456-
public void newFilterAsync(
1457-
org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter params,
1458-
RespCallback<EthFilter> callback) {
1457+
public void newFilterAsync(LogFilterRequest params, RespCallback<LogFilterResponse> callback) {
14591458
this.asyncCallRemoteMethod(
14601459
this.groupID,
14611460
"",
14621461
new JsonRpcRequest<>(JsonRpcMethods.NEW_FILTER, Arrays.asList(groupID, params)),
1463-
EthFilter.class,
1462+
LogFilterResponse.class,
14641463
callback);
14651464
}
14661465

14671466
@Override
1468-
public EthFilter newBlockFilter() {
1467+
public LogFilterResponse newBlockFilter() {
14691468
return this.callRemoteMethod(
14701469
this.groupID,
14711470
"",
14721471
new JsonRpcRequest<>(JsonRpcMethods.NEW_BLOCK_FILTER, Arrays.asList(this.groupID)),
1473-
EthFilter.class);
1472+
LogFilterResponse.class);
14741473
}
14751474

14761475
@Override
1477-
public void newBlockFilterAsync(RespCallback<EthFilter> callback) {
1476+
public void newBlockFilterAsync(RespCallback<LogFilterResponse> callback) {
14781477
this.asyncCallRemoteMethod(
14791478
this.groupID,
14801479
"",
14811480
new JsonRpcRequest<>(JsonRpcMethods.NEW_BLOCK_FILTER, Arrays.asList(this.groupID)),
1482-
EthFilter.class,
1481+
LogFilterResponse.class,
14831482
callback);
14841483
}
14851484

14861485
@Override
1487-
public EthFilter newPendingTransactionFilter() {
1486+
public LogFilterResponse newPendingTransactionFilter() {
14881487
return this.callRemoteMethod(
14891488
this.groupID,
14901489
"",
14911490
new JsonRpcRequest<>(
14921491
JsonRpcMethods.NEW_PENDING_TX_FILTER, Arrays.asList(this.groupID)),
1493-
EthFilter.class);
1492+
LogFilterResponse.class);
14941493
}
14951494

14961495
@Override
1497-
public void newPendingTransactionFilterAsync(RespCallback<EthFilter> callback) {
1496+
public void newPendingTransactionFilterAsync(RespCallback<LogFilterResponse> callback) {
14981497
this.asyncCallRemoteMethod(
14991498
this.groupID,
15001499
"",
15011500
new JsonRpcRequest<>(
15021501
JsonRpcMethods.NEW_PENDING_TX_FILTER, Arrays.asList(this.groupID)),
1503-
EthFilter.class,
1502+
LogFilterResponse.class,
15041503
callback);
15051504
}
15061505

15071506
@Override
1508-
public EthLog getFilterChanges(EthFilter filter) {
1507+
public LogWrapper getFilterChanges(LogFilterResponse filter) {
15091508
return this.callRemoteMethod(
15101509
this.groupID,
15111510
"",
15121511
new JsonRpcRequest<>(
15131512
JsonRpcMethods.GET_FILTER_CHANGES,
15141513
Arrays.asList(this.groupID, filter.getResult())),
1515-
EthLog.class);
1514+
LogWrapper.class);
15161515
}
15171516

15181517
@Override
1519-
public void getFilterChangesAsync(EthFilter filter, RespCallback<EthLog> callback) {
1518+
public void getFilterChangesAsync(LogFilterResponse filter, RespCallback<LogWrapper> callback) {
15201519
this.asyncCallRemoteMethod(
15211520
this.groupID,
15221521
"",
15231522
new JsonRpcRequest<>(
15241523
JsonRpcMethods.GET_FILTER_CHANGES,
15251524
Arrays.asList(this.groupID, filter.getResult())),
1526-
EthLog.class,
1525+
LogWrapper.class,
15271526
callback);
15281527
}
15291528

15301529
@Override
1531-
public EthUninstallFilter uninstallFilter(EthFilter filter) {
1530+
public UninstallLogFilter uninstallFilter(LogFilterResponse filter) {
15321531
return this.callRemoteMethod(
15331532
this.groupID,
15341533
"",
15351534
new JsonRpcRequest<>(
15361535
JsonRpcMethods.UNINSTALL_FILTER,
15371536
Arrays.asList(this.groupID, filter.getResult())),
1538-
EthUninstallFilter.class);
1537+
UninstallLogFilter.class);
15391538
}
15401539

15411540
@Override
1542-
public void uninstallFilterAsync(EthFilter filter, RespCallback<EthUninstallFilter> callback) {
1541+
public void uninstallFilterAsync(
1542+
LogFilterResponse filter, RespCallback<UninstallLogFilter> callback) {
15431543
this.asyncCallRemoteMethod(
15441544
this.groupID,
15451545
"",
15461546
new JsonRpcRequest<>(
15471547
JsonRpcMethods.UNINSTALL_FILTER,
15481548
Arrays.asList(this.groupID, filter.getResult())),
1549-
EthUninstallFilter.class,
1549+
UninstallLogFilter.class,
15501550
callback);
15511551
}
15521552

15531553
@Override
1554-
public EthLog getLogs(org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter params) {
1554+
public LogWrapper getLogs(LogFilterRequest params) {
15551555
return this.callRemoteMethod(
15561556
this.groupID,
15571557
"",
15581558
new JsonRpcRequest<>(JsonRpcMethods.GET_LOGS, Arrays.asList(this.groupID, params)),
1559-
EthLog.class);
1559+
LogWrapper.class);
15601560
}
15611561

15621562
@Override
1563-
public void getLogsAsync(
1564-
org.fisco.bcos.sdk.v3.client.protocol.request.EthFilter params,
1565-
RespCallback<EthLog> callback) {
1563+
public void getLogsAsync(LogFilterRequest params, RespCallback<LogWrapper> callback) {
15661564
this.asyncCallRemoteMethod(
15671565
this.groupID,
15681566
"",
15691567
new JsonRpcRequest<>(JsonRpcMethods.GET_LOGS, Arrays.asList(this.groupID, params)),
1570-
EthLog.class,
1568+
LogWrapper.class,
15711569
callback);
15721570
}
15731571

15741572
@Override
1575-
public EthLog getFilterLogs(EthFilter filter) {
1573+
public LogWrapper getFilterLogs(LogFilterResponse filter) {
15761574
return this.callRemoteMethod(
15771575
this.groupID,
15781576
"",
15791577
new JsonRpcRequest<>(
15801578
JsonRpcMethods.GET_FILTER_LOGS,
15811579
Arrays.asList(this.groupID, filter.getResult())),
1582-
EthLog.class);
1580+
LogWrapper.class);
15831581
}
15841582

15851583
@Override
1586-
public void getFilterLogsAsync(EthFilter filter, RespCallback<EthLog> callback) {
1584+
public void getFilterLogsAsync(LogFilterResponse filter, RespCallback<LogWrapper> callback) {
15871585

15881586
this.asyncCallRemoteMethod(
15891587
this.groupID,
15901588
"",
15911589
new JsonRpcRequest<>(
15921590
JsonRpcMethods.GET_FILTER_LOGS,
15931591
Arrays.asList(this.groupID, filter.getResult())),
1594-
EthLog.class,
1592+
LogWrapper.class,
15951593
callback);
15961594
}
15971595

src/main/java/org/fisco/bcos/sdk/v3/client/protocol/request/Filter.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,17 @@ public ListTopic(String... optionalTopics) {
8484
}
8585
}
8686

87+
public ListTopic(List<String> topics) {
88+
this.topics = new ArrayList<>();
89+
for (String topic : topics) {
90+
if (topic != null) {
91+
this.topics.add(new SingleTopic(topic));
92+
} else {
93+
this.topics.add(new SingleTopic());
94+
}
95+
}
96+
}
97+
8798
@Override
8899
public List<SingleTopic> getValue() {
89100
return topics;

0 commit comments

Comments
 (0)