4
1
I don't understand what the 'ScriptCode' thing is. Is it a part of transaction format? The wiki https://en.bitcoin.it/wiki/Transaction describes scriptPubKey and scriptSig, mentioning nothing about 'ScriptCode'.
When viewing an example P2WPKH transaction here http://n.bitcoin.ninja/checktx?txid=d869f854e1f8788bcff294cc83b280942a8c728de71eb709a2c29d10bfe21b7c
The "Script Code" field is displayed as "OP_DUP OP_HASH160 1d7cd6c75c2e86f4cbf98eaed221b30bd9a0b928 OP_EQUALVERIFY OP_CHECKSIG"(so the standard script used by ordinary P2PKH transactions), but these are not given by scriptSig or scriptPubKey(obviously, since those two have a very specific form required for SegWit transactions). Can someone explain where this stuff comes from?
Where are the ScriptCodes defined? – MeshCollider – 2017-08-15T00:58:53.447
1
The scriptCodes are defined in BIP 143: https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki#specification
– Andrew Chow – 2017-08-15T01:09:05.570@AndrewChow Are P2SH and P2PH defined similarly? Didn't see definitions for them in BIP 143 though. – qweruiop – 2018-04-11T02:32:25.990
For P2PKH, the scriptCode is the scriptPubKey. For P2SH, it's typically the redeemScript. They aren't defined in BIP 143 because they are not segwit output types; BIP 143 defines segwit stuff. AFAIK, there is no "official" documentation or specification which lays out what actually the scriptCode is. You will need to look in the code for that. – Andrew Chow – 2018-04-11T02:53:54.480