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
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
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
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
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
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
eordano
427c9b3234
Less repetition on tests for skipping serialization checks
2015-02-24 15:31:26 -03:00
eordano
a6df7a175e
Better granularity on serialize() checks
2015-02-24 13:02:34 -03:00
Manuel Aráoz
e2ff93b714
Merge pull request #1083 from eordano/feature/multisigchecks
...
Transaction: Check that threshold is less than amount of signatures
2015-02-18 12:01:58 -03:00
eordano
c19d5c6501
Transaction: Check that threshold is less than amount of signatures
2015-02-18 11:52:50 -03:00
eordano
7e88167891
Add check for small fees
2015-02-16 12:47:53 -03:00
Manuel Araoz
8ca396c34f
refactor transaction input deserializtion
2015-02-11 11:40:24 -03:00
Manuel Araoz
a7fdcc13a0
weird -> anyone can spend
2015-02-11 10:59:07 -03:00
Manuel Araoz
eae1638b32
add coverage
2015-02-10 18:48:07 -03:00
Manuel Araoz
0f17927fde
fix 0 fee error
2015-02-10 18:29:14 -03:00
Manuel Araoz
aa1158097d
fix bug in change calculation
2015-02-10 18:12:45 -03:00
Manuel Araoz
986264e181
add locktime docs and Transaction#getLockTime
2015-02-10 13:03:07 -03:00
Esteban Ordano
f8974b383a
transaction: Change variable name from time to height
2015-02-10 10:29:29 -03:00
Esteban Ordano
7cf3b6eb91
Split setLockTime in two methods
2015-02-10 10:29:29 -03:00
Manuel Aráoz
ebf43b3f4a
Merge pull request #1056 from eordano/docs/transaction
...
Rewrite of Transaction doc
2015-02-09 14:20:13 -03:00