Da2ce7:New Transaction
make new transaction
txnumber is a random string given to every transaction for identification purposes.
pubkey is assumed to be owned by the client that preforms the 'readying' of the transition (build > ready states)
States: build this state a transaction doesn't need to fulfil any rules. The user just defines what she wants in the transaction. ready this state is after a client that has (or knows of the), private keys checks the transaction, checking and adding more inputs or change output if necessary. done the transaction has been signed by and all the inputs are vaild. submited the transaction has successfully publicly announced.
This entire processing is lazy! Bitcoin will automatically fill-out everything just as it dose at-the-moment with the readytransaction stage.
Please not this draft doesn't include all possible error responses.
commands:
/// make a new transaction (1 override) newtransaction newtransaction {name} response {txnumber}
/// add an input to the transaction. (1 overrides) addinput {txnumber} {txid} {pubkey} addinput {txnumber} {txid} {pubkey} {comment} response {txnumber} {inid}
/// add outputs to the transaction (6 overrides) /// add fee to transaction addoutput {txnumber} {amount} {forced:suggested:optional} addoutput {txnumber} {amount} {forced:suggested:optional} {comment} // add change address to transaction addoutput {txnumber} {pubkey} addoutput {txnumber} {pubkey} {comment} // add send outputs addoutput {txnumber} {address} {amount} addoutput {txnumber} {address} {amount} {comment} response {txnumber} {outid} // add many send outputs addoutputlist {txnumber} [{address},{amount}] response {txnumber} [{outid}]
/// remove input or outpus (1 override) remove {txnumber} {inid or outid} remove {txnumber} [{inid or outid}] response {txnumber} droped: {inid or outid} response {txnumber} droped: [{inid or outid}]
/// prints out human readable information about the tranaction shownewtransaction {txnumber} (1 override) response {txnumber} in: [{inid},{address},{amount},(comment)] in total: {amount} out: [{outid},{address},{amount},(comment)] out total: {amount} fee: {amount} state: {building:ready:done:submitted} shownewtransaction {txid} (1 override) response {txid} in: [{inid},{address},{amount},(comment)] in total: {amount} out: [{outid},{address},{amount},(comment)] out total: {amount} fee: {amount} block: {block number}
/// demote a transaction (1 override) demotetransaction {txnumber} demotetransaction {txnumber} {build:ready:done} response {txnumber} {building:ready:done}
/// exports a binary encoded transition (1 override) exporttransaction {txnumber} exporttransaction {txid} response {binary data base 64 (or 58?) encoded}
/// import a binary encoded transition exporttransaction {binary data base 64 (or 58?) encoded} response {txnumber}
/// check and complete build translation reddytransaction {txnumber} response {txnumber} {has made changes:no changes needed:not enough coins:invalid transaction}
/// sign ready transaction signtransaction {txnumber} (1 override) // calls reddytransaction before hand if needed signtransaction -r {txnumber} response {txnumber} {done:failed}
/// publish a done transaction to peers submittransaction {txnumber} response {txnumber} {txid}
/// complete transaction from any stage and publish it completeransaction {txnumber} response {txnumber} {txid}
/// delete a transaction from local client droptransaction {txnumber} responce dropped: {txnumber}