; See chia/types/condition_opcodes.py

(

  ; Unavailable until after 2.0 hard fork
  (defconstant AGG_SIG_PARENT 43)
  (defconstant AGG_SIG_PUZZLE 44)
  (defconstant AGG_SIG_AMOUNT 45)
  (defconstant AGG_SIG_PUZZLE_AMOUNT 46)
  (defconstant AGG_SIG_PARENT_AMOUNT 47)
  (defconstant AGG_SIG_PARENT_PUZZLE 48)
  ;

  (defconstant AGG_SIG_UNSAFE 49)
  (defconstant AGG_SIG_ME 50)

  ; the conditions below reserve coin amounts and have to be accounted for in output totals

  (defconstant CREATE_COIN 51)
  (defconstant RESERVE_FEE 52)

  ; the conditions below deal with announcements, for inter-coin communication

  ; coin announcements
  (defconstant CREATE_COIN_ANNOUNCEMENT 60)
  (defconstant ASSERT_COIN_ANNOUNCEMENT 61)

  ; puzzle announcements
  (defconstant CREATE_PUZZLE_ANNOUNCEMENT 62)
  (defconstant ASSERT_PUZZLE_ANNOUNCEMENT 63)

  ; coin-id
  (defconstant ASSERT_CONCURRENT_SPEND 64)
  ; puzzle-hash
  (defconstant ASSERT_CONCURRENT_PUZZLE 65)

  ; mask message ...
  (defconstant SEND_MESSAGE 66)
  (defconstant RECEIVE_MESSAGE 67)

  ; the conditions below let coins inquire about themselves

  (defconstant ASSERT_MY_COIN_ID 70)
  (defconstant ASSERT_MY_PARENT_ID 71)
  (defconstant ASSERT_MY_PUZZLEHASH 72)
  (defconstant ASSERT_MY_AMOUNT 73)
  (defconstant ASSERT_MY_BIRTH_SECONDS 74)
  (defconstant ASSERT_MY_BIRTH_HEIGHT 75)
  (defconstant ASSERT_EPHEMERAL 76)

  ; the conditions below ensure that we're "far enough" in the future

  ; wall-clock time
  (defconstant ASSERT_SECONDS_RELATIVE 80)
  (defconstant ASSERT_SECONDS_ABSOLUTE 81)

  ; block index
  (defconstant ASSERT_HEIGHT_RELATIVE 82)
  (defconstant ASSERT_HEIGHT_ABSOLUTE 83)

  ; the conditions below ensure that we're "not too far" in the future

  ; wall-clock time
  (defconstant ASSERT_BEFORE_SECONDS_RELATIVE 84)
  (defconstant ASSERT_BEFORE_SECONDS_ABSOLUTE 85)

  ; block index
  (defconstant ASSERT_BEFORE_HEIGHT_RELATIVE 86)
  (defconstant ASSERT_BEFORE_HEIGHT_ABSOLUTE 87)

  ; A condition that is always true and always ignore all arguments
  (defconstant REMARK 1)

  ; A condition whose first argument specifies its cost, but is unkown otherwise
  ; It's a place-holder for soft-forking in new conditions
  (defconstant SOFTFORK 90)
)
