(mod
  (
    TREASURY_MOD_HASH
    VALIDATOR_MOD_HASH
    SINGLETON_STRUCT  ; (SINGLETON_MOD_HASH (SINGLETON_ID . LAUNCHER_PUZZLE_HASH))
    PROPOSAL_SELF_HASH
    PROPOSAL_MINIMUM_AMOUNT
    PROPOSAL_EXCESS_PAYOUT_PUZHASH
    PROPOSAL_LENGTH
    PROPOSAL_SOFTCLOSE_LENGTH
    ATTENDANCE_REQUIRED
    PASS_MARGIN
    PROPOSAL_SELF_DESTRUCT_TIME
    ORACLE_SPEND_DELAY
  )
  ;; This is a proposal to update treasury conditions for a DAO


  (include condition_codes.clib)
  (include curry-and-treehash.clib)
  (include *standard-cl-21*)
  (include utility_macros.clib)

  (list
    (list CREATE_COIN
      (puzzle-hash-of-curried-function TREASURY_MOD_HASH
        (sha256 ONE ORACLE_SPEND_DELAY)
        (sha256 ONE PROPOSAL_SELF_DESTRUCT_TIME)
        (sha256 ONE PASS_MARGIN)
        (sha256 ONE ATTENDANCE_REQUIRED)
        (sha256 ONE PROPOSAL_SOFTCLOSE_LENGTH)
        (sha256 ONE PROPOSAL_LENGTH)
        (puzzle-hash-of-curried-function VALIDATOR_MOD_HASH
          (sha256 ONE PROPOSAL_EXCESS_PAYOUT_PUZHASH)
          (sha256 ONE PROPOSAL_MINIMUM_AMOUNT)
          (sha256 ONE PROPOSAL_SELF_HASH)
          (sha256tree SINGLETON_STRUCT)
        )
        (sha256 ONE TREASURY_MOD_HASH)
      )
      ONE
    )
  )
)
