Commit graph

38 commits

Author SHA1 Message Date
Daniel Cousens 2dec1375a1 ecdsa: use (r, s) values directly 2014-05-24 00:48:31 +10:00
Daniel Cousens 0468c4710c Transaction: rename (de)serialize to [to/from]Buffer 2014-05-17 00:09:13 +10:00
Daniel Cousens 55681e7e5d Script: use PubKey objects not prebuilt Buffers 2014-05-17 00:09:13 +10:00
Daniel Cousens 6c0eebe94b tests: use filepaths directly
After a long IRC discussion, it was decided that the use of direct
filepaths instead of the module is a more pure form of testing ,
although it may provide less overall coverage than the mixed integration
style imports used previously.

This will need to be remedied by further integration testing in
/test/integration.
2014-05-13 18:05:56 +10:00
Daniel Cousens 7a740c2e7b tests: forces consistent import syntax 2014-05-13 16:46:08 +10:00
Daniel Cousens f18c5e4c1e Script: removes Script.createP2SHMultiSigScriptSig
It is favoured to compose the scriptSig manually using
Script.createP2SHScriptSig and Script.createMultisigScriptSig.

Added a test to verify that createMultisigScriptSig throws when not
enough signatures a provided and the redeemScript is given.
2014-05-09 16:26:35 +10:00
Daniel Cousens f8e662e495 Script: rename toScriptHash to getHash and add tests 2014-05-09 13:07:06 +10:00
Daniel Cousens 708aa03390 Transaction/Script: bitcoin network no longer implied
A Transaction (and its subsequent scripts) do not carry any network
specific information in the Bitcoin protocol.
Therefore they can not (without further context) produce the network
specific constants for the generation of the base58 Addresses.

As TransactionOut.address is used heavily throughout Wallet and other
areas of the library, this could not be entirely removed without a large
number of changes.
For now, TransactionOut.address is only defined in the case of
Tx.addOutput being used directly:

      Transaction.addOutput(address, value)
2014-05-08 10:59:58 +10:00
Daniel Cousens 0822def7e0 Script: add standard Script.create*ScriptPubKey
Extracts the two Script types out of Script.createOutputScript, and puts
them both under test.

Also renames Script.createMultiSigOutputScript to adhere to the same
convention.
2014-05-08 10:59:58 +10:00
Daniel Cousens 57b8afbdab Network: rename Network to Networks
This change removes the most common ambiguities.
As the network module is not representative of a class, the lower case
has been used.
2014-05-08 10:59:58 +10:00
Daniel Cousens 76323a07d0 Transaction: restrict TxIn/TxOut constructor params
To keep this change minimal, both TxIn/TxOut still use the parameter
object for initialization.  TxOut accepts only the types it uses
internally, and not hex or byte arrays for scripts.

The clone is unnecessary as a TransactionOut is never mutated after its
creation.

This resulted in TransactionOut.scriptPubKey no longer being needed,
and was removed.  To access the scriptPubKey as a byte buffer, a user
can simply use:

	TransactionOut.script.toBuffer()

Unfortunately, this leaves TransactionOut in a sorry state of test.
Something that needs to be fixed.
2014-05-08 10:59:58 +10:00
Daniel Cousens a77846701f Fixes network support for TxOut 2014-05-06 15:40:40 +10:00
Daniel Cousens 4012b82bec Fixes Transaction.addOutput(Address, Number) 2014-05-06 15:40:40 +10:00
Daniel Cousens baa568697b Transaction.deserialize no longer mutates input 2014-05-05 09:11:37 +10:00
Daniel Cousens a8cf2fdd9e Changes internal serialization to use Buffers instead 2014-05-04 17:31:22 +10:00
Daniel Cousens 10ee5532c3 Serialize now returns a buffer 2014-05-04 15:37:25 +10:00
Daniel Cousens 09c6a787d9 Changes sequence number to an actual Number 2014-05-04 15:37:25 +10:00
Wei Lu 70219c877b Fixes signScriptSig test 2014-04-26 13:39:26 +08:00
Daniel Cousens 8ad8f6f169 Renames p2shsign to signScriptSig 2014-04-26 03:51:13 +10:00
Daniel Cousens fbf8211cab Adds tests for TX.prototype.p2shsign 2014-04-26 03:51:13 +10:00
Daniel Cousens 1c52f9f3d8 Removes convert module 2014-04-26 03:51:13 +10:00
Daniel Cousens 5546cae928 Removes type coercion for a stricter TX API 2014-04-26 03:51:13 +10:00
Daniel Cousens 682ec133bb Migrates Address to stricter API subset 2014-04-18 17:12:29 +10:00
Daniel Cousens b4f70dcdde Migrates ECKey to stricter API 2014-04-18 06:36:27 +10:00
Wei Lu 93fe1b4c78 cosmetic standardization
[closes #56]
2014-03-31 11:47:47 +08:00
Daniel Cousens 8f7f50d555 Removes deprecated ECKey.export function 2014-03-29 18:12:02 +11:00
Daniel Cousens f12f8eac48 Adds failing test for larger transaction 2014-03-26 19:11:10 +11:00
Wei Lu 8d2525dba1 allow feePerKb to be set to zero 2014-03-26 08:43:34 +08:00
Wei Lu 3d12d3b038 implement and use txOut.scriptPubKey 2014-03-26 08:43:32 +08:00
Wei Lu eb9e98aa7b minor refactoring: Transaction tests use fixtures 2014-03-26 08:43:31 +08:00
Wei Lu b7d65fb757 Transaction is able to estimate fees 2014-03-26 08:43:31 +08:00
Kyle Drake 28e146431c
Many cleanups to Transaction, see detailed.
Default-ize the sequence rather than use a number, and default to bytes
for input. I doubt anybody ever uses this anyways.

Remove weird convenience code, and remove wallet logic. Checking a TX's
affects on a wallet should be managed by the wallet object.

Remove parsing for the weirder SIGHASH types. People use this library
for creating SIGHASH_ALL transactions, and I don't see the need to
support these other types at the moment since this library's more used
for wallets than for hardcore bitcoin tx analysis/creation. They weren't
tested anyways.

Add note about potentially improving performance by providing
pubkey/address. Deriving from the private key is slower, that
information should probably be cached by the end user.
2014-03-20 15:40:07 -07:00
Wei Lu a26c01b8da Test validateSig. Use validateSig to test transaction signing 2014-03-18 09:31:17 +08:00
Wei Lu 9df37a31b1 test transaction signing (failing) 2014-03-18 01:32:31 +08:00
Wei Lu be9c19c50c add tests to addOutput 2014-03-17 18:01:36 +08:00
Wei Lu 2e6ef6cb85 fix and add tests for addInput 2014-03-17 18:01:09 +08:00
Wei Lu a5ee07f7f6 Add tests to transaction deserialization
lock_time -> locktime
2014-03-17 16:31:35 +08:00
Wei Lu 45e55a07b0 fix transaction serialization/deserialization
[closes #58]
2014-03-09 13:46:20 +08:00