For daemon this would be a RPC call (reissuetransaction?), for UI could be context menu feature on transaction list.
The goal would be to make it possible to re-issue transactions that got stuck because they built on unconfirmed change transactions that were malleated.
- For conflicted transactions:
- Iterate over inputs, find variants of parent transactions that made it into the block chain, update prevouts
- Fail if the resulting transaction would cause a double-spend with a transaction in the mempool or another active transaction in the wallet
- Re-sign transaction (ask for unlock wallet if needed)
- Broadcast transaction to network
- For normal unconfirmed transactions:
- Rebroadcast transaction to network
- For confirmed transaction:
- Do nothing / keep option disabled
A more advanced variant could allow for adding inputs and/or extra fee, but this base functionality would already be useful IMO.