Commit Graph

512 Commits

Author SHA1 Message Date
Braydon Fuller
7d15b2bf0f Private Key: Fix bug with tests and missing "new" 2014-12-17 12:34:21 -05:00
Manuel Aráoz
43264616a6 Merge pull request #788 from eordano/feature/buffertest
Add tests for bufferutils
2014-12-17 12:57:34 -03:00
Manuel Aráoz
a0827d662f Merge pull request #785 from yemel/feature/json-rpc
JSON RPC
2014-12-17 12:30:25 -03:00
Esteban Ordano
afb5b6971f Add tests for bufferutils 2014-12-17 12:10:02 -03:00
Manuel Aráoz
9f51b1b4ce Merge pull request #772 from braydonf/docs/block
Block: Updated documentation, and changed to use consistent naming.
2014-12-17 11:58:22 -03:00
Manuel Araoz
0387dffd70 remove outdated test 2014-12-17 11:29:54 -03:00
Esteban Ordano
65ec886008 Merge pull request #783 from braydonf/tests/paymentprotocol
Payment Protocol: Added tests and misc formatting. Closes #697
2014-12-17 07:39:13 -03:00
Yemel Jardi
d7b8b370f1 RPC: Refactor, documentation and tests 2014-12-17 03:34:22 -03:00
Braydon Fuller
bf5f770a67 Payment Protocol: Added tests and misc formatting 2014-12-16 23:40:40 -05:00
Yemel Jardi
4173f4b49e include old files 2014-12-17 01:35:26 -03:00
Esteban Ordano
9f442e8ec4 Merge pull request #777 from maraoz/add/tx_invalid/tests
add tx_invalid.json tests
2014-12-16 23:13:59 -03:00
Manuel Aráoz
bcae1101fa Merge pull request #771 from eordano/feature/change
Add Fee Estimation and Change Address to Transaction
2014-12-16 22:50:53 -03:00
Manuel Aráoz
902d5de6bf Merge pull request #775 from eordano/feature/addressmultisig
Add capability to instantiate an Address from public keys and a threshold
2014-12-16 22:46:58 -03:00
Manuel Araoz
84deec297a add tx_invalid tests 2014-12-16 22:40:59 -03:00
Esteban Ordano
c3ff63f041 Add P2SH change address test 2014-12-16 22:39:25 -03:00
Esteban Ordano
f7f7d147c6 Add change features 2014-12-16 22:39:25 -03:00
Manuel Aráoz
ef9b02c94d Merge pull request #776 from eordano/feature/countMissingSignatures
Add count for missing signatures
2014-12-16 22:37:16 -03:00
Esteban Ordano
5f5cf15241 Add capability to instantiate an Address from public keys and a threshold 2014-12-16 22:36:50 -03:00
Esteban Ordano
ce8927690f Add count for missing signatures 2014-12-16 22:30:13 -03:00
Esteban Ordano
ce94626908 Move: Script and Interpreter into subfolder 2014-12-16 21:11:36 -03:00
Braydon Fuller
d86e718743 Block: Updated documentation, and changed to use consistent naming. 2014-12-16 18:19:27 -05:00
Manuel Araoz
cd00b3ebe5 tx_valid tests passing! 2014-12-16 18:47:58 -03:00
Manuel Araoz
b3be9461cf tx_valid tests passing! 2014-12-16 18:47:58 -03:00
Manuel Araoz
d56fb04575 add ScriptInterpreter#verify docs 2014-12-16 18:46:43 -03:00
Manuel Araoz
c272412df2 add sig_noncanonical.json tests 2014-12-16 16:34:22 -03:00
Manuel Aráoz
e39543b730 Merge pull request #758 from eordano/fix/precondArgument
Fix #756: Preconditions Invalid Argument
2014-12-16 15:41:07 -03:00
Braydon Fuller
e3fa89ce62 PublicKey: Fix formatting issue for inspect 2014-12-16 12:25:01 -05:00
Esteban Ordano
1b19255fd1 Fix #756: Preconditions Invalid Argument 2014-12-16 13:52:25 -03:00
Manuel Araoz
35d664b588 added sig_canonical tests 2014-12-16 13:40:03 -03:00
Esteban Ordano
0df165f1c7 Unskip tests 2014-12-16 13:33:57 -03:00
Manuel Araoz
17459dd7c2 added sig_canonical tests 2014-12-16 13:33:57 -03:00
Manuel Araoz
9e3d13a8ff add sig_*canonical.json bitcoind fixtures 2014-12-16 13:33:57 -03:00
Manuel Araoz
3eba0bc546 address review comments 2014-12-16 13:33:57 -03:00
Manuel Araoz
4fcc048311 script interpreting working 2014-12-16 13:33:57 -03:00
Manuel Araoz
49192a1ed7 style change to BufferUtil 2014-12-16 13:33:57 -03:00
Manuel Araoz
9b81f7179a remove console.logs 2014-12-16 13:33:56 -03:00
Manuel Araoz
50dd4e8e66 fix all script validation tests, yay! 2014-12-16 13:33:56 -03:00
Manuel Araoz
7f0a2dc050 add Script#checkMinimalPush tests 2014-12-16 13:33:56 -03:00
Manuel Araoz
4b68c3725d generalize script tests 2014-12-16 13:33:56 -03:00
Manuel Araoz
0ddec23c02 fix some more tests 2014-12-16 13:33:56 -03:00
Manuel Araoz
a761ac91c2 some more passing tests 2014-12-16 13:33:56 -03:00
Manuel Araoz
9aa6152f25 trying to fix OP_CHECKSIG script evaluation 2014-12-16 13:33:56 -03:00
Manuel Araoz
cf48899a3a make creation methods class methods 2014-12-16 13:33:56 -03:00
Manuel Araoz
c888c3baa7 adding some signature methods for script interpreting 2014-12-16 13:33:56 -03:00
Manuel Araoz
3de71f8558 refactors and fixes for script interpreter 2014-12-16 13:33:56 -03:00
Manuel Araoz
c64a38a54a trying to fix ScriptInterpreter 2014-12-16 13:33:56 -03:00
Braydon Fuller
709cda2618 Transport/Pool: Mark internal functions 2014-12-16 03:30:57 -05:00
Braydon Fuller
b403cc3770 Transport/Pool: Added tests to check that new addrs are added 2014-12-16 02:02:06 -05:00
Braydon Fuller
e04cb76854 Transport/Pool: Use sinon for tests. 2014-12-15 21:43:10 -05:00
Braydon Fuller
1a1d63321a Transport: Added a peer pool to maintain a set of connected peers 2014-12-15 21:43:10 -05:00
Braydon Fuller
6f37520a58 Merge pull request #750 from eordano/test/publicWIF
Add `network` property to PublicKey
2014-12-15 18:02:03 -05:00
Braydon Fuller
c7edfdd2b1 Merge pull request #751 from eordano/fix/bufferReadNoLength
Remove calls to read() with no arguments
2014-12-15 17:56:56 -05:00
Esteban Ordano
5bed12ebe3 Remove calls to read() with no arguments 2014-12-15 19:37:19 -03:00
Esteban Ordano
fcc3a1c961 Add tests for importing from WIF 2014-12-15 19:25:09 -03:00
Esteban Ordano
d1a590dc89 Merge pull request #719 from yemel/refactor/remove-compressed
Remove compressed argument from PrivateKey and PublicKey constructors
2014-12-15 18:49:39 -03:00
Esteban Ordano
de4d2884c7 Modify Transaction to use Multisig
* Allow `Script#add` to add a Script causing concatenation of opcodes
* Add `Script#equals` to compare scripts
* Add `Script#fromAddress`
* Drop `_payTo` methods
* Add `Script.buildP2SHMultisigIn`

