vaultquery не возвращает состояний, хотя действительная транзакция показывает выходные данные - PullRequest
0 голосов
/ 31 марта 2019

Я создаю какой-то токен валюты на корде и у меня работает рабочий поток проблем.При тестировании потока все работает как положено.Существует CurrencyState (реализует FungibleAsset), созданный с указанными полями.Однако при выполнении vaultquery для CurrenyState он всегда ничего не возвращает.Это сбивает с толку, потому что у меня есть похожие потоки, которые создают разные состояния таким же образом, что все работают.

Я попытался запустить NodeDriver, а затем запустить поток и запросить хранилище через почтальона на конечных точках.Та же проблема там.Создание и запрос других состояний работает, но запрос на взаимозаменяемое состояние - нет.Между прочим, другие рабочие состояния - LinearStates. Может ли это быть как-то связано с реализованным интерфейсом?

Я также пытался запрашивать хранилище с помощью критериев грибных активов и всевозможных опций ...

 public void flowRecordsTheIssuedCurrencyInBothPartiesVaults() throws Exception {
    Amount<Currency> testAmount20Rappen = new Amount<Currency>(20,Currency.getInstance("CHF"));
    CurrencyIssueFlow.Initiator flow = new CurrencyIssueFlow.Initiator(testAmount20Rappen, Amag.getInfo().getLegalIdentities().get(0));
    CordaFuture<SignedTransaction> future = CurrencyIssuer.startFlow(flow);
    network.runNetwork();
    future.get();

// We check the recorded currency in both vaults.
for (StartedMockNode node : ImmutableList.of(Amag)) {
    node.transaction(() -> {
        QueryCriteria.VaultQueryCriteria criteria = new QueryCriteria.VaultQueryCriteria(Vault.StateStatus.UNCONSUMED);
        Vault.Page<CurrencyState> results = node.getServices().getVaultService().queryBy(CurrencyState.class, criteria);
        assertEquals(1, results.getStates().size());
        CurrencyState recordedCurrency = results.getStates().get(0).getState().getData();
        assertEquals(recordedCurrency.getAmount(), testAmount20Rappen);
        assertEquals(recordedCurrency.getOwner(), Amag.getInfo().getLegalIdentities().get(0));
        assertEquals(recordedCurrency.getIssuer(), CurrencyIssuer.getInfo().getLegalIdentities().get(0));
        return null;
    });
}

}

...