async def get_tx_removals_and_additions(self, block: FullBlock, npc_result: Optional[NPCResult]=None) -> Tuple[(List[bytes32], List[Coin], Optional[NPCResult])]:
    if block.is_transaction_block():
        if (block.transactions_generator is not None):
            if (npc_result is None):
                block_generator: Optional[BlockGenerator] = (await self.get_block_generator(block))
                assert (block_generator is not None)
                npc_result = get_name_puzzle_conditions(block_generator, self.constants.MAX_BLOCK_COST_CLVM, cost_per_byte=self.constants.COST_PER_BYTE, safe_mode=False)
            (tx_removals, tx_additions) = tx_removals_and_additions(npc_result.npc_list)
            return (tx_removals, tx_additions, npc_result)
        else:
            return ([], [], None)
    else:
        return ([], [], None)
async def get_tx_removals_and_additions(self, block: FullBlock, npc_result: Optional[NPCResult]=None) -> Tuple[(List[bytes32], List[Coin], Optional[NPCResult])]:
    if block.is_transaction_block():
        if (block.transactions_generator is not None):
            if (npc_result is None):
                block_generator: Optional[BlockGenerator] = (await self.get_block_generator(block))
                assert (block_generator is not None)
                npc_result = get_name_puzzle_conditions(block_generator, self.constants.MAX_BLOCK_COST_CLVM, cost_per_byte=self.constants.COST_PER_BYTE, safe_mode=False)
            (tx_removals, tx_additions) = tx_removals_and_additions(npc_result.npc_list)
            return (tx_removals, tx_additions, npc_result)
        else:
            return ([], [], None)
    else:
        return ([], [], None)