(mod (singleton_full_puzzle_hash amount key_value_list)

  (include condition_codes.clib)

  ; takes a lisp tree and returns the hash of it
  (defun sha256tree1 (TREE)
    (if (l TREE)
        (sha256 2 (sha256tree1 (f TREE)) (sha256tree1 (r TREE)))
        (sha256 1 TREE)
    )
  )

  ; main
  (list (list CREATE_COIN singleton_full_puzzle_hash amount)
  (list CREATE_COIN_ANNOUNCEMENT (sha256tree1 (list singleton_full_puzzle_hash amount key_value_list))))
)
