mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-07 15:53:14 +00:00
add privacy preserving transaction scaffolding
This commit is contained in:
parent
fe06a22589
commit
35ffb65df0
2
nssa/core/src/account/commitment.rs
Normal file
2
nssa/core/src/account/commitment.rs
Normal file
@ -0,0 +1,2 @@
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct Commitment([u8; 32]);
|
||||
@ -2,6 +2,12 @@ use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::program::ProgramId;
|
||||
|
||||
mod commitment;
|
||||
mod nullifier;
|
||||
|
||||
pub use commitment::Commitment;
|
||||
pub use nullifier::Nullifier;
|
||||
|
||||
pub type Nonce = u128;
|
||||
type Data = Vec<u8>;
|
||||
|
||||
|
||||
2
nssa/core/src/account/nullifier.rs
Normal file
2
nssa/core/src/account/nullifier.rs
Normal file
@ -0,0 +1,2 @@
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct Nullifier([u8; 32]);
|
||||
@ -2,6 +2,7 @@ mod address;
|
||||
pub mod error;
|
||||
pub mod program;
|
||||
pub mod public_transaction;
|
||||
mod privacy_preserving_transaction;
|
||||
mod signature;
|
||||
mod state;
|
||||
|
||||
|
||||
16
nssa/src/privacy_preserving_transaction/message.rs
Normal file
16
nssa/src/privacy_preserving_transaction/message.rs
Normal file
@ -0,0 +1,16 @@
|
||||
use nssa_core::account::{Account, Commitment, Nonce, Nullifier};
|
||||
|
||||
use crate::Address;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
struct EncryptedAccountData;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct Message {
|
||||
public_addresses: Vec<Address>,
|
||||
nonces: Vec<Nonce>,
|
||||
public_post_states: Vec<Account>,
|
||||
encrypted_private_post_states: Vec<EncryptedAccountData>,
|
||||
new_commitments: Vec<Commitment>,
|
||||
new_nullifiers: Vec<Nullifier>,
|
||||
}
|
||||
3
nssa/src/privacy_preserving_transaction/mod.rs
Normal file
3
nssa/src/privacy_preserving_transaction/mod.rs
Normal file
@ -0,0 +1,3 @@
|
||||
mod transaction;
|
||||
mod message;
|
||||
mod witness_set;
|
||||
10
nssa/src/privacy_preserving_transaction/transaction.rs
Normal file
10
nssa/src/privacy_preserving_transaction/transaction.rs
Normal file
@ -0,0 +1,10 @@
|
||||
use super::message::Message;
|
||||
use super::witness_set::WitnessSet;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct PrivacyPreservingTransaction {
|
||||
message: Message,
|
||||
witness_set: WitnessSet,
|
||||
}
|
||||
|
||||
|
||||
2
nssa/src/privacy_preserving_transaction/witness_set.rs
Normal file
2
nssa/src/privacy_preserving_transaction/witness_set.rs
Normal file
@ -0,0 +1,2 @@
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct WitnessSet;
|
||||
@ -57,6 +57,13 @@ impl Program {
|
||||
Ok(post_states)
|
||||
}
|
||||
|
||||
pub fn prove(
|
||||
&self,
|
||||
pre_states: &[AccountWithMetadata],
|
||||
instruction_data: &InstructionData,
|
||||
) {
|
||||
}
|
||||
|
||||
/// Writes inputs to `env_builder` in the order expected by the programs
|
||||
fn write_inputs(
|
||||
pre_states: &[AccountWithMetadata],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user