Ejemplo de gráfico de uso de Segwit: https://p2sh.info/dashboard/db/segwit-usage?orgId=1
Me gustaría verificar comprobando tx si es Transacción Segwit o no.
¿Hay algún método simple para hacer esto?
¿Qué sucede cuando se configuran muchos tipos de direcciones como entradas y salidas?
Una transacción es un segwit tx si al menos una de las entradas contiene un testigo. O si está inspeccionando el tx sin procesar, entonces verifica el quinto byte (el conteo de entrada) y si es así, 0x00
entonces es un segwit tx.
Ejemplo: tx1
02000000 05 5f4e5315ffe854e75db92f8dda952a8db2f63b37838fca4c32bd4bb692fe7ea2000000006a47304402200ab62a9d1858dceeaa2101cda3f31b7bae60471c0355c54a6eae48f723555806022010d2aad6362a8c56ed66b0670ff84175f534f4f0995f8724a9b2a5fc89a2a4b4012102c424c2670a7aade9cf867576064013d02cc7669c418968993e73e6b25fc122bcfeffffff80cb1bfcde0f309490c717eca07f1353f121fb13e105...
no es un segwit tx porque el conteo de entrada es 0x05
= 5
01000000 00 010106325BAC2F2E7CA67FA46C8304FB3B747E5578DF1EEF0394349CE2CD744444444263056AT
es un segwit tx porque el conteo de entrada es 0x00
= 0
También:
En tu ejemplo:
legado -> P2SH
Esto no puede ser un segwit tx porque gasta entradas de una dirección heredada
P2SH -> legado
Puede ser un segwit tx si la dirección es P2SH-P2WPKH o P2SH-P2WSH (segwit anidado en P2SH). No sabría si está anidado si no es suyo a menos que alguien ya haya gastado de él (en cuyo caso inspecciona el gasto tx).
bech32 -> legado
Esto siempre es un segwit tx