feat: add getRecentBlocks method

This commit is contained in:
Nex 2020-09-23 11:19:17 +08:00
parent 5a38f7ed81
commit 1278255c37

View File

@ -104,7 +104,7 @@ public class Client {
info("*** clientVersion");
try {
return nodeFutureStub.clientVersion (Empty.getDefaultInstance());
return nodeFutureStub.clientVersion(Empty.getDefaultInstance());
} catch (StatusRuntimeException e) {
warning("RPC failed: {0}", e.getStatus());
return null;
@ -449,6 +449,58 @@ public class Client {
return reqBuilder.build();
}
/**
* <a
* href="#">返回时间戳最新的若干区块</a>
* 非阻塞
*/
public ListenableFuture<GetBlocksResponse> getRecentBlocks(String ledger, int count, IncludeTransactions includeTransactions) {
info(
"*** getRecentBlocks: ledger={0} count={1} includeTransactions={2}",
ledger, count, includeTransactions);
try {
return queryFutureStub.getRecentBlocks(getRecentBlocksRequest(ledger, count, includeTransactions));
} catch (StatusRuntimeException e) {
warning("RPC failed: {0}", e.getStatus());
return null;
}
}
/**
* <a
* href="#">返回时间戳最新的若干区块</a>
* 阻塞
*/
public GetBlocksResponse getRecentBlocksSync(String ledger, int count, IncludeTransactions includeTransactions) {
info(
"*** getRecentBlocksSync: ledger={0} count={1} includeTransactions={2}",
ledger, count, includeTransactions);
try {
return queryBlockingStub.getRecentBlocks(getRecentBlocksRequest(ledger, count, includeTransactions));
} catch (StatusRuntimeException e) {
warning("RPC failed: {0}", e.getStatus());
return null;
}
}
private RecentBlocksRequest getRecentBlocksRequest(String ledger, int count, IncludeTransactions includeTransactions) {
RecentBlocksRequest.Builder reqBuilder =
RecentBlocksRequest.newBuilder()
.setLedger(ledger)
.setCount(count);
if (includeTransactions == null) {
includeTransactions = IncludeTransactions.NONE;
}
reqBuilder.setIncludeTransactions(includeTransactions);
return reqBuilder.build();
}
/**
* <a
* href="#">返回哈希所指定的事务</a>