TransactionDSL: identical input states should have distinct StateRefs

This commit is contained in:
Andrius Dagys 2017-01-11 11:20:21 +00:00
parent 354977ffea
commit d2d25c9954

@ -9,6 +9,7 @@ import net.corda.core.transactions.TransactionBuilder
import net.corda.core.utilities.DUMMY_NOTARY
import java.time.Duration
import java.time.Instant
import java.util.*
/**
* This interface defines the bare bone functionality that a Transaction DSL interpreter should implement.
@ -77,6 +78,9 @@ class TransactionDSL<out T : TransactionDSLInterpreter>(val interpreter: T) : Tr
fun input(state: ContractState) {
val transaction = ledgerInterpreter._unverifiedTransaction(null, TransactionBuilder(notary = DUMMY_NOTARY)) {
output { state }
// Add a dummy randomised output so that the transaction id differs when issuing the same state multiple times
val nonceState = DummyContract.SingleOwnerState(Random().nextInt(), DUMMY_NOTARY.owningKey)
output { nonceState }
}
input(transaction.outRef<ContractState>(0).ref)
}