Commit Graph

321 Commits

Author SHA1 Message Date
Ryan X. Charles e48561302b Merge pull request #401 from ryanxcharles/feature/bip70-protobuf
add BIP70 protobuf features in new PayPro lib file
2014-07-03 15:35:41 -07:00
Ryan X. Charles 39889476fb add sign/verify with pki_type SIN
...which is much easier to implement than X.509 certificates.
2014-07-03 15:35:32 -07:00
Ryan X. Charles 71e226b782 serialize payment request for signature 2014-07-03 15:35:32 -07:00
Ryan X. Charles 76804bef45 Fix checksum comparison error. Closes #402 2014-07-03 09:17:54 -07:00
Ryan X. Charles 0bea06f785 add BIP70 protobuf features in new PayPro lib file
...and add to the "main" bundle, but not the "all" bundle, since it adds
hundreds of kilobytes to the bundle.
2014-07-02 11:39:21 -07:00
Petros Angelatos d2ce401f84 remove dead code 2014-07-02 01:22:18 +01:00
Devrandom efb62b08b7 add check function for BIP39
fixes #393
2014-07-01 14:00:08 -07:00
Ryan X. Charles ca67786a77 ran js-beautify on all bitcore source
js-beautify -s 2 -r *.js

...did not run on bundles, only on source.
2014-06-23 10:57:02 -07:00
Ryan X. Charles ad5e83f9ff Merge branch 'bip39'
Conflicts:
	browser/bundle.js
2014-06-20 19:35:24 -07:00
Ryan X. Charles 266759ff60 Merge remote-tracking branch 'devrandom/bip39'
Conflicts:
	test/index.html
