Describe the enhancement
wallet create_tx can attach an OP_RETURN via --add_string / --add_data, but does not implement Bitcoin Core relay policy for:
how large that OP_RETURN script may be (datacarrier)
how large the resulting transaction may be (MAX_STANDARD_TX_WEIGHT)
The documentation says “max 80 bytes”, which matches the pre-v30 Core default. That limit is not actually enforced, and it is no longer the Core default.
A tx that create_tx successfully creates can be non-standard and fail at broadcast against default Core / most public relays.
Use case
Anyone embedding data with --add_string or --add_data currently will discover the problem only at broadcast, after building and signing. Failing at build time with a clear error about the tx weight and the limit will make it easier for users to reconstruct a transaction that can be relayed on the network.
The same check protects bump_fee, where a fee bump can push an already-large transaction over the limit, and any command whose inputs grow the witness.
Additional context
Split out of #326, which fixed the create_tx/bump_fee panics and --fee_rate truncation.
Describe the enhancement
wallet create_tx can attach an OP_RETURN via --add_string / --add_data, but does not implement Bitcoin Core relay policy for:
how large that OP_RETURN script may be (datacarrier)
how large the resulting transaction may be (MAX_STANDARD_TX_WEIGHT)
The documentation says “max 80 bytes”, which matches the pre-v30 Core default. That limit is not actually enforced, and it is no longer the Core default.
A tx that create_tx successfully creates can be non-standard and fail at broadcast against default Core / most public relays.
Use case
Anyone embedding data with
--add_stringor--add_datacurrently will discover the problem only at broadcast, after building and signing. Failing at build time with a clear error about the tx weight and the limit will make it easier for users to reconstruct a transaction that can be relayed on the network.The same check protects
bump_fee, where a fee bump can push an already-large transaction over the limit, and any command whose inputs grow the witness.Additional context
Split out of #326, which fixed the
create_tx/bump_feepanics and--fee_ratetruncation.