Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Asset Minting with V1 Asset Group Key and Chantools Cold Storage Support #1272

Draft
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

ffranr
Copy link
Contributor

@ffranr ffranr commented Jan 3, 2025

This PR builds on Oli's WIP to demonstrate asset minting using the new V1 asset group key formulation. It integrates chantools to mint assets with an external asset group signing key (taproot internal key), offering a viable option for users who wish to keep their asset group signing key in cold storage.

A new integration test is included to simulate user behavior by leveraging chantools via the command line. The test verifies that the minter can successfully sign an asset into the asset group using the external asset group signing key.

@ffranr ffranr self-assigned this Jan 3, 2025
@dstadulis dstadulis requested a review from GeorgeTsagk January 6, 2025 15:32
@dstadulis dstadulis added this to the v0.6 milestone Jan 6, 2025
ffranr and others added 16 commits January 7, 2025 11:35
Adds a new field to the ListBatches RPC endpoint response. This field
contains the byte-serialized PSBT equivalent of the group virtual
transaction field for unsealed assets.
Introduce a general return type, `FundBatchResp`, for the `FundBatch`
method. This allows for easier extension with additional fields in the
future, enabling the FundBatch state machine to return extra fields
as needed.
Add a function to create a verbose mint batch from a regular mint batch.
This function is extracted by refactoring existing code from the list
batch functionality.
The FundBatch RPC endpoint now returns a verbose batch instead of a
regular batch. The verbose batch includes additional asset group
information required by external signers.
If an external key is specified during minting, generate a V1 asset
group key which uses the new group key formulation.

This commit lays down the ground work with placeholder arguments which
will be used (populated) correctly in a later commit.
TODO: in this commit, GroupKeyRequest contains both TapscriptRoot
and CustomTapscriptRoot, remove one of these?
Add a test harness to execute the chantools binary via the command line
and parse its output.
Adds a test to ensure the new PSBT field introduced in the previous
commit can be used to derive a transaction identical to the group
virtual transaction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🏗 In progress
Development

Successfully merging this pull request may close these issues.

3 participants