如果我说事务B只有在对先前的事务A有一些引用时才有效,我可以在事务B的附件中包含事务A的状态属性/合同代码吗?如何引用此附件以及从何处检索该附件?事务B的参与节点是否能够查看事务A的内容以进行验证?
答案 0 :(得分:0)
假设您有一个StateB
,它仅在存在对给定事务的引用时才有效。然后,您可以在StateB
类型SignedTransaction
中定义一个字段来保存参考。
在Kotlin:
class StateB(val txRef: SignedTransaction?) : ContractState {
override val participants: List<AbstractParty> get() = listOf()
override val contract: TemplateContract get() = TemplateContract()
}
在Java中:
class StateB implements ContractState {
SignedTransaction txRef;
StateB(SignedTransaction txRef) {
this.txRef = txRef;
}
public SignedTransaction getTxRef() {
return txRef;
}
@NotNull
@Override
public Contract getContract() {
return new TemplateContract();
}
@NotNull
@Override
public List<AbstractParty> getParticipants() {
return ImmutableList.of();
}
}
对SignedTransaction
的引用可以为空。因此,您可以想象一个工作流程,您最初创建一个&#34;无效&#34; StateB
- 一个没有引用使其有效的交易的人 - 然后通过一个与关联的StateB
输出StateB
的交易来演变SignedTransaction
,使其成为&#34;有效&#34; StateB
。