Braydon Fuller
7de28610a5
Keys: Fix browser data types
2014-11-25 15:30:25 -05: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
cd4583f954
Encodings: Updated Base58 for the latest version.
2014-11-25 14:40:43 -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
Manuel Aráoz
b97e448af6
Merge pull request #575 from braydonf/ref/package-update-2014-11
...
Package: Updated to include the latest versions of dependencies
2014-11-25 11:45:40 -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
cfb32f7fc8
Package: Updated to include the latest versions of dependencies
2014-11-24 15:20:14 -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
5ff349758c
Address: Fix Buffer data recognition in browsers
2014-11-21 19:58:47 -05:00
Braydon Fuller
0df97a42fe
Address: Fix indentation, typos and simplify isValid
2014-11-21 19:02:58 -05:00
Braydon Fuller
8f32063375
Address: Add missing semicolons
2014-11-21 14:31:34 -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
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
5440baad83
fix tests for random
2014-11-20 18:46:43 -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
044337a30f
use strict to core
2014-11-20 12:56:35 -03:00
Manuel Araoz
ca9b8d8f7b
use strict to protocol
2014-11-20 12:52:32 -03:00
Manuel Araoz
56ca8a20c1
use strict to protocol
2014-11-20 12:23:46 -03:00
Manuel Araoz
7650b35482
use strict to extras
2014-11-20 12:18:08 -03:00
Manuel Araoz
2bf1ed8f34
use strict to crypto
2014-11-20 12:16:27 -03:00
Manuel Araoz
6f2913eed4
fix references
2014-11-20 11:50:23 -03:00
Manuel Araoz
481aa04cdb
add comment to identity.js
2014-11-20 11:44:46 -03:00
Manuel Araoz
5dd3eae34f
move more files
2014-11-19 12:19:10 -03:00
Manuel Araoz
cebd3aaa18
move files
2014-11-19 11:57:07 -03:00
Manuel Araoz
54fa31c85d
remove crypto
2014-11-18 18:59:31 -03:00
Braydon Fuller
0cd68b5384
removed unused module references
2014-11-18 11:16:39 -05:00
Braydon Fuller
8ca49fb523
update to include new version of bn.js and elliptic that include hex padding
2014-11-03 16:53:14 -05: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
dac2acc743
Clean example for full identities.
2014-10-06 14:00:03 -04:00
Eric Martindale
75cf4c4f9a
tidy up identity class, add tests.
2014-10-02 22:27:18 -04:00
Eric Martindale
5fc9721647
Add support for identities.
2014-10-02 15:08:44 -04:00
Eric Martindale
f01ebd97d2
Buffers, identities, and randomNumbers.
2014-10-01 21:08:06 -04:00
Eric Martindale
e8d4786e48
CLASSICAL INHERITANCE IS FOR THE DOGS.
2014-10-01 19:20:03 -04:00
Eric Martindale
541196cb5a
Re-implement addresses.
2014-10-01 16:28:57 -04:00
Eric Martindale
5f60d26a2b
Migrate from Address() to Identity().
2014-10-01 16:26:09 -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
729049a7da
Add error for when pushdata is exceptionally large
2014-09-23 21:37:18 -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
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
6f92775b2c
extra curly braces for code readability
2014-09-22 14:56:07 -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
f3614e4a90
Key -> Keypair
...
...that is what is called everywhere else.
2014-09-22 13:14:39 -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
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
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
Ryan X. Charles
cfd509f859
make receivePubkey compatible with dark wallet
...
I had been using this formula for the receiveKeypair:
scanKeypair + payloadKeypair + sharedKeypair
However, Dark Wallet uses this formula:
payloadKeypair + sharedKeypair
It is not actually necessary to add the scanKeypair in order to have all the
features of stealth addresses, at least as far as I can tell. So in order to
bring my implementation closer to Dark Wallet's, I have removed the scanKeypair
from this calculation.
2014-09-19 14:32:32 -07:00
Ryan X. Charles
e11019a083
toJSON, fromJSON
...
Every object should have toJSON and fromJSON methods so you can have a reliable
way to store and retrieve objects.
2014-09-18 17:52:02 -07:00
Ryan X. Charles
f17d604e44
Address().fromHashbuf() convenience method
...
...useful for when you have the pubkeyhash, but not the version byte.
2014-09-18 15:18:53 -07:00
Ryan X. Charles
cf5b2f1250
varint -> vi canonical spelling
2014-09-17 16:48:23 -07:00
Ryan X. Charles
2caf7c6471
bn -> BN canonical capitalization
2014-09-17 16:08:42 -07:00
Ryan X. Charles
0212e4bd4c
replace .buffer with .read
2014-09-17 15:49:45 -07:00
Ryan X. Charles
8e049b7244
smarter
2014-09-17 15:44:59 -07:00
Ryan X. Charles
6cee393c5d
put brains in read
2014-09-17 15:43:15 -07:00
Ryan X. Charles
6e1dfd3003
allow bufferreader.read to specify length
...
...to be more symmetric with the write function of bufferwriter
2014-09-17 15:41:30 -07:00
Ryan X. Charles
7918f53f12
bnjs -> BN ... for consistency
2014-09-17 15:32:58 -07:00
Ryan X. Charles
aee8547093
add fromString method for library consistency
2014-09-17 15:32:14 -07:00
Ryan X. Charles
6494ca5076
convenience: varint -> vi
2014-09-17 15:27:12 -07:00
Ryan X. Charles
0eeba8eadb
canonical BN notation
2014-09-17 15:22:52 -07:00
Ryan X. Charles
5f21059bf8
more convenient names
2014-09-17 15:20:01 -07:00
Ryan X. Charles
eb34a16511
more convenient name
2014-09-17 15:17:54 -07:00
Ryan X. Charles
9473bdf9b0
more convenient name
2014-09-17 15:15:56 -07:00
Ryan X. Charles
bd16eddf54
Key -> Keypair
2014-09-17 15:13:57 -07:00
Ryan X. Charles
7390b15f89
add set function to bip32
2014-09-17 15:11:16 -07:00
Ryan X. Charles
0641184e84
support string input in constructor
2014-09-17 15:02:11 -07:00
Ryan X. Charles
c41419b6ef
use buffer functions
...
...instead of adhoc uint functions
2014-09-17 14:49:17 -07:00
Ryan X. Charles
5da964739d
remove unused base58 dependency
2014-09-17 14:44:16 -07:00
Ryan X. Charles
9e188574f7
base58check in extendedPrivateKeyString
2014-09-17 14:43:14 -07:00
Ryan X. Charles
70d9f0db93
use base58check in extendedPublicKeyString
2014-09-17 14:41:51 -07:00
Ryan X. Charles
70659ad9d4
use base58check in fromString
2014-09-17 14:40:29 -07:00
Ryan X. Charles
334c443d8b
"gc" was some find-replace error from earlier
2014-09-17 14:37:53 -07:00
Ryan X. Charles
af6932a313
console.log?
...
this must have been a remnant of some earlier debugging, either in bitcore2 or
in bitcore.
2014-09-17 14:35:20 -07:00
Ryan X. Charles
78ef76eb2f
more convenient constructor
...
...allow inputing strings or buffers in the constructor.
2014-09-17 14:29:53 -07:00
Ryan X. Charles
40ea68a3ff
more convenient Base58 constructor
2014-09-17 14:26:19 -07:00
Ryan X. Charles
ac85264a28
Address().fromBuffer(buf);
2014-09-17 14:22:18 -07:00
Ryan X. Charles
8a52e6c316
Block
2014-09-16 18:42:11 -07:00
Ryan X. Charles
0d180810de
Blockheader
2014-09-16 17:28:00 -07:00
Ryan X. Charles
5b25679e15
Transaction
2014-09-16 14:35:26 -07:00
Ryan X. Charles
6c42969d01
improve error message
2014-09-16 11:44:51 -07:00