Commit Graph

716 Commits

Author SHA1 Message Date
Braydon Fuller d2a2be7a93 Upgraded bn.js to fix public key calculation problem, restored crypto/point.js, and added additional tests. 2015-01-04 09:19:08 -05:00
Braydon Fuller 3de6acc176 Add tests that reveals incorrect public key calculation 2015-01-03 13:20:51 -05:00
Esteban Ordano 5ae97a7146 Merge pull request #893 from braydonf/bug/json-detection
Fixed an issue where a hexa string was mistakenly recognized as JSON
2015-01-03 10:31:45 -05:00
Esteban Ordano dc7abe054b Merge pull request #891 from yemel/fix/hd-random-testnet
Allow creating a new random testnet HDPrivate key
2015-01-03 10:31:02 -05:00
Braydon Fuller a1ee393dce JSUtil: Return result quicker for isValidJSON and add additional tests. 2015-01-02 19:38:22 -05:00
Braydon Fuller c20a0eabed Check type of parsed JSON to determine it's an object and not a number. 2015-01-02 19:32:49 -05:00
Braydon Fuller 5449ad7bff Add test case that incorrectly handles hexa string as json 2015-01-02 19:15:20 -05:00
Yemel Jardi 5e292490e8 update tests 2015-01-02 18:25:23 -03:00
Yemel Jardi bb3064d336 fix typo 2015-01-02 18:03:40 -03:00
Yemel Jardi 98cfd646e7 Allow creating a new random testnet HDPrivate key 2015-01-02 18:01:21 -03:00
Esteban Ordano f56ddb2a0a Rename properly utxo to unspentoutput 2015-01-02 16:50:14 -03:00
Yemel Jardi 2aa5c65945 Add validations to derivation path 2015-01-02 16:46:37 -03:00
Esteban Ordano 7fe17e1699 Move explorers inside transport 2015-01-02 16:31:09 -03:00
Esteban Ordano 11975bc0df Rename UTXO to Transaction.UnspentOutput 2015-01-02 15:59:13 -03:00
Esteban Ordano 1cf108ab47 Add tests for UTXO 2015-01-02 15:59:13 -03:00
Esteban Ordano 9362927b43 Add test coverage for Insight 2015-01-02 15:59:13 -03:00
Yemel Jardi 9deec5e1c2 Use defaultNetwork in Script.toAddress 2015-01-02 15:38:28 -03:00
bip32JP bc6f592daa fix tests
fix tests to match python-ecdsa
2015-01-02 15:33:46 +09:00
Yemel Jardi 9a5193d8e9 Merge pull request #873 from eordano/fix/isFullySigned
transaction: better errors for signature methods
2014-12-31 13:18:41 -03:00
Yemel Jardi 0adcba7145 Merge pull request #874 from eordano/fix/noUndefinedNetwork
Add default network to PublicKey
2014-12-31 13:17:42 -03:00
Esteban Ordano 901d836231 Add default network to PublicKey
Closes #871
2014-12-31 02:20:47 -03:00
Esteban Ordano dbf47ef78f transaction: better errors for signature methods
Closes #868
2014-12-31 02:10:51 -03:00
Yemel Jardi dfc32e6712 Fix typo and remove unnecessary test 2014-12-30 19:52:47 -03:00
Yemel Jardi d5f76e8517 Fix creation of a randomn testnet private key 2014-12-30 18:44:27 -03:00
Esteban Ordano ffca4cfb6f Fixes Script test case for coverage and style 2014-12-30 15:34:30 -03:00
Esteban Ordano d688222769 Add toAddress(network) functionality to scripts 2014-12-30 15:23:09 -03:00
Yemel Jardi 98fe6b2abd Merge pull request #863 from eordano/feature/getData
Add getData functionality to script
2014-12-30 14:47:54 -03:00
Esteban Ordano dc92bdd474 Add getData functionality to script 2014-12-30 14:30:36 -03:00
Yemel Jardi d922a625b9 Rename toFiat() to atRate() 2014-12-28 17:40:11 -03:00
Yemel Jardi e7839d9ba2 Add from/to Fiat methods to Unit class 2014-12-25 19:04:03 -03:00
Manuel Aráoz 6ea9c7b005 Merge pull request #842 from eordano/feature/G7/hdprivkey
Adding G7 methods to HDPrivateKey
2014-12-23 12:59:51 -03:00
Esteban Ordano c3a178061c Adding G7 methods to HDPrivateKEy 2014-12-23 12:34:38 -03:00
Esteban Ordano 2006b3aae2 Add G7 methods to HDPublicKey 2014-12-23 12:23:35 -03:00
Manuel Araoz 4e775264fe lint random.js 2014-12-19 19:32:26 -03:00
Manuel Araoz aa6ecfd79b hash 100% coverage 2014-12-19 19:23:30 -03:00
Manuel Araoz fb57a60666 fix all tests 2014-12-19 18:53:21 -03:00
Manuel Araoz 6c518f1f45 refactoring interpreter 2014-12-19 18:28:52 -03:00
Manuel Araoz 370f69df88 refactor BN and ECDSA 2014-12-19 17:23:53 -03:00
Manuel Aráoz 56591db68d Merge pull request #831 from eordano/review/block
Coverage for block and blockheader
2014-12-19 17:23:49 -03:00
Esteban Ordano 4980f7a646 Test coverage: last branch untested from PublicKey 2014-12-19 16:44:49 -03:00
Esteban Ordano 2a084e641c Coverage for block and blockheader
* JSDocs where already good, written by @braydonf
2014-12-19 16:37:57 -03:00
Manuel Aráoz 58f68ba8d2 Merge pull request #829 from eordano/review/keys
PrivateKey, PublicKey, Network linted
2014-12-19 16:24:47 -03:00
Esteban Ordano c15dafc29e Merge pull request #822 from eordano/review/jsdoc-address
Minor improvements on Address
2014-12-19 16:19:08 -03:00
Esteban Ordano 36e87d8822 PrivateKey, PublicKey, Network linted
* Added 100% test coverage for them also
2014-12-19 16:18:05 -03:00
Esteban Ordano 1ec4c7f512 Minor improvements on Address
* Update JSDocs
* Branch coverage 100%
* Removed duplicated test
* Updated names of tests
2014-12-19 15:41:20 -03:00
Manuel Aráoz b69997711b Merge pull request #823 from eordano/review/jsdoc-unit
Review Unit class
2014-12-19 15:27:55 -03:00
Esteban Ordano b5f8188a1f Lint and cover URI completely 2014-12-19 13:41:54 -03:00
Esteban Ordano be599e5a1b Review Unit class
* Add 100% code coverage
* Add custom error code
* Linted source and test
* More descriptive test messages
2014-12-19 13:18:22 -03:00
Esteban Ordano 99db72ba90 Add `uncheckedAddInput` function
* For internal usage: for example, testing Script.Interpreter
2014-12-19 10:30:20 -03:00
Esteban Ordano 9a73338c91 Add tests for changes to Transaction interface 2014-12-18 20:38:19 -03:00
Esteban Ordano e5631b1a69 Modify transaction interface
* Add checks when serializing
* Add default _estimateSize to generic inputs
* Fix multisig size estimation
* Change _addOutput to addOutput
* Add addInput and using that internally
* Split `getFee` out from `_updateChangeOutput`
2014-12-18 14:09:44 -03:00
Esteban Ordano 3f1ddd68f2 Update transaction test data 2014-12-18 02:21:02 -03:00
Manuel Araoz 3d7b0c7474 standardize test files 2014-12-17 19:11:20 -03:00
Manuel Araoz 3dd86446e0 add Interpreter docs and refactor a bit 2014-12-17 17:25:00 -03:00
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
Braydon Fuller 2cbcf7da1c Tests: Check that an Address is using the defaultNetwork 2014-12-01 18:19:17 -05:00
Braydon Fuller 6e36baebc6 Tests: Enable tests for network, include defaultNetwork, check each constant, build browser tests before running to make sure it's up-to-date 2014-12-01 17:55:57 -05:00
Braydon Fuller 4adf1fcb14 Network: Replaced all instances of mainnet with livenet for consistency 2014-12-01 17:31:39 -05:00
Yemel Jardi 9cd9eeba1f convert amout to satoshis 2014-12-01 17:36:52 -03:00
Yemel Jardi c9951be2dc Base URI class and tests 2014-12-01 17:18:10 -03:00
Manuel Aráoz 1175c475a2 Merge pull request #627 from yemel/feature/unit-util
Utility for unit conversion
2014-12-01 16:17:17 -03:00
Braydon Fuller b06866f86f PublicKey: Added toAddress prototype. Closes #599 2014-12-01 14:15:59 -05:00
Yemel Jardi 1ae88eed7a Add new test for string values 2014-12-01 16:05:01 -03:00
Yemel Jardi ab517cae9c refactor double quote 2014-12-01 16:02:28 -03:00
Braydon Fuller 3298a01498 Immutable Address, PublicKey and PrivateKey 2014-12-01 12:44:32 -05:00
Yemel Jardi d978160ddb Utility for unit conversion 2014-12-01 12:33:45 -03:00
Braydon Fuller 9a76bf30ff Crypto/Point: Added test coverage and documentation, and refactored validation 2014-12-01 10:14:36 -05:00
Esteban Ordano 865a69f6f2 add testing for key cache 2014-12-01 10:00:46 -03:00
Esteban Ordano 13fd2592fc Add autogenerated errors 2014-11-30 09:47:44 -03:00
Esteban Ordano 803027353a Change errors 2014-11-30 09:47:44 -03:00
Esteban Ordano a2a51ecc0c Fix style: move each static function to an appropiate namespace 2014-11-30 09:47:44 -03:00
Esteban Ordano 53900f3196 Add cache to derivation 2014-11-30 09:47:44 -03:00
Esteban Ordano 4c0769fa09 100% test coverage on hdpublickey 2014-11-30 09:47:44 -03:00
Esteban Ordano edc5b24d69 100% test coverage for HDPrivateKey 2014-11-30 09:47:44 -03:00
Esteban Ordano 950ea6ed1a Add public key 2014-11-30 09:47:44 -03:00
Esteban Ordano ad74b549a1 Fixes interfaces 2014-11-30 09:47:44 -03:00
Esteban Ordano 5728c30371 Add tests 2014-11-30 09:47:44 -03:00
Manuel Araoz 1f3d7d9872 move Signature to crypto/ 2014-11-27 16:42:44 -03:00
Esteban Ordano 4b201a8db1 Replace grunt with gulp 2014-11-25 21:26:52 -03:00
Braydon Fuller 2a2dc8196d Crypto: Update ECDSA with to use PrivateKey and PublicKey 2014-11-25 15:10:22 -05:00
Braydon Fuller f6e610dd28 Merge branch 'bug/recursive-tests' into feature/keys-interface-rename-tests 2014-11-25 14:55:35 -05:00
Braydon Fuller 8c4301cb0a Tests: Updated tests to run from sub-directories and fixed crypto and encoding related missing updates. 2014-11-25 14:20:43 -05:00
Braydon Fuller 85ce140aeb Keys: Renamed Privkey to PrivateKey and Pubkey to PublicKey 2014-11-25 13:21:53 -05:00
Braydon Fuller 35d0cbc5a6 Keys: Modified interface of Pubkey and Privkey so that an instance can be relied upon as valid. 2014-11-25 12:30:52 -05:00
Manuel Aráoz f4bf23be82 Merge pull request #573 from braydonf/ref/remove-keypair
Keys: Refactored to use Pubkey and Privkey and removed Keypair
2014-11-25 12:22:38 -03:00
Braydon Fuller deb54c5a20 Address: Return new instance if `this` isn't already instantiated. 2014-11-24 15:47:30 -05:00
Braydon Fuller 23c1ed3599 Keys: Refactored to use Pubkey and Privkey and removed Keypair 2014-11-24 12:53:16 -05:00
Braydon Fuller 9863b123c0 Address: Increase test coverage 2014-11-23 15:34:19 -05:00
Braydon Fuller 3c9cc23501 Address: Improved error messages and type, and added inspect prototype for console output. 2014-11-21 22:20:44 -05:00
Braydon Fuller 0df97a42fe Address: Fix indentation, typos and simplify isValid 2014-11-21 19:02:58 -05:00
Braydon Fuller 90341f2ab6 Address: Modified interface so that any instance of Address can be assumed to be valid. 2014-11-21 14:18:31 -05:00
Manuel Araoz a45dee3a4b 'hide' encoding and crypto 2014-11-21 13:26:30 -03:00
Manuel Araoz c8239c8655 remove unused dep 2014-11-21 12:59:06 -03:00
Manuel Araoz 4508fb6765 fix references to encoding 2014-11-21 12:54:56 -03:00
Manuel Araoz deee8c6887 refactor protocol->encoding 2014-11-21 11:43:37 -03:00
Manuel Araoz e0340213fe remove KDF 2014-11-21 10:43:12 -03:00
Manuel Araoz 1477572a04 fix bitcore reference 2014-11-21 10:29:41 -03:00
Manuel Araoz eb7be6ac44 fix tests for varint 2014-11-20 18:55:23 -03:00
Manuel Araoz d2fe2909db fix tests for bufferwriter 2014-11-20 18:53:01 -03:00
Manuel Araoz ea05ec625e fix tests for bufferreader 2014-11-20 18:49:55 -03:00
Manuel Araoz 3bd2654eb4 fix tests for base58check 2014-11-20 18:48:44 -03:00
Manuel Araoz 890bed0af6 fix tests for base58 2014-11-20 18:47:47 -03:00
Manuel Araoz 5440baad83 fix tests for random 2014-11-20 18:46:43 -03:00
Manuel Araoz 4c925dc249 fix tests for point 2014-11-20 18:44:19 -03:00
Manuel Araoz fa2b54332c fix tests for kdf 2014-11-20 18:43:32 -03:00
Manuel Araoz e71e41542c fix tests for hash 2014-11-20 18:42:54 -03:00
Manuel Araoz f0740e0589 fix tests for ecdsa 2014-11-20 18:42:03 -03:00
Manuel Araoz f178445b07 fix tests for bn 2014-11-20 18:40:23 -03:00
Manuel Araoz 9e30a0236c fix tests for txout 2014-11-20 18:39:02 -03:00
Manuel Araoz 4dd9f60f8c fix tests for txin 2014-11-20 18:37:33 -03:00
Manuel Araoz a18d703b86 fix tests for tx 2014-11-20 18:35:23 -03:00
Manuel Araoz 1df88d0694 fix tests for signature 2014-11-20 18:34:15 -03:00
Manuel Araoz 778977449a fix tests for script 2014-11-20 18:33:26 -03:00
Manuel Araoz b2ef61328f fix tests for pubkey 2014-11-20 18:31:08 -03:00
Manuel Araoz 3ac26759e4 fix tests for privkey 2014-11-20 18:29:56 -03:00
Manuel Araoz 685e0c5a95 fix tests for opcode 2014-11-20 18:29:02 -03:00
Manuel Araoz 40d308748f fix tests for keypair 2014-11-20 18:28:00 -03:00
Manuel Araoz 24b16fc126 fixing tests for examples 2014-11-20 18:26:24 -03:00
Manuel Araoz 7d09addcaa fixing tests for blockheader 2014-11-20 18:21:13 -03:00
Manuel Araoz c06c81e27b fixing tests 2014-11-20 18:19:48 -03:00
Manuel Araoz f0a4aebdfb reorder tests 2014-11-20 18:08:31 -03:00
Manuel Araoz a9d029341d remove extras 2014-11-20 13:31:51 -03:00
Manuel Araoz 6f2913eed4 fix references 2014-11-20 11:50:23 -03:00
Manuel Araoz 54fa31c85d remove crypto 2014-11-18 18:59:31 -03:00
Eric Martindale 6102374875 Full suite of working tests for Identities. 2014-10-06 18:03:20 -04:00
Eric Martindale 14748ae2b5 Make more tests pass with Identity(). 2014-10-06 17:54:20 -04:00
Eric Martindale 4b6e9aaf03 Improve tests. 2014-10-06 15:40:30 -04:00
Eric Martindale 75cf4c4f9a tidy up identity class, add tests. 2014-10-02 22:27:18 -04:00
Eric Martindale f01ebd97d2 Buffers, identities, and randomNumbers. 2014-10-01 21:08:06 -04:00
Ryan X. Charles f54edfb618 Varint(BN()) convenience
...and add some tests for the various constructor conveniences
2014-09-23 22:19:01 -07:00
Ryan X. Charles 8e85eba08b pushin, pushout
Add convenience methods for adding new inputs and outputs.
2014-09-23 22:09:41 -07:00
Ryan X. Charles c07d509623 initialize transaction
In order to add convenience methods to a transaction, such as pushing new
inputs and outputs, we need to first have the notion of an initialized
transaction, which is actually not blank. An initialized transaction just has
default values for everything, such as no inputs and no outputs, and default
version and nlocktime.
2014-09-23 22:01:30 -07:00
Ryan X. Charles b37e39abca Script().writeXX convenience methods
Script().writeOp('OP_CHECKMULTISIG'), or...
Script().writeOp(174), or...
Script().writeBuffer([push data buffer]), or...
Script().write([op string, number, or push data buffer])

