Commit Graph

163 Commits

Author SHA1 Message Date
Ryan X. Charles
073ee0a0e4 fix: Pubkey(point) and Privkey(bn) 2014-09-02 12:07:18 -07:00
Ryan X. Charles
caf6c87419 Signature(r, s) should work 2014-09-02 11:59:42 -07:00
Ryan X. Charles
a768755764 convenience: new Pubkey(point) 2014-09-01 21:16:10 -07:00
Ryan X. Charles
6f56c8d1fc convenience: new Privkey(bn) 2014-09-01 21:13:44 -07:00
Ryan X. Charles
ef3a89f254 add Signature(r, s) convenience 2014-09-01 21:08:16 -07:00
Ryan X. Charles
8a3d71b596 throw error for invalid strings 2014-09-01 20:03:22 -07:00
Ryan X. Charles
eaaf8aade3 throw error if there is no string representation 2014-09-01 20:00:54 -07:00
Ryan X. Charles
3b2b725070 Script().fromString(str)
...the format of fromString and toString are deliberately not compatible with
bitcoind. The format here is supposed to be both human-readable, and
byte-for-byte isomorphic to the binary representation. In the future we will
need to add support for bitcoind-like strings, both for the test data (e.g.,
script_invalid.json) or for the bitcoind console style.
2014-09-01 19:42:20 -07:00
Ryan X. Charles
6375941ef8 script.toString() 2014-09-01 18:31:02 -07:00
Ryan X. Charles
e6af57f4fa script.toBuffer(); 2014-09-01 18:01:17 -07:00
Ryan X. Charles
378dc923ef preserve claimed length and op code
When parsing OP_PUSHDATAX commands, the the length of data might not require
the size integer of OP_PUSHDATAX. For instance, you might write 1 byte, and yet
use OP_PUSHDATA4. We need to record which OP_PUSHDATAX was used so that when we
write the buffer back out, we can write the same one. Also, the claimed length
may be different. For instance, we may OP_PUSHDATA of length 100 to the stack,
but there may only be 50 bytes left in the script. In that case, buf.length and
chunk.len will be different. I'm not sure if that would be considered a valid
script, but in any case, for script analysis, we need both values.
2014-09-01 17:27:39 -07:00
Ryan X. Charles
e3aa93614e one more test to make sure things are working 2014-09-01 16:44:27 -07:00
Ryan X. Charles
697b3e5009 Script().fromBuffer(buf)
...code heavily inspired/copied from bitcore
2014-09-01 16:41:07 -07:00
Ryan X. Charles
8b3ad7ac85 read a buffer, like slicing while iterating pos 2014-09-01 16:40:31 -07:00
Ryan X. Charles
572582938f more convenient bufferreader 2014-09-01 15:53:26 -07:00
Ryan X. Charles
15801773e3 the beginnings of script 2014-09-01 15:45:03 -07:00
Ryan X. Charles
a481a0225e rename bundle from privsec to bitcore
...since this library is indeed likely to become the new bitcore
2014-09-01 14:59:42 -07:00
Ryan X. Charles
6a26813955 p2sh -> scripthash
more appealing and memorable name
2014-09-01 12:06:18 -07:00
Ryan X. Charles
a0150f82ef fromNumber, toNumber, fromString, toString
...like the rest of the library.
2014-08-31 20:38:39 -07:00
Ryan X. Charles
6ffb6574ed comment about npm shrinkwrap 2014-08-31 20:38:19 -07:00
Ryan X. Charles
004f8c29c8 npm shrinkwrap
This will ensure that the versions of the dependencies of the dependencies
remain the same on npm install, that way we can ensure bitcore works as
intended for the end-user. Note that this does not ensure byte-for-byte
compatibility. We may address that issue in the future.