2014-06-20 19:34:21 -07:00
Ryan X. Charles 54c8e04738 remove unbuilding c code, and ...
* Remove c code that didn't compile on my machine
* Replace with sjcl code
* Minor modifications to mnemonic interface more bitcoreish
2014-06-20 19:09:21 -07:00
Ryan X. Charles a7270282d3 Merge pull request #384 from manan19/move-scriptForAddress
Move TransactionBuilder.scriptForAddress to Address.getScriptPubKey. Resolves #373
2014-06-19 20:33:36 -07:00
rxl 1170923f86 fix grammar in 'not enough unspent tx outputs' error in tx builder 2014-06-19 17:52:54 -07:00
Manan Patel d83fc6e4b5 Resolves #373
Move TransactionBuilder.scriptForAddress to Address#getScriptPubKey (instance method)
2014-06-19 08:40:30 -07:00
Ryan X. Charles 83aada8648 Merge pull request #379 from ryanxcharles/feature/address-throw-error
throw error when using invalid length hash in Address constructor
2014-06-13 08:17:18 -07:00
Manuel Araoz 0d670ff979 suggestions by ryan 2014-06-12 16:54:59 -03:00
Manuel Araoz b402bbfa6c fixing copay problems 2014-06-12 16:28:00 -03:00
Manuel Araoz 5c11ac3e87 malloc -> calloc, to fix linux version 2014-06-12 13:56:29 -03:00
Manuel Araoz d313ed037e trying to fix 2014-06-12 12:29:51 -03:00
Manuel Araoz 2c7c2d85b3 breaking 2014-06-12 12:29:51 -03:00
Manuel Araoz a15962da88 fixing 2014-06-12 12:29:51 -03:00
Manuel Araoz a57191c66f working on fixing the wierd test 2014-06-12 12:29:51 -03:00
Manuel Araoz a2b8bb0f51 even weirder fix 2014-06-12 12:29:51 -03:00
Manuel Araoz 7b3c6d5bcd remove console.log 2014-06-12 12:29:51 -03:00
Manuel Araoz 9e46334d27 wierdest way of fixing the problem 2014-06-12 12:29:51 -03:00
Ryan X. Charles c2e5a14eed throw error when using invalid length hash in Address
I have often made the error of using a public key rather than the hash of the
public key when creating an address, leading to invalid addresses. I'm sure I'm
not the only one. This commit follows the principle of "fail early, fail often"
and simply throws an error if you try to insert something other than 20 bytes
long when creating an address, which would be the case when using a public key.
This way that common mistake should be reduced.
2014-06-11 18:13:39 -07:00
Ryan X. Charles 772b12e471 Merge pull request #377 from cmgustavo/feature/fee-constant
Exporting a constant on TransactionBuilder for use on Copay
2014-06-11 15:38:50 -07:00
Gustavo Cortez 1d957b24d9 Exporting a constant on TransactionBuilder for use on Copay (to check available funds to spend). A simple test for this. 2014-06-11 19:00:11 -03:00
Devrandom b523eee812 Switch BIP-0039 to sjcl in browser 2014-06-08 13:30:47 -07:00
Devrandom 79d50e92d4 BIP39 in browser 2014-06-08 12:43:05 -07:00
Devrandom f2472e691b Separate out BIP39 2014-06-08 12:41:37 -07:00
Devrandom 63f7e3d062 BIP39 implementation 2014-06-08 12:40:28 -07:00
Ryan X. Charles 338158ca46 fix sjcl issue on npm install
...by including sjcl locally
2014-06-06 11:49:58 -07:00
Ryan X. Charles 2dac2b1f47 Merge pull request #362 from ryanxcharles/feature/ECIES
add ECIES support
2014-06-05 20:31:08 -07:00
Ryan X. Charles 80ccaa8396 rename "rand" to more explanatory "getRandomSeed" 2014-06-05 16:41:47 -07:00
Ryan X. Charles b8986ed0e1 Merge pull request #357 from ionux/master
Fix to check for zero s value in sign function
2014-06-05 12:24:19 -07:00
Ryan X. Charles 117eaa4288 remove underscore dependency to decrease bundle size 2014-06-04 18:43:00 -07:00
Gabe 8e96d1439d check if seed is greater than 512 bits 2014-06-04 13:42:06 -04:00
Ryan X. Charles af9fdff3a9 use SJCL AES to get ECIES working in the browser 2014-06-03 19:03:50 -07:00
Ryan X. Charles e963ff3c45 add ECIES support in node - not browser 2014-06-02 20:15:58 -07:00
Rich Morgan eab5c2896e Fix to check for zero s value in sign function
If r OR s are zero then recalculate both r and s until they are both non-zero values.
2014-05-28 11:34:18 -04:00
Ryan X. Charles bc84d1e82b Merge pull request #351 from matiu/bug/minor-bug-in-address-FromScript
fix .fromScriptPubKey parsing in some strange Txs
2014-05-26 08:43:43 -07:00
Matias Alejo Garcia e60e389e43 add more strict checking, plus tests 2014-05-25 23:46:20 -03:00
Matias Alejo Garcia 349143ba02 change log in checkStatus to .debug 2014-05-25 23:06:52 -03:00
Matias Alejo Garcia 56e7739a46 reverse changes in address 2014-05-25 23:01:59 -03:00
Matias Alejo Garcia be02d41ac2 fix isMultiSig 2014-05-25 23:00:49 -03:00
Matias Alejo Garcia ddd1476a39 fix buffer 2014-05-25 22:25:12 -03:00
Matias Alejo Garcia 691fec5342 fix .fromScriptPubKey parsing in some strange Txs 2014-05-25 22:25:12 -03:00
Gordon Hall 92e89d307e fix #346 2014-05-13 13:26:48 -04:00
Ryan X. Charles c038abc8e7 rename BIP32 -> HierarchicalKey, deprecate BIP32
Sounds better.
2014-05-11 13:09:57 -04:00
Rich Apodaca 8489b50c32 Fixed TransactionBuilder docs 2014-05-08 14:53:18 -07:00
Manuel Aráoz 27b60c9e3f Merge pull request #338 from matiu/bug/snippet
fix snippet
2014-05-08 17:08:11 -03:00
Matias Alejo Garcia bd91d17f57 fix snippet 2014-05-08 16:39:56 -03:00
olalonde 0c6a0c61d3 Armory: removed unused buffertools dependency 2014-05-08 08:46:09 +08:00
olalonde e06e556ca3 Eckey: renamed multiply to multiplyUncompressed for consistency 2014-05-08 08:10:07 +08:00
olalonde 59ee476b96 Armory: use native multiplication in node and javascript implementation in browser 2014-05-08 07:54:12 +08:00
olalonde b5c1a7d387 Eckey: implemented point multiplication 2014-05-08 07:54:12 +08:00
olalonde af942f9b06 Armory: added tests 2014-05-08 07:54:12 +08:00
olalonde 7800128b9b Armory: from master public key 2014-05-08 07:54:11 +08:00
olalonde 708b59eb3e Armory: fixed bug.. extra lines considered as real input 2014-05-08 07:54:11 +08:00
olalonde f647af50b7 Fixed browser exception caused by lib/Curve.js 2014-05-08 07:54:11 +08:00
olalonde fa211f98bb Armory: cleaned up example 2014-05-08 07:54:11 +08:00
olalonde 468ebddc1e Implemented Armory initializing from seed 2014-05-08 07:54:11 +08:00
olalonde e2655f553d Added EC Point multiplication to browser/Point.js 2014-05-08 07:54:11 +08:00
olalonde 78ae388553 Replace process.versions tests by browserify's package.json browser field. Fixes #329 2014-05-07 14:14:10 +08:00
Ryan X. Charles 527c49a11d remove unused chai dependency 2014-05-05 11:04:24 -04:00
Ryan X. Charles d3a4cfa333 remove eval
eval is unsafe, and the way it was being used in Script and Script interpreter
was not a good enough reason. This commit removes both uses of eval, then
replaces all uses of OP_XXX with Opcode.map.OP_XXX since there's no reason for
those constants to be global.
2014-05-05 10:43:24 -04:00
Matias Alejo Garcia 536db27da3 add docs to Address class 2014-05-03 16:52:39 -03:00
Matias Alejo Garcia f0155a5297 docs in Txbuilder 2014-05-01 11:53:52 -03:00
Ryan X. Charles b1f34d4015 iterate array correctly so that random number is actually used in signing 2014-05-01 10:09:33 -04:00
Ryan X. Charles 405ea0bf6f fix bignum issue
In the browser, sometimes the config for bignum wasn't being set up if (somehow
... still not sure how this is possible) you use bitcore without using
require('bitcore'). This would by pass the code that set the config for bignum.
Solution is to put the config for bignum in bignum itself (in the browser).

