Commit Graph

515 Commits

Author SHA1 Message Date
Ryan X. Charles 91181de234 add new Point class and update BIP32 to use it
The Point class will ultimately be an all purpose tool for dealing with points
on the secp256k1 tool. For now, it just needs to have the ability to add two
points together, and work both in node and the browser, so that it can be used
for BIP32.
2014-03-27 18:59:47 -04:00
Ryan X. Charles 5c21866fe2 remove commented-out code 2014-03-23 15:32:52 -07:00
Ryan X. Charles 7904efe147 remove redundant and slow test 2014-03-23 15:30:31 -07:00
Ryan X. Charles a4393c0657 update BIP32 to be able to derive pubkeys
...using the new addCompressed interface in Key.js
2014-03-23 15:12:52 -07:00
Ryan X. Charles a686e63b0b fix issue by outputing proper pubkey format
The way I was outputting the pubkeys would be incorrect if the first byte of
one of the coordinates was 0, since it would print the first non-zero byte
first. The solution was to use the standard openssl function that outputs a
public key to oct.
2014-03-23 15:11:32 -07:00
Ryan X. Charles d11361be9e expose group operation
BIP32 needs to be able to add two points on the secp256k1 curve. This
functionality was not already being exposed from OpenSSL in bitcore. I have
added an "addUncompressed" function to the Key class which takes in two points
in uncompressed form, adds them, and returns the result. This is necessary for
BIP32.
2014-03-23 10:35:28 -07:00
Ryan X. Charles 78a753a2d4 move version constants to networks.js
...with all the other network-specific constants.
2014-03-22 16:31:38 -07:00
Ryan X. Charles b7550fc862 add convenience constructor for making new bip32s
Added the ability to create a new master bip32 with new private key and chain code. The way this works is like this:

var bip32 = new BIP32('mainnet');

or:

var bip32 = new BIP32('testnet');
2014-03-22 16:16:58 -07:00
Ryan X. Charles 0677ae46f8 remove obsolete commented-out code 2014-03-22 16:16:58 -07:00
Ryan X. Charles 47fe12ea19 all vector 2 tests work 2014-03-22 16:16:58 -07:00
Ryan X. Charles ba59d97a73 make things work in the browser by fixing sha512
...had to use jsSHA package to do SHA512 in the browser. Unfortunately it is
quite slow compared to node.
2014-03-22 16:16:58 -07:00
Ryan X. Charles 22b57feb7b Get test vector 1 working in node 2014-03-22 16:16:22 -07:00
Ryan X. Charles c5c0ecc918 significant progress towards bitcore compatibility
Cryptography updated to use bitcore methods rather than bitcoinjs.
2014-03-22 16:14:48 -07:00
Ryan X. Charles 31a024a20b bring formatting in line with bitcore standards 2014-03-22 14:28:10 -07:00
Ryan X. Charles fa47ee9984 Merge remote-tracking branch 'matiu/feature/Block-test'
Conflicts:
	util/util.js
