Add some TODOs

This commit is contained in:
Mike Hearn 2015-11-09 17:32:16 +00:00
parent b8c7f949f4
commit 4b9536af04
3 changed files with 10 additions and 2 deletions

View File

@ -7,6 +7,11 @@ import java.time.Instant
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Cash
//
// Open issues:
// - Cannot do currency exchanges this way, as the contract insists that there be a single currency involved!
// - Nothing ensures cash states are not created out of thin air.
// - Complex logic to do grouping: can it be generalised out into platform code?
// Just a fake program identifier for now. In a real system it could be, for instance, the hash of the program bytecode.
val CASH_PROGRAM_ID = SecureHash.sha256("cash")

View File

@ -1,7 +1,9 @@
package core
// TODO: Implement transaction processing logic first pass (selection of contract types to run). Ensure that outputs are all accounted for.
//
// TODO: Make a decision on basic timestamping approach (use external TSAs? use fake TSA?)
// TODO: Think about how to expose time to the contract
// TODO: Pick a serialisation solution for the prototype (kryo?)
// TODO: Store transactions to a database, design some conflict detection and rollback
// TODO: Implement a basic UI that shows contracts and very basic network layer (with chat?)
// TODO: Implement a basic UI that shows contracts and very basic network layer (with chat?)

View File

@ -94,6 +94,7 @@ interface Contract {
/** Must throw an exception if there's a problem that should prevent state transition. */
fun verify(inStates: List<ContractState>, outStates: List<ContractState>, args: List<VerifiedSigned<Command>>, time: Instant)
// TODO: This should probably be a hash of a document, rather than a URL to it.
/** Unparsed reference to the natural language contract that this code is supposed to express (usually a URL). */
val legalContractReference: String
}