Commit Graph
51 Commits
Author SHA1 Message Date
Murch 24e96e870f process: Created ↦ Assigned
```
sed -z -i 's/Created: /Assigned: /' bip-0*.md
sed -z -i 's/Created: /Assigned: /' bip-0*.mediawiki
```
2026-01-12 14:29:51 -08:00
Murch 5207ef92a5 process: Author ↦ Authors
```
sed -z -i 's/Author: /Authors: /' bip-0*.md
sed -z -i 's/Author: /Authors: /' bip-0*.mediawiki
```

Also align correctly in case of multiple authors.
2026-01-12 14:29:00 -08:00
Murch 59730dec4f process: Remove Comments-URI and -Summary
```
sed -i '0,/Comments-Summary/{/Comments-Summary/d}' bip-0*md
sed -i '0,/Comments-Summary/{/Comments-Summary/d}' bip-0*mediawiki
sed -i '0,/Comments-URI/{/Comments-URI/d}' bip-0*md
sed -i '0,/Comments-URI/{/Comments-URI/d}' bip-0*mediawiki
```

Then reset the BIPs with non-empty comment wikis:

- bip-0037.mediawiki
- bip-0038.mediawiki
- bip-0039.mediawiki
- bip-0042.mediawiki
- bip-0044.mediawiki
- bip-0047.mediawiki
- bip-0049.mediawiki
- bip-0060.mediawiki
- bip-0061.mediawiki
- bip-0074.mediawiki
- bip-0075.mediawiki
- bip-0077.md
- bip-0084.mediawiki
- bip-0090.mediawiki
- bip-0118.mediawiki
- bip-0125.mediawiki
- bip-0150.mediawiki
- bip-0151.mediawiki
- bip-0152.mediawiki
- bip-0171.mediawiki
- bip-0172.mediawiki
- bip-0173.mediawiki
- bip-0174.mediawiki
- bip-0176.mediawiki
- bip-0178.mediawiki
- bip-0199.mediawiki
- bip-0322.mediawiki
- bip-0340.mediawiki
- bip-0341.mediawiki
2026-01-12 14:28:37 -08:00
Murch a233bde4af process: Standards Track ↦ Specification
```
sed -z -i 's/Type: Standards Track/Type: Specification/' bip-0*.md
sed -z -i 's/Type: Standards Track/Type: Specification/' bip-0*.mediawiki
```

After the scripted changes, the changes to BIP-40, BIP-41, and BIP-63
were undone, because it breaks CI.

These three BIPs only exist conceptually and their proposal documents
are missing which causes changes to them ot break the CI. I defer the
changes to these BIPs to a separate pull request to get CI to pass.
2026-01-12 14:22:40 -08:00
Yuval Kogman cd19d89e58 scripted-diff: fix BIP 2 field order violations
-BEGIN VERIFY SCRIPT-
set -e
perl <<'-END PERL-'
use strict;
use warnings;

my $topbip = 9999;

my @FieldOrder = qw(
	BIP
	Layer
	Title
	Author
	Authors
	Editor
	Deputies
	Discussions-To
	Comments-Summary
	Comments-URI
	Status
	Type
	Created
	License
	License-Code
	Discussion
	Post-History
	Version
	Requires
	Replaces
	Proposed-Replacement
	Superseded-By
);

