Commit graph

178 commits

Author SHA1 Message Date
Daniel Cousens
d12a2cde49 Adds tests and fixtures for ./crypto 2014-04-08 23:39:22 +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
Daniel Cousens
1df5fadc6f Renames test description appropriately 2014-04-08 17:35:03 +10:00
Daniel Cousens
c93bad3be1 Fixes actual/expected parameter ordering 2014-04-07 05:04:49 +10:00
Wei Lu
703275f235 Merge pull request #112 from dcousens/b58
Base58 isolation and preparation for Buffers
2014-04-04 16:41:00 +08:00
Daniel Cousens
6fa0c07763 Changes existing code to use new base58 API 2014-04-04 05:10:12 +11:00
Daniel Cousens
f53b821cc9 Isolates Base58Check encoding from Base58 code/tests 2014-04-03 19:45:05 +11:00
Wei Lu
364a24fd1e assert.throws matches error messages properly 2014-04-02 12:43:34 +08:00
lms
b79ccb2c0c 100% coverage of wallet.js 2014-04-01 21:05:46 +02:00
Daniel Cousens
04684b74f1 Some cosmetic fixes 2014-04-01 15:52:40 +11:00
Wei Lu
93fe1b4c78 cosmetic standardization
[closes #56]
2014-03-31 11:47:47 +08:00
Wei Lu
161127d65a Merge branch 'msgvers-patch2' of github.com:dcousens/bitcoinjs-lib into dcousens-msgvers-patch2
Conflicts:
	src/message.js
2014-03-31 10:08:25 +08:00
Daniel Cousens
c521add619 Moves shared constants initialization to beforeEach 2014-03-31 08:21:57 +11:00
Wei Lu
66e04fe701 Merge branch 'multisig_tests' of github.com:juliustayl/bitcoinjs-lib into juliustayl-multisig_tests
Conflicts:
	test/script.js
2014-03-29 22:13:39 +08:00
Wei Lu
db35a84a80 Merge pull request #105 from dcousens/removeexport
Removes deprecated ECKey.export function
2014-03-29 19:24:54 +08:00
Daniel Cousens
8f7f50d555 Removes deprecated ECKey.export function 2014-03-29 18:12:02 +11:00
Daniel Cousens
10dea421d5 Removes circular dependancy of ECKey 2014-03-29 17:50:50 +11:00
Daniel Cousens
78e91e8648 Further isolates failure tests and joins [un]/compressed key tests 2014-03-29 17:06:33 +11:00
Daniel Cousens
38f09b49e9 Now using Bytes consistently for signatures 2014-03-29 06:05:07 +11:00
Daniel Cousens
7ec046f797 Changes Message.*Message function names to Message.* 2014-03-29 06:03:43 +11:00
Daniel Cousens
e82ffa5028 Adds recoverPubKey simple test 2014-03-29 04:24:23 +11:00
Wei Lu
d7eb87433c isolate Message.verifyMessage tests from Message.signMessage 2014-03-28 16:32:51 +08:00
Daniel Cousens
e03f938ced Adds failing test for Message.verifyMessage 2014-03-28 16:44:00 +11:00
Julius Taylor
bad2f769ff added redeem script test
refactored the previous multi-sig address test a bit and added a test
to validate the # of signatures required and possible addresses
included in the redeemscript
2014-03-27 22:56:10 -04:00
Kyle Drake
2f5b302288 Merge pull request #97 from dcousens/reverseVarInt
Adds varIntToNum conversion function
2014-03-26 16:20:58 -07:00
Wei Lu
65fb593be2 remove unnecessary deepEqual 2014-03-26 20:44:07 +08:00
Wei Lu
39c181dce6 allow fee to be set to zero 2014-03-26 20:20:58 +08:00
Wei Lu
4d4388f6bf make wallet async functions truly async 2014-03-26 20:05:13 +08:00
Daniel Cousens
f12f8eac48 Adds failing test for larger transaction 2014-03-26 19:11:10 +11:00
Daniel Cousens
20599f66c9 Adds varIntToNum conversion function 2014-03-26 18:30:17 +11:00
Wei Lu
8d2525dba1 allow feePerKb to be set to zero 2014-03-26 08:43:34 +08:00
Wei Lu
68b08b638a add async version of createTx 2014-03-26 08:43:33 +08:00
Wei Lu
f7d4895b74 add async version of setUnspentOutputs 2014-03-26 08:43:33 +08:00
Wei Lu
7bfa6ab9d2 remove scriptPubKey from wallet.outputs, set/get unspent outputs as it is unused 2014-03-26 08:43:33 +08:00
Wei Lu
58ab0b631e getBalance returns total unspent 2014-03-26 08:43:33 +08:00
Wei Lu
9fc5505730 getUnspentOutputs excludes spent outputs 2014-03-26 08:43:33 +08:00
Wei Lu
77b5d1ee21 getCandidateOuputs ignores spent outputs 2014-03-26 08:43:33 +08:00
Wei Lu
471bc7ed97 skip change if it is not above dust threshold 2014-03-26 08:43:32 +08:00
Wei Lu
90921798cf throws error on insufficient fund 2014-03-26 08:43:32 +08:00
Wei Lu
7c81bfef72 check for dust before creating transaction 2014-03-26 08:43:32 +08:00
Wei Lu
913b48e87f sign tx 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
eb9e98aa7b minor refactoring: Transaction tests use fixtures 2014-03-26 08:43:31 +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
423124966f add toAddress and getOutType tests to script 2014-03-26 08:43:31 +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
Kyle Drake
68e8834c66 Merge pull request #94 from dcousens/patch-2
VarInt now uses correct prefix for 64-bit
2014-03-25 17:31:19 -07:00
Daniel Cousens
baa50d6aa2 Adds simple test vectors for numToVarInt 2014-03-26 05:05:52 +11:00
Kyle Drake
4c82a09aae Merge pull request #95 from juliustayl/multisig-tests
validate multi-sig address
2014-03-25 09:29:00 -07:00
Julius Taylor
a4317d67be validate multi-sig address
This is a test I have been using to validate a 2-of-3 multi sig address
using known public keys as well as validating the multi sig address
from the redeem script. I am working on more redeem script validation
tests but I want to make sure I am on the right track and see if this
test is something you all would deem useful.
2014-03-25 01:32:43 -04:00
Kyle Drake
a74c878b59
merge eckeyoutput 2014-03-24 15:11:34 -07:00
Daniel Cousens
a1944fdc77 Adds some ECKey tests 2014-03-25 04:51:14 +11:00
Daniel Cousens
a96dfea1f4 Adds compression flag to toHex/toBin and tests 2014-03-25 03:41:44 +11:00
Wei Lu
9358a40500 tabs -> spaces 2014-03-24 03:19:39 +08:00
Daniel Cousens
48883dd069 Changes expected key output to hex 2014-03-24 05:09:03 +11:00
Daniel Cousens
2e2932c410 Renames variables to better reflect their values 2014-03-23 18:42:52 +11:00
Daniel Cousens
e9fdfecfea Changes default EC*Key.toString behaviour to Hex 2014-03-23 18:42:52 +11:00
Daniel Cousens
9bab1e96ad Fixes network tests for proper address types 2014-03-22 19:12:26 +11:00
Daniel Cousens
fcf67a87cc Restructures test/eckey.js 2014-03-22 19:12:26 +11:00
Daniel Cousens
b40374e332 Changes to new version-less ECKey API 2014-03-22 19:12:26 +11:00
Daniel Cousens
74ee2f90d0 Adds failing test for #78 2014-03-22 16:26:44 +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
Wei Lu
ea723c7caf remove mocha config file
[fixes #75]
2014-03-21 10:13:48 +08: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
Wei Lu
a26c01b8da Test validateSig. Use validateSig to test transaction signing 2014-03-18 09:31:17 +08: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
9df37a31b1 test transaction signing (failing) 2014-03-18 01:32:31 +08:00
Wei Lu
be9c19c50c add tests to addOutput 2014-03-17 18:01:36 +08: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
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
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
Kyle Drake
c277fed4e1
cleanup runners, add coverage script, fix typo 2014-03-11 12:23:37 -07:00
Kyle Drake
7219c27413 Merge pull request #62 from bitcoinjs/compressed-sign
Fix sign/verify for with compressed keys
2014-03-11 12:12:52 -07:00
Andreas Brekken
29ad6b692e Message signing does not work with compressed keys. ref #61 2014-03-11 18:25:36 +01:00
Wei Lu
3d6b66e811 move convert methods from util to convert 2014-03-11 09:52:48 +08:00
Wei Lu
9c15fa0cbf Merge pull request #57 from bitcoinjs/upgrade-crypto-js
Use crypto-js as a module from npm
2014-03-11 09:14:49 +08:00
Wei Lu
45e55a07b0 fix transaction serialization/deserialization
[closes #58]
2014-03-09 13:46:20 +08:00
Wei Lu
d2b790fef9 throw error when input to script constructor is not an array
[#58]
2014-03-09 13:43:36 +08:00
Wei Lu
a281a5ab53 migrate crypto-js to 3.1.2 2014-03-09 09:49:24 +08:00
Wei Lu
33857437db add tests for bytes and words conversion 2014-03-07 22:44:49 +08:00
Wei Lu
bf1be94fe3 add tests for checkEncode and checkDecode 2014-03-07 22:44:41 +08:00
Kyle Drake
a6706ea8be
fix spacing 2014-03-06 17:57:32 -06:00