This fixes, in particular, an issue with base58 where it was depending on
bignum having the proper config.

Also I add the base58 tests to run in the browser which they weren't
previously.

And finally I add a small test for Bignum in the browser that makes sure the
config is set properly.
2014-04-29 17:59:24 -04:00
Ryan X. Charles c7218ea2fc Merge pull request #305 from maraoz/refactor/improve-BIP32
Refactor/improve bip32 and add test
2014-04-29 15:00:39 -04:00
Manuel Araoz e9fa7e36ce remove alert 2014-04-29 14:45:08 -03:00
Manuel Araoz ac719345e8 add tests for BIP32 2014-04-29 14:37:37 -03:00
Manuel Araoz 6cf690afcc improve BIP32 error message 2014-04-29 12:43:29 -03:00
Manuel Araoz ce00b77de0 name change forKey -> fromKey 2014-04-29 11:49:42 -03:00
Manuel Araoz a1a844c1e6 add Address.forKey convenience method and example vanity address generator 2014-04-29 11:49:42 -03:00
Ryan X. Charles 1959ce953c Merge pull request #298 from ryanxcharles/feature/bignum
Move bignumber.js to internal
2014-04-29 10:47:55 -04:00
Matias Alejo Garcia ec2299362c docco documentation 2014-04-29 11:33:20 -03:00
Ryan X. Charles 0c8a582522 Merge pull request #301 from matiu/bug/firefox
fix firefox test
2014-04-29 10:22:15 -04:00
Matias Alejo Garcia 00c639d350 fix firefox test 2014-04-29 10:29:38 -03:00
Ryan X. Charles 7f348ca0bd Move BigNumber to internal
...no longer relies on Manuel's repo hostig a version of "bignum" that actually
contained bignumber.js. This moves bignumber.js internally and removes bignum
from the browser build process. Also adds a bitcore.Bignum that links to the
right thing. In node, browser.Bignum is require('bignum'). And in the browser,
bitcore.Bignum is is now Bignumber.js (same as before ... except bignumber.js
is now inside bitcore).
2014-04-28 18:00:59 -04:00
Gordon Hall bf1b4bdcc7 replace extend with underscore and use it's version of extend from within PeerManager 2014-04-28 12:23:56 -04:00
Ryan X. Charles c7b33eca9a update key signing to use new SecureRandom
...and throw an error if you try to use the old, non-secure random number
generator.
2014-04-25 15:00:51 -03:00
Ruben de Vries 4860b8f3c7 updated naming for getMultiSigInfo 2014-04-25 15:02:19 +02:00
Ruben de Vries e301a14657 added Script.getMultiSigInfo as easy helper to return information about a multisig script 2014-04-25 14:58:44 +02:00
Ryan X. Charles 10d164b292 add require('bignum') in key 2014-04-24 15:33:38 -03:00
Ryan X. Charles 9575929162 Merge branch 'feature/secure-random'
Conflicts:
	lib/browser/Key.js
