Commit Graph

832 Commits

Author SHA1 Message Date
Braydon Fuller 116ddac345 If skipMagic is enabled do not set the magic or size on the block, the values would have been incorrect. 2015-01-17 00:07:09 -05:00
Braydon Fuller 38b8c211f3 Fix jshint complaints. 2015-01-17 00:07:09 -05:00
Esteban Ordano b416655222 block serialization: Add option skip magic numbers 2015-01-17 00:07:09 -05:00
Yemel Jardi 42e2c6c525 Implement I5 on URI 2015-01-15 18:17:15 -03:00
Esteban Ordano 6923b9bed9 Drop explorers 2015-01-14 11:44:58 -03:00
Esteban Ordano 7d4cda171a Merge pull request #955 from maraoz/improve/error/system
new error system with no code generation
2015-01-13 20:25:20 -03:00
Manuel Araoz b37a8d2f32 new version of extend 2015-01-13 20:18:28 -03:00
Manuel Araoz f2eeb7664e fix extend 2015-01-13 20:11:40 -03:00
Manuel Araoz 149b7fafed new error system with no code generation 2015-01-13 19:02:16 -03:00
Esteban Ordano eaa07363a9 Drop code for the p2p module 2015-01-12 16:59:09 -03:00
Manuel Aráoz dac8cdf0aa Merge pull request #943 from eordano/modularize/paymentprotocol
Drop payment protocol submodule
2015-01-12 16:17:10 -03:00
Manuel Aráoz eeb94ee727 Merge pull request #949 from eordano/fix/multipleTxin
When creating a Transaction, don't allow the user to repeat an utxo
2015-01-12 16:16:47 -03:00
Esteban Ordano f3663e26d6 Don't add the same input twice 2015-01-12 11:59:15 -03:00
Elichai Turkel b827e36e13 Added mempool request
I added `GetMempool` function that sends an 'mempool' request.
the answer will come in 'inv' message.
2015-01-11 13:35:44 +02:00
Esteban Ordano 41191a285f Add alternative to create an Address
* When by error one has two instances of an address, an address
can't be instantiated from the other
2015-01-10 14:16:51 -03:00
Esteban Ordano ca1d8e9eeb Drop payment protocol submodule 2015-01-09 20:20:58 -03:00
Manuel Aráoz 50a868cb8c Merge pull request #917 from eordano/transaction/updates
Changes to internal transaction and address
2015-01-09 17:44:13 -03:00
Manuel Aráoz 6c3640ebcf Merge pull request #936 from eordano/modularize/rpc
Drop all rpc code/docs
2015-01-09 17:41:55 -03:00
Manuel Aráoz 7c87305943 Merge pull request #935 from eordano/feature/outputinspect
Add inspect method to output
2015-01-09 17:11:03 -03:00
Esteban Ordano 4fba2bc86c Drop all rpc code/docs 2015-01-09 16:58:44 -03:00
Esteban Ordano bdeac4e67d Add inspect method to output 2015-01-09 16:53:50 -03:00
Esteban Ordano 26e688ae06 Add .toScriptHashOut() to scripts
- Also sort gulpfile dependencies
2015-01-09 16:09:36 -03:00
Manuel Aráoz f6cc8c695b Merge pull request #916 from eordano/dusterror
Don't allow serialization if dust amounts are detected
2015-01-09 13:45:07 -03:00
Braydon Fuller 84cc1a0042 Indicate internal use of getID with an underscore. 2015-01-09 10:20:27 -05:00
Braydon Fuller 81fa162a7f Fix .jshintrc and add missing semis 2015-01-09 10:08:01 -05:00
Braydon Fuller b38f7fa319 Added getID to PublicKey
- Tests in BloomFilter in [bitcoin core](https://github.com/bitcoin/bitcoin/blob/master/src/test/bloom_tests.cpp#L85) use the CPubKey.GetID as input into the BloomFilter
- The hash is calculated when generating an Address however the hash itself is not currently available
2015-01-08 19:17:51 -05:00
Esteban Ordano 0f73c3f7a3 Throw error if dust amount is detected 2015-01-08 18:02:59 -03:00
Esteban Ordano ff82ccec71 Return undefined instead of a null signature 2015-01-08 17:42:08 -03:00
Esteban Ordano dc6ff32290 Make serialization roundtrip recover info about inputs 2015-01-08 17:42:08 -03:00
Manuel Aráoz ce7a9d33c6 Merge pull request #918 from eordano/test/coverage/addchange
Improve test coverage
2015-01-08 17:33:53 -03:00
Esteban Ordano d053599fd2 Improve test coverage 2015-01-08 17:24:29 -03:00
Esteban Ordano 1a30be3aa5 Merge pull request #913 from braydonf/feature/messages-for-modules
Export messages so that they can be extended from another module.
2015-01-08 15:17:42 -05:00
Yemel Jardi 5f59fd0d05 Merge pull request #903 from eordano/fix/addchange
Add `change` when serializing transaction
2015-01-08 17:00:14 -03:00
Esteban Ordano fe86abc093 Add `change` when serializing transaction 2015-01-08 16:39:53 -03:00
Yemel Jardi e57d02c03c Use define immutable helper 2015-01-08 10:57:46 -03:00
Braydon Fuller b6da2e87be Export messages so that they can be extended from another module. 2015-01-08 01:51:17 -05:00
Braydon Fuller 9ba7eff9e0 Merge pull request #889 from yemel/fix/add-derivation-check
Add method for validating a derivation path
2015-01-07 10:24:23 -05:00
Yemel Jardi e222ae08c4 fix typo 2015-01-07 12:19:41 -03:00
Esteban Ordano cfecfa2d8d Merge pull request #904 from braydonf/bug/safari-address
Fixed bugs in Safari and IE. Closes #837 and #784
2015-01-07 09:27:07 -05:00
Esteban Ordano 69c8c108a5 Merge pull request #905 from braydonf/bug/defaultNetwork-tests
Fixed tests to handle a `defaultNetwork` change. Closes #890
2015-01-07 09:26:19 -05:00
Braydon Fuller 8b505f0cfa Fixed tests to handle a `defaultNetwork` change
- Updated tests to work for both 'testnet' and 'livenet' as the default network.
- Fixed a bug in Address where the network property was being set as a string.
- Fixed a bug in HDKeys to handle serialized keys when the defaultNetwork changed.
2015-01-06 18:51:31 -05:00
Braydon Fuller bce28cd227 Fixed bug in IE11 that would cause MAX_MONEY verification test to fail. 2015-01-06 12:00:28 -05:00
Yemel Jardi 0beed6efa4 Refactor HDPublicKey path validation 2015-01-06 12:08:42 -03:00
Yemel Jardi f78ebeb46c Refactor HDPrivateKey path validation 2015-01-06 11:51:58 -03:00
Esteban Ordano e01003f40b Merge pull request #888 from yemel/fix/script-toAddress
Use defaultNetwork in Script.toAddress
2015-01-06 09:22:22 -05:00
Yemel Jardi d369154162 Script: remember network when creating from address or pubkey 2015-01-06 10:28:48 -03:00
Braydon Fuller ff4a6f549d Fixed bugs in IE11 2015-01-05 23:27:20 -05:00
Braydon Fuller a801663c6d Fixed bug in Safari for PublicKey and Script instance checking in Address 2015-01-05 17:31:51 -05:00
Esteban Ordano 4920932db8 Merge pull request #892 from yemel/fix/privatekey-tostring
Change PrivateKey.toString from WIF to hex format
2015-01-05 10:02:11 -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
Yemel Jardi 9f8e2c721f fix typo 2015-01-02 18:25:08 -03:00
Yemel Jardi ff844e9935 Change PrivateKey.toString from WIF to hex format 2015-01-02 18:15:17 -03:00
Yemel Jardi 98cfd646e7 Allow creating a new random testnet HDPrivate key 2015-01-02 18:01:21 -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 7cf826249b Add jsdocs and documentation to UnspenOutput and Insight 2015-01-02 15:59:14 -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 476f009b4d Add Insight and UTXO class 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 95bfb18849 Fix the error loop.
I added a similar badrs function to python-ecdsa and compared the results.

The 1 badrs (aka forcing it to loop once) gave me a different value. It turns out you missed one of the `v = hmac_k(v)` steps during the loop.

Adding one extra `v = hmac_k(v)` in each loop makes it match up with python-ecdsa perfectly (I even tried up to badrs = 30 and it was fine.
2015-01-02 15:32:33 +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
Yemel Jardi 379405396e Merge pull request #875 from eordano/fix/honorPublicKeyNetwork
Honor publicKey.network on create multisig address
2014-12-31 13:14:05 -03:00
Esteban Ordano 901d836231 Add default network to PublicKey
Closes #871
2014-12-31 02:20:47 -03:00
Esteban Ordano 5ef9975ac5 Honor publicKey.network on create multisig address
Closes #870
2014-12-31 02:19:11 -03:00
Esteban Ordano dbf47ef78f transaction: better errors for signature methods
Closes #868
2014-12-31 02:10:51 -03:00
Yemel Jardi d5f76e8517 Fix creation of a randomn testnet private key 2014-12-30 18:44:27 -03:00
Esteban Ordano f74c7f3929 Simplify script to address method 2014-12-30 16:23:17 -03:00
Esteban Ordano ffca4cfb6f Fixes Script test case for coverage and style 2014-12-30 15:34:30 -03:00
Esteban Ordano c1a1571535 Fix JSDoc for script 2014-12-30 15:27:05 -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 Araoz 0914624860 fix releaser script 2014-12-24 11:44:13 -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 225ade6c7a return comment to deterministicK 2014-12-22 17:33:00 -03:00
Manuel Araoz aa6ecfd79b hash 100% coverage 2014-12-19 19:23:30 -03:00
Manuel Araoz 686bc091ba remove dead code 2014-12-19 18:54:10 -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
Manuel Aráoz bd2e326708 Merge pull request #824 from eordano/review/jsdoc-uri
Lint and cover URI completely
2014-12-19 15:26:56 -03:00
Manuel Aráoz ccf9527bd7 Merge pull request #827 from eordano/lint/interpreter
Lint script/interpreter
2014-12-19 15:26:35 -03:00
Esteban Ordano a379876e0b Delete lint errors from autogenerated file 2014-12-19 14:21:48 -03:00
Esteban Ordano 490279acb0 Lint script/interpreter 2014-12-19 14:17:58 -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
Manuel Aráoz 85169a3874 Merge pull request #812 from eordano/feature/safeSerialize
Modify Transaction Interface
2014-12-19 10:37:24 -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
Braydon Fuller 6d42e01718 Fix formatting issue with examples 2014-12-18 17:07:01 -05: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 24dc84d614 Dont lose sighash when signing with multiple keys 2014-12-18 02:19:39 -03:00
Esteban Ordano de4413745d Fix missing disambiguation 2014-12-18 01:43:04 -03:00
Esteban Ordano a352937566 Fix transaction order 2014-12-18 01:42:45 -03:00
Esteban Ordano 6be0c047b7 Update index for the documentation 2014-12-17 17:40:15 -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
Esteban Ordano 12cac0e33d Fix tests on browsers: need to add Buffer exception 2014-12-17 12:38:56 -03:00
Esteban Ordano c793559fa9 Fix bug on HD*Keys 2014-12-17 12:31:04 -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
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 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
Esteban Ordano 20fc304f44 Merge pull request #765 from maraoz/test/sig_noncanonical
add sig_noncanonical.json tests
2014-12-16 18:02:40 -03:00
Esteban Ordano d4b8c4adc6 Remove globals 2014-12-16 17:30:43 -03:00
Esteban Ordano 4433bd422b Refactor gulpfile 2014-12-16 17:21:41 -03:00
Esteban Ordano ed9a9f6da9 Fix wrong jsdocs 2014-12-16 17:21:41 -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 3eba0bc546 address review comments 2014-12-16 13:33:57 -03:00
Manuel Araoz 7683d2c2ed fix post-rebase confilcts 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 50dd4e8e66 fix all script validation tests, yay! 2014-12-16 13:33:56 -03:00
Manuel Araoz 4b68c3725d generalize script tests 2014-12-16 13:33:56 -03:00
Manuel Araoz ddd11e908c all script_valid tests passing! 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 73874ae873 import Sighash 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 6a0512e1bf pass some more tests 2014-12-16 13:33:56 -03:00
Manuel Araoz 401b5b1b4a Pubkey -> PublicKey 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
Manuel Aráoz 7064a07f99 Merge pull request #744 from braydonf/feature/transport-peer-pool
Transport: Added a peer pool to maintain a set of connected peers. Closes #724
2014-12-16 12:44: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
Manuel Aráoz e52be70ed0 Merge pull request #752 from eordano/review/doc
Update docs and minor changes to codebase
2014-12-16 03:09:26 -03:00
Esteban Ordano 9d0b5e04fe Update Signature, URI, Unit 2014-12-16 03:02:05 -03:00
Esteban Ordano 63f1d307fa Reviewing docs 2014-12-16 02:45:23 -03: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 48ce24dfbe Fix tests to allow network on public keys 2014-12-15 19:28:59 -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
Esteban Ordano 1535805f1c Add PublicKeyHashInput class 2014-12-15 18:19:39 -03:00
Esteban Ordano af43228daf Add `PublicKeyHashInput` and `ScriptHashInput`.
Remove `_outpoints`, `_utxos` from Transaction, as that info
can be efficiently retrieved from the inputs
2014-12-15 18:19:39 -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
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 6f6d568661 Transaction: toNumber/fromNumber to set satoshis 2014-12-13 15:10:51 -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 f43c2f9aa3 Fixed bug, toObject should use other object's toObject 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 002eb3dcf5 Transaction: Added toObject method and changed toJSON to return a string 2014-12-12 19:03:14 -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 1c0caac8c3 HDKeys: Added toObject method and changed toJSON to return a string 2014-12-12 18:39:16 -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
Braydon Fuller 0e7f5e89f2 Fixed issue with js util naming 2014-12-12 17:54:48 -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 93502d1523 Fix naming 2014-12-12 12:09:15 -05:00
Braydon Fuller 683ac93c0b Fix utility naming issue 2014-12-12 12:06:39 -05:00
Braydon Fuller 162438d111 Block: Change utility naming 2014-12-12 12:06:39 -05:00
Braydon Fuller 3276236cce Consistent names for utilities 2014-12-12 12:06:39 -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 7aaee6466f Fix spacing formatting issues 2014-12-12 11:24:14 -05:00
Braydon Fuller 32ac9bb63e Change utility naming 2014-12-12 11:05:22 -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 77be24a52f Bump 2014-12-11 22:27:37 -05:00
Braydon Fuller 6bb9990a2b Opcode: JS-Beautify 2014-12-11 20:37:54 -05: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 d3b761fc7c Opcode('*').toNumber() -> Opcode.* 2014-12-11 16:19:22 -03:00
Manuel Araoz bb8373ead7 remove script_interpreter for partial commit 2014-12-11 16:19:22 -03:00
Manuel Araoz 53f6a31e73 refactor script 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 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 e1f1f4b6f6 Hotfix: Remove console.log 2014-12-11 16:11:47 -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 5b0bedee6c PrivateKey: Fixed documentation 2014-12-11 13:29:21 -05:00
Braydon Fuller d4d3d4ab4a PrivateKey: Add documentation and refactor to use network object as a parameter. 2014-12-11 13:21:09 -05:00
Manuel Aráoz b89f15bcf1 Merge pull request #705 from braydonf/ref/address-network
Address: Documentation and Network Refactor
2014-12-11 13:22:04 -03:00
Yemel Jardi 9b6183b083 Improving code thanks to jshint 2014-12-11 13:11:55 -03:00
Yemel Jardi ee169a80af Replace buffertools 2014-12-11 12:45:24 -03:00
Braydon Fuller 56161676c3 Address: Change discoverMeta to classifyVersion and add a general address validation example 2014-12-11 10:42:10 -05:00
Yemel Jardi c30f656540 Remove custom hex function at networks.js 2014-12-11 11:57:14 -03:00
Yemel Jardi 63022783dd Add developer guide section 2014-12-11 11:31:52 -03:00
Esteban Ordano ef49dda0fd Move input to subfolder before refactor
Gonna inherit from it on two subclasses: "P2SH Input" and "P2PKH Input"

They'll have a `addSignature` method, to deal with new signatures,
a `clearSignatures`, in case the outputs change and the signatures get
invalidated, `countMissingSignatures`, and a reference to the UTXO
they'll be spending, so all logic regarding "p2sh mapping" gets to
be in here and the Transaction class is not polluted.
2014-12-11 09:18:20 -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 57968674ef Add a better check on networkMaps 2014-12-10 18:09:27 -03:00
Yemel Jardi 228e7e214a Add tests 2014-12-10 18:09:27 -03:00
Yemel Jardi 2d4b26a6a1 Add missing serializations 2014-12-10 18:09:27 -03:00
Yemel Jardi 56907c1a3b Add missing argument 2014-12-10 18:09:27 -03:00
Yemel Jardi 9ce450c142 Remove old tests 2014-12-10 18:09:27 -03:00
Yemel Jardi 30740be5df Remove old files 2014-12-10 18:09:27 -03:00
Yemel Jardi 8eca7285e0 Refactor and documentation 2014-12-10 18:09:26 -03:00
Yemel Jardi 5dc124a438 Add inheritance to messages and expose them as a module 2014-12-10 18:09:26 -03:00
Yemel Jardi 68f50b2f61 Add messages serialization 2014-12-10 18:09:26 -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
Manuel Araoz ec464681fe add sorting to Script#buildMutlisigOut() 2014-12-10 16:46:20 -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 6727342202 Merge pull request #689 from eordano/feature/scriptOpcodeUpdate
Feature/script opcode update
2014-12-09 18:18:19 -03:00
Esteban Ordano fd531de123 Update opcode and script transactions 2014-12-09 17:53:30 -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 3551742fee Miscelaneus updates to docs and bufferreader/writer 2014-12-09 17:31:20 -03:00
Esteban Ordano 1816ba197f Add check functions to Address 2014-12-09 17:25:36 -03:00
Braydon Fuller c86f6d68a9 ECDSA: Remove console.log 2014-12-09 13:51:10 -05: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 4e9e89cdbf Move license notes to LICENSE 2014-12-09 13:46:14 -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 58b43345c0 add docs 2014-12-04 18:39:13 -03:00
Manuel Araoz 6c5198b743 fix a browser test 2014-12-04 15:38:46 -03:00
Manuel Araoz d19ad6f384 remove commented code 2014-12-04 15:10:19 -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 163925c754 implement Script.buildMultisigOut() 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 012466d411 PublicKey: Remove compressed boolean from validation, not nessassary. 2014-12-04 13:06:10 -05:00
Braydon Fuller 64c0d5f942 Payment Protocol: Restore and reorganize files for payment protocol. 2014-12-04 10:43:40 -05:00
Esteban Ordano d29d8d267d Add message to stack 2014-12-03 11:49:33 -03:00
Esteban Ordano 121b9fc090 Fixes issues with errors 2014-12-03 10:06:44 -03:00
Manuel Araoz ef8f1eabd2 add script.isStandard() 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 3e2bcaa297 more verbose invalid script error 2014-12-02 14:20:58 -03:00
Manuel Araoz ed0fc6298c 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 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 ebf97aa4bb fix condition style again 2014-12-02 14:20:02 -03:00
Manuel Araoz 94f1afbad7 fix tests 2014-12-02 14:20:02 -03:00
Manuel Araoz 98be01b207 fix conditional format 2014-12-02 14:20:02 -03:00
Manuel Araoz 66e96e5fa4 make tests pass with Script refactor 2014-12-02 14:20:02 -03:00
Manuel Araoz 87f6651554 initial Script refactor 2014-12-02 14:20:02 -03:00
Braydon Fuller 3fc12e87d7 Merge pull request #648 from braydonf/ref/default-networks
Networks: Consistency of network reference and fix hardcoded value
2014-12-02 11:12:20 -05:00