fetchUtxos returns flow
- Switched fetchUtxos() to return Flow of Service.GetAddressUtxosReply - Internally it calls getAddressUtxosStream() instead of getAddressUtxos() from GRPC layer
This commit is contained in:
parent
0f1663f02c
commit
2b834013cb
|
@ -27,18 +27,18 @@ interface CoroutineLightWalletClient {
|
||||||
* @param tAddress the transparent address to use.
|
* @param tAddress the transparent address to use.
|
||||||
* @param startHeight the starting height to use.
|
* @param startHeight the starting height to use.
|
||||||
*
|
*
|
||||||
* @return the UTXOs for the given address from the [startHeight].
|
* @return a flow of UTXOs for the given address from the [startHeight].
|
||||||
*/
|
*/
|
||||||
suspend fun fetchUtxos(
|
suspend fun fetchUtxos(
|
||||||
tAddress: String,
|
tAddress: String,
|
||||||
startHeight: BlockHeightUnsafe
|
startHeight: BlockHeightUnsafe
|
||||||
): List<Service.GetAddressUtxosReply>
|
): Flow<Service.GetAddressUtxosReply>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param heightRange the inclusive range to fetch. For instance if 1..5 is given, then every
|
* @param heightRange the inclusive range to fetch. For instance if 1..5 is given, then every
|
||||||
* block in that range will be fetched, including 1 and 5.
|
* block in that range will be fetched, including 1 and 5.
|
||||||
*
|
*
|
||||||
* @return a list of compact blocks for the given range
|
* @return a flow of compact blocks for the given range
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
fun getBlockRange(heightRange: ClosedRange<BlockHeightUnsafe>): Flow<CompactFormats.CompactBlock>
|
fun getBlockRange(heightRange: ClosedRange<BlockHeightUnsafe>): Flow<CompactFormats.CompactBlock>
|
||||||
|
@ -58,7 +58,7 @@ interface CoroutineLightWalletClient {
|
||||||
* effectively the same as an RPC call to a node that's running an insight server. The data is
|
* effectively the same as an RPC call to a node that's running an insight server. The data is
|
||||||
* indexed and responses are fairly quick.
|
* indexed and responses are fairly quick.
|
||||||
*
|
*
|
||||||
* @return a list of transactions that correspond to the given address for the given range.
|
* @return a flow of transactions that correspond to the given address for the given range.
|
||||||
*/
|
*/
|
||||||
fun getTAddressTransactions(
|
fun getTAddressTransactions(
|
||||||
tAddress: String,
|
tAddress: String,
|
||||||
|
|
|
@ -126,20 +126,23 @@ internal class CoroutineLightWalletClientImpl private constructor(
|
||||||
override suspend fun fetchUtxos(
|
override suspend fun fetchUtxos(
|
||||||
tAddress: String,
|
tAddress: String,
|
||||||
startHeight: BlockHeightUnsafe
|
startHeight: BlockHeightUnsafe
|
||||||
): List<Service.GetAddressUtxosReply> {
|
): Flow<Service.GetAddressUtxosReply> {
|
||||||
val result = requireChannel().createStub().getAddressUtxos(
|
if (tAddress.isBlank()) {
|
||||||
|
return emptyFlow()
|
||||||
|
}
|
||||||
|
return requireChannel().createStub().getAddressUtxosStream(
|
||||||
Service.GetAddressUtxosArg.newBuilder().setAddress(tAddress)
|
Service.GetAddressUtxosArg.newBuilder().setAddress(tAddress)
|
||||||
.setStartHeight(startHeight.value).build()
|
.setStartHeight(startHeight.value).build()
|
||||||
)
|
)
|
||||||
return result.addressUtxosList
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getTAddressTransactions(
|
override fun getTAddressTransactions(
|
||||||
tAddress: String,
|
tAddress: String,
|
||||||
blockHeightRange: ClosedRange<BlockHeightUnsafe>
|
blockHeightRange: ClosedRange<BlockHeightUnsafe>
|
||||||
): Flow<Service.RawTransaction> {
|
): Flow<Service.RawTransaction> {
|
||||||
if (blockHeightRange.isEmpty() || tAddress.isBlank()) return emptyFlow()
|
if (blockHeightRange.isEmpty() || tAddress.isBlank()) {
|
||||||
|
return emptyFlow()
|
||||||
|
}
|
||||||
return requireChannel().createStub().getTaddressTxids(
|
return requireChannel().createStub().getTaddressTxids(
|
||||||
Service.TransparentAddressBlockFilter.newBuilder().setAddress(tAddress)
|
Service.TransparentAddressBlockFilter.newBuilder().setAddress(tAddress)
|
||||||
.setRange(blockHeightRange.toBlockRange()).build()
|
.setRange(blockHeightRange.toBlockRange()).build()
|
||||||
|
|
Loading…
Reference in New Issue