partial.rs 1017 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. use std::io;
  2. use super::TransactionOutput;
  3. use crate::{
  4. crypto::{
  5. keypair::PublicKey,
  6. types::{DrkTokenId, DrkValueBlind},
  7. BurnRevealedValues, Proof,
  8. },
  9. impl_vec,
  10. util::serial::{Decodable, Encodable, SerialDecodable, SerialEncodable, VarInt},
  11. Result,
  12. };
  13. #[derive(Clone, SerialEncodable, SerialDecodable)]
  14. pub struct PartialTransaction {
  15. pub clear_inputs: Vec<PartialTransactionClearInput>,
  16. pub inputs: Vec<PartialTransactionInput>,
  17. pub outputs: Vec<TransactionOutput>,
  18. }
  19. #[derive(Clone, SerialEncodable, SerialDecodable)]
  20. pub struct PartialTransactionClearInput {
  21. pub value: u64,
  22. pub token_id: DrkTokenId,
  23. pub value_blind: DrkValueBlind,
  24. pub token_blind: DrkValueBlind,
  25. pub signature_public: PublicKey,
  26. }
  27. #[derive(Clone, SerialEncodable, SerialDecodable)]
  28. pub struct PartialTransactionInput {
  29. pub burn_proof: Proof,
  30. pub revealed: BurnRevealedValues,
  31. }
  32. impl_vec!(PartialTransactionClearInput);
  33. impl_vec!(PartialTransactionInput);