Greatly simplifying the internal transaction object
2014-12-15 18:19:54 -03:00
Manuel Aráoz
264a239e5a Merge pull request #737 from braydonf/bug/to-object
Transaction:  `toJSON` / `fromJSON` tests
2014-12-15 17:06:08 -03:00
Braydon Fuller
b0555108a8 Add tx_valid and tx_invalid bitcoind tests 2014-12-15 13:30:59 -05:00
Yemel Jardi
428bcaf4c9 Remove compressed argument from private key and public key constructors 2014-12-15 14:48:17 -03:00
Manuel Aráoz
a2b1554a44 Merge pull request #738 from braydonf/tests/base58-keys
Tests: Added bitcoind base58 key json data and tests
2014-12-15 12:42:10 -03:00
Braydon Fuller
96c7812ed1 PrivateKey: Lodash to check if undefined, and made tests not random (T2) 2014-12-15 10:20:38 -05:00
Braydon Fuller
b13c4fb0c9 Added inspect prototype G5 2014-12-14 15:13:01 -05:00
Braydon Fuller
920f25b58e Tests: Added bitcoind base58 key data and tests 2014-12-13 16:10:41 -05:00
Braydon Fuller
ad4bc9324f Transaction: Use Script toString for transaction JSON output 2014-12-13 14:54:07 -05:00
Braydon Fuller
b544b0594d Added test to check that Transaction fromJSON could initialize from toJSON, and fixed a bug. 2014-12-13 14:54:07 -05:00
Braydon Fuller
dee30c749a Unit: Fixed bug, stringified toJSON output 2014-12-12 20:08:46 -05:00
Braydon Fuller
e4cf84519d BN: Remove toJSON and fromJSON methods from BN, as they are equivalent to toString and fromString 2014-12-12 19:06:06 -05:00
Braydon Fuller
cddd55afc4 URI/Unit: Added toObject method and changed toJSON to return a string 2014-12-12 18:53:27 -05:00
Braydon Fuller
c0bbf96dc1 Keys: Added toObject method and changed toJSON to return a string 2014-12-12 18:47:15 -05:00
Braydon Fuller
19a17017a9 Block: Added toObject method and changed toJSON to return a string 2014-12-12 18:34:43 -05:00
Braydon Fuller
354c03987a Address: Added toObject method and changed toJSON to return a string 2014-12-12 18:22:31 -05:00
Manuel Aráoz
04fba31293 Merge pull request #721 from braydonf/standardize-json
Standardize toJSON and related
2014-12-12 19:19:08 -03:00
Braydon Fuller
46a9a6d83c Opcode: Added toBuffer and fromBuffer methods 2014-12-12 15:33:40 -05:00
Braydon Fuller
4ddf3d117c Keys: Modified and added standardized toJSON/fromJSON prototypes 2014-12-12 13:39:49 -05:00
Braydon Fuller
94cc10b1a3 Changed *Json to *JSON and returned an object so that methods can be called from other toJSON methods without the double-stringification issue. 2014-12-12 12:06:39 -05:00
Braydon Fuller
1858766627 Standardized toJSON, fromJSON, toString and fromString interfaces 2014-12-12 09:51:59 -05:00
Manuel Aráoz
d6caab69ca Merge pull request #720 from braydonf/feature/immutable-opcode
Opcode: Modify `from` methods to be static, and an instance be immutable.
2014-12-12 11:19:30 -03:00
Esteban Ordano
40932f39ce Merge pull request #717 from braydonf/feature/hdkeys-immutable
HDKeys: Modified to have immutable properties
2014-12-12 10:23:26 -03:00
Braydon Fuller
1b2e9728ce Opcode: Modify from methods to be static, and an instance be immutable. 2014-12-11 20:19:54 -05:00
Braydon Fuller
c73c56f938 HDKeys: Modified to have immutable properties 2014-12-11 15:37:31 -05:00
Manuel Aráoz
d1b4c25c6f Merge pull request #713 from braydonf/ref/private-key-network
PrivateKey: Add docs and refactor to use network object
2014-12-11 17:20:24 -03:00
Manuel Araoz
bb8373ead7 remove script_interpreter for partial commit 2014-12-11 16:19:22 -03:00
Manuel Araoz
81f1469f9a add preconditions to opcode 2014-12-11 16:19:21 -03:00
Manuel Araoz
3775d3c08a fix tests for preconditions 2014-12-11 16:19:21 -03:00
Manuel Araoz
f5b7f73d09 fixing tests for new script internals 2 2014-12-11 16:19:21 -03:00
Manuel Araoz
016bc6e3ed fixing tests for new script internals 2014-12-11 16:19:21 -03:00
Manuel Araoz
898bdac05f working towards script interpreting 2014-12-11 16:19:21 -03:00
Manuel Araoz
7ee9601d8a starting with script_interpreter 2014-12-11 16:19:21 -03:00
Esteban Ordano
005cf074fd Merge pull request #696 from yemel/feature/transport
P2P Peer Connections
2014-12-11 16:10:18 -03:00
Braydon Fuller
d4d3d4ab4a PrivateKey: Add documentation and refactor to use network object as a parameter. 2014-12-11 13:21:09 -05:00
Yemel Jardi
3190991941 add dependencies and update tests 2014-12-11 14:01:06 -03:00
Yemel Jardi
9b6183b083 Improving code thanks to jshint 2014-12-11 13:11:55 -03:00
Yemel Jardi
3e775bd0f9 Move messages data to a separate file 2014-12-11 11:42:56 -03:00
Braydon Fuller
3b061b057f Address: Added documentation and refactored to accept both a string and network object. 2014-12-10 23:44:17 -05:00
Yemel Jardi
228e7e214a Add tests 2014-12-10 18:09:27 -03:00
Yemel Jardi
56907c1a3b Add missing argument 2014-12-10 18:09:27 -03:00
Yemel Jardi
44eca35af9 rename peer tests 2014-12-10 18:09:27 -03:00
Yemel Jardi
9ce450c142 Remove old tests 2014-12-10 18:09:27 -03:00
Yemel Jardi
a9e54a7856 Progress on sending and receiving messages 2014-12-10 18:09:26 -03:00
Yemel Jardi
a1e8f3c596 Add transport/peermanager class 2014-12-10 18:09:26 -03:00
Yemel Jardi
4faa1a4a46 Add transport/peer class 2014-12-10 18:09:26 -03:00
Yemel Jardi
f1d2009418 Add transport/connection class 2014-12-10 18:09:26 -03:00
Yemel Jardi
d584febea0 Fix tests 2014-12-10 17:50:46 -03:00
Manuel Araoz
c085f166b4 add sorting to Script#buildMutlisigOut() 2014-12-10 16:54:30 -03:00
Manuel Araoz
ec464681fe add sorting to Script#buildMutlisigOut() 2014-12-10 16:46:20 -03:00
Manuel Araoz
63bc625c33 add Script#removeCodeSeparators tests 2014-12-10 16:09:08 -03:00
Esteban Ordano
1579eed9af Consistency with "id", "hash", and "_getHash" 2014-12-10 15:20:42 -03:00
Esteban Ordano
0c28bc1786 Split buildPKH arguments, add Copy constructor on publickey 2014-12-10 12:46:21 -03:00
Esteban Ordano
5c974a8ef2 Refactor transaction to match new API
* Refactor transaction into a different subfolder
* Added a lot of tests for sighash and transaction serialization (from
  reddit's and Ryan X. Charles' `fullnode`)
