Commit Graph

162 Commits

Author SHA1 Message Date
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
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
Braydon Fuller
74dee1fda7 Include hash in toObject/toJSON results. 2015-08-11 11:42:23 -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
Esteban Ordano
4280b993e0 Add CLTV (BIP65) support 2015-07-01 18:46:54 -07:00
Braydon Fuller
b5ada707bd Benchmarks for block serialization & 4x performance improvement. 2015-06-24 21:19: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
0e6aec1c94 allow configuration of fee per kb 2015-06-10 22:17:12 -03:00
Ivan Socolsky
d9d5a26085 fix computation of fee without change output 2015-06-10 17:37:48 -03:00
Kirill Fomichev
b9d52b79c8 fix Transaction.sortOutputs 2015-06-05 21:11:40 +03:00
Braydon Fuller
589d017a14 Refactored transaction.getSerializationError to be more concise.
- _hasMoreOutputThanInput() and _isInvalidSatoshis() merged with getSerializationError()
- _isFeeDifferent(), _isFeeTooLarge() and _isFeeTooSmall merged with _hasFeeError()
2015-05-23 20:13:53 -04:00
David de Kloet
0b6eaf0f1e Call getUnspentValue() only once in getSerializationError(). 2015-05-23 20:13:53 -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
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
Braydon Fuller
b53f249d02 Merge pull request #1235 from maraoz/transaction/clearOutputs
add Transaction#clearOutputs
2015-05-18 16:24:02 -04:00
Braydon Fuller
c251c2bfd1 Merge pull request #1226 from dskloet/refactor/get-serialization-error
Simplify transaction.getSerializationError()
2015-05-18 15:08:50 -04:00
David de Kloet
99d8ac1957 Remove an unnecessary space. 2015-05-16 22:54:30 +02:00
David de Kloet
3d9560c0c5 Don't break lines at 80 characters. 2015-05-16 22:50:44 +02:00
David de Kloet
8a8412f04a Don't break lines at 80 characters. 2015-05-16 17:06:35 +02: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
Braydon Fuller
beeb294e45 Merge pull request #1217 from fanatid/fix/writeable
fix typo: defineProperty.writeable
2015-05-13 09:22:56 -04:00
David de Kloet
26bd5a864a Simplify transaction.getSerializationError(). This takes care of some lint errors about number of statements and cyclomatic complexity. 2015-05-13 00:26:33 +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
Kirill Fomichev
346b2af446 delete writable for accessor property 2015-05-10 23:55:55 +03:00
David de Kloet
056f171e22 Remove the ability to disable the check that a specified fee is equal to the unspent value. 2015-05-10 01:32:28 +02: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
Manuel Araoz
dfc075e5d1 fix block parsing problem 2015-04-29 17:29:33 -03:00
Manuel Araoz
e1921429cf remove stray console.log 2015-04-28 19:17:45 -03:00
Manuel Araoz
9a50958943 fix Block#toObject API 2015-04-28 16:42:56 -03:00
Manuel Araoz
dff0891871 add failing test for Block#toObject 2015-04-28 15:17:41 -03:00
Daniel Cousens
05a8cf9630 sighash: remove dead branch 2015-04-27 18:49:45 +10:00
Braydon Fuller
bcd4efb724 Added checkState for positive integer in Output satoshis 2015-04-10 18:39:08 -04:00