Commit graph

60 commits

Author SHA1 Message Date
Daniel Cousens
3bce535e36 Wallet: use assert for consistency 2014-05-31 14:28:16 +10:00
Daniel Cousens
cde285ccfc Wallet: enforce operator new 2014-05-30 19:01:03 +10:00
Daniel Cousens
4952c5f4e7 HD/Wallet: use network objects, not strings 2014-05-30 19:01:02 +10:00
Daniel Cousens
2df790e2ab Wallet: remove use of hashLittleEndian 2014-05-30 18:17:32 +10:00
Daniel Cousens
bd3690bdc0 Wallet: remove async interface 2014-05-30 18:17:32 +10:00
Daniel Cousens
50e9a09a8c Wallet: cleanup createTx control flow
Unknowingly this also revealed a subtle bug in the previous
implementation which allowed the creation of transactions even
when no UTXOs existed.
2014-05-30 18:17:18 +10:00
Daniel Cousens
4dd617d5ca wallet: fix address description typo 2014-05-28 13:25:37 +10:00
Daniel Cousens
8514bbfabd Address: remove Address.Error
By removing Address.Error, we remove a code smell.
This part of the code base was also not under any form of test.
Test data and tests have therefore been added verifying its behaviour in
both Wallet and Address tests.
2014-05-28 13:17:07 +10:00
Daniel Cousens
0468c4710c Transaction: rename (de)serialize to [to/from]Buffer 2014-05-17 00:09:13 +10:00
Daniel Cousens
6c0eebe94b tests: use filepaths directly
After a long IRC discussion, it was decided that the use of direct
filepaths instead of the module is a more pure form of testing ,
although it may provide less overall coverage than the mixed integration
style imports used previously.

This will need to be remedied by further integration testing in
/test/integration.
2014-05-13 18:05:56 +10:00
Daniel Cousens
7a740c2e7b tests: forces consistent import syntax 2014-05-13 16:46:08 +10:00
Daniel Cousens
708aa03390 Transaction/Script: bitcoin network no longer implied
A Transaction (and its subsequent scripts) do not carry any network
specific information in the Bitcoin protocol.
Therefore they can not (without further context) produce the network
specific constants for the generation of the base58 Addresses.

As TransactionOut.address is used heavily throughout Wallet and other
areas of the library, this could not be entirely removed without a large
number of changes.
For now, TransactionOut.address is only defined in the case of
Tx.addOutput being used directly:

      Transaction.addOutput(address, value)
2014-05-08 10:59:58 +10:00
Daniel Cousens
63231fb67d Extends test for custom Wallet change addresses 2014-05-06 15:40:40 +10:00
Daniel Cousens
a77846701f Fixes network support for TxOut 2014-05-06 15:40:40 +10:00
Daniel Cousens
eba08fa761 Fixes indentation for assertions 2014-05-06 15:40:40 +10:00
Daniel Cousens
d65a3c36e2 Merge pull request #159 from williamcotton/master
fixed issues with testnet and createTx
2014-05-06 08:04:02 +10:00
Daniel Cousens
a8cf2fdd9e Changes internal serialization to use Buffers instead 2014-05-04 17:31:22 +10:00
Daniel Cousens
d17f85f5a6 Changes fakeTxHash to actual hex 2014-05-04 15:37:25 +10:00
William Cotton
8f698d19f7 custom changeAddress has full integration test 2014-04-25 16:30:36 -07:00
William Cotton
dfbfdafc94 added tests for createTx testnet and createTx custom changeAddress 2014-04-25 13:43:26 -07:00
Daniel Cousens
f047afef2d Updates network.js constant names 2014-04-17 05:50:59 +10:00
Daniel Cousens
c99a576fbd Migrates all usage of crypto-js/sha256 to ./crypto 2014-04-08 23:07:46 +10:00
Wei Lu
364a24fd1e assert.throws matches error messages properly 2014-04-02 12:43:34 +08:00
lms
b79ccb2c0c 100% coverage of wallet.js 2014-04-01 21:05:46 +02:00
Daniel Cousens
04684b74f1 Some cosmetic fixes 2014-04-01 15:52:40 +11:00
Wei Lu
93fe1b4c78 cosmetic standardization
[closes #56]
2014-03-31 11:47:47 +08:00
Wei Lu
65fb593be2 remove unnecessary deepEqual 2014-03-26 20:44:07 +08:00
Wei Lu
39c181dce6 allow fee to be set to zero 2014-03-26 20:20:58 +08:00
Wei Lu
4d4388f6bf make wallet async functions truly async 2014-03-26 20:05:13 +08:00
Wei Lu
68b08b638a add async version of createTx 2014-03-26 08:43:33 +08:00
Wei Lu
f7d4895b74 add async version of setUnspentOutputs 2014-03-26 08:43:33 +08:00
Wei Lu
7bfa6ab9d2 remove scriptPubKey from wallet.outputs, set/get unspent outputs as it is unused 2014-03-26 08:43:33 +08:00
Wei Lu
58ab0b631e getBalance returns total unspent 2014-03-26 08:43:33 +08:00
Wei Lu
9fc5505730 getUnspentOutputs excludes spent outputs 2014-03-26 08:43:33 +08:00
Wei Lu
77b5d1ee21 getCandidateOuputs ignores spent outputs 2014-03-26 08:43:33 +08:00
Wei Lu
471bc7ed97 skip change if it is not above dust threshold 2014-03-26 08:43:32 +08:00
Wei Lu
90921798cf throws error on insufficient fund 2014-03-26 08:43:32 +08:00
Wei Lu
7c81bfef72 check for dust before creating transaction 2014-03-26 08:43:32 +08:00
Wei Lu
913b48e87f sign tx 2014-03-26 08:43:32 +08:00
Wei Lu
2dc0f69d00 createTX returns tx with expected inputs and outputs 2014-03-26 08:43:32 +08:00
Wei Lu
e574693594 wallet.outputs[0].output -> wallet.outputs[0].receive
output is overloaded. Considering we have output.spend, output.receive makes sense to me
2014-03-26 08:43:31 +08:00
Wei Lu
dbb5681366 add tests and refactor wallet.processTx 2014-03-26 08:43:31 +08:00
Wei Lu
01dc34d720 throw error when unspent output does not have required keys 2014-03-26 08:42:35 +08:00
Wei Lu
26afbccc98 wallet allows setting unspent outputs 2014-03-26 08:42:35 +08:00
Wei Lu
16dc68cbaa wallet exposes unspent outputs via a getter
also add reverseEndian method to convert
2014-03-26 08:42:35 +08:00
Wei Lu
31cfb11178 new master key resets accounts and addresses 2014-03-16 13:36:57 +08:00
Wei Lu
a7a7999e3f fix Wallet default constructor 2014-03-15 10:18:59 +08:00
Wei Lu
b2f010428f store accounts in closure instead of on object 2014-03-14 10:35:01 +08:00
Wei Lu
207163704b return private key rather than HD wallet node 2014-03-14 10:35:01 +08:00
Wei Lu
9200479159 getPrivateKey derives key on the fly
also added getPrivateKeyFromAddress
2014-03-14 10:35:01 +08:00