Commit graph

219 commits

Author SHA1 Message Date
Wei Lu
913b48e87f sign tx 2014-03-26 08:43:32 +08:00
Wei Lu
8f0413da98 always assume change output exists when estimating fee 2014-03-26 08:43:32 +08:00
Wei Lu
2dc0f69d00 createTX returns tx with expected inputs and outputs 2014-03-26 08:43:32 +08:00
Wei Lu
3d12d3b038 implement and use txOut.scriptPubKey 2014-03-26 08:43:32 +08:00
Wei Lu
5d79b094d4 remove processOutput and processExistingOutput
instead of processOutput, use processTx instead
processExistingOutput is time based which is not reliable
2014-03-26 08:43:32 +08:00
Wei Lu
b7d65fb757 Transaction is able to estimate fees 2014-03-26 08:43:31 +08:00
Wei Lu
e574693594 wallet.outputs[0].output -> wallet.outputs[0].receive
output is overloaded. Considering we have output.spend, output.receive makes sense to me
2014-03-26 08:43:31 +08:00
Wei Lu
dbb5681366 add tests and refactor wallet.processTx 2014-03-26 08:43:31 +08:00
Wei Lu
83381186d1 add (some) fromAddress and getInType tests to script 2014-03-26 08:43:31 +08:00
Wei Lu
c3880c0cdf script.toAddress -> script.getToAddress 2014-03-26 08:43:31 +08:00
Wei Lu
c39aa6cb07 minor refactoring 2014-03-26 08:42:35 +08:00
Wei Lu
01dc34d720 throw error when unspent output does not have required keys 2014-03-26 08:42:35 +08:00
Wei Lu
26afbccc98 wallet allows setting unspent outputs 2014-03-26 08:42:35 +08:00
Wei Lu
16dc68cbaa wallet exposes unspent outputs via a getter
also add reverseEndian method to convert
2014-03-26 08:42:35 +08:00
Daniel Cousens
164d31ee3d VarInt now uses correct prefix for 64-bit 2014-03-25 17:23:01 +11:00
Kyle Drake
a74c878b59
merge eckeyoutput 2014-03-24 15:11:34 -07:00
Kyle Drake
d16ea7f2a6 Merge pull request #89 from Dcousens/eckeyfnc
Adds ECPubKey.verify and tests for ECKey signing
2014-03-24 15:03:51 -07:00
Daniel Cousens
f1414b0d2f Adds verify to ECPubKey 2014-03-25 03:42:10 +11:00
Daniel Cousens
a96dfea1f4 Adds compression flag to toHex/toBin and tests 2014-03-25 03:41:44 +11:00
Daniel Cousens
f8de9a66da Changes indentation to 2 spaces 2014-03-24 16:18:02 +11:00
Daniel Cousens
fc2c495337 Standardizes function signatures 2014-03-24 16:18:00 +11:00
Daniel Cousens
36af0223de Strict comparison operators with 0 2014-03-24 06:22:26 +11:00
Daniel Cousens
a062297be2 Uses Array.prototype.foreach for stricter scoping 2014-03-24 06:22:26 +11:00
Daniel Cousens
87453f1828 Fixes variable redeclarations 2014-03-24 06:22:26 +11:00
Daniel Cousens
ed137a3b9d Various stylistic changes 2014-03-24 06:22:26 +11:00
Daniel Cousens
f580516c06 Removes unused variables 2014-03-24 06:22:26 +11:00
Wei Lu
9358a40500 tabs -> spaces 2014-03-24 03:19:39 +08:00
Daniel Cousens
e9fdfecfea Changes default EC*Key.toString behaviour to Hex 2014-03-23 18:42:52 +11:00
Daniel Cousens
b40374e332 Changes to new version-less ECKey API 2014-03-22 19:12:26 +11:00
Daniel Cousens
a1be488d1b Fixes #78 2014-03-22 16:27:10 +11:00
Wei Lu
35747fb1fb Merge pull request #76 from coinpunk/transactioncleanups
Many cleanups to Transaction, see detailed.
2014-03-21 15:54:59 +08:00
Kyle Drake
40881a7dd8
add back SIGHASH code to transaction 2014-03-20 19:15:15 -07:00
Kyle Drake
28e146431c
Many cleanups to Transaction, see detailed.
Default-ize the sequence rather than use a number, and default to bytes
for input. I doubt anybody ever uses this anyways.

Remove weird convenience code, and remove wallet logic. Checking a TX's
affects on a wallet should be managed by the wallet object.

Remove parsing for the weirder SIGHASH types. People use this library
for creating SIGHASH_ALL transactions, and I don't see the need to
support these other types at the moment since this library's more used
for wallets than for hardcore bitcoin tx analysis/creation. They weren't
tested anyways.

Add note about potentially improving performance by providing
pubkey/address. Deriving from the private key is slower, that
information should probably be cached by the end user.
2014-03-20 15:40:07 -07:00
Wei Lu
b7861e4336 replace jsbn's rng with module secure-random
This uses window.crypto.getRandomValues on browser
and crypto.randomBytes on node
2014-03-20 17:19:06 +08:00
Kyle Drake
28517bed13 Merge pull request #71 from bitcoinjs/transaction-tests
Transaction tests & fix addInput hash allowed formats
2014-03-17 18:40:49 -07:00
Kyle Drake
ace3fd122c Merge pull request #60 from bitcoinjs/hd-keychain-structure
HD wallet keychain structure
2014-03-17 17:00:18 -07:00
Wei Lu
2e6ef6cb85 fix and add tests for addInput 2014-03-17 18:01:09 +08:00
Wei Lu
a5ee07f7f6 Add tests to transaction deserialization
lock_time -> locktime
2014-03-17 16:31:35 +08:00
Wei Lu
9f2da415ea fix script constructor array check 2014-03-17 16:13:49 +08:00
Wei Lu
31cfb11178 new master key resets accounts and addresses 2014-03-16 13:36:57 +08:00
Pablo Martin
2e26a137d5 require crypto-js/sha256 instead of ./crypto-js/sha256. 2014-03-16 03:02:04 +01:00
Pablo Martin
8f383be325 fix transaction hashing (was using Message.getHash incorrectly). 2014-03-16 02:42:49 +01:00
Wei Lu
a7a7999e3f fix Wallet default constructor 2014-03-15 10:18:59 +08:00
Wei Lu
b2f010428f store accounts in closure instead of on object 2014-03-14 10:35:01 +08:00
Wei Lu
d4f3398d91 remove keys array and usage 2014-03-14 10:35:01 +08:00
Wei Lu
207163704b return private key rather than HD wallet node 2014-03-14 10:35:01 +08:00
Wei Lu
9200479159 getPrivateKey derives key on the fly
also added getPrivateKeyFromAddress
2014-03-14 10:35:01 +08:00
Wei Lu
ab9e782d14 private a method to generate change addresses 2014-03-14 10:35:00 +08:00
Wei Lu
1212099bfc Wallet address derivation follows bip32/bitcoinj keychain structure
Also wallet accepts bytes in constructor

[#60]
2014-03-14 10:34:37 +08:00
Wei Lu
44012b47b5 change hd wallet constructor to take bytes
original constructor -> fromSeedString, fromMasterHex -> fromSeedHex

[#60]
2014-03-14 10:03:56 +08:00