These convenience methods let you easily write a script.
2014-09-23 21:28:03 -07:00
Ryan X. Charles d689dbb77e speed up random test slightly
...by caching hexes. Also, correct the "1000" typo - it's actually 100.
2014-09-23 20:28:16 -07:00
Ryan X. Charles 4f71535869 StealthTx
For spotting transactions to which you have the stealth key (or at least the
scan key) and creating transactions to a stealth address. So far it is only
partially working - you can see if a transaction is a stealth transaction (or
at least one of a limited kind of stealth transactions), and you can see that
you do not have the stealth key to spend one of these transactions. However, I
have not yet tested whether you can see a stealth transaction that you actually
have the key to. Also, it is not yet easy to spend to a stealth address.
2014-09-23 16:54:52 -07:00
Ryan X. Charles 4fabad21a1 get rid of obsolete 'bitcore' stealth addr format 2014-09-23 14:27:48 -07:00
Ryan X. Charles 22b87325d7 make Dark Wallet buffer/string formats the default
and rename the old functions to "bitcore buffer" and "bitcore string"
2014-09-23 14:27:48 -07:00
Ryan X. Charles 96df77429f add support for Dark Wallet-style addresses
These functions are prefixed DW which stands for Dark Wallet. The code for the
Dark Wallet address format can be found here:

