Я создаю какой-то токен валюты на корде и у меня работает рабочий поток проблем.При тестировании потока все работает как положено.Существует 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;
});
}
}