c73e8a42dd050c1e24daf295c666f6aa625f3bee commands: add a new 'delspendtx' command (Antoine Poinsot)
d5bd10add8270c1e0aae1855e6f8a96649323e24 commands: add a change_index field to listspendtxs entries (Antoine Poinsot)
c6e004806aecef54c640119439406b5308fbacd0 commands: add a 'list_spend' command (and 'listspendtxs' RPC) (Antoine Poinsot)
Pull request description:
Based on #27 this implements listing and deletion of Spend transaction from database. The API was based off revaultd's one and @edouardparis' suggestions in #1. We could be smarter in various places but at the moment we KISS.
ACKs for top commit:
darosior:
ACK c73e8a42dd050c1e24daf295c666f6aa625f3bee
Tree-SHA512: d4a13b9cbc9a6d48f698ba2f113c5de116b17cc51ed1f8dba578c041d9a70249699627729562ea199b32db6aaa9d2eb973d2b890f35a5e398e9c34940701ea86
3dfc7261db33a4db85772dfa9db5f61f8d8952e2 jsonrpc: a new 'updatespend' RPC (Antoine Poinsot)
cf45ba0fa5ead02997f1ffe7fea4faf83894ec8d commands: add a new 'update_spend' command (Antoine Poinsot)
bafcadf39870c02b89a9a4627a6918fce6c54f30 db: interface to upsert a Spend PSBT and query it by txid (Antoine Poinsot)
7d015bcf435897fa6e129b931fd2bea742ff7bc5 jsonrpc: add a 'createspend' RPC command (Antoine Poinsot)
7468a7fcfb37736c4585d16c091fb5db68bf50cc qa: add PSBT and transaction serialization to the test framework (Antoine Poinsot)
09f59c417ba04a153887a7cdf1e284703c9647aa qa: fix the UDS class' forwarding method calls as JSONRPC calls (Antoine Poinsot)
9afd44061e12c4b50720571d7e6aa0c260e725eb commands: add a new create_spend command (Antoine Poinsot)
12188f0c52d5ab141c1dcea194851ba01c04a57d descriptors: add more utilities to the derived descriptor type (Antoine Poinsot)
46320d5fc09371d1657044fd1a8507e919bcaff4 db: an interface to query coins by their outpoints (Antoine Poinsot)
Pull request description:
This implements two new commands to create and store a Spend transaction PSBT. We'll need a `listspendtxs` and `delspendtx` eventually as in `revaultd`.
This has poor change management (address reuse for simplicity). I was thinking of using odd/even indexes to differentiate receive/change addresses before we have [multi-path descriptors](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-July/020791.html). Now i wonder if it makes sense at all to implement this odd/even thing and just stick with address reuse before multi-paths descriptors. Nobody is supposed to use that anyways.
ACKs for top commit:
darosior:
ACK 3dfc7261db33a4db85772dfa9db5f61f8d8952e2
Tree-SHA512: 7f148c4d0d9ff8054c6405ca3031c2629c79917cdbf0134949ce7e066fa5aa157eb5bbe823d56a165a14c946d72c615d7dafa920899ba21d8471cc935c14790b
24cf9645e0897ab880949813daceac07ddb67234 ci: add a Cirrus configuration for the functional tests (Antoine Poinsot)
Pull request description:
Taken and adapted from revaultd.
Now that 24.0rc1 of Bitcoin Core is released we can actually have a CI for functional tests.
Fixes#14.
ACKs for top commit:
darosior:
ACK 24cf9645e0897ab880949813daceac07ddb67234
Tree-SHA512: d1157fc6caf507c6507a2c73df02b097c9e2f1b8ecb2330f8b2f65ffe8a368e7d6265a9d0538c5c9ed3623df6fd03f49dff259bdd0019784008106f392e0ab0b
I initially wanted to have a bridge table between the 'coins' and
'spend_transactions' table as we do in revaultd. But let's not optimize
to early, we'll see if/when we need it.
Since the Spend transaction command requires some parameters, this
implements the parameter-getting logic on the JSONRPC side as well.
This allows us to implement an end-to-end functional test of the
transaction flow using an external way to broadcast it. From the input
coins creation, to the Spend transaction broadcast.
ee86a1bd5ebbda39885f1e8869bf8ae03552d682 descriptors: add a helper to get the value of the timelock (Antoine Poinsot)
0fd57db8a893ae2621ca5f3cc03c6393c3a65646 Use the descriptor newtype instead of the raw miniscript Descriptor type (Antoine Poinsot)
44eb0fad9b758f7b81caea735b1a6ea41b29ebd6 descriptors: introduce a newtype for derived descriptors (Antoine Poinsot)
869d370daa354c76292517448646d0b7f76facba descriptors: introduce an InheritanceDescriptor type (Antoine Poinsot)
Pull request description:
This introduces types for our inheritance descriptor. This is taken and adapted from revaultd, where it turned out to be very helpful.
This also adds a helper to query the timelock of the heir's spending path in the inheritance descriptor for downstream users to be able to compute the expiration block of each coin.
This is based on #13.
ACKs for top commit:
edouardparis:
utACK ee86a1bd5ebbda39885f1e8869bf8ae03552d682
Tree-SHA512: 948720967052fcd0e83c3f061f981b25d79c4cc62bbd521de5ea27ee0f08ed1c50c3c089c9cb0729e1bdc59f4acfed1fa05decdbe4fd8b549abd3345c34d66a5
baa87375d046046478bc9195ff4802518a3247d3 fix windows title and doc (edouard)
b77d331792923eb0dc1bad7dd67e565698ef93c1 fix clippy errors (edouard)
Pull request description:
ACKs for top commit:
edouardparis:
ACK baa87375d046046478bc9195ff4802518a3247d3
Tree-SHA512: c9cefb39664512c0618422710e5d9d0e6a980f5a724d1e0f62cc2269f7520db8fc5529102e236c3ac3624a742da74864986e6766b19e015b7f058cde2b6956f5
9d0c68dae34f96a96d318f75cbbb5dbefffdd3d8 commands: add a 'list_coins' command. (Antoine Poinsot)
99a9cbf0f83fda6f98892c23ac89324f04b650ff poller: query derivation index by address from DB (Antoine Poinsot)
3f17e9f0c32db9724b384b9bd58c097653e9d04f database: change interface from update_der_index to increment_der_index (Antoine Poinsot)
e74ea4c2d36d17d0aa05044991d2cfff311d9f37 sqlite: a table for a mapping from address to derivation index. (Antoine Poinsot)
c9ef068fa5cb0ec39a9a88ec581434f6abb84048 poller: update our coins on each poll (Antoine Poinsot)
c6a25adfcdd371a1a2581cc210fb4dc03dfced2d bitcoin: interface for coins discovery and updates (Antoine Poinsot)
05b3af1b5a9faaa54106e11f87e38b391ebff744 database: interface and implementation for coins storage and update (Antoine Poinsot)
Pull request description:
ACKs for top commit:
edouardparis:
ACK 9d0c68dae34f96a96d318f75cbbb5dbefffdd3d8
Tree-SHA512: 0087ff04939326ae7affbb4c0defbe5573fc58d15f4b2fb47a71a03880187c4105742cc9eda868c3fe0ee5890931dc57eb3c63b4ef79335f434771d5cc089483
29e134748df363963092e16dcd288ed6431d7434 Add settings panel to gui (edouard)
Pull request description:
based on #8
ACKs for top commit:
edouardparis:
ACK 29e134748df363963092e16dcd288ed6431d7434
Tree-SHA512: 7a09c00d53ddef091219ffe5bf702795171bc0575b55f4930680a251d712d8cfdf30afd1ad38218c01c8430346fe95625202eb30b8cb9e1190d40806a7e6d226