Конечная точка декодирования Blockcypher не работает для транзакций Segwit BTC
Я использую конечную точку декодирования Blockcypher, чтобы проверить строку tosign перед ее подписанием, чтобы убедиться, что никто не подделал ее - как предлагается в https://www.blockcypher.com/dev/bitcoin/.
У меня нет проблем с транзакциями P2PKH (устаревшие). Декодирование tosign_tx, я получаю все входы, выходы и значения, как предполагалось. Вы даже можете попробовать это онлайн: https://live.blockcypher.com/btc/test3/decodetx/
Проблема возникает при проверке транзакций P2WPKH. Ниже приведен TXSkeleton - я удалил ненужные поля:
{
"tx": {
"block_height": -1,
"block_index": -1,
"hash": "b83e920cb00b7f0456332e28cb52d726b52066f383c952d3a8a7637e0dd59dff",
"addresses": [
"tb1qrwq2jw98sj470n0w3ld0jh6l0c9ce59eq5azux",
"tb1q9gd0knnm3jm9r0c7zgvq056uhpx37f8whlxvj9"
],
"total": 994600,
"fees": 5400,
"size": 113,
"preference": "high",
"ver": 1,
"double_spend": false,
"vin_sz": 1,
"vout_sz": 2,
"confirmations": 0,
"inputs": [
{
"prev_hash": "6d787f57d978cda5973ac4646df2aadbd473ae58f18041b4b48f259c5858368b",
"output_index": 1,
"output_value": 1000000,
"sequence": 4294967295,
"addresses": [
"tb1qrwq2jw98sj470n0w3ld0jh6l0c9ce59eq5azux"
],
"script_type": "pay-to-witness-pubkey-hash",
"age": 0
}
],
"outputs": [
{
"value": 100000,
"script": "00142a1afb4e7b8cb651bf1e121807d35cb84d1f24ee",
"addresses": [
"tb1q9gd0knnm3jm9r0c7zgvq056uhpx37f8whlxvj9"
],
"script_type": "pay-to-witness-pubkey-hash"
},
{
"value": 894600,
"script": "00141b80a938a784abe7cdee8fdaf95f5f7e0b8cd0b9",
"addresses": [
"tb1qrwq2jw98sj470n0w3ld0jh6l0c9ce59eq5azux"
],
"script_type": "pay-to-witness-pubkey-hash"
}
]
},
"tosign_tx": [
"01000000d0fe2d3feb5f3a5b6a99c244f21924b0249e2bc65c5745bdb618b1799066a80a3bb13029ce7b1f559ef5e747fcac439f1455a2ec7c5f09b72290795e706650448b3658589c258fb4b44180f158ae73d4dbaaf26d64c43a97a5cd78d9577f786d010000001976a9141b80a938a784abe7cdee8fdaf95f5f7e0b8cd0b988ac40420f0000000000ffffffff5fa4537c4c565583f8d32a36c3510808d38acc0ad18cc7e637be6523ebb39ff30000000001000000"
],
"tosign": [
"f7c271366a770758bc3fd12f82b3cc04936da61fc3f98f7bfa188d946f1d0557"
]
}
Обычно я использую отправить его в Blockcypher, и Tx будет действительным. Но если мы отправим tosign_tx для декодирования, ответ будет следующим:
{
"addresses": [],
"block_height": -1,
"block_index": -1,
"confirmations": 0,
"double_spend": false,
"fees": 0,
"hash": "ce60f13293560ebb983e515b57438a019088b166edc63e2bbbe1b349a48c3316",
"inputs": [
{
"age": 0,
"output_index": 3458805937,
"prev_hash": "3b0aa8669079b118b6bd45575cc62b9e24b02419f244c2996a5b3a5feb3f2dfe",
"script": "1f559ef5e747fcac439f1455a2ec7c5f09b72290795e706650448b3658589c258fb4b44180f158ae73d4dbaaf26d64c43a97a5cd78d9577f786d010000001976a9141b80a938a784abe7cdee8fdaf95f5f7e0b8cd0b988ac40420f0000000000ffffffff5fa4537c4c565583f8d32a36c3510808d38acc0ad18cc7",
"script_type": "empty",
"sequence": 1706964966
},
{
"age": 0,
"output_index": 0,
"prev_hash": "000000000000000000000000000000000000000000000100000000f39fb3eb23",
"script_type": "empty",
"sequence": 0
},
{
"age": 0,
"output_index": -1,
"script_type": "empty",
"sequence": 0
},
...(many many copies of this last struct)...
],
"next_inputs": "https://api.blockcypher.com/v1/btc/test3/txs/ce60f13293560ebb983e515b57438a019088b166edc63e2bbbe1b349a48c3316?instart=100&outstart=0&limit=100",
"opt_in_rbf": true,
"outputs": [],
"preference": "low",
"size": 8661,
"total": 0,
"ver": 1,
"vin_sz": 208,
"vout_sz": 0
}
Спасибо за любые идеи.