Я хочу выдать токены от одной Стороны на счет другой Стороны. Сторона, имеющая учетную запись, просматривает транзакцию / состояние, но сторона-эмитент этого не делает. Мне нужно, чтобы эмитент мог видеть транзакцию. Я использую IssueTokensFlow.
Я предполагаю, что вы используете Tokens SDK.
Если вы откроете класс FungibleToken, вы увидите, что он наследует от AbstractToken: https://github.com/corda/token-sdk/blob/4bab8e8f20fddbdda6a135f7ed16184de5e1b24a/contracts/src/main/kotlin/com/r3/corda/lib/tokens/contracts/states/FungibleToken.kt#L42
FungibleToken
AbstractToken
Внутри AbstractToken вы увидите, что participants установлено на holder; это означает, что только holder зарегистрирует в своем хранилище результирующее FungibleToken, когда транзакция будет завершена, и вы испытываете такое поведение: https://github.com/corda/token-sdk/blob/4bab8e8f20fddbdda6a135f7ed16184de5e1b24a/contracts/src/main/kotlin/com/r3/corda/lib/tokens/contracts/states/AbstractToken.kt#L24
participants
holder
Я не уверен, почему вы хотите, чтобы issuer регистрировал выданный токен, помните, что в Corda данные распределяются по принципу необходимости знать, и не все узлы должны видеть все данные главной книги, ваш issuer должен выдать токен и что-то вроде «забыть об этом» (т.е. только holder теперь знает о токене).
issuer
В любом случае, если вы хотите, чтобы эмитент также зарегистрировал полученный токен в своем хранилище; вы можете добавить его как наблюдатель в этой транзакции (то есть он зарегистрирует все состояния, которые возникают в результате этой транзакции, независимо от того, является issuer participant или нет); Здесь вы можете видеть, что IssueTokensFlow имеет параметр observerSessions: https://github.com/corda/token-sdk/blob/4bab8e8f20fddbdda6a135f7ed16184de5e1b24a/workflows/src/main/kotlin/com/r3/corda/lib/tokens/workflows/flows/issue/IssueTokensFlow.kt#L51
participant
IssueTokensFlow
observerSessions
Таким образом, вы можете создать сеанс для issuer (т.е. FlowSession issuerSession = initiateFlow(issuer)) и передайте его IssueTokensFlow.
FlowSession issuerSession = initiateFlow(issuer)