async def METHOD_NAME(bt):
    blocks = await initial_blocks(bt)
    farmed_coin = list(blocks[-1].get_included_reward_coins())[0]
    metadata = [("foo", "bar")]
    ANYONE_CAN_SPEND_PUZZLE = Program.to(1)
    launcher_amount = uint64(1)
    launcher_puzzle = LAUNCHER_PUZZLE
    launcher_puzzle_hash = launcher_puzzle.get_tree_hash()
    initial_singleton_puzzle = adaptor_for_singleton_inner_puzzle(ANYONE_CAN_SPEND_PUZZLE)
    lineage_proof, launcher_id, condition_list, launcher_spend_bundle = launcher_conditions_and_spend_bundle(
        farmed_coin.name(), launcher_amount, initial_singleton_puzzle, metadata, launcher_puzzle
    )
    conditions = Program.to(condition_list)
    coin_spend = CoinSpend(farmed_coin, ANYONE_CAN_SPEND_PUZZLE, conditions)
    spend_bundle = SpendBundle.aggregate([launcher_spend_bundle, SpendBundle([coin_spend], G2Element())])
    coins_added, coins_removed, _ = await check_spend_bundle_validity(bt, blocks, spend_bundle)
    coin_set_added = set([_.coin for _ in coins_added])
    coin_set_removed = set([_.coin for _ in coins_removed])
    launcher_coin = launcher_spend_bundle.coin_spends[0].coin
    assert launcher_coin in coin_set_added
    assert launcher_coin in coin_set_removed
    assert farmed_coin in coin_set_removed
    singleton_expected_puzzle_hash = singleton_puzzle_hash(launcher_id, launcher_puzzle_hash, initial_singleton_puzzle)
    expected_singleton_coin = Coin(launcher_coin.name(), singleton_expected_puzzle_hash, launcher_amount)
    assert expected_singleton_coin in coin_set_added
    # next up: spend the expected_singleton_coin
    # it's an adapted `ANYONE_CAN_SPEND_PUZZLE`
    # then try a bad lineage proof
    # then try writing two odd coins
    # then try writing zero odd coins
    # then, destroy the singleton with the -113 hack
    return 0