simple.pism 589 B

123456789101112131415161718192021222324252627
  1. # :set syntax=pism
  2. # :source ../scripts/pism.vim
  3. constant G_SPEND FixedGenerator
  4. constant CRH_IVK BlakePersonalization
  5. contract input_spend
  6. param secret Fr
  7. param ak Point
  8. start
  9. witness ak param:ak
  10. assert_not_small_order ak
  11. fr_as_binary_le secret param:secret
  12. ec_mul_const public secret G_SPEND
  13. ec_add public public ak
  14. emit_ec public
  15. alloc_binary preimage
  16. ec_repr repr_ak ak
  17. #binary_clone repr_ak2 repr_ak
  18. binary_extend preimage repr_ak
  19. static_assert_binary_size preimage 256
  20. blake2s ivk preimage CRH_IVK
  21. emit_binary ivk
  22. end