package Ġio . pro venance . digital currency . con sort ium . pb client . grpc Ċ Ċ import Ġio . grpc . Managed Channel Ċ import Ġio . pro venance . attribute . v 1 . Attribute Ċ import Ġio . pro venance . attribute . v 1 . Query Attributes Request Ċ import Ġio . pro venance . digital currency . con sort ium . extension . new Pagination Builder Ċ import Ġio . pro venance . attribute . v 1 . Query Grpc Ġas ĠAttribute Query Grpc Ċ Ċ class ĠAttributes ( channel : ĠManaged Channel ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġattr Client Ġ= ĠAttribute Query Grpc . new Blocking Stub ( channel ) ĊĊĠĠĠ Ġfun ĠgetAll Attributes ( address : ĠString ): ĠList < Attribute > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġtotal : ĠLong ĊĠĠĠĠĠĠĠ Ġval Ġlimit Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= Ġmutable ListOf < Attribute >() ĊĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġattr Client ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Attributes Request . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account ( address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pagination ( new Pagination Builder ( offset , Ġlimit )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Ġ= Ġresults . pagination ?. total Ġ?: Ġresults . attributes Count . to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ+= Ġlimit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . addAll ( results . attributes List ) ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( attributes . count () Ġ< Ġtotal ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġattributes ĊĠĠĠ Ġ} Ċ } Ċ