def METHOD_NAME(self):
    '''
    Test the GetSidechainVersions websocket API
    '''
    test_helper = BlockchainHelper(self)
    # Node 0 generates blocks to reach the sidechain version fork point
    mark_logs("Node 1 generates {} block".format(ForkHeights['NON_CEASING_SC']), self.nodes, DEBUG_MODE)
    self.nodes[0].generate(ForkHeights['NON_CEASING_SC'])
    self.sync_all()
    mark_logs("Node 0 creates sidechain 1 with version 0", self.nodes, DEBUG_MODE)
    test_helper.create_sidechain("sc1", SidechainParameters["DEFAULT_SC_V0"])
    scid1 = test_helper.get_sidechain_id("sc1")
    mark_logs("Node 0 creates sidechain 2 with version 0", self.nodes, DEBUG_MODE)
    test_helper.create_sidechain("sc2", SidechainParameters["DEFAULT_SC_V0"])
    scid2 = test_helper.get_sidechain_id("sc2")
    mark_logs("Node 0 generates 1 block to confirm the two sidechains", self.nodes, DEBUG_MODE)
    self.nodes[0].generate(1)
    self.sync_all()
    mark_logs("Node 0 creates sidechain 3 with version 1", self.nodes, DEBUG_MODE)
    test_helper.create_sidechain("sc3", SidechainParameters["DEFAULT_SC_V1"])
    scid3 = test_helper.get_sidechain_id("sc3")
    # Node 0 isn't considered from the WS GetSidechainVersions API since it's in the mempool (unconfirmed)
    mark_logs("Retrieve sidechain versions from node 0 (expecting invalid parameter for scid3)", self.nodes, DEBUG_MODE)
    try:
        sidechainVersions = self.nodes[0].ws_get_sidechain_versions([scid1, scid2, scid3])
        assert(False)
    except JSONWSException as e:
        assert("Invalid parameter" in e.error)
    mark_logs("Retrieve (confirmed) sidechain versions from node 0", self.nodes, DEBUG_MODE)
    try:
        sidechainVersions = self.nodes[0].ws_get_sidechain_versions([scid1, scid2])
    except JSONWSException:
        assert(False)
    mark_logs("Generate one block to confirm the sidechain 3", self.nodes, DEBUG_MODE)
    self.nodes[0].generate(1)
    self.sync_all()
    mark_logs("Node 0 creates sidechain 3 with version 2 - non-ceasing", self.nodes, DEBUG_MODE)
    test_helper.create_sidechain("sc4", SidechainParameters["DEFAULT_SC_V2_NON_CEASABLE"])
    scid4 = test_helper.get_sidechain_id("sc4")
    # Node 0 isn't considered from the WS GetSidechainVersions API since it's in the mempool (unconfirmed)
    mark_logs("Retrieve sidechain versions from node 0 (expecting invalid parameter for scid4)", self.nodes, DEBUG_MODE)
    try:
        sidechainVersions = self.nodes[0].ws_get_sidechain_versions([scid1, scid2, scid3, scid4])
        assert(False)
    except JSONWSException as e:
        assert("Invalid parameter" in e.error)
    mark_logs("Retrieve (confirmed) sidechain versions from node 0", self.nodes, DEBUG_MODE)
    try:
        sidechainVersions = self.nodes[0].ws_get_sidechain_versions([scid1, scid2, scid3])
    except JSONWSException as e:
        assert(False)
    mark_logs("Generate one block to confirm the sidechain 4", self.nodes, DEBUG_MODE)
    self.nodes[0].generate(1)
    self.sync_all()
    mark_logs("Retrieve sidechain versions from node 0", self.nodes, DEBUG_MODE)
    try:
        sidechainVersions = self.nodes[0].ws_get_sidechain_versions([scid1, scid2, scid3, scid4])
    except JSONWSException as e:
        assert(False)
    for sidechainVersion in sidechainVersions:
        if (sidechainVersion['scId'] == scid3):
            assert_equal(sidechainVersion['version'], 1)
        elif (sidechainVersion['scId'] == scid4):
            assert_equal(sidechainVersion['version'], 2)
        else:
            assert_equal(sidechainVersion['version'], 0)
    mark_logs("Check that the command returns an error if we request more than 50 sidechains as input", self.nodes, DEBUG_MODE)
    try:
        self.nodes[0].ws_get_sidechain_versions([scid3] * 51)
        assert(False)
    except JSONWSException as e:
        assert("Invalid parameter" in e.error)
    mark_logs("Check that the command works with 50 sidechains as input", self.nodes, DEBUG_MODE)
    try:
        self.nodes[0].ws_get_sidechain_versions([scid3] * 50)
    except JSONWSException as e:
        assert(False)