https://github.com/darkwallet/darkwallet/blob/develop/js/util/stealth.js

Note that I deliberately support only the simplest possible format, which is
where there is only one payload pubkey and the prefix is blank. I should now go
back and replace my old toString, fromString, toBuffer, fromBuffer functions
with these Dark Wallet versions, since they are much more well-thought out than
mine.
2014-09-22 18:23:10 -07:00
Ryan X. Charles 9b8ce05b15 BufferWriter().toBuffer convenience method
It does the same thing as .concat(), but may be easier to remember, since the
rest of the library uses the ".toBuffer()" convention
2014-09-22 17:09:53 -07:00
Ryan X. Charles 792e8080c8 classify pubkeyhash and scripthash scripts
...both the "in" (ScriptSig) and "out" (ScriptPubkey)
2014-09-22 16:04:06 -07:00
Ryan X. Charles 5c7149aeab Stealthkey toJSON/fromJSON 2014-09-22 14:45:41 -07:00
Ryan X. Charles d6e3266179 toJSON/fromJSON for privkey, pubkey, keypair 2014-09-22 13:55:40 -07:00
Ryan X. Charles e984736736 allow bufs in constructors
For Transaction, Block and Blockheader. This is a convenience so if you happen
to have the buffer for one of these, you can make a new one like this:

