feat: support delegated MPC with dev single-change behavior - #99
Draft
bandrivskiy wants to merge 5 commits into
Draft
bandrivskiy wants to merge 5 commits into
bandrivskiy wants to merge 5 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Support RGB transfers with delegated Dfns wallets
Summary
Enable the delegated Dfns flow to fund Internal once, prepare External RGB UTXOs, receive through blind invoices and send repeatedly from RGB change. Bitcoin keys remain with the provider; delegated authorization is handled outside the library.
Changes
create_utxos_begin/create_utxos_endfor provider addresses: protect RGB and reserved inputs, register the resulting External outputs and preserve spent state when completion is repeated.Compatibility
Preserve the existing MPC policy of one Internal change output carrying BTC and any RGB remainder, along with the six colored/vanilla BTC balance fields. Internal outputs carrying RGB remain protected from ordinary BTC spending.
Add the
mpc_prepared_inputsdatabase migration for durable send reservations. Legacy prepared transfers still require their original matching PSBT when no complete reservation exists. Keep wallet state and operation records across restarts.The existing
DfnsProviderand MPC PSBT utilities are unchanged. Shared wallet changes cover transaction plumbing, reservation filtering, transfer finalization and the BFA invoice correction. See the flow and validation notes.