You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
rpc: scriptPubKey type says multisig when Core doesn't #1181
Every scriptPubKey has a type field that says what kind of script it is. rbitcoin's rule for spotting a multisig is not the same as Core's, so some scripts get the wrong type.
This matters because wallets, explorers and other tools read type to decide how to show or handle an output. If rbitcoin says multisig and Core says nonstandard, the same transaction looks different depending on which node you ask.
How to see it:
decodescript 5101ab51ae
This says "1 of 1 multisig", but the only "key" is a single byte. That can't be a real key.
This is a key followed by OP_CHECKMULTISIG twice, with no number saying how many keys there are.
Core: nonstandard
rbitcoin: multisig
A bare multisig with 17 keys goes the other way. The script is too long to paste here, but:
Core: multisig (Core allows up to 20 keys)
rbitcoin: nonstandard (it stops at 16)
After #1176, desc already gets all three right: raw(…) for the first two, multi(…) for the 17-key one. So right now type and desc can disagree about the same script.
Fix:
Make type use the same multisig check desc uses after #1176, so both give the same answer as Core. Then the three scripts above become nonstandard, nonstandard and multisig.
Activity
rpc: scriptPubKey type finds bare multisig as Core does