Commit graph

54 commits

Author SHA1 Message Date
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
Wei Lu ab9e782d14 private a method to generate change addresses 2014-03-14 10:35:00 +08:00
Wei Lu 1212099bfc Wallet address derivation follows bip32/bitcoinj keychain structure
Also wallet accepts bytes in constructor

[#60]
2014-03-14 10:34:37 +08:00
Wei Lu 2e97828379 throws exception if specified network is unknown
also move network type tests to hdwallet
2014-02-28 17:59:01 +08:00
Wei Lu 02b3a2b564 HDWallet prod -> mainnet 2014-02-28 17:28:03 +08:00
Wei Lu eaf84c4283 move address versions into network
Also change address type name:
address_types -> addressVersion
p2sh_types -> p2shVersion
prod -> mainnet
2014-02-28 16:58:14 +08:00
Wei Lu 293c864f4f HD wallet versions: Bitcoin -> prod, BitcoinTest -> testnet 2014-02-28 14:27:31 +08:00