В Corda ресурсы, которые можно разделить и объединить, должны быть представлены с помощью интерфейса FungibleAsset
.
Пакет finance
определяет дополнительный класс OnLedgerAsset
, который, кажется, предоставляет аналогичные функции для выпуска, разделения, слияния и выхода взаимозаменяемых активов.
Если я определяю свой собственный взаимозаменяемый актив, следует ли создать подкласс класса OnLedgerAsset
?
FungibleAsset
определен в Corda Core и используется хранилищем узла для разделения и объединения взаимозаменяемых активов. Все взаимозаменяемые активы должны реализовывать его.
OnLedgerAsset
определен в пакете finance
. Он используется для обеспечения того, чтобы все взаимозаменяемые активы, определенные в пакете finance
, имели дополнительные общие методы для выпуска, разделения, слияния и выхода. Пакет finance
остается нестабильным (см. https://docs.corda.net/corda-api.html#corda-incubating-modules), и его API, вероятно, сильно изменится в будущем, чтобы соответствовать требованиям реального бизнеса.
Поэтому я бы рекомендовал вам пока не внедрять OnLedgerAsset
. Большая часть функций, предоставляемых OnLedgerAsset
, вероятно, в будущем будет перенесена в хранилище узла.
Да, пока. Мы надеемся, что такое поведение будет встроено в хранилище узла / Corda Core в будущем.
Это приводит к написанию собственного алгоритма для решения проблемы выбора монеты или состояния при рассмотрении того, какое состояние потратить или передать. есть ли другой способ или какая-то встроенная функция для использования? Cash использует generateSpend в OnLedgerAsset для выбора монет. не удалось найти, что используется в товарном контракте ...
Это означало бы, что если я создаю свой собственный Fungible актив, я должен написать свои собственные методы или потоки выпуска, разделения, слияния и выхода.