Commit Graph

182 Commits

Author SHA1 Message Date
Simon e97ae1dd2e Add fix for v4 joinsplits using Groth16 proof.
Closes https://github.com/zcash/zcash/issues/3636 where a tx with
multiple joinsplits would not be parsed correctly.
2018-10-28 14:48:10 -07:00
Simon 02e607b770 Add Sapling transaction support. 2018-09-17 22:42:37 -07:00
Simon 542b3f5893 Add support for Overwinter transactions. 2018-05-07 23:28:04 -07:00
Ian Munoz 97f7b5d3e3 added fOverwintered flag, nVersionGroupId and nExpiryHeight to transaction 2018-05-01 08:34:37 -06:00
Jack Grigg 80f5b45034 Implement parsing of transactions with JoinSplits (version 2) 2016-08-28 13:57:45 +12:00
Matias Alejo Garcia d36f72857b Merge pull request #31 from braydonf/rbf
Transaction: Added replace-by-fee (RBF) support
2016-06-27 10:42:34 -03:00
Braydon Fuller c0eec199ed Transaction: Support pay-to-public-key previous outputs with #fromObject 2016-01-18 13:36:33 -05:00
Braydon Fuller f1d19b438e Transaction: Added replace-by-fee (RBF) support
- Useful for bidding transactions as described in: https://bitpay.com/chaindb.pdf
- Reference: nSequence-based opt-in: https://github.com/bitcoin/bitcoin/pull/6871
2015-12-03 02:12:12 -05:00
Kirill Fomichev 446760fec7 Fix Transaction.fromObject 2015-12-01 20:42:20 +03:00
Ruben de Vries 502026086c updated _estimateSize for bare multisig input 2015-11-06 14:37:58 +01:00
Ruben de Vries 6e1e4e69c4 add function to parse list of signatures buffers into proper list of TransactionSignature objects 2015-10-30 16:11:41 +01:00
Ruben de Vries af70e69588 add test for bare multisig 2015-10-30 15:52:58 +01:00
Ruben de Vries 4f99bf0882 add bare multisig support 2015-10-30 15:37:08 +01:00
Ruben de Vries 4e007e22be make Sighash accessible 2015-10-30 15:37:03 +01:00
Ruben de Vries ff0f9f6216 fixed wrong option name in jsdoc 2015-10-30 15:36:58 +01:00
Rob Riddle 5b08d72876 Fix typos in documentation 2015-10-22 18:34:31 +03: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 19f3fe0de3 Using buffer-compare instead of copy&paste 2015-10-01 12:56:01 -07: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 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