关于C4中参考状态的问题:如果一个状态具有两个类型为LinearPointer的字段,那么Corda会自动解析这2个指针并将其添加到tx。参考状态,即使未将其添加到流代码中?如果是,那么corda这样做的原因是什么?我指的是以下功能: https://github.com/corda/corda/blob/6769b00ed5249e2eb798428a35e54ab740cf3bee/core/src/main/kotlin/net/corda/core/transactions/TransactionBuilder.kt#L540
每次调用addInput,addOutput等时都会调用它。
例如:
data class IOUState(val value: Int,
val lenderParty: Party,
val borrowerParty: Party,
val lender: LinearPointer<IDState>,
val borrower: LinearPointer<IDState>,
override val linearId: UniqueIdentifier = UniqueIdentifier()):
我只希望将贷方添加到参考状态,但是我注意到Corda在内部向TX添加了借方。参考状态。
答案 0 :(得分:1)
是的!它确实会自动添加。
如果您不希望将状态自动添加为ref状态,则只需在状态中添加线性ID,而不要添加线性指针。因此,使贷方为线性指针,借方为linearId。那应该可以解决问题!
自动添加ref状态的原因是为了给您额外的保证,即它们是1)当前的和2)已验证的来源链。 而且,通过这种方式,对方可以轻松解决这些问题。