При использовании SDK для учетной записи и токена - у меня есть следующая функция, которая берет учетную запись и идентификатор токена и возвращает любые токены, которые есть у данной учетной записи (имя токена и сумма).
Как сделать так, чтобы запрос хранилища возвращал сумму значений токена?
fun getTokenBy(
serviceHub: ServiceHub,
account: AccountInfo,
tokenId: String,
status: Vault.StateStatus
): List<StateAndRef<FungibleToken>> {
val issuerParty =
serviceHub.identityService.partiesFromName(Constants.MASTER_NODE_NAME, false).first()
val token = Token.getInstance(tokenId)
val issuerCriteria = QueryCriteria.VaultCustomQueryCriteria(builder {
PersistentFungibleToken::issuer.equal(issuerParty)
}, status)
val tokenClassCriteria = QueryCriteria.VaultCustomQueryCriteria(builder {
PersistentFungibleToken::tokenClass.equal(token.tokenClass)
}, status)
val tokenIdentifierCriteria = QueryCriteria.VaultCustomQueryCriteria(builder {
PersistentFungibleToken::tokenIdentifier.equal(token.tokenIdentifier)
}, status)
val accountCriteria = QueryCriteria.VaultQueryCriteria(
status = status,
externalIds = listOf(account.identifier.id)
)
val criteria = issuerCriteria.and(tokenClassCriteria).and(tokenIdentifierCriteria).and(accountCriteria)
return serviceHub.vaultService.queryBy<FungibleToken>(criteria = criteria).states
}