Я ищу правильный процесс обновления контракта. Рассмотрим следующий пример:
SimpleContract : Contract {
data class State(override val owner: AbstractParty, val relevantParticipant: AbstractParty) : OwnableState {
override val participants: List<AbstractParty> = listOf(owner, relevantParticipant)
override fun withNewOwner(newOwner: AbstractParty): CommandAndState
= CommandAndState(Commands.Move(), copy(owner = newOwner))
}
}
Как я понимаю, это состояние сохраняется только в хранилище владельца, но соответствующий участник также имеет (в своем хранилище транзакций) транзакцию, в которой SimpleContract.State является одним из выходных данных. Если владелец должен был (авторизовать и) инициировать обновление, поток завершается неудачей, поскольку соответствующий участник не имеет для него авторизованного обновления контракта. Какой правильный подход здесь?