| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # :set syntax=pism
- # :source ../scripts/pism.vim
- constant G_SPEND FixedGenerator
- constant CRH_IVK BlakePersonalization
- constant JUBJUB_FR_CAPACITY BinarySize
- constant NOTE_COMMIT PedersenPersonalization
- contract input_spend
- param secret Fr
- param ak Point
- param value U64
- start
- # Compute P = xG + A
- witness ak param:ak
- assert_not_small_order ak
- fr_as_binary_le secret param:secret
- ec_mul_const public secret G_SPEND
- ec_add public public ak
- emit_ec public
- # Make some a blake2s hash
- alloc_binary preimage
- ec_repr repr_ak ak
- binary_extend preimage repr_ak
- static_assert_binary_size preimage 256
- blake2s ivk preimage CRH_IVK
- emit_binary ivk
- # Below lines are random garbage
- # Uncomment them to test
- #binary_clone ivk2 ivk
- #binary_truncate ivk2 JUBJUB_FR_CAPACITY
- #u64_as_binary_le value_bits param:value
- #ec_mul pk_d value_bits public
- #pedersen_hash cm ivk NOTE_COMMIT
- #ec_get_u cur cm
- end
|