coin.rs 739 B

1234567891011121314151617181920212223242526
  1. use darkfi_serial::{SerialDecodable, SerialEncodable};
  2. use pasta_curves::{group::ff::PrimeField, pallas};
  3. use super::{keypair::SecretKey, note::Note, nullifier::Nullifier};
  4. #[derive(Clone, Copy, PartialEq, Eq, Debug, SerialEncodable, SerialDecodable)]
  5. pub struct Coin(pub pallas::Base);
  6. impl Coin {
  7. pub fn from_bytes(bytes: [u8; 32]) -> Self {
  8. pallas::Base::from_repr(bytes).map(Coin).unwrap()
  9. }
  10. pub fn to_bytes(self) -> [u8; 32] {
  11. self.0.to_repr()
  12. }
  13. }
  14. #[derive(Clone, Debug, PartialEq, Eq, SerialEncodable, SerialDecodable)]
  15. pub struct OwnCoin {
  16. pub coin: Coin,
  17. pub note: Note,
  18. pub secret: SecretKey,
  19. pub nullifier: Nullifier,
  20. pub leaf_position: incrementalmerkletree::Position,
  21. }