2025-09-25 11:53:42 +03:00
|
|
|
use borsh::{BorshDeserialize, BorshSerialize};
|
2025-07-21 18:46:50 -03:00
|
|
|
use serde::{Deserialize, Serialize};
|
2024-10-10 14:09:31 +03:00
|
|
|
|
2026-01-29 22:20:42 +03:00
|
|
|
use crate::HashType;
|
2024-12-22 16:14:52 +02:00
|
|
|
|
2026-01-29 22:20:42 +03:00
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, BorshSerialize, BorshDeserialize)]
|
2025-09-08 10:11:04 +03:00
|
|
|
pub enum NSSATransaction {
|
|
|
|
|
Public(nssa::PublicTransaction),
|
|
|
|
|
PrivacyPreserving(nssa::PrivacyPreservingTransaction),
|
2025-10-15 18:00:35 -03:00
|
|
|
ProgramDeployment(nssa::ProgramDeploymentTransaction),
|
2025-09-08 10:11:04 +03:00
|
|
|
}
|
|
|
|
|
|
2026-01-29 22:20:42 +03:00
|
|
|
impl NSSATransaction {
|
|
|
|
|
pub fn hash(&self) -> HashType {
|
|
|
|
|
HashType(match self {
|
|
|
|
|
NSSATransaction::Public(tx) => tx.hash(),
|
|
|
|
|
NSSATransaction::PrivacyPreserving(tx) => tx.hash(),
|
|
|
|
|
NSSATransaction::ProgramDeployment(tx) => tx.hash(),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-08 10:11:04 +03:00
|
|
|
impl From<nssa::PublicTransaction> for NSSATransaction {
|
|
|
|
|
fn from(value: nssa::PublicTransaction) -> Self {
|
|
|
|
|
Self::Public(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<nssa::PrivacyPreservingTransaction> for NSSATransaction {
|
|
|
|
|
fn from(value: nssa::PrivacyPreservingTransaction) -> Self {
|
|
|
|
|
Self::PrivacyPreserving(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-15 20:14:19 -03:00
|
|
|
impl From<nssa::ProgramDeploymentTransaction> for NSSATransaction {
|
|
|
|
|
fn from(value: nssa::ProgramDeploymentTransaction) -> Self {
|
|
|
|
|
Self::ProgramDeployment(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-25 11:53:42 +03:00
|
|
|
#[derive(
|
|
|
|
|
Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq, BorshSerialize, BorshDeserialize,
|
|
|
|
|
)]
|
2024-11-28 22:05:14 +02:00
|
|
|
pub enum TxKind {
|
|
|
|
|
Public,
|
2025-08-28 12:00:04 +03:00
|
|
|
PrivacyPreserving,
|
2025-10-15 18:00:35 -03:00
|
|
|
ProgramDeployment,
|
2024-11-28 22:05:14 +02:00
|
|
|
}
|