tx2.rs 769 B

1234567891011121314151617181920212223242526272829303132
  1. use pasta_curves::{
  2. arithmetic::{CurveAffine, Field},
  3. group::{ff::{PrimeField, PrimeFieldBits}, Curve},
  4. pallas,
  5. };
  6. use halo2_gadgets::{
  7. ecc::{
  8. chip::{EccChip, EccConfig},
  9. FixedPoint, FixedPoints,
  10. },
  11. };
  12. use rand::rngs::OsRng;
  13. use drk::{
  14. constants::{
  15. sinsemilla::{OrchardCommitDomains, OrchardHashDomains, MERKLE_CRH_PERSONALIZATION},
  16. OrchardFixedBases,
  17. },
  18. crypto::pedersen_commitment,
  19. proof::{Proof, ProvingKey, VerifyingKey},
  20. spec::i2lebsp,
  21. };
  22. fn mod_r_p(x: pallas::Base) -> pallas::Scalar {
  23. pallas::Scalar::from_repr(x.to_repr()).unwrap()
  24. }
  25. fn main() {
  26. let secret = pallas::Base::random(&mut OsRng);
  27. let public_key = OrchardFixedBases::SpendAuthG.generator() * mod_r_p(secret);
  28. }