mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-05 23:03:06 +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;
|
use crate::program::ProgramId;
|
||||||
|
|
||||||
|
mod commitment;
|
||||||
|
mod nullifier;
|
||||||
|
|
||||||
|
pub use commitment::Commitment;
|
||||||
|
pub use nullifier::Nullifier;
|
||||||
|
|
||||||
pub type Nonce = u128;
|
pub type Nonce = u128;
|
||||||
type Data = Vec<u8>;
|
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 error;
|
||||||
pub mod program;
|
pub mod program;
|
||||||
pub mod public_transaction;
|
pub mod public_transaction;
|
||||||
|
mod privacy_preserving_transaction;
|
||||||
mod signature;
|
mod signature;
|
||||||
mod state;
|
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)
|
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
|
/// Writes inputs to `env_builder` in the order expected by the programs
|
||||||
fn write_inputs(
|
fn write_inputs(
|
||||||
pre_states: &[AccountWithMetadata],
|
pre_states: &[AccountWithMetadata],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user