Действительно ли грибковые состояния автоматически объединяются на Корде? - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу создать настраиваемый грибной актив на корде. Мне неясно, как состояния, которые реализуют FungibleAsset, обрабатываются внутренне.Скажем, я получаю десять 1-долларовых CoinStates от транзакции, объединены ли они с одним 10-долларовым Coinstate, который я затем использую в качестве единственного и единственного состояния ввода, если я хочу сделать платеж самостоятельно?

в основном я хочу что-то вродеCash.generateSpend, который, к сожалению, не очень хорошо задокументирован

Мой подход к TransferFlow пока что:

У меня есть функция, которая выполняет запрос хранилища и должна возвращать баланс некоторых сторон .. (этопредполагает, что сумма баланса внутренне объединена в одно состояние)

, затем, используя этот баланс в качестве состояния ввода, я проверяю, равен ли ввод суммы, которую нужно заплатить, и в этом случае я просто создаю одно состояние выводато же количество, но новый владелец, в противном случае я создаю другое выходное состояние с количеством изменений и сам как владелец

Пока эта функция ... У меня есть функция, которая выполняет запрос хранилища и должнавернуть баланс некоторых сторон ..

StateAndRef<CurrencyState> getBalaceOfIdentiy(AbstractParty id) throws FlowException {
    QueryCriteria queryCriteria = new QueryCriteria.FungibleAssetQueryCriteria(null,ImmutableList.of(id),null, null,
    null, null, null
    );
    // this assumes states are merged internally
    List<StateAndRef<CurrencyState>> balanceOfID = getServiceHub().getVaultService().queryBy(CurrencyState.class, queryCriteria).getStates();
    return balanceOfID.get(0);
}

1 Ответ

0 голосов
/ 17 февраля 2019

Корда следует модели UTXO.Я не уверен, на какой версии Corda вы работаете, но если вы посмотрите достаточно внимательно, вы обнаружите, что в какой-то момент она вызовет OnLedgerAsset.generateSpend, и это сделает вашу работу за вас.и может использоваться статически, так как оно обозначено @JvmStatic.

...