Daniel Cousens
062540e3d9
Transaction: optional script for addInput
2014-10-17 14:16:07 +11:00
Daniel Cousens
35542e115d
types: enforce consistent type checking
2014-10-05 15:36:25 +11:00
Daniel Cousens
4e04a7e883
Transaction: use isFinite over Number.isFinite
2014-09-08 23:15:53 +10:00
Daniel Cousens
6c5a68207a
Transaction: use isFinite instead over typeof number
2014-09-08 18:42:47 +10:00
Wei Lu
cc98600154
Merge pull request #262 from dcousens/wallref
...
processTx considered harmful followup
2014-09-06 22:25:43 +08:00
Daniel Cousens
b3438c5ef2
Transaction: throw if sequence is not a number
2014-08-30 12:51:29 +10:00
Daniel Cousens
71d4c78b88
bufferutils: add Buffer reverse
2014-08-27 12:37:11 +10:00
Daniel Cousens
b66e53d1e7
Transaction: add comment to explain -1 on add*
2014-08-20 10:41:23 +10:00
Daniel Cousens
884fd542fe
Transaction: deprecate Tx signing methods
2014-08-16 17:36:06 +10:00
Daniel Cousens
04bcbadc77
transaction/ecdsa: remove unused imports
2014-07-29 02:06:17 +10:00
Daniel Cousens
c2e7840c4f
Transaction: adds assert for invalid value type
2014-07-16 17:53:38 +10:00
Daniel Cousens
a90a8e061e
Transaction: add assertion that scriptPubKey exists
2014-07-11 19:18:27 +10:00
Daniel Cousens
8eaf44881a
Transaction: improve hash length checking + tests
2014-06-17 20:18:39 +10:00
Daniel Cousens
d07cfccbc1
Transaction: move constants to Transaction
2014-06-17 12:26:14 +10:00
Daniel Cousens
4850570955
Transaction: remove untestable assert
...
Also changes the fromBuffer sanity test to use a clearer message that is
taken from the fixtures.
2014-06-17 12:24:35 +10:00
Daniel Cousens
1b1b550bd6
Transaction: add hash as addInput parameter
2014-06-17 12:23:27 +10:00
Daniel Cousens
0b17c2bc3d
Transaction: re-adds getHash as a pure hash
2014-06-17 12:22:13 +10:00
Daniel Cousens
6c9f95c253
Transaction: add sequence parameter to addInput
2014-06-17 12:21:09 +10:00
Daniel Cousens
1f0a54fb41
ECSignature: rename parsing functions to parse*
2014-06-17 00:26:16 +10:00
Daniel Cousens
eb3d9a25f7
ecdsa: moved all signature encoding to ECSignature
2014-06-16 15:47:41 +10:00
Daniel Cousens
c5252fc509
Transaction: amend confusing exception message
2014-06-16 15:44:27 +10:00
Daniel Cousens
c0e5393595
Transaction: remove .outpoint object
2014-06-16 14:21:40 +10:00
Daniel Cousens
2a267b62e6
jshint: remove unused variables
2014-06-16 14:21:40 +10:00
Daniel Cousens
d8fdd50950
Transaction: remove TxIn/TxOut
2014-06-16 14:21:40 +10:00
Daniel Cousens
b5268465db
Transaction: remove TxIn/TxOut clone
2014-06-16 14:21:39 +10:00
Daniel Cousens
a17208a549
Transaction: rename key to privKey and standardize type check
2014-06-16 14:21:39 +10:00
Daniel Cousens
d567463588
Transaction: remove estimateFee
...
This is a wallet abstraction.
2014-06-16 14:21:39 +10:00
Daniel Cousens
009fcb9b82
Transaction: now returns index of added input/output
2014-06-16 14:21:39 +10:00
Daniel Cousens
8e5fdb78a8
Transaction: rename type to hashType
2014-06-16 14:21:39 +10:00
Daniel Cousens
a2d581dec5
Transaction: rename script -> prevOutScript
2014-06-16 14:21:39 +10:00
Daniel Cousens
7f9711ef9b
Transaction: restrict Transaction constructor
2014-06-16 14:21:39 +10:00
Daniel Cousens
f85792ba22
Transaction: remove address from txOut
2014-06-16 14:21:39 +10:00
Daniel Cousens
5551c38812
Transaction: use hash Buffer instead of hex string
2014-06-16 14:21:39 +10:00
Daniel Cousens
bdc7131d0e
Transaction: renames getHash to getId
...
In turn also removes the inherent calculation of tx.hash after deserialization.
2014-06-16 14:21:39 +10:00
Daniel Cousens
867465a03f
Transaction: support non-addressable output scripts
2014-06-16 14:21:38 +10:00
Daniel Cousens
5bd636cab7
Transaction: remove TxIn/TxOut from API
2014-06-16 14:21:38 +10:00
Daniel Cousens
a6b9dd9473
Transaction: remove hash:index notation
2014-06-16 14:21:38 +10:00
Daniel Cousens
1f2becbb45
Transaction: move all constants to top
2014-06-16 14:21:38 +10:00
Daniel Cousens
40f0c91162
Transaction: use TxIn/TxOut consistently
2014-06-16 14:21:38 +10:00
Daniel Cousens
8b5647b0b9
Transaction: remove TxIn/TxOut exports
2014-06-16 14:21:38 +10:00
Daniel Cousens
e49e1796d5
Transaction: remove untested TransactionIn constructor params
2014-06-15 00:40:28 +10:00
Daniel Cousens
8c5c0a13a6
Transaction: remove untested (and broken) functionality
2014-06-15 00:40:21 +10:00
Daniel Cousens
7e5af52cd1
Transaction: mass rename from SPK/SS to Input/Output
...
I think it is important we maintain some reasoning that an Input script
is actually a script signature, but in the end, these names are more
coherent and understandable when reasoning with our code. So I think
its OK we break tradition with bitcoind.
2014-06-13 11:36:31 +10:00
Daniel Cousens
41c3b68293
templates: rename to scripts
2014-06-13 10:52:07 +10:00
Daniel Cousens
00cec9ce64
Script: move all templates to templates.js
2014-06-13 10:52:07 +10:00
Daniel Cousens
005ca31fb3
Transaction: remove unnecessary clone
2014-06-13 10:49:54 +10:00
Daniel Cousens
323f0612d0
Transaction: remove unnecessary Buffer copy
2014-06-13 10:49:53 +10:00
Daniel Cousens
9a72c7437b
Script: adds Script.EMPTY constant
2014-06-13 10:49:08 +10:00
Daniel Cousens
f5005299d1
JSHint: remove defined but never used
2014-06-04 15:46:24 +10:00
Daniel Cousens
2f44628604
Transaction: refactor hashForSignature
...
Adds asserts to ensure only valid hashes are created (until the
implementation is complete).
Also uses `Script.without` to remove OP_CODESEPARATOR from the Scripts
as required by the protocol.
2014-05-29 16:06:19 +10:00
Daniel Cousens
54950c9abb
Transaction: fix SIGHASH_* constant values
2014-05-29 16:06:19 +10:00
Daniel Cousens
db814439a3
Transaction: extract DEFAULT_SEQUENCE constant
...
Also fixes the bug when the sequence number is 0 and
`TransactionIn.defaultSequence` is used; resulting in an undefined
sequence number as it is undefined.
2014-05-29 16:06:19 +10:00
Daniel Cousens
58fd12e66d
ecdsa: always use signature object
2014-05-24 16:25:38 +10:00
Daniel Cousens
2dec1375a1
ecdsa: use (r, s) values directly
2014-05-24 00:48:31 +10:00
Daniel Cousens
99a1b7274c
Transaction: use the type embedded in the signature
2014-05-18 17:52:48 +10:00
Daniel Cousens
0468c4710c
Transaction: rename (de)serialize to [to/from]Buffer
2014-05-17 00:09:13 +10:00
Daniel Cousens
e033a872c9
Transaction: rename hashTransactionForSignature to hashForSignature
2014-05-17 00:09:13 +10:00
Daniel Cousens
e27c97a791
ECPubKey/ECKey: separate to two files
2014-05-13 16:51:06 +10:00
Daniel Cousens
05e0d08098
BufferExt: rename to bufferutils
2014-05-13 16:46:12 +10:00
Daniel Cousens
614a213d44
Transaction: remove untested hash array support
2014-05-12 10:17:38 +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
74e53b49a5
Script/Transaction: remove untested functions
...
These functions are not under test, and are unnecessary bloat due to a
confusing API.
Script.from*(asmStr) were two functions that attempted to parse ASM
codes and produce a script from this.
While useful, an parser can be introduced later under a single function
and under test... removed.
Although Script.extractPublicKeys implementation is likely to be correct,
it is not absolute in that what it returns is even strictly a set of
public keys.
It is a useful function, but can be done in a better way later,
probably checking against the Script templates instead.
Transaction.signWithKeys has some inherent undocumented behaviour, and it is not
clear when you would use it over just Transaction.addOutput and
Transaction.sign individually. Nor does it mimic anything in the
bitcoind API... removed.
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
9a7e291d70
Transaction: fix incorrect outIndex type
2014-05-08 08:52:07 +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
695eb64a3a
Clarifies Transaction.addOutput param documentation
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
02013beda9
Renames variables to be more verbose
2014-05-05 09:11:37 +10:00
Daniel Cousens
b860daf70b
Corrects endianness comments
2014-05-04 17:31:47 +10:00
Daniel Cousens
87048d3b4e
Adds performance notes
2014-05-04 17:31:47 +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
Daniel Cousens
bb80eda218
Merge pull request #165 from bitcoinjs/bigi-monkey-patching-no-more
...
Upgrade bigi & remove monkey patching
2014-05-04 07:39:19 +10:00
Wei Lu
1e6b283f9a
Remove Number.isFinite check on tx input index
2014-05-03 10:19:38 +08:00
Wei Lu
af1f121fd4
upgrade bigi & remove monkey patching
2014-05-03 10:04:54 +08:00
Daniel Cousens
69c0497038
Renames createInputScript to createPubKeyHashScriptSig
2014-04-26 04:04:19 +10:00
Daniel Cousens
a4e68d142d
Adds assertions for types in signScriptSig
2014-04-26 04:04:16 +10:00
Daniel Cousens
8ad8f6f169
Renames p2shsign to signScriptSig
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
9af8d95daf
Removes applyMultisigs and adds setScriptSig
2014-04-26 03:51:13 +10:00
Daniel Cousens
ae60e6eb95
Replacse JSBN with bigi
2014-04-22 02:19:30 +10:00
Daniel Cousens
c44af2109e
Uses typeof address === 'string' instead
2014-04-20 04:54:50 +10:00
Daniel Cousens
92f1c3e319
Fixes Transaction.addOutput() param handling to match documentation
...
Now (horrendously) supports other networks
2014-04-20 04:47:56 +10:00
Daniel Cousens
1d1306b054
Removes Address.fromPubKey and improves test vectors
2014-04-20 04:38:33 +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
Daniel Cousens
6de94856e3
Makes ECDSA capitalization consistent
2014-04-09 04:11:13 +10:00
Daniel Cousens
c99a576fbd
Migrates all usage of crypto-js/sha256 to ./crypto
2014-04-08 23:07:46 +10:00
Daniel Cousens
81d9c8e759
Renames util.js to crypto.js
2014-04-08 22:00:28 +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
63dd7c7dec
Now uses varIntToNum
2014-03-26 19:11:37 +11:00
Wei Lu
8d2525dba1
allow feePerKb to be set to zero
2014-03-26 08:43:34 +08:00
Wei Lu
75218e784f
Transaction fee calculation does not need BigInteger
2014-03-26 08:43:33 +08:00
Wei Lu
7bd312de71
get rid of magic numbers in fee estimation
2014-03-26 08:43:33 +08:00
Wei Lu
3d12d3b038
implement and use txOut.scriptPubKey
2014-03-26 08:43:32 +08:00