ExtData
External data associated with a privacy-preserving transaction.This structure contains the public information that must be revealed for a transaction to be processed, while keeping the actual amounts and recipients private through zero-knowledge proofs. # Privacy Model - recipient
and ext_amount
are public for deposit/withdrawal operations - Internal transfers remain completely private - encrypted_output
contains private transaction details
Fully qualified path: obscura::structs::ExtData
#[derive(Debug, Drop, PartialEq, Serde)]
pub struct ExtData {
pub recipient: ContractAddress,
pub ext_amount: I256,
pub relayer: ContractAddress,
pub fee: u256,
pub encrypted_output1: ByteArray,
pub encrypted_output2: ByteArray,
}
Members
recipient
The recipient address for withdrawals or the contract address for deposits. Must be a valid Starknet contract address.
Fully qualified path: obscura::structs::ExtData::recipient
pub recipient: ContractAddress
ext_amount
The external amount for deposit (positive) or withdrawal (negative). This value is public and used for token transfers.
Fully qualified path: obscura::structs::ExtData::ext_amount
pub ext_amount: I256
relayer
The relayer address that will receive the transaction fee. Incentivizes transaction processing and network maintenance.
Fully qualified path: obscura::structs::ExtData::relayer
pub relayer: ContractAddress
fee
The fee amount paid to the relayer for processing the transaction. Must be within the system's fee limits.
Fully qualified path: obscura::structs::ExtData::fee
pub fee: u256
encrypted_output1
Encrypted output data for the first commitment. Contains private transaction details that only the recipient can decrypt.
Fully qualified path: obscura::structs::ExtData::encrypted_output1
pub encrypted_output1: ByteArray
encrypted_output2
Encrypted output data for the second commitment. Contains private transaction details that only the recipient can decrypt.
Fully qualified path: obscura::structs::ExtData::encrypted_output2
pub encrypted_output2: ByteArray