Tengo la siguiente dirección de billetera de testnet:
2MsQEtPJ6JJZszMYrD6udjUyTDFLczWQrv9
Que estoy tratando de codificar como pubkeyhash para coinbase TX en testnet. Cuando ejecuto decode58, obtengo esto
C401B47E5722F808856A308FA043CCF28323F51711E8165536
Elimino el prefijo del byte de la versión y el sufijo de la suma de comprobación, y obtengo:
01B47E5722F808856A308FA043CCF28323F51711
Entonces el scriptPubKey debería ser
76a91401b47e5722f808856a308fa043ccf28323f5171188ac which is OP_DUP OP_HASH160 01b47e5722f808856a308fa043ccf28323f51711 OP_EQUALVERIFY OP_CHECKSIG
Pero como prueba de unidad de cordura, lo verifico vs. la consola de depuración
decodescript 76a91401b47e5722f808856a308fa043ccf28323f5171188ac
Pero la consola de depuración me da esto:
"asm": "OP_DUP OP_HASH160 01b47e5722f808856a308fa043ccf28323f51711 OP_EQUALVERIFY OP_CHECKSIG",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"mffyC9xbwyBQUWhV8SbYWpqaiNSSWR2vpo"
],
"p2sh": "2ND12E9b9oa9hvTTckXwNaSJiRZ39eRFWSJ"
Entonces, ¿por qué obtengo la dirección "mffyC9xbwyBQUWhV8SbYWpqaiNSSWR2vpo" y no "2MsQEtPJ6JJZszMYrD6udjUyTDFLczWQrv9" como esperaba?
En primer lugar, las scriptPubKeys no están encriptadas y lo que está haciendo no es encriptación. Esto es codificación.
El problema es que está intentando codificar una dirección P2SH como un scriptPubKey P2PKH. Las direcciones P2SH son diferentes de las direcciones P2PKH y tienen códigos de operación diferentes. Puede identificarlos mirando el número de versión de la dirección que no está haciendo. El número de versión en realidad tiene un significado, no se puede ignorar. Su scriptPubKey en realidad debería ser
OP_HASH160 01b47e5722f808856a308fa043ccf28323f51711 OP_EQUAL
vejestorio
andres chow