def make_child_solution(coin_solution: CoinSolution, new_coin: Optional[Coin] = None) -> CoinSolution: new_puzzle_hash: bytes32 = token_bytes(32) solution = "()" puzzle = f"(q . ((51 0x{new_puzzle_hash.hex()} 1)))" puzzle_prog = Program.to(binutils.assemble(puzzle)) solution_prog = Program.to(binutils.assemble(solution)) if new_coin is None: new_coin = coin_solution.additions()[0] sol: CoinSolution = CoinSolution( new_coin, SerializedProgram.from_program(puzzle_prog), SerializedProgram.from_program(solution_prog), ) log.warning("ABC") log.warning(f"{sol.additions()}") return sol
def get_most_recent_singleton_coin_from_coin_solution(coin_sol: CoinSolution) -> Optional[Coin]: additions: List[Coin] = coin_sol.additions() for coin in additions: if coin.amount % 2 == 1: return coin return None