66import com .hedera .hashgraph .tck .annotation .JSONRPC2Method ;
77import com .hedera .hashgraph .tck .annotation .JSONRPC2Service ;
88import com .hedera .hashgraph .tck .methods .AbstractJSONRPC2Service ;
9+ import com .hedera .hashgraph .tck .methods .sdk .param .node .AddressBookQueryParams ;
910import com .hedera .hashgraph .tck .methods .sdk .param .node .NodeCreateParams ;
1011import com .hedera .hashgraph .tck .methods .sdk .param .node .NodeDeleteParams ;
1112import com .hedera .hashgraph .tck .methods .sdk .param .node .NodeUpdateParams ;
1213import com .hedera .hashgraph .tck .methods .sdk .param .node .ServiceEndpointParams ;
14+ import com .hedera .hashgraph .tck .methods .sdk .response .AddressBookResponse ;
1315import com .hedera .hashgraph .tck .methods .sdk .response .NodeResponse ;
1416import com .hedera .hashgraph .tck .util .KeyUtils ;
1517import java .time .Duration ;
1618import java .util .ArrayList ;
1719import java .util .List ;
20+ import java .util .stream .Collectors ;
1821import org .bouncycastle .util .encoders .Hex ;
1922
2023@ JSONRPC2Service
@@ -26,6 +29,35 @@ public NodeService(SdkService sdkService) {
2629 this .sdkService = sdkService ;
2730 }
2831
32+ @ JSONRPC2Method ("getAddressBook" )
33+ public AddressBookResponse addressBookQuery (final AddressBookQueryParams params ) {
34+ AddressBookQuery query = new AddressBookQuery ().setFileId (FileId .fromString (params .getFileId ()));
35+ Client client = sdkService .getClient (params .getSessionId ());
36+
37+ NodeAddressBook addressBook = query .execute (client );
38+ AddressBookResponse response = new AddressBookResponse ();
39+
40+ addressBook .getNodeAddresses ().forEach (address -> {
41+ List <AddressBookResponse .Endpoint > mappedEndpoints = address .getAddresses ().stream ()
42+ .map (sdkEndpoint -> new AddressBookResponse .Endpoint (
43+ sdkEndpoint .getAddress () != null ? Hex .toHexString (sdkEndpoint .getAddress ()) : null ,
44+ sdkEndpoint .getPort (),
45+ sdkEndpoint .getDomainName () != null ? sdkEndpoint .getDomainName () : "" ))
46+ .collect (Collectors .toList ());
47+
48+ response .addNodeAddress (new AddressBookResponse .NodeAddress (
49+ address .getPublicKey () != null ? address .getPublicKey () : "" ,
50+ address .getAccountId () != null ? address .getAccountId ().toString () : "" ,
51+ address .getNodeId (),
52+ address .getCertHash () != null ? address .getCertHash ().toString () : "" ,
53+ mappedEndpoints ,
54+ address .getDescription (),
55+ address .getStake ()));
56+ });
57+
58+ return response ;
59+ }
60+
2961 @ JSONRPC2Method ("createNode" )
3062 public NodeResponse createNode (final NodeCreateParams params ) throws Exception {
3163 NodeCreateTransaction tx = new NodeCreateTransaction ().setGrpcDeadline (DEFAULT_GRPC_DEADLINE );
0 commit comments