По какой-то причине ContractUpgradeFlow.Initiate
не идентифицируется как тип FlowLogic
. вероятно, потому что это не прямой подтип FlowLogic
. Спасибо за указание на это, я бы поднял ошибку для этого.
Однако вы можете использовать обходной путь, чтобы обойти это, создать новый поток и вызвать ContractUpgradeFlow.Initiate
как подпоток.
@InitiatingFlow
@StartableByRPC
public class ExplicitUpgradeFlow extends FlowLogic<Void> {
private final StateAndRef oldStateAndRef;
private final Class newContractClass;
public ExplicitUpgradeFlow(StateAndRef oldStateAndRef, Class newContractClass) {
this.oldStateAndRef = oldStateAndRef;
this.newContractClass = newContractClass;
}
@Override
public Void call() throws FlowException {
subFlow(new ContractUpgradeFlow.Initiate(oldStateAndRef, newContractClass));
return null;
}
}