npm doesn't play well with the symlink bitcore-latest.js. Instead, put the
latest main bundle in bundle.js (which is what it used to be called) so
packages like Copay can use the latest bundle just like how they used to.
The network classes Connection, Peer and PeerManager are not useful from the
browser, so I have removed them from the main browser bundle by default. This
saves several tens of kilobytes from the browser bundle (since not only are
these files not included, but their dependencies are not included either).
In this commit I have added the 'official' versions 0.1.24 and 0.1.25 to the
repo, and also created a new bitcore-dev.js that is not included in the repo.
bitcoin-dev.js is what we will use for development. When we define a new
version, we create a new bitcore-x.x.x.js file, and point bitcore-latest.js to
that. Note that the bitcore-x.x.x.js files should always be the "main" bundle,
which does not include BIP39 or BIP70, or other large packages.
Some features of bitcore will be too large to be included in the browser bundle
by default. Since BIP39 pretty much requires the giant list of words to be
used, I am excluding it by default. The ability to exclude some features by
default will become useful with some particularly large features to come,
particularly BIP70.
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.
Bitcore in Copay is not being installed correctly due to changes we made
recently in the way bitcore is compiled (it is not compiled on install, but on
prepublish). This adds all the bundles to the repo to fix that issue.