Я реализую пользовательский FungibleAsset, выпущенный в виде валюты, в Corda 3.4, токен представляет собой простое перечисление.
Я застрял с методом generateSpend(...)
.
В net.corda.finance.contracts.asset.Cash.generateSpend(...)
fun используется AbstractCashSelection.unconsumedCashStatesForSpending(...)
(в общем), что под капотом вызывает VaultService.softLockReserve(...)
.
Вопросы:
1. Я никогда не встречал использования VaultService.softLockRelease(...)
для потока кеша, снимается ли блокировка неявно?
2. Внедрить AbstractCashSelection
-подобный CustomTokenSelection
и создать копию денежного потока?
3. Готов ли текущий поток денежных средств?
Пожалуйста, рассмотрите возможность использования/вклада в новый SDK Tokens. https://github.com/corda/токен-SDK который заменит экспериментальный финансовый модуль (и его текущий контракт с наличными)
Я не возился с Token SDK, но из истории Corda это выглядит примерно так:
override val amount: Amount<Issued<Equity>>
В котором Справедливость будет выглядеть так:
@CordaSerializable
data class Equity(
val isin: String,
val defaultFractionDigits: Int = 0
) : TokenizableAssetInfo {
override val displayTokenSize: BigDecimal
get() = BigDecimal.ONE.scaleByPowerOfTen(-defaultFractionDigits)
}
Опять же, часть приведенного выше кода может быть немного устаревшей, так как я не возился с token-sdk, а просто полезная ссылка на то, как взаимозаменяемые состояния используются с Amount, возможно, нечто подобное происходит внутри SDK.