"pubkeys validate" -> "validate pubkeys"

There are going to be many validate functions. It makes sense to group them
together. Eventually this will culminate in a "validate all" command that runs
every validation function.
rename "redeem validate" -> "validate redeem"

..will be adding more "validate" functions shortly. they will be grouped
together.
add ability to validate inputs

this checks to see that the inputs in the "inputs" section of the datastore are
in one-to-one correspondence with the inputs in the raw transaction.
remove accidental console.log

Looks like I console.logged the password at some earlier date, committed it,
and didn't notice. Not sure how this escaped my attention, sine I run cosign
constantly during tests - possibly rebasing at one point may have gone wrong.
add output validation

This checks to make sure that the outputs in the transaction are the same as
the outputs in the db file.
add validate.inputtxs

The purpose of this validator is to make sure tha the inputtxs, which are
normally retrieved from bitcoind but may also be passed around in this file,
actually correspond to the "inputs" as listed in the db (but not the inputs in
the raw tx). This to make sure that the inputtxs had been retrieved correctly.
Two checks are performed: 1) that each input is present as an inputtxs, and
that the tx in the inputtx hashes to the txid correctly (i.e. that the correct
tx is there).
add validator for fees

This calculates what fees are being paid. Note that this uses the outputs and
inputtxs and takes them at face value - they need to be validated separately
using validate.outputs and validate.inputtxs.
add round

Values like 0.1 might add poorly and then end up with an incorrect value for
the fees. Better to round to satoshis before converting back to bitcoin, which
will ensure that any tiny rounding errors are rounded away.
add validate.all convenience command

The purpose of validate.all is to run all validate functions so that someone
who is interested in signing a transaction can confirm at a glance that it is
something that they want to sign. There is only one validate function that is
yet to be written that should be added (that I can think of), and that is a
validate.sigs validator that checks that all existing signatures are valid, and
counts then, and sees if the transaction can be broadcast. Actually, one more
after that should be something like validate.standard, to confirm that the
transaction is standard before broadcasting it (so that it will actually be
included in a block).
add ability to output to p2sh address
correct error message for 0 fees
add validate.all to help output
add validate.p2sh

One of the most important ways things can go wrong is for the p2sh address to
be generated incorrectly, leaving any bitcoins sent to that address
unretrievable. This validate function recalculates the p2sh address
corresponding to the redeemScript, and confirms that the wallet contains this
address and script. This validation combined with validate.redeem (ensuring the
redeem script is what you think it is) and validate.pubkeys (ensuring that you
have the private key for at least one of the public keys) makes it unlikely
that you have generated an address from which bitcoins can't be retrieved
added validate.sigs

The purpose of this function is to loop through the inputs and make sure any
sigs are actually valid. This requires a bit of intelligence to figure out what
is actually a signature and what is something else. We assume if you are runnin
this function that the transaction was created with cosign and that there is
only one input (this will need to be extended later but works fine for our
purposes for now). It will count the number of signatures and explain whether
the transaction is fully signed and ready to be broadcast or not. For the
moment, the signatures are not checked for validity - it is assumed they are
valid. If not, the transaction will not be included in a block. The signatures
probably should be checked for validity, but it is not imperative - this
function for now is mostly about informing the user about how many more
signatures are needed.
change case to be consistent with other "fee" messages
move console.log out of internal function and into external function
put console.log for pubkeys into external function
add output for validate.inputs
add output for validate.outputs
correct remnants from pre-class cosign

These function calls should have been converted to this.x when cosign was
converted into a class. Fixing this oversight now.