mint.pism 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # :set syntax=pism
  2. # :source ../scripts/pism.vim
  3. constant G_VCV FixedGenerator
  4. constant G_VCR FixedGenerator
  5. constant CRH_IVK BlakePersonalization
  6. #constant JUBJUB_FR_CAPACITY BinarySize
  7. #constant NOTE_COMMIT PedersenPersonalization
  8. contract mint_contract
  9. # Value commitment
  10. param value U64
  11. param randomness_value Fr
  12. param serial Fr
  13. param randomness_coin Fr
  14. param public Point
  15. start
  16. u64_as_binary_le value param:value
  17. fr_as_binary_le randomness_value param:randomness_value
  18. fr_as_binary_le serial param:serial
  19. fr_as_binary_le randomness_coin param:randomness_coin
  20. witness public param:public
  21. assert_not_small_order public
  22. ec_mul_const vcv value G_VCV
  23. ec_mul_const rcv randomness_value G_VCR
  24. ec_add cv vcv rcv
  25. # emit cv
  26. emit_ec cv
  27. alloc_binary preimage
  28. ec_repr repr_public public
  29. binary_extend preimage repr_public
  30. #binary_extend preimage value
  31. #binary_extend preimage serial
  32. #binary_extend preimage randomness_coin
  33. #static_assert_binary_size preimage 824
  34. blake2s coin preimage CRH_IVK
  35. emit_binary coin
  36. end