예제 #1
0
 def node_for_block(self, height):
     block_header = CBlockHeader()
     block_header.deserialize(
         BytesIO(hex_str_to_bytes(self.nodes[0].getblock(str(height), 0))))
     sapling_root = hex_str_to_bytes(self.nodes[0].getblock(
         str(height))["finalsaplingroot"])[::-1]
     return ZcashMMRNode.from_block(block_header, height, sapling_root, 0,
                                    HEARTWOOD_BRANCH_ID)
예제 #2
0
    def node_for_block(self, height):
        if height >= 35:
            epoch = NU5_BRANCH_ID
        elif height >= 32:
            epoch = CANOPY_BRANCH_ID
        else:
            epoch = HEARTWOOD_BRANCH_ID

        block_header = CBlockHeader()
        block_header.deserialize(
            BytesIO(hex_str_to_bytes(self.nodes[0].getblock(str(height), 0))))
        sapling_root = hex_str_to_bytes(self.nodes[0].getblock(
            str(height))["finalsaplingroot"])[::-1]

        if height >= 35:
            orchard_root = hex_str_to_bytes(self.nodes[0].getblock(
                str(height))["finalorchardroot"])[::-1]
            v2_data = (orchard_root, 0)
        else:
            v2_data = None

        return ZcashMMRNode.from_block(block_header, height, sapling_root, 0,
                                       epoch, v2_data)