Commit graph

448 commits

Author SHA1 Message Date
Craig Raw
fe61c633ae performance optimisations 2022-01-20 17:12:00 +02:00
Craig Raw
8dca2ee3f0 add wallet watchLast field 2022-01-19 13:48:20 +02:00
Craig Raw
34bd72d87a get wif from eckey 2022-01-12 15:42:44 +02:00
Craig Raw
3a557e3af8 introduce general purpose hash index record 2022-01-09 11:05:17 +02:00
Craig Raw
083288061f rename gordian seed tool, support retrieving a keystore from an output descriptor more generally 2022-01-04 10:33:47 +02:00
Craig Raw
c1f6a1245e add seed tool wallet model 2021-12-16 10:06:06 +02:00
Craig Raw
d59da36506 return zero total when some input values are not available 2021-12-15 14:13:29 +02:00
Craig Raw
8ac3f47380 shuffle utxos within input sets 2021-12-15 10:10:55 +02:00
Craig Raw
6ac593f161 detect if output descriptor represents a cosigner 2021-12-14 11:20:45 +02:00
Craig Raw
60e989b946 follow up 2021-12-13 16:02:20 +02:00
Craig Raw
3131b265a5 ensure selected utxo sets retain stable ordering 2021-12-13 15:42:02 +02:00
Craig Raw
20ec0f95fb test for two person coinjoin 2021-12-01 14:13:58 +02:00
Craig Raw
16d348a91d add support for dumped private keys 2021-11-29 15:30:31 +02:00
Craig Raw
da14a9bf34 add retrieval of wallet nodes and history 2021-11-26 14:04:46 +02:00
Craig Raw
4a4a62f239 various changes to support soroban 2021-11-25 16:13:57 +02:00
Craig Raw
3a061cb73a remove taproot activation code, update libsecp256k1 libs 2021-11-17 14:49:22 +02:00
Craig Raw
8e49247832 introduce multipath derivations to output descriptors and use h for hardened indexes 2021-11-13 15:04:37 +02:00
Craig Raw
ebf7128ae5 support utxo sets in wallet tx 2021-11-12 15:54:22 +02:00
Craig Raw
f46d627755 allow zero length paths when parsing psbt key derivations 2021-11-10 15:43:11 +02:00
Craig Raw
6c03c4106a respect wallet labels when displaying name 2021-10-29 14:33:15 +02:00
Craig Raw
bdb9900d8d improve multi account wallet name display 2021-10-29 13:21:53 +02:00
Craig Raw
360550a718 fix rounding issue when converting btc values to sats 2021-10-28 13:52:18 +02:00
Craig Raw
434c18ef0a add wallet label and mixConfig indexRange 2021-10-27 16:13:32 +02:00
Craig Raw
24d9e5fcda walletnode toString refactor 2021-10-27 12:00:02 +02:00
Craig Raw
99440eda7f fix high stonewall fee issue, add support for generalized transaction diagram 2021-10-26 17:35:13 +02:00
Craig Raw
eb49c97133 support adding op return data when creating wallet transactions 2021-10-22 11:00:51 +02:00
Craig Raw
57290a20a1 add coin selection filter to exclude immature coinbase outputs 2021-10-16 11:09:30 +02:00
Craig Raw
c04c249450 add mixable standard accounts list 2021-10-14 11:11:41 +02:00
Craig Raw
61b2fd21e6 add support for retrieving added nodes, refactor nodeRangeToString 2021-10-13 15:20:22 +02:00
Craig Raw
025af05758 postmix gap limit to 40 2021-10-07 12:28:54 +02:00
Craig Raw
2fd7e8e7e4 add mnemonic seed type exception 2021-10-06 08:22:30 +02:00
Craig Raw
e0302cef22 increase postmix lookahead 2021-10-04 12:15:37 +02:00
Craig Raw
9a9a1b9254 support add child wallets from all wallet types, double postmix gap limit 2021-09-29 10:11:07 +02:00
Craig Raw
c9e57fad01 add privacy-focused anti-fee-sniping recommendations for taproot transactions 2021-09-22 16:31:06 +02:00
Craig Raw
38783d68a4 support network dependent block height taproot activation 2021-09-08 13:21:04 +02:00
Craig Raw
0b40c20ab2 support required script types on child wallets 2021-09-03 17:12:58 +02:00
Craig Raw
94d22b8758 store mix indexes in mixconfig 2021-09-02 14:11:51 +02:00
Craig Raw
b4f4cc8726 improve mix config retrieval 2021-09-02 11:39:33 +02:00
Craig Raw
67836b2b55 add mix config to wallet 2021-09-01 13:08:18 +02:00
craigraw
71b5778226
Merge pull request #4 from zeroleak/whirlpool-client-0.23.30-early4
upgrade to whirlpool-client 0.23.30-early4 + extlibj 0.0.19-dsk3
2021-08-31 10:43:29 +02:00
Craig Raw
7ac4bce14f support multiple utxo sets and change outputs 2021-08-27 15:58:23 +02:00
zeroleak
0947ea10c8 upgrade to whirlpool-client 0.23.30-early4 + extlibj 0.0.19-dsk3 2021-08-27 09:30:11 +02:00
Craig Raw
81c202198e add utxo mix data storage to wallet 2021-08-23 16:34:40 +02:00
Craig Raw
2eedd2290c fix npe for new wallets 2021-08-16 10:45:48 +02:00
Craig Raw
eab42c0f05 support for standardized child wallet accounts 2021-08-12 17:48:36 +02:00
Craig Raw
8fd14ce133 fix psbt testcase 2021-08-02 16:10:06 +02:00
Craig Raw
debafd42e8 add wallet hierarchy-aware convenience naming methods 2021-07-30 14:15:08 +02:00
Craig Raw
46e4413cf6 activate p2tr script type on testnet, and on mainnet after activation 2021-07-19 12:34:58 +02:00
Craig Raw
db081695e8 fix p2tr script required sigs 2021-07-15 11:08:59 +02:00
Craig Raw
c71979966b support taproot single key keypath spends 2021-07-14 15:12:18 +02:00
Craig Raw
f1ce2ec939 refactor ECKey and TransactionSignature to support schnorr 2021-07-12 08:55:31 +02:00
Craig Raw
e53574ea54 support p2tr script type wallet creation 2021-07-09 13:33:35 +02:00
Craig Raw
5013a0ef2f rename tx segwit version field to segwit flag 2021-07-08 11:45:39 +02:00
Craig Raw
60511e2c83 add native secp256k1 library with jni bindings 2021-07-02 13:40:23 +02:00
Craig Raw
967a2c2026 add support for sending to taproot addresses 2021-07-02 10:43:26 +02:00
Craig Raw
107a165fc1 support determining if tx input refers to a txo from a wallet 2021-06-28 13:08:09 +02:00
Craig Raw
c021300797 parse bitcoin core wallet model type 2021-06-18 11:19:24 +02:00
Craig Raw
5e8a14678d add seedsigner wallet model 2021-06-16 14:45:36 +02:00
Craig Raw
729c3a1435 ensure deep copy of child wallets 2021-06-16 09:37:05 +02:00
Craig Raw
f407547c47 preserve id when encrypting or decrypting seeds or private keys 2021-06-14 14:53:53 +02:00
Craig Raw
485e8c825b add keystone wallet 2021-06-10 16:46:22 +02:00
Craig Raw
8e3d0d23c1 support database persistence 2021-06-10 12:07:20 +02:00
Craig Raw
42ffeb9565 allow psbt signature verification to be deferred 2021-05-28 11:07:59 +02:00
Craig Raw
567294a4b0 support creating a transaction excluding the provided change addresses 2021-05-17 13:20:43 +02:00
Craig Raw
7dca0d0c39 add master wallet reference 2021-05-14 12:54:31 +02:00
Craig Raw
cc32285d58 add helper to construct payment from bitcoin uri 2021-05-06 14:20:58 +02:00
Craig Raw
db9617ee10 handle user defined fee amount better by requiring a fee rate of 1 sat/vb for utxo selectors 2021-04-26 14:39:13 +02:00
Craig Raw
2cd133bc1c handle user defined fee amount better by requiring a fee rate of 1 sat/vb for utxo selectors 2021-04-26 14:38:36 +02:00
Craig Raw
63394b142c dont add inputs with negative effective value when calculating max value 2021-04-26 14:27:08 +02:00
Craig Raw
cc6e3ffdc2 add message sign test for low r requiring only a single attempt 2021-04-25 18:05:22 +02:00
Craig Raw
f4730f7147 add message sign test for low r grinding (verified signatures against electrum 4.1.2) 2021-04-25 13:25:04 +02:00
Craig Raw
173743ba0d ensure grinding for low R is done in the same way as libsecp256k1 so signatures match 2021-04-25 12:22:38 +02:00
Craig Raw
db05e09fe5 verify segwit psbt partial signatures with only non-witness utxo provided 2021-04-24 08:55:33 +02:00
Craig Raw
0a43f9f6a8 dont increment fee if user set 2021-04-21 13:08:22 +02:00
Craig Raw
b0d37fe8fe include all utxos when sending max amount 2021-04-21 09:53:53 +02:00
Craig Raw
efaa6a066d improve variable naming for utxo selection criteria 2021-04-21 09:37:01 +02:00
Craig Raw
a25dfa5c76 allow external unconfirmed utxos to be spent 2021-04-20 11:08:13 +02:00
Craig Raw
85e8b97a8c support extended master private key keystores 2021-04-20 08:27:26 +02:00
Craig Raw
1aeaacaf59 preserve capitalization in keystore naming in policy script 2021-04-19 08:56:05 +02:00
Craig Raw
891499aff0 safer istransaction test 2021-04-16 12:30:22 +02:00
Craig Raw
a56f8971c0 support blockchain ordering of txes a separate method 2021-04-12 15:46:44 +02:00
Craig Raw
b7038b19f9 add option to strip sensitive info from psbt serialization 2021-04-12 13:42:11 +02:00
Craig Raw
428054d375 fix p2sh-p2wpkh description 2021-04-12 09:33:52 +02:00
Craig Raw
49654b7c82 ensure safe psbt testing 2021-04-01 09:51:43 +02:00
Craig Raw
e974c3f422 sort descriptor xpubs lexicographically when child derivation paths are supplied 2021-03-10 11:28:59 +02:00
Craig Raw
533791edcf use fractional tx virtual size 2021-03-08 16:20:35 +02:00
Craig Raw
5b2e21b3d7 provide framework for application logging 2021-03-08 09:16:28 +02:00
Craig Raw
c084a0de7e dont allow negative values to enter tx when send max true 2021-03-04 12:59:49 +02:00
Craig Raw
b84aa2e7cb set log level dynamically 2021-03-01 16:30:12 +02:00
Craig Raw
faa8f71313 return boolean if labels have changed 2021-03-01 15:26:55 +02:00
Craig Raw
08acfe5ba1 add signet support 2021-02-24 13:38:47 +02:00
Craig Raw
fe91063e8f add system property to disable script type derivation validation 2021-02-22 16:04:34 +02:00
Craig Raw
79216fac91 add descriptions to script types 2021-02-17 10:23:49 +02:00
Craig Raw
3882a4b4bd support wallet labels copying from past wallets 2021-02-09 17:31:26 +02:00
Craig Raw
44b29b2b7b add blue wallet 2021-02-08 18:17:11 +02:00
Craig Raw
4d61585e4c rbf: remove unnecessary locktime = 0 check 2021-02-08 11:04:57 +02:00
Craig Raw
a38206f17c add passport hww single and multisig importing 2021-01-28 10:39:25 +02:00
Craig Raw
4b682fb3e7 dont add non-witness utxo when keystores are exclusively coldcard or cobovault 2021-01-26 12:18:27 +02:00
Craig Raw
93d494fcde export max keystore label length 2021-01-18 13:38:34 +02:00
Craig Raw
3e91bdb46c find signing nodes and keystores from transaction 2021-01-11 12:26:28 +02:00
Craig Raw
4da2c024d4 fail when single public keys are detected 2021-01-01 15:45:21 +02:00
Craig Raw
962253beaa look for user defined application home 2021-01-01 10:39:06 +02:00
Craig Raw
6ad3f53731 add wallet birth date and network default ports 2020-12-19 13:54:24 +02:00
Craig Raw
68f7c6850e add child key support to from wallet creation, add option to hide key origin 2020-12-17 08:33:48 +02:00
Craig Raw
0567409742 add specter diy wallet model 2020-12-09 17:16:12 +02:00
Craig Raw
deb45687c0 add support for freezing utxos 2020-12-01 12:44:47 +02:00
Craig Raw
6b20c6558a handle inclusion of rbf mempool inputs in new wallet txes 2020-11-24 20:34:13 +02:00
Craig Raw
49799fc0c8 allow creation of deterministic pubkey without access to bc 2020-11-11 09:41:24 +02:00
Craig Raw
f3e1fe6df4 further payjoin tweaks 2020-11-04 16:32:17 +02:00
Craig Raw
3433c5f205 improve invalid wallet error messaging, fix public psbt 2020-11-04 12:09:17 +02:00
Craig Raw
9c9836147a support partially finalized psbts 2020-11-03 13:52:55 +02:00
Craig Raw
8541348b5b support payjoin uris 2020-11-03 13:51:36 +02:00
Craig Raw
67c76c3b28 avoid casting to int when comparing longs 2020-10-27 11:11:15 +02:00
Craig Raw
401d3b8bfb change default derivation path to match bip45 2020-10-26 15:10:14 +02:00
Craig Raw
c4f5218f29 calculate dust threshold for multiple outputs 2020-10-20 10:55:25 +02:00
Craig Raw
8b07336d71 add support for multiple payments in a tx 2020-10-19 11:06:30 +02:00
Craig Raw
661e88447f add bitbox02 2020-10-08 11:24:59 +02:00
Craig Raw
4b6c477030 rename xPub to xpub 2020-10-07 13:11:26 +02:00
Craig Raw
290fbabb54 add cobo vault 2020-10-07 12:31:01 +02:00
Craig Raw
3642ddc958 add convenience method 2020-10-05 17:28:17 +02:00
Craig Raw
fee0426799 fix case sensitive legacy addresses 2020-10-02 16:01:31 +02:00
Craig Raw
e912e8a512 add convenience method to get consolidation wallet node 2020-10-02 15:16:01 +02:00
Craig Raw
32b0af7381 samourai bitcoin uri compatibility 2020-10-02 10:51:50 +02:00
Craig Raw
9c6d3ec94b handle longer signature with min relay fee set 2020-10-01 09:06:02 +02:00
Craig Raw
b877e94cd0 testnet support followup changes 2020-09-29 15:43:54 +02:00
Craig Raw
747bfa915f add support for alternative (non-mainnet) networks 2020-09-28 14:31:25 +02:00
Craig Raw
e8d8fa6126 add utxo filters 2020-09-26 12:29:25 +02:00
Craig Raw
b2297a8d02 add fee rate support 2020-09-25 15:36:40 +02:00
Craig Raw
79eb8b002d add default min fee rate 2020-09-25 15:21:13 +02:00
Craig Raw
2650dafa66 handle invalid/incomplete output descriptors better 2020-09-25 13:43:02 +02:00
Craig Raw
5e281982cb allow updating with partial tx set 2020-09-17 15:09:12 +02:00
Craig Raw
db8ef9e4a1 fix keepkey hww 2020-09-10 11:40:02 +02:00
Craig Raw
9faacb055c support configurable wallet gap limit 2020-09-09 14:56:28 +02:00
Craig Raw
488752c142 handle keystore default label deduping better, validate 1of1 wallets 2020-09-09 11:17:08 +02:00
Craig Raw
08c159ebad add output descriptor checksum support 2020-09-08 12:03:18 +02:00
Craig Raw
794cde7250 descriptor change multi to sortedmulti 2020-09-08 08:31:15 +02:00
Craig Raw
70fdecf919 wallet <-> output descriptor 2020-09-07 17:22:37 +02:00
Craig Raw
0516426dc0 refactor and update outputdescriptor to use script type 2020-09-07 15:07:29 +02:00
Craig Raw
3115669c46 support better script descriptors in wallet policy 2020-09-07 09:30:40 +02:00
Craig Raw
10ebfe463d support bip 137 for message signing, but handle electrum approach as well when verifying 2020-09-03 19:27:18 +02:00
Craig Raw
ee49ddd94b support for message signing and verifying 2020-09-03 13:36:03 +02:00
Craig Raw
6b4b2529c8 correct wallet model names 2020-09-03 09:37:25 +02:00
Craig Raw
c7e16a29e3 support detection of consolidation sends 2020-09-01 08:58:06 +02:00
Craig Raw
59d610f539 support retreiving output scripts for different key purposes 2020-08-31 11:21:29 +02:00
Craig Raw
1003527854 deduplicate signed keystores on signature 2020-08-31 10:14:28 +02:00
Craig Raw
55717c31bf copy stored height 2020-08-30 11:14:48 +02:00
Craig Raw
bd964e9bd2 platform specific log file location support case fix 2020-08-25 19:29:28 +02:00
Craig Raw
274fb9afc3 platform specific log file location support 2020-08-25 19:28:26 +02:00
Craig Raw
ea5101dff7 better xpub header type support 2020-08-24 10:11:33 +02:00
Craig Raw
0fbce035a3 dont consider height when selecting 2020-08-23 15:46:30 +02:00
Craig Raw
e8bb733ea8 make allinputsfromwallet public 2020-08-22 17:19:12 +02:00
Craig Raw
5d456a10df add bitcoin uri support 2020-08-20 15:26:26 +02:00
Craig Raw
9663629e34 match coldcard fee percent calc 2020-08-20 12:29:50 +02:00
Craig Raw
b1299f6abf make gson use treesets 2020-08-20 11:44:12 +02:00
Craig Raw
b9ef670e61 improve blocktx ordering behaviour 2020-08-19 08:39:33 +02:00
Craig Raw
0639f408db reduce min change amount 2020-08-18 13:20:14 +02:00
Craig Raw
f0aa949174 fix compareTo bug with unconfirmed parents 2020-08-17 16:47:55 +02:00
Craig Raw
6a2af38b8a remove logging 2020-08-10 13:20:21 +02:00
Craig Raw
1a38b8e662 fix transaction signature ordering bug 2020-08-10 13:19:24 +02:00
Craig Raw
fff658a3ab move confirmation logic to blocktransactionhash 2020-08-09 14:12:40 +02:00
Craig Raw
d2582c0414 add non witness utxo to witness types for trezor and ledger 2020-08-09 12:23:19 +02:00
Craig Raw
1f7be6c7d5 store passphrase in memory as securestring 2020-08-06 10:28:20 +02:00
Craig Raw
eb07a7ffa3 handle zero length derivation paths 2020-08-05 16:54:09 +02:00
Craig Raw
04576bddff logging updates 2020-08-05 10:24:53 +02:00
Craig Raw
97cf49276a add for qr decoding 2020-08-04 12:45:54 +02:00
Craig Raw
958d9c5274 handle finalized psbts 2020-07-31 11:48:13 +02:00
Craig Raw
72a2a8bd1b better canSign protection 2020-07-31 10:36:21 +02:00
Craig Raw
4c5166a6ea signing fixes 2020-07-30 15:57:50 +02:00
Craig Raw
4b4a980a9b support for better combining and finalising psbts 2020-07-30 09:59:32 +02:00
Craig Raw
3ce2394813 finalize psbt with tx input outpoint 2020-07-28 08:30:42 +02:00
Craig Raw
15beeefcb6 various fixes to psbt serialisation and wallet tx creation 2020-07-26 14:02:47 +02:00
Craig Raw
0466755883 handle adding non witness inputs to segwit transactions 2020-07-24 10:09:24 +02:00
Craig Raw
70d0b7afcd add creator, combiner, extractor psbt tests and fix issues 2020-07-24 09:59:52 +02:00
Craig Raw
5cd203d366 fix for clear witness 2020-07-23 14:13:57 +02:00
Craig Raw
8bc4e3b3dc combiner, finaliser and extractor for psbts 2020-07-23 13:39:01 +02:00
Craig Raw
0cfe954463 refactor psbt classes and add serialization 2020-07-23 12:00:22 +02:00
Craig Raw
f2ee57cc4d grind for low r, for psbt ensure if a witness UTXO is provided, no non-witness signature may be created 2020-07-23 10:06:00 +02:00
Craig Raw
af562dad10 sign psbt inputs 2020-07-22 14:56:41 +02:00
Craig Raw
9e6cdf74f4 sighash int to byte, sign psbt input 2020-07-22 08:27:06 +02:00
Craig Raw
f6dcdb6d26 determine signing status from psbt 2020-07-20 17:04:39 +02:00
Craig Raw
dcd4218ba1 move sighash to top level, psbt signing status tests 2020-07-17 17:24:15 +02:00
Craig Raw
a56684240a default segwit version 2020-07-17 09:16:31 +02:00
Craig Raw
9b117cd7f9 programmatic psbt creation 2020-07-16 14:59:01 +02:00
Craig Raw
f00754b157 utxo grouping, filtering and zero conf handling 2020-07-15 09:15:27 +02:00
Craig Raw
832ca8f257 calculate no inputs fee 2020-07-14 13:36:12 +02:00
Craig Raw
9d272c0eb2 refactor outputgroup, add knapsackselector 2020-07-14 09:21:13 +02:00
Craig Raw
0a6e247163 support more accurate virtual size calculations 2020-07-13 14:27:54 +02:00
Craig Raw
b86887838f update dust fee rate to bitcoin core 0.19 DUST_RELAY_TX_FEE 2020-07-11 11:39:43 +02:00
Craig Raw
49a4b548b4 wallet auto bitcoin unit 2020-07-09 14:34:13 +02:00
Craig Raw
4e7f0611c4 move bitcoinunit to drongo 2020-07-09 10:25:28 +02:00
Craig Raw
687e235c94 show only addressable script types 2020-07-08 15:56:23 +02:00
Craig Raw
6135338df2 wallettx understand if coin control present 2020-07-07 13:58:29 +02:00
Craig Raw
5d14be5c9c send all utxos support 2020-07-07 07:42:36 +02:00
Craig Raw
2ff9c94c62 handle user set fee 2020-07-05 15:01:12 +02:00
Craig Raw
ccf7de9f62 tx creation algorithm 2020-07-04 12:51:31 +02:00
Craig Raw
3ee7cd11eb tx input construction from script type 2020-07-03 11:00:27 +02:00
Craig Raw
c4dd1cb9dd address parsing support 2020-06-30 09:22:23 +02:00
Craig Raw
24cde9d073 improve multithreaded behaviour 2020-06-26 13:34:07 +02:00
Craig Raw
2e1012da8b fix off by one bug 2020-06-25 16:44:25 +02:00
Craig Raw
66d4e11bf6 index fill fixes 2020-06-25 11:27:20 +02:00