Как генерируется поле x_pubkeys в Electrum PSBT? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь разобраться в формате транзакции Electrum PSBT, и вроде все понятно, кроме одного поля. Позвольте мне опубликовать здесь типичный PSBT, созданный с помощью кошелька (десериализованный).

{
    "inputs": [
        {
            "address": "17gs9PbWDPaZpbCj1E4vGfAFAgYscp97tS",
            "num_sig": 1,
            "prevout_hash": "4ab140fc17300f276f4bcc605162849fb20be3ed87d3a30fb2e0275b999a2232",
            "prevout_n": 1,
            "pubkeys": [
                "02c0af99608ee822efd3a207c0d917621f2d1cfd9c466cf93b552f42e7c045b94c"
            ],
            "scriptSig": "01ff4c53ff0488b21e038c9df2e8800000000332ec1848e45c108d92bbce40ef9c56f2ea35959207881c8b8ce0588e0e894503d0eda4bfe2a7e09743bcc663899ea35d42edce92e0f45193d4114bd1eb6eced100000100",
            "sequence": 4294967293,
            "signatures": [
                null
            ],
            "type": "p2pkh",
            "x_pubkeys": [
                "ff0488b21e038c9df2e8800000000332ec1848e45c108d92bbce40ef9c56f2ea35959207881c8b8ce0588e0e894503d0eda4bfe2a7e09743bcc663899ea35d42edce92e0f45193d4114bd1eb6eced100000100"
            ]
        }
    ],
    "lockTime": 631761,
    "outputs": [
        {
            "address": "126QNy7UA11xkrQ1AWMp1PpyEUtKBg6ytz",
            "prevout_n": 0,
            "scriptPubKey": "76a9140bfdb89fe10ed2859449d543b26c5dfef39c2a0588ac",
            "type": 0,
            "value": 496160
        }
    ],
    "partial": true,
    "segwit_ser": false,
    "version": 2
}

В этой транзакции только один вход; как это формируется?

"x_pubkeys": [
    "ff0488b21e038c9df2e8800000000332ec1848e45c108d92bbce40ef9c56f2ea35959207881c8b8ce0588e0e894503d0eda4bfe2a7e09743bcc663899ea35d42edce92e0f45193d4114bd1eb6eced100000100"
]

Я заметил, что его значение указано в кошельке c, поэтому все транзакции PSBT из этого кошелька имеют одинаковое значение в этом поле. Я полагаю, это как-то связано с кошельком xpub, поскольку значения одинаковы для обычного кошелька и кошелька только для чтения. Есть идеи, как заполняется это поле?

...