Commit Graph

579 Commits

Author SHA1 Message Date
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