def get_most_recent_singleton_coin_from_coin_spend( coin_sol: CoinSpend) -> Optional[Coin]: additions: List[Coin] = coin_sol.additions() for coin in additions: if coin.amount % 2 == 1: return coin return None
def make_child_solution(coin_spend: CoinSpend, new_coin: Optional[Coin] = None) -> CoinSpend: 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_spend.additions()[0] sol: CoinSpend = CoinSpend( new_coin, SerializedProgram.from_program(puzzle_prog), SerializedProgram.from_program(solution_prog), ) return sol
def make_child_solution(coin_spend: CoinSpend, new_coin: Optional[Coin] = None) -> CoinSpend: # TODO: address hint error and remove ignore # error: Incompatible types in assignment (expression has type "bytes", variable has type "bytes32") # [assignment] new_puzzle_hash: bytes32 = token_bytes(32) # type: ignore[assignment] 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_spend.additions()[0] sol: CoinSpend = CoinSpend( new_coin, SerializedProgram.from_program(puzzle_prog), SerializedProgram.from_program(solution_prog), ) return sol