Daniel Cousens
dca284a131
HDWallet: rename derivePrivate to deriveHardened
11 years ago
Daniel Cousens
c0006c299f
HDWallet: use new constructor
11 years ago
Daniel Cousens
3bce535e36
Wallet: use assert for consistency
11 years ago
Daniel Cousens
cde285ccfc
Wallet: enforce operator new
11 years ago
Daniel Cousens
4952c5f4e7
HD/Wallet: use network objects, not strings
11 years ago
Daniel Cousens
2df790e2ab
Wallet: remove use of hashLittleEndian
11 years ago
Daniel Cousens
4afdbc9f68
Wallet: use dustThreshold directly
The definition of a dust amount is pretty clear, and I feel it is less
readable when represented as isDust(amount) or !isDust(amount), by
comparison to amount <= dustThreshold or amount > dustThreshold.
Also means I don't have to stray my eyes to understand the
implemention by looking up isDust does.
11 years ago
Daniel Cousens
bd3690bdc0
Wallet: remove async interface
11 years ago
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.
11 years ago
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.
11 years ago
Daniel Cousens
25514d6ac1
HDWallet: remove HmacBytesToBytes
11 years ago
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)
11 years ago
Daniel Cousens
57b8afbdab
Network: rename Network to Networks
This change removes the most common ambiguities.
As the network module is not representative of a class, the lower case
has been used.
11 years ago
Daniel Cousens
a8cf2fdd9e
Changes internal serialization to use Buffers instead
11 years ago
William Cotton
590bb8e1c3
custom changeAddress for wallet.createTx()
11 years ago
William Cotton
a9bc42019a
fixed issues with testnet and createTx
11 years ago
Daniel Cousens
f047afef2d
Updates network.js constant names
11 years ago
lms
b79ccb2c0c
100% coverage of wallet.js
11 years ago
Wei Lu
93fe1b4c78
cosmetic standardization
[closes #56 ]
11 years ago
Wei Lu
a1c80b8f51
minor cleanup of wallet.sign
11 years ago
Wei Lu
39c181dce6
allow fee to be set to zero
11 years ago
Wei Lu
4d4388f6bf
make wallet async functions truly async
11 years ago
Wei Lu
68b08b638a
add async version of createTx
11 years ago
Wei Lu
f7d4895b74
add async version of setUnspentOutputs
11 years ago
Wei Lu
83db6483fa
remove unnecessary imports from wallet
11 years ago
Wei Lu
7bfa6ab9d2
remove scriptPubKey from wallet.outputs, set/get unspent outputs as it is unused
11 years ago
Wei Lu
58ab0b631e
getBalance returns total unspent
11 years ago
Wei Lu
9fc5505730
getUnspentOutputs excludes spent outputs
11 years ago
Wei Lu
77b5d1ee21
getCandidateOuputs ignores spent outputs
11 years ago
Wei Lu
2501868f52
remove old methods
11 years ago
Wei Lu
471bc7ed97
skip change if it is not above dust threshold
11 years ago
Wei Lu
90921798cf
throws error on insufficient fund
11 years ago
Wei Lu
7c81bfef72
check for dust before creating transaction
11 years ago
Wei Lu
913b48e87f
sign tx
11 years ago
Wei Lu
8f0413da98
always assume change output exists when estimating fee
11 years ago
Wei Lu
2dc0f69d00
createTX returns tx with expected inputs and outputs
11 years ago
Wei Lu
3d12d3b038
implement and use txOut.scriptPubKey
11 years ago
Wei Lu
5d79b094d4
remove processOutput and processExistingOutput
instead of processOutput, use processTx instead
processExistingOutput is time based which is not reliable
11 years ago
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
11 years ago
Wei Lu
dbb5681366
add tests and refactor wallet.processTx
11 years ago
Wei Lu
c39aa6cb07
minor refactoring
11 years ago
Wei Lu
01dc34d720
throw error when unspent output does not have required keys
11 years ago
Wei Lu
26afbccc98
wallet allows setting unspent outputs
11 years ago
Wei Lu
16dc68cbaa
wallet exposes unspent outputs via a getter
also add reverseEndian method to convert
11 years ago
Daniel Cousens
b40374e332
Changes to new version-less ECKey API
11 years ago
Wei Lu
b7861e4336
replace jsbn's rng with module secure-random
This uses window.crypto.getRandomValues on browser
and crypto.randomBytes on node
11 years ago
Wei Lu
31cfb11178
new master key resets accounts and addresses
11 years ago
Wei Lu
a7a7999e3f
fix Wallet default constructor
11 years ago
Wei Lu
b2f010428f
store accounts in closure instead of on object
11 years ago
Wei Lu
d4f3398d91
remove keys array and usage
11 years ago