Add configurable local transaction fee rate - #89
Draft
rohenaz wants to merge 1 commit into
Draft
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.
Desktop currently applies a fixed 250 sats/kB rate to every locally funded transaction. That default was introduced as a margin for reported underfunded token ancestors; the fee calculation does not select it based on ancestor confirmation status. A 4,901,246-byte inscription funded by an already-confirmed input therefore paid 1,225,312 sats despite an advertised Arcade floor of 100 sats/kB.
This draft adds one optional custom rate per network under Settings → Transaction fees:
This is control over the existing fixed rate, not automatic ancestor-aware pricing. No ancestor classification or fee-expansion mechanism is removed. Lowering the fixed rate can still leave a package with underfunded ancestors unable to confirm; calculating that shortfall is a separate design task. The draft does not change the default rate, broadcaster selection, or wallet-toolbox dependency.
Validation: 37 configured tests pass (including 13 fee tests), renderer and Electron typechecks pass, and the Electron build succeeds. Isolated UI checks with a mocked IPC bridge cover below-floor blocking, successful saving, a policy increase during save, and policy outages. A read-only live check resolves the advertised floor to 100 sats/kB. No wallet settings were changed and no transactions were broadcast during validation.
Related prerequisite investigation: Arcade draft #338 adds passing regressions showing that an under-floor parent is rejected even when its child covers their combined fee. The reviewed Teranode v0.16.0-beta-9 and main sources enforce the fee floor before block assembly and do not implement CPFP fee aggregation; legacy Bitcoin SV has a separate secondary-mempool CPFP path. A higher fixed child rate therefore does not universally rescue underfunded ancestors. This Desktop draft remains a manual-rate control, not a solution to that acceptance gap. No production change in this draft has been expanded on the basis of the investigation.