Commit graph

439 commits

Author SHA1 Message Date
Craig Raw
f10688279a add bip38 decryption functionality and tests 2022-07-19 13:21:21 +02:00
Craig Raw
5de3abd362 store address data on wallet nodes 2022-07-18 16:11:59 +02:00
Craig Raw
9ae1f68dc4 address and related optimizations 2022-07-15 13:42:27 +02:00
Craig Raw
fefebbabb5 remove key derivation method 2022-07-14 16:07:55 +02:00
Craig Raw
d489aa6af9 follow up 2022-07-14 15:37:48 +02:00
Craig Raw
67bc479ae9 prevent concurrent modification exception while copying node tree 2022-07-14 15:30:39 +02:00
Craig Raw
c4d2041a77 optimize retrieving unspent utxos 2022-07-14 15:08:01 +02:00
Craig Raw
377843a4a5 add performance optimization when requesting purpose node for deep wallets 2022-07-14 14:48:05 +02:00
Craig Raw
6d0d5b7f62 use an address node cache to avoid repeat wallet address lookups 2022-07-14 13:20:15 +02:00
Craig Raw
bd01cb8730 add method to warm the pubkey cache 2022-07-14 09:55:46 +02:00
Craig Raw
cd1e21ebaa prefer using libsecp256k1 to derive public keys from private 2022-07-12 10:43:20 +02:00
Craig Raw
d05ec39df7 optimize utxo selection through local variable caching of wallet data reused in computation 2022-07-07 11:08:39 +02:00
Craig Raw
1a20e0381c always find node for first input when retrieving historical notification txes 2022-06-06 13:38:06 +02:00
Craig Raw
7f2c5a5a59 rename taproot sighash default and avoid conflation with sighash all 2022-05-30 16:27:55 +02:00
Craig Raw
7535c876ba ensure dummy y value of taproot internal key is consistent 2022-05-25 16:14:26 +02:00
Craig Raw
a3ec868b75 add ledger nano s plus wallet model 2022-05-24 10:43:49 +02:00
Craig Raw
8e50815a3f preserve txo status when updating node outputs 2022-05-19 16:34:14 +02:00
Craig Raw
d24243ce20 set lower bound on bip47 account index 2022-05-19 12:29:56 +02:00
Craig Raw
38deacaeec add support for seedqr parsing 2022-05-17 08:02:24 +02:00
Craig Raw
eddd6406ef consider spent mempool outputs when checking max spendable amount for rbf txes 2022-05-12 10:56:00 +02:00
Craig Raw
ba86924503 add native libraries for aarch64 2022-05-06 17:34:00 +02:00
Craig Raw
9cb95f2f8c add psbt taproot output fields, jade wallet 2022-05-04 14:32:24 +02:00
craigraw
759ebb975c
Merge pull request #6 from satsen/master
avoid manual parsing of a bitcoin uri
2022-04-28 11:28:02 +02:00
Craig Raw
5b3712bfe0 dont add bip32 derived key field to taproot inputs 2022-04-26 14:57:24 +02:00
satsen
d9831bdcd0 Use URI instead of manual parsing 2022-04-13 16:58:38 +01:00
Craig Raw
20f4ac9657 ensure unique stonewall input txids for entire tx (not just per set) 2022-03-30 08:55:41 +02:00
Craig Raw
d1088fe9ee support psbt taproot bip32 derivation field, fix taproot signature verification 2022-03-29 11:49:49 +02:00
Craig Raw
74e32bab3d simplify automatic master wallet label 2022-03-22 09:14:29 +02:00
Craig Raw
88bd6ada98 disable bip47 support for taproot script type 2022-03-21 09:39:04 +02:00
Craig Raw
fe57ad3e7a set bip47 wallet label before creating addresses 2022-03-17 10:33:32 +02:00
Craig Raw
6401761530 automatically label new bip47 receive addresses to identify incoming bip47 payments 2022-03-17 09:44:47 +02:00
Craig Raw
04631be8c1 copy label on wallet copy 2022-03-04 10:35:20 +02:00
Craig Raw
0734757a17 support nested wallets 2022-03-02 13:34:10 +02:00
Craig Raw
956f59880e fix for retreiving notification tx data for non-zero bip47 accounts 2022-02-23 09:44:09 +02:00
Craig Raw
7bb07ab39e add bip47 keystores 2022-02-22 12:02:40 +02:00
Craig Raw
f73cabad3c remove unused copy labels method 2022-02-09 16:07:26 +02:00
Craig Raw
78359961f3 followup 2022-02-09 13:23:37 +02:00
Craig Raw
de87ab1102 add detached labels map to store labels during a wallet refresh 2022-02-09 11:38:23 +02:00
Craig Raw
ee732fb223 handle wif format private keys with uncompressed pubkeys 2022-02-03 12:43:14 +02:00
Craig Raw
9618c73c50 allow short wallet display name retrieval 2022-01-31 19:12:36 +02:00
Craig Raw
61317f15ac more nuanced wallet compare with master wallets first 2022-01-25 13:46:02 +01:00
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