my $bipnum = 0;
while (++$bipnum <= $topbip) {
	my $fn = sprintf "bip-%04d.mediawiki", $bipnum;
	my $is_markdown = 0;
	if (!-e $fn) {
		$fn = sprintf "bip-%04d.md", $bipnum;
		$is_markdown = 1;
	}
	-e $fn || next;
	open my $F, "<", $fn or die "$!";

	my (@before, %preamble, @after);

	if ($is_markdown) {
		while (<$F>) {
			push @before, $_;
			last if m[^(?:\xef\xbb\xbf)?```$]
		}
		die "No ``` in $fn" if eof $F;
	} else {
		while (<$F>) {
			push @before, $_;
			last if m[^(?:\xef\xbb\xbf)?<pre>$];
		}
		die "No <pre> in $fn" if eof $F;
	}
	my %found;
	my ($title, $author, $status, $type, $layer);
	my ($field, $val, @field_order);
	while (<$F>) {
		push @after, $_ and last if ($is_markdown && m[^```$]);
		push @after, $_ and last if (!$is_markdown && m[^</pre>$]);

		if (m[^  ([\w-]+)\: (.*\S)$]) {
			$field = $1;
			$val = $2;
		} elsif (m[^  ( +)(.*\S)$]) {
			$val = $2;
		} else {
			die "Bad line in $fn preamble";
		}

		push @{$preamble{$field} ||= []}, $_;
	}
	push @after, <$F>;
	close $F or die $!;

	open my $W, ">", "$fn" or die "$!";

	print $W @before;
	print $W map { @$_ } grep { defined } delete @preamble{@FieldOrder};
	die "Unknown fields: @{[ keys %preamble ]}" if %preamble;
	print $W @after;

	close $W or die $!;
}
-END PERL-
-END VERIFY SCRIPT-
2025-07-20 14:29:13 -06:00
VolodymyrBg c5220f8c3b BIPs 78 and 329: minor grammar and typo fix-ups (#1825)
* BIP 329 fix typo

* BIP 78 fix typos
2025-04-14 12:35:42 -07:00
Jon Atack f1ad9188b4 Merge branch 'master' into bip78-mixed-inputs-ok 2025-01-14 08:13:20 -07:00
Jon Atack 8c494fc9b8 Merge branch 'master' into patch-1 2025-01-14 07:51:07 -07:00
DanGouldandMartin Habovstiak bd01a269e5 BIP78: Doc amount parameter not required
It's an optional parameter in BIP 21 Bitcoin URIs, but it doesn't hurt
to make it explicit.

Co-authored-by: Martin Habovstiak <martin.habovstiak@gmail.com>
2024-07-08 13:57:30 -04:00
DanGouldandMartin Habovstiak 72d8bb04b8 BIP78: Clarify output substitution
The original text is ambiguous to allowing transaction cut-through
or not. Transaction cut-through enables savings by posting multiple
transaction intents through a single 2-party payjoin and is used
in practice in payjoins today. Let's explicitly allow it in the text.

Co-authored-by: Martin Habovstiak <martin.habovstiak@gmail.com>
2024-07-08 13:57:30 -04:00
DanGouldandMartin Habovstiak 539fd85498 BIP78: Allow mixed inputs
Disallowing mixed inputs was based on incorrect assumption that no
wallet supports mixed inputs and thus mixed inputs imply PayJoin.
However there are at least three wallets supporting mixed inputs.
(Confirmed: Bitcoin Core, LND, Coinomi) Thus it makes sense to enable
mixed inputs to avoid a payjoin-specific fingerptint. To avoid
compatibility issues a grace period is suggested.

Co-authored-by: Martin Habovstiak <martin.habovstiak@gmail.com>
2024-07-08 13:57:30 -04:00
5700a230dc BIP78: spelling and grammar updates
Co-authored-by: Dan Gould <d@ngould.dev>
Co-authored-by: Jon Atack <jon@atack.com>
2024-07-03 21:00:05 -04:00
Dan Gould e4267374fb Keep input utxo data through input finalization
The reference sender implementation and \`payjoin proposal\` test vectors
are adjusted accordingly.

According to the psbt Input Finalizer spec "All other data except the
UTXO and unknown fields in the input key-value map should be cleared from
the PSBT. The UTXO should be kept to allow Transaction Extractors to
verify the final network serialized transaction."

I ran into a problem where an LND acting as sender FinalizePsbt gRPC
fails when sender utxo information is missing. I see no good reason to
remove utxo information from the PSBT.
2024-06-10 13:11:38 -04:00
John BamptonandMark Murch Erhardt f61885edcf docs: fix spelling (#1117)
Co-authored-by: Mark "Murch" Erhardt <murch@murch.one>
2024-04-30 16:54:05 -04:00
kallewoof bd943663d6 Merge pull request #1156 from rage-proof/patch-2
typo in bip-0078
2021-08-31 21:21:57 +09:00
kallewoof 407d1178f3 Merge pull request #1171 from NicolasDorier/woieuq
[BIP78] Fix client implementation when there is output substitution
2021-08-31 19:50:37 +09:00
nicolas.dorier d8db3d7608 [BIP78] Fix client implementation when there is output substitution 2021-08-31 15:48:16 +09:00
rage-proof ec52492034 typo in bip-0078
This is a transaction with inputs P2SH-P2WPKH 
1. P2SH-P2WPKH is defined as type in this doc and the other type not
2. the RedeemScript(0 c78a45725355828d5658074dd5260d5fcb698530) consists of 0 + <20 bytes> and indicates therefore P2WPKH-Type. https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#P2WPKH_nested_in_BIP16_P2SH
2021-08-17 01:08:10 +02:00
Nicolas Dorier 1945eda0c2 [BIP78] Recommended fee rate estimation for P2TR
Non-Witness: 

Outpoint size = 32+4
Sequence size = 4
ScriptSig VarInt Size= 1

Witness: 

WitScript VarInt Size= 1
Then script itself: 65 signature size + 1 byte of push opcode

`(32 + 4 + 4 + 1) + (65+1+1)/4=57.75`, rounded up `58`.

We assume 65 of signature size rather than 64, since we can't assume the sighash to be `Default`.
2021-08-05 15:49:41 +09:00
kallewoof 65529b12bb Merge pull request #1082 from molnard/patch-1
Fix word duplication
2021-06-15 15:49:20 +09:00
kallewoof 127cdc3cda Merge pull request #1027 from rage-proof/patch-1
BIP-0078: fix typo
2021-06-15 15:49:06 +09:00
Dávid Molnár 38d2454210 Fix word duplication 2021-03-09 09:09:52 +01:00
rage-proof 55d37134cf Update bip-0078.mediawiki
the payjoin proposal has more inputs
2020-10-29 23:58:50 +01:00
Adam Gibson 1fbcd28584 update Joinmarket BIP78 status 2020-10-18 13:37:50 +01:00
kiminuo a4fd5cc8ad Update bip-0078.mediawiki
Fix a few links.
2020-07-19 22:51:06 +02:00
nicolas.dorier a76f5e4335 Clarify test vector 2020-06-23 17:46:18 +09:00
nicolas.dorier b0be77f99e Removing non-sense paragraph 2020-06-22 11:06:57 +09:00
nicolas.dorier e6418e5a76 Fix missing word 2020-06-22 10:58:40 +09:00
nicolas.dorier 5e4cc6d812 Fix grammar, additional note on ability to increase output of the receiver 2020-06-22 10:56:22 +09:00
nicolas.dorier feac3d0035 Update special thanks 2020-06-19 16:12:29 +09:00
nicolas.dorier c449c019f6 Do not allow decrease in absolute fee 2020-06-19 16:06:19 +09:00
nicolas.dorier 549107933c Allow outputs to be increased 2020-06-19 15:19:22 +09:00
nicolas.dorier bd97400743 Introduce pjos=0 2020-06-19 15:00:19 +09:00
nicolas.dorier e2778babfb additional comments 2020-06-19 14:31:19 +09:00
nicolas.dorier 6d4b491b31 Simplify sender's implementation, fix typos 2020-06-19 14:26:51 +09:00
nicolas.dorier 93c655a149 Fix typo 2020-06-19 13:24:59 +09:00
nicolas.dorier 3a16c24f5e Additional note for HW 2020-06-19 13:23:37 +09:00
nicolas.dorier 7803bf8335 Reformat the check list for sender 2020-06-19 13:17:34 +09:00
nicolas.dorier a3fbc6c620 Do not crash reference implementation if there is no address in the bip21 2020-06-18 11:04:59 +09:00
nicolas.dorier a2a085cdb4 Add disableoutputsubstitution= optional parameter 2020-06-18 10:11:20 +09:00
nicolas.dorier 63aa576fac Update from RHavar remarks 2020-06-18 09:59:44 +09:00
nicolas.dorier 3485af708c Add reference implementation 2020-06-18 00:12:29 +09:00
nicolas.dorier ea7562fc90 Fix old error code 2020-06-17 21:51:09 +09:00
nicolas.dorier 3fc7032ec3 Fix some formatting 2020-06-17 16:20:38 +09:00
nicolas.dorier f36ca8f43d Update recommendation for receiver and sender 2020-06-17 16:15:53 +09:00
nicolas.dorier a07fef5797 Add fee output section 2020-06-17 16:09:35 +09:00
nicolas.dorier d72e27535e [MoveOnly] Move optional parameters at the beginning 2020-06-17 15:06:28 +09:00
nicolas.dorier 801cc71114 Update PSBT invariants 2020-06-16 14:27:09 +09:00
nicolas.dorier 631d8e65cd Simplifies sender recommendation 2020-06-16 14:17:36 +09:00
nicolas.dorier d13c784671 Remove parts refering to RBF, add recommendations for maxadditionalfeecontribution 2020-06-16 13:39:27 +09:00