Commit graph

352 commits

Author SHA1 Message Date
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