def METHOD_NAME(self):
    sender = self.nodes[self.sender_idx]
    receiver = self.nodes[self.receiver_idx]
    isolated = self.nodes[self.isolated_idx]
    # feed the sender with some balance
    sender_addr = sender.getnewaddress()
    self.nodes[0].sendtoaddress(sender_addr, 1)
    self.bump_mocktime(1)
    self.nodes[0].generate(2)
    self.sync_all()
    # create doublespending transaction, but don't relay it
    dblspnd_tx = self.create_raw_tx(sender, isolated, 0.5, 1, 100)
    dblspnd_txid = bytes_to_hex_str(hash256(hex_str_to_bytes(dblspnd_tx['hex']))[::-1])
    # isolate one node from network
    isolate_node(isolated)
    # send doublespend transaction to isolated node
    isolated.sendrawtransaction(dblspnd_tx['hex'])
    # let isolated node rejoin the network
    # The previously isolated node should NOT relay the doublespending TX
    reconnect_isolated_node(isolated, 0)
    for node in self.nodes:
        if node is not isolated:
            assert_raises_rpc_error(-5, "No such mempool or blockchain transaction", node.getrawtransaction, dblspnd_txid)
    # instantsend to receiver. The previously isolated node should prune the doublespend TX and request the correct
    # TX from other nodes.
    receiver_addr = receiver.getnewaddress()
    is_id = sender.sendtoaddress(receiver_addr, 0.9)
    # wait for the transaction to propagate
    self.sync_mempools()
    for node in self.nodes:
        self.wait_for_instantlock(is_id, node)
    assert_raises_rpc_error(-5, "No such mempool or blockchain transaction", isolated.getrawtransaction, dblspnd_txid)
    # send coins back to the controller node without waiting for confirmations
    receiver.sendtoaddress(self.nodes[0].getnewaddress(), 0.9, "", "", True)
    assert_equal(receiver.getwalletinfo()["balance"], 0)
    # mine more blocks
    self.bump_mocktime(1)
    self.nodes[0].generate(2)
    self.sync_all()