* Drop "only" from sighash tests and consolidate logs
2014-12-10 12:44:30 -03:00
Manuel Araoz
b61bd6f76a add Script#isPushOnly() 2014-12-10 12:39:09 -03:00
Manuel Aráoz
01b74b8df5 Merge pull request #695 from eordano/feature/errors
Add a preconditions module, and refactor errors
2014-12-10 12:35:31 -03:00
Esteban Ordano
ea17a6ace1 Add a preconditions module, and refactor errors
100% code coverage for the preconditions module.

Usage:
```
$.checkState(something === anotherthing, 'Expected something to be
anotherthing');
$.checkArgument(something < 100, 'something', 'must be less than 100');
$.checkArgumentType(something, PrivateKey, 'something'); // The third
argument is a helper to mention the name of the argument
$.checkArgumentType(something, PrivateKey); // but it's optional (will
show up as "(unknown argument)")
```
2014-12-10 11:56:38 -03:00
Manuel Aráoz
22b1193e32 Merge pull request #688 from eordano/feature/addressMethods
Add check functions to Address
2014-12-09 17:51:25 -03:00
Esteban Ordano
1816ba197f Add check functions to Address 2014-12-09 17:25:36 -03:00
Manuel Araoz
ec00ccba4c add script public key hash in tests 2014-12-09 16:11:57 -03:00
Manuel Aráoz
fb1978c5f5 Merge pull request #679 from eordano/feature/ecdsabackport
Backport changes to ECDSA from fullnode
2014-12-09 15:09:33 -03:00
Esteban Ordano
4879007bc7 Merge pull request #676 from braydonf/feature/block-handling-validation
Block: Added validation of proof of work, merkle tree and other interface changes. Closes #601
2014-12-09 13:54:31 -03:00
Esteban Ordano
736bcd6bd4 Backport changes to ecdsa from fullnode 2014-12-09 12:01:52 -03:00
Esteban Ordano
f8397a617e Add option to create private key from hex 2014-12-09 11:40:30 -03:00
Esteban Ordano
baf6a24d23 Add ".publicKey" property to PrivateKey 2014-12-09 11:21:47 -03:00
Braydon Fuller
5d1da9802c Block: Added validation of proof of work, merkle tree and other interface changes. Closes #601 2014-12-08 14:51:43 -05:00
Manuel Aráoz
33715a994e Merge pull request #666 from braydonf/bug/public-key-validation
PublicKey: Add test to verify that both uncompressed an compressed keys validate.
2014-12-05 10:31:10 -03:00
Manuel Araoz
f231f8a054 fix a browser test 2 2014-12-04 15:40:27 -03:00
Manuel Araoz
6c5198b743 fix a browser test 2014-12-04 15:38:46 -03:00
Manuel Araoz
eaaab5c7d0 implement Script.buildScriptHashOut() 2014-12-04 15:06:56 -03:00
Manuel Araoz
4bca5316ea implement Script.buildDDataOut() 2014-12-04 15:06:56 -03:00
Manuel Araoz
b87e687fd9 implement Script.buildPublicKeyHashOut() 2014-12-04 15:06:56 -03:00
Manuel Araoz
7b54a53414 add Opcode.smallInt() 2014-12-04 15:06:56 -03:00
Manuel Araoz
4fae69807d change isOpReturn to isDataOut 2014-12-04 15:06:56 -03:00
Manuel Araoz
d05aa27bed finish all tests 2014-12-04 15:06:56 -03:00
Braydon Fuller
ae80ca8678 PublicKey: Add test to verify that both uncompressed an compressed keys validatate. Fixes #665 2014-12-04 12:47:59 -05:00
Braydon Fuller
64c0d5f942 Payment Protocol: Restore and reorganize files for payment protocol. 2014-12-04 10:43:40 -05:00
Manuel Araoz
ef8f1eabd2 add script.isStandard() 2014-12-02 14:20:58 -03:00
Manuel Araoz
883a7cae54 add unkown script test 2014-12-02 14:20:58 -03:00
Manuel Araoz
c4cc6ba56d fix tests with new script api 2014-12-02 14:20:58 -03:00
Manuel Araoz
87c40193b9 add pubkey in pubkey out script types 2014-12-02 14:20:58 -03:00
Manuel Araoz
901d55d129 fix classify tests 2014-12-02 14:20:58 -03:00
Manuel Araoz
7d9151abc6 fix classify tests 2014-12-02 14:20:58 -03:00
Manuel Araoz
9d6ff4dc44 add classify tests 2014-12-02 14:20:58 -03:00
Manuel Araoz
293a3299d4 add classify tests 2014-12-02 14:20:58 -03:00
Manuel Araoz
72b5dcc6af add Script.isMultisigIn 2014-12-02 14:20:58 -03:00
Manuel Araoz
96e1451d28 add script.isMultisigOut 2014-12-02 14:20:58 -03:00
Manuel Araoz
350816ad40 opcode refactor: isSmallIntOp 2014-12-02 14:20:58 -03:00
Manuel Araoz
4a6755d0d1 add Script#prepend() 2014-12-02 14:20:57 -03:00
Manuel Araoz
66e96e5fa4 make tests pass with Script refactor 2014-12-02 14:20:02 -03:00
Braydon Fuller
d5d88287cd Networks: Consistency of network reference for 'livenet', and removed hardcoded value. 2014-12-02 10:48:21 -05:00
Esteban Ordano
2b866a8460 Merge pull request #630 from braydonf/feature/immutable
Immutable Address, PublicKey and PrivateKey
2014-12-02 12:17:03 -03:00
Esteban Ordano
3d56ed3b4d Merge pull request #637 from braydonf/feature/public-key-to-address
PublicKey: Added toAddress prototype. Closes #599
2014-12-02 12:16:29 -03:00
Esteban Ordano
7682cfa359 Merge pull request #644 from braydonf/ref/default-network
Default the network, if not specified, to `networks.defaultNetwork`. Closes #559
2014-12-02 12:16:11 -03:00
Braydon Fuller
4ba53fcb92 Tests: Check that PrivateKey is using the defaultNetwork 2014-12-01 18:22:51 -05:00