2014-04-24 09:19:58 -03:00
Matias Alejo Garcia 64b5623d54 removes buffertools dependencies in browsers Key.js 2014-04-23 21:32:25 -03:00
Ryan X. Charles 350f6ae998 Key should make sure new privkey is less than N
...this involves adding a Curve class, and significant refactoring to make this
possible in a clean way.
2014-04-23 21:15:55 -03:00
Matias Alejo Garcia a83309eede rm log 2014-04-22 23:11:07 -03:00
Ryan X. Charles dbcf270826 use SecureRandom in Key in the browser
...to make sure random numbers are generated securely
2014-04-22 22:43:22 -03:00
Ryan X. Charles 75d2d0d390 fix issues with ConnectionTor example and Connection class 2014-04-22 22:28:31 -03:00
Ryan X. Charles ba692aaa20 add new SecureRandom class that does the right thing
Generating random numbers properly depends on the platform. The new
getRandomBuffer method does the right thing on the right platform. It will
sometimes fail due to insufficient entropy. The getPseudoRandomBuffer class is
also provided that will never fail, but it is not cryptographically secure and
should not be used for keys.
2014-04-22 22:18:59 -03:00
Matias Alejo Garcia 906378aac4 rm spaces 2014-04-22 21:10:39 -03:00
Matias Alejo Garcia 9951b55a4f signature sorting in .sign and .merge in transaction builder 2014-04-22 21:09:22 -03:00
Matias Alejo Garcia 56d81bc0df remove unused code from Script. Update it to do not use scriptSig placeholders 2014-04-22 21:09:22 -03:00
Ryan X. Charles 2c553c0dd9 Merge pull request #280 from ryanxcharles/feature/improve-bip32-speed
BIP32 speed improvement
2014-04-22 20:06:34 -03:00
Ryan X. Charles f82fa5007a move *.browser and *.node to browser/* and node/*
...this should leave the lib folder a little bit less cluttered.
2014-04-22 19:36:18 -03:00
Ryan X. Charles 05d86b6453 split up Key into Key.browser and Key.node 2014-04-22 19:13:35 -03:00
Ryan X. Charles abc799f453 split up Point into separate node and browser versions 2014-04-22 19:13:35 -03:00
Ryan X. Charles 86bb67b76d remove unnecessary bignum conversion 2014-04-22 17:45:08 -03:00
Ryan X. Charles 6a4387e768 allow creating blank BIP32 by passing in null 2014-04-22 17:42:50 -03:00
Ryan X. Charles d52e8ac8ed remove multiple concats with one, more efficient, concat 2014-04-22 17:27:01 -03:00
Ryan X. Charles d54fa570a2 default BIP32 to livenet 2014-04-22 12:25:05 -03:00
Ryan X. Charles 7f7d076c7f Merge remote-tracking branch 'olalonde/electrum' 2014-04-22 09:20:42 -03:00
olalonde 2644dbb2db Electrum.js: wrote some tests 2014-04-21 04:21:33 +08:00
olalonde 7466d916f1 Electrum.js specified what is supported for now 2014-04-21 03:53:54 +08:00
olalonde c818b549c6 Added Electrum.js which allows Electrum style key derivation 2014-04-21 03:52:07 +08:00
Gordon Hall 9934b29eff update example, added log statements to status check in peer manager for showing how many good peers there are 2014-04-20 14:31:07 -04:00
Gordon Hall def036b79f setup connection pool and auto handling of bad seeds 2014-04-20 14:04:52 -04:00
Gordon Hall f877b3e563 some aesthetic changes 2014-04-19 15:32:20 -04:00
Gordon Hall 9cbab7f67e fix networks var in discoverPeers() to match what might be imported 2014-04-19 15:26:34 -04:00
Gordon Hall e82867007e simplified example for peer discovery, added some debug output to discoverPeers(), made Peer reference the connection created from createConnection() 2014-04-19 15:12:44 -04:00
Gordon Hall 76247ff532 resolved merge conflicts 2014-04-19 12:13:24 -04:00
Ryan X. Charles 659dc10f96 add support for signing/verifying messages
This adds a new Message class with static methods for signing and verifying a
message the same way as bitcoind. (In a nutshell, messages a prepended with
"Bitcoin Signed Message:" before being hashed and signed).

There is one important piece missing ... verifying a signature with an address,
and not a public key. I have not yet implemented this because the cryptography
interface of bitcore does not allow me to derive the public key from a
signature. This will need to be added before verifying from an address is
possible.
2014-04-19 11:28:19 -03:00
Matias Alejo Garcia 5a1d572a8d add new constructor to Address (fromScriptPubKey) 2014-04-18 16:51:40 -03:00
Eric Martindale 0ae2fc73ab Merge branch 'master' of github.com:bitpay/bitcore into clean
Conflicts:
	examples/PeerManager.js
	examples/SendTx.js
	lib/Connection.js
	lib/PeerManager.js
2014-04-17 16:38:30 -04:00
Eric Martindale 433e40f390 Merge branch 'master' of github.com:bitpay/bitcore into clean 2014-04-16 14:36:17 -04:00
Eric Martindale a2d616da5b Project reorganization. 2014-04-13 13:28:42 -07:00
Eric Martindale f3b1c2d292 Cleanup main directory. 2014-04-13 13:14:27 -07:00