Commit Graph

106 Commits

Author SHA1 Message Date
Ruben de Vries f9d9fa0622 add test for parsing list of signatures 2015-10-30 17:07:04 +01:00
Ruben de Vries af70e69588 add test for bare multisig 2015-10-30 15:52:58 +01:00
Braydon Fuller 3d591324c3 Merge pull request #1340 from eordano/bip69
Privacy improvements by sorting inputs and outputs
2015-10-13 17:56:40 -04:00
Braydon Fuller abae55595b Merge pull request #1345 from fanatid/feature/Transaction.to
allow Transaction.to take array (#1334)
2015-10-13 17:56:29 -04:00
Kirill Fomichev 24ef291bed allow Transaction.to take array 2015-10-13 23:35:16 +03:00
Esteban Ordano 026f878e51 Add tests for bip69 from bitcoinjs 2015-09-30 11:54:05 -07:00
Esteban Ordano fb65145ba7 Privacy improvement by sorting inputs and outputs
See BIP69 for more details:
https://github.com/bitcoin/bips/blob/master/bip-0069.mediawiki
2015-09-29 21:55:14 -07:00
Braydon Fuller 0e24e4c421 Return zero for coinbase transaction fee. 2015-09-22 20:56:03 -04:00
Zaki Manian c9980dc9b2 Ensure that sequence number is preserved on after serialize->deserialize 2015-08-27 15:46:22 -07:00
Zaki Manian c7c1122123 Adjusted test cases as requested.
Test that the SequenceNumber is zero

Remove unncessary expect
2015-08-27 14:54:42 -07:00
Zaki Manian aa8e548800 To be effective within the current Bitcoin network, the inputs to a transaction
with an nLocktime must be not the standard max value.

We set the sequence number of 0 if the value is max.

Currently sequence numbers other than MAX_INT32 have no meaning in the Bitcoin protocol
but this may change in future BIPS
2015-08-24 20:07:57 -07:00
Braydon Fuller a50fccef4d Changes behavior of `toJSON` to work as expected with `JSON.stringify`
- see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON%28%29_behavior
- Updates CONTRIBUTING with changes to Stardard Methods
- Aliases toJSON for toObject
- Removes all `fromJSON` methods, and many cases replaces with `fromObject`
- Constructors expect an object parsed via `JSON.parse` for JSON input
2015-08-13 10:46:08 -04:00
Braydon Fuller e7c7a9ad89 Check for consistency if object argument includes a hash. 2015-08-12 20:26:25 -04:00
Patrick Nagurny 7c6df33ab7 Merge pull request #1301 from braydonf/pubkey
Added support for signing publickey inputs.
2015-07-30 10:21:44 -04:00
Patrick Nagurny 0dec8e7bd8 Merge pull request #1294 from braydonf/tx-unmodified-arguments
Objects passed as arguments are unmodified.
2015-07-30 10:16:00 -04:00
Braydon Fuller eb077eb3df Added support for signing publickey inputs. 2015-07-27 15:16:58 -04:00
Braydon Fuller d9047eebf0 Detect if scriptSig (input) or scriptPubKey (output) is previously known. 2015-07-09 11:30:20 -04:00
Braydon Fuller 3d1dc7aafe Objects passed as arguments are unmodified. 2015-07-06 19:32:34 -04:00
Braydon Fuller 37b5d3d588 Merge pull request #1264 from fanatid/fix/sortOutputs
fix Transaction.sortOutputs
2015-06-18 11:06:20 -04:00
Ivan Socolsky f638b5bd6e test fee per kb 2015-06-10 22:28:15 -03:00
Kirill Fomichev b9d52b79c8 fix Transaction.sortOutputs 2015-06-05 21:11:40 +03:00
Braydon Fuller ee651df635 Added test for null input for transaction.verify() 2015-05-23 20:28:33 -04:00
David de Kloet 3ace170ac5 Ignore fee error when unspent output is actually negative, rather than already when the check for negative unspent output is disabled. 2015-05-23 20:13:53 -04:00
David de Kloet ac2fbe2777 When disableMoreOutputThanInput is set for getSerializationError, also disable the fee checks as the concept of a fee is meaningless when unspent output value is negative. This also allows for removing the opts from buildSkipTest again and simplifying the skip test for disableMoreOutputThanInput. 2015-05-23 20:13:53 -04:00
David de Kloet dc07788e53 Put )); on a separate line. 2015-05-23 20:13:53 -04:00
David de Kloet 6729b38944 Expect the correct error to be thrown. 2015-05-23 20:13:53 -04:00
David de Kloet 8c5b2c851b When checking for transaction serialization errors, check the output amount before checking fee errors. Added a test for it and also improved buildSkipTest by specifying which error to expect and using it for some tests where it wasn't used yet. 2015-05-23 20:13:53 -04:00
Manuel Araoz 8a13a22baf add Transaction#clearOutputs 2015-05-15 15:29:05 -03:00
Braydon Fuller 458abe069e Fixed issue with handling invalid output scripts
- Changed toObject serialization to always use a hexa string for a script
- Updated inspect method to handle a null script
- Roundtrip toObject/fromObject with an invalid script
- Additional test coverage for Output
2015-05-14 01:50:14 -04:00
David de Kloet e294505486 Some transaction tests were not run because of the way they were built. Fixed this so they are run and fixed one test that still assumed the dust limit at 5460 instead of 546. 2015-05-13 09:14:00 +02:00
Patrick Nagurny de078a40d3 If output.script is InvalidBuffer, return null instead of throwing error 2015-05-12 17:23:56 -04:00
Braydon Fuller 53b6171547 Added coverage to transaction and fixed bug with serialization check. 2015-05-11 13:39:53 -04:00
David de Kloet b1e54101d3 Call the parent error of the fee errors FeeError for backwards compatibility. 2015-05-10 00:38:56 +02:00
David de Kloet 8da9c4a44a Give the 3 fee errors a common parent error. 2015-05-10 00:32:27 +02:00
David de Kloet d1eb190626 Introduce different kinds of FeeError to distinguish the different cases. Fix the issue uncovered by this, which is that getFee might not be the actual fee, but only an estimate, if a change address is specified but there isn't enough to pay a fee and have change. 2015-05-09 21:06:40 +02:00
David de Kloet 16dc489b08 Make sure a specified transaction fee and outputs add up to the sum of the inputs. Don't ignore the fee when it's explicitly specified. 2015-05-09 18:44:26 +02:00
Braydon Fuller f8ea7e39cc Included satoshis check during checked serialization. 2015-04-30 13:23:44 -04:00
Braydon Fuller cd12164fae Added test coverage to transaction.verify 2015-04-30 12:09:59 -04:00
Braydon Fuller 3d447ded79 Update bn.js to 2.0.4 to handle 53 bit precision number input. 2015-04-30 11:20:09 -04:00
Manuel Araoz d556a0c33d fix regressions 2015-04-29 18:55:42 -03:00
Braydon Fuller bcd4efb724 Added `checkState` for positive integer in Output satoshis 2015-04-10 18:39:08 -04:00
Braydon Fuller 3005e19cbf Added precondition to transaction.to for a positive integer as an amount 2015-04-10 18:07:20 -04:00
Kirill Fomichev c010cb8c50 drop cached value for inputAmount and outputAmount 2015-03-31 16:22:27 +03:00
eordano 294ff097a1 Add error if shuffle function doesnt return an expected result 2015-03-11 15:49:42 -03:00
eordano a37e7b140c Add functionality to randomize outputs 2015-03-11 15:38:53 -03:00
Manuel Araoz b685b5d28a add inputAmount and outputAmount to docs 2015-03-02 10:44:39 -03:00
Manuel Araoz b92fd915eb increase coverage for Input and Output, fix some bugs 2015-02-27 18:46:27 -03:00
Manuel Araoz d5fd3919c9 add Transaction#inputAmount and outputAmount 2015-02-27 16:38:48 -03:00
eordano 405f4f43df Update dust amount 2015-02-24 17:24:22 -03:00
eordano c5d7eacfac Add check for output amount > input amount 2015-02-24 16:34:52 -03:00