transactionsのoutputs

アウトプットは1つ以上のoutputsを持つことになるので、varint形式でシリアライズする
アウトプットは”額”と”ScriptPubKey”がある。
額はsatoshi, 1億分の1 bitcoinです。64ビット(8bytes)、リトルエンディアンでシリアライズ
ScriptPubKeyはスマートコントラクト言語Scriptで処理される 鍵の所有者のみ開けられる

UTXOはunspent transaction outputの略
UTXOセットを扱いやすくすると、トランザクションの検証に役立つ
トランザクションの検証は、前のトランザクションアウトプットから額とScriptPubKeyを参照する必要がある

tx.py

class TxOut:

    def __init__(self, amount, secript_pubkey):
        self.amount = amount
        self.script_pubkey = script_pubkey

    def __repr__(self):
        return '{}:{}'.format(self.amount, self.script_pubkey)
    @classmethod
    def parse(cls, s, testnet=False):
        version = little_endian_to_int(s.read(4))
        num_inputs = read_varint(s)
        inputs = []
        for _ in range(num_inputs):
            inputs.append(TxIn.parse(s))
        num_outs = read_varint(s)
        outputs = []
        for _ in range(num_outputs):
            outputs.append(TxOut.parse(s))
        return cls(version, inputs, outputs, None, testnet=testnet)

        // omission

    @classmethod
    def parse(cls, s):
        amount = little_endian_to_int(s.read(8))
        script_pubkey = Script.parse(s)
        return cls(amount, script_pubkey)