Transaction(txbuf);

Rather than having to do this:

Transaction().fromBuffer(txbuf);
2014-09-22 13:07:39 -07:00
Ryan X. Charles 1516ad3012 remove unused addressString variable 2014-09-22 12:52:09 -07:00
Ryan X. Charles e6a424303e remove unused base58check dependency 2014-09-22 12:51:18 -07:00
Ryan X. Charles 1bda566679 stealth address to/from JSON 2014-09-22 12:48:13 -07:00
Ryan X. Charles 27fbdb42ad isOpReturn
standard OP_RETURN scripts contain either just an OP_RETURN or an OP_RETURN
followed by a single pushdata OP with not more than 40 bytes.
2014-09-19 21:59:19 -07:00
Ryan X. Charles ffdfe0ce83 add fromString test for bip32
...since it was lacking any tests
2014-09-19 21:02:57 -07:00
Ryan X. Charles cc3196085f add .hash() function for a block
This is the plain old hash, which is a double sha256. The id of a block is the
reverse of this.
2014-09-19 17:29:40 -07:00
Ryan X. Charles aff3992ffb transaction hash and id
...the hash is the usual hash, and the id is the reverse of that, which is what
is usually graphically displayed by bitcoind.
2014-09-19 17:25:35 -07:00
Ryan X. Charles 40d17c5180 block id
The block id is the reverse of the double sha256 hash of the blockheader.
2014-09-19 17:08:44 -07:00