2014-03-21 14:57:45 -07:00
Matias Alejo Garcia 02296d9517 fix firefox compatibility issue with buffertools#compare 2014-03-21 18:52:49 -03:00
Matias Alejo Garcia 227a95296b remove stracktrace for firefox error reporting 2014-03-21 18:00:13 -03:00
Matias Alejo Garcia 8ec4f2f9c5 add -target=dev option to grunt to prevent minifying the source 2014-03-21 17:58:59 -03:00
Ryan X. Charles d9cbe13d93 Merge pull request #170 from MattFaus/fix_transaction_tests2
Hook up testdata/tx_valid.json and tx_invalid.json test cases
2014-03-21 12:55:41 -07:00
Matias Alejo Garcia aad33d0c4a remove test code 2014-03-21 16:47:45 -03:00
Matias Alejo Garcia 684be77268 small fixes in block, adapt to browser bignum. remove legacy code 2014-03-21 16:39:38 -03:00
Matias Alejo Garcia 5b95b0f0fd Block.js tests WIP 2014-03-21 16:38:01 -03:00
Manuel Araoz 1c1bb068b8 fix util problem 2014-03-21 12:13:24 -07:00
Manuel Araoz 230420fb00 fix test code for Transaction. Test skipped because they still fail 2014-03-21 12:13:23 -07:00
Manuel Araoz ba92a6b1df refactor and fixes for Transaction, ScriptInterpreter, and Key 2014-03-21 12:13:23 -07:00
Manuel Araoz b227341c12 some Transaction tests fixed (canonical signatures) 2014-03-21 12:13:23 -07:00
Manuel Araoz 7869308784 remove console.log 2014-03-21 12:13:23 -07:00
MattFaus 7097ace9dc Remove console.log() statements 2014-03-21 12:13:23 -07:00
MattFaus 5c65149b2e Mark failing tests with skip() 2014-03-21 12:13:23 -07:00
MattFaus 07f49195ea Update invalid transaction test case 2014-03-21 12:13:23 -07:00
MattFaus 8a8ae5b357 Fix merge problem 2014-03-21 12:13:23 -07:00
MattFaus 4ad36b4fb8 Refactor parsing test data into function, add iteration over invalid transaction tests 2014-03-21 12:13:23 -07:00
MattFaus 5af02e937a Work in progress. I have a problem with the verifyInput() callback calling itself whenever the test assertions throw an exception. I looked at the step and async libraries that are already installed via package.json, but I don't think either of these provide the functionality I need. 2014-03-21 12:13:23 -07:00
MattFaus 7257526de3 Reverting modifications of testdata 2014-03-21 12:13:23 -07:00
MattFaus a2a923fa99 Get Transaction test cases running
I removed the skip over the tx_valid.json file and made some tweaks to get most of the test cases passing.  There are still two test cases that fail, as pointed out by the TODO comment I added above them. Oddly, running the test suite reports 3 failing test cases, but if I delete the two marked with the TODO there are 0 reported failures. So, there may be some kind of interaction with these test cases and the others. More investigation is needed.

I updated the two test cases that were testing transaction `23b397edccd3740a74adb603c9756370fafcde9bcc4483eb271ecad09a94dd63` with the input script I found on blockchain.info https://blockchain.info/tx/23b397edccd3740a74adb603c9756370fafcde9bcc4483eb271ecad09a94dd63. A quick search found one other person who was using this same script (23b397edcccc4483eb271ecad09a94dd63.json) and the test passes now, so I'm not sure why the old script was being used.

All of the other changes are simply re-formatting decimal numbers as hex (i.e. `1` => `0x01`).

Furthermore, I added some code in the test fixture itself to verify each of the inputs.

Test Plan:
`mocha -R spec test/test.Transaction.js`
2014-03-21 12:13:23 -07:00
Ryan X. Charles b19efa5fb3 Merge pull request #176 from maraoz/feature/add-base58key-tests
add bitcoin core base58key tests
2014-03-20 08:57:26 -07:00
Manuel Araoz 150a943447 fix private key validation and base58 invalid tests 2014-03-19 19:00:45 -03:00
Manuel Araoz 3cd4e31c31 fix Address validation issue 2014-03-19 18:44:24 -03:00
Manuel Araoz 2323e2a67a fix skipped Opcode test 2014-03-19 18:10:04 -03:00
Manuel Araoz f2be0f386c add hex generation of addresses test 2014-03-19 17:57:28 -03:00
Manuel Araoz 53eb98babc should generate from hex added 2014-03-19 17:52:34 -03:00
Manuel Araoz d84dc652d9 refactor valid b58 tests 2014-03-19 17:35:14 -03:00
Manuel Araoz f0b9cd0cab complete base58_keys_valid tests 2014-03-19 17:12:24 -03:00
Manuel Araoz 4b430be5c8 add base58key tests for Address case 2014-03-19 16:25:23 -03:00
Manuel Araoz 1324974c4d add isScript to Address 2014-03-19 16:20:41 -03:00
Ryan X. Charles c6dcbc256b Merge pull request #169 from maraoz/feature/add-bitcoin-core-tests
add bitcoin core ScriptInterpreter valid/invalid script tests
2014-03-19 10:21:57 -07:00
Manuel Araoz cfe899ee76 fix Transaction#create tests 2014-03-19 13:16:01 -03:00
Manuel Araoz 6ac48b2809 uncomment some test cases! 2014-03-19 13:03:12 -03:00
Manuel Araoz 856225d377 fix for firefox 2014-03-19 12:26:36 -03:00
Manuel Araoz ddb3e6de70 invalid script test passing! 2014-03-19 12:26:36 -03:00