See: https://www.npmjs.org/doc/cli/npm-shrinkwrap.html
2014-08-30 11:58:33 -07:00
Ryan X. Charles
d8e1f0d9b3 expose Opcode 2014-08-29 21:02:56 -07:00
Ryan X. Charles
03578e2ba5 Opcode
...code from bitcore
2014-08-29 19:24:51 -07:00
Ryan X. Charles
c59013eb46 remove useless Address dependency from Keypair
to get an address from a key, just do Address().fromPubkey(key.pubkey)
2014-08-29 15:42:30 -07:00
Ryan X. Charles
47b48bd5c7 Fix Stealthkey exposure 2014-08-29 14:37:26 -07:00
Ryan X. Charles
f028b6b913 Stealth -> Stealthkey
More explanatory. Will break up into separate Stealthkey, StealthAddress, and
StealthMessage classes.
2014-08-29 14:34:01 -07:00
Ryan X. Charles
32fabd0c0f Key -> Keypair
"Keypair" is a more explanatory name, and also should be less confused with
other kinds of keys (particularly "cipher keys", which are the keys used in
symmetric block ciphers, especially AES).
2014-08-29 14:18:56 -07:00
Ryan X. Charles
40a2007e18 confusingly named SymEnc -> accurately named AESCBC
This will also further discourage use amongst anyone who doesn't understand
what this is.
2014-08-29 13:07:49 -07:00
Ryan X. Charles
bdb8daaf07 remove redundant "test." from test names 2014-08-29 13:01:05 -07:00
Ryan X. Charles
faa7a81cac Key().fromPrivkey() 2014-08-29 12:43:55 -07:00
Ryan X. Charles
40e8dfec06 compressed by default with fromRandom 2014-08-29 12:38:43 -07:00
Ryan X. Charles
b7bde14e06 add bitcoinjs contributors
...since some of the source code comes from bitcoinjs
2014-08-28 20:32:44 -07:00
Ryan X. Charles
80625fdbef move static isValid next to instance isValid
...to be easier for developers to parse and distinguish
2014-08-28 20:27:45 -07:00
Ryan X. Charles
5313085773 Pubkey().fromPrivkey() 2014-08-28 20:19:30 -07:00
Ryan X. Charles
c39acbcca3 Privkey().fromRandom() 2014-08-28 19:27:22 -07:00
Ryan X. Charles
2ef5e2f003 network -> networkstr 2014-08-28 17:55:33 -07:00
Ryan X. Charles
280578d641 network -> networkstr
...for compatibility with address, and to make the types obvious
2014-08-28 17:53:11 -07:00
Ryan X. Charles
e2824035bb Pubkey.prototype.set 2014-08-28 17:41:38 -07:00
Ryan X. Charles
356ddcfa4e test invalid address 2014-08-28 17:32:08 -07:00
Ryan X. Charles
ac47796acd .isValid() is more convenient than .validate() 2014-08-28 17:30:32 -07:00
Ryan X. Charles
fa85fa4715 fix ecies exposure 2014-08-28 17:28:47 -07:00
Ryan X. Charles
109f31cfdb Privkey.prototype.set 2014-08-28 17:26:56 -07:00
Ryan X. Charles
6b4bc4c49c Stealth.prototype.set 2014-08-28 17:00:34 -07:00
Ryan X. Charles
0ca390d45b Message.prototype.set 2014-08-28 16:42:47 -07:00
Ryan X. Charles
a5f79c7651 Signature.prototype.set 2014-08-28 16:38:21 -07:00
Ryan X. Charles
28d3a40704 Key.prototype.set 2014-08-28 16:18:36 -07:00
Ryan X. Charles
75c1503a92 ECDSA.prototype.set 2014-08-28 16:07:28 -07:00
Ryan X. Charles
0d9b54711e BufferWriter.prototype.set 2014-08-28 16:02:24 -07:00
Ryan X. Charles
3475ee973c BufferReader.prototype.set 2014-08-28 15:52:32 -07:00
Ryan X. Charles
3919b24685 make bip32 mostly compatible with the rest of the lib
the constructor shouldn't do much. just set some varibles. in this case, i have
yet to write the code that sets the varibles. but better this than
autogenerating a new random BIP32. for that, call fromRandom()
2014-08-28 15:38:29 -07:00