> Aztec.nr API reference, v6.0.0 (mainnet and testnet). Index: https://docs.aztec.network/aztec-nr-api/v6.0.0/llms.txt

# Struct PrivateCircuitPublicInputs

Module: `noir_aztec::protocol::abis::private_circuit_public_inputs`

```rust
pub struct PrivateCircuitPublicInputs {
    pub call_context: CallContext,
    pub args_hash: Field,
    pub returns_hash: Field,
    pub anchor_block_header: BlockHeader,
    pub tx_context: TxContext,
    pub min_revertible_side_effect_counter: u32,
    pub is_fee_payer: bool,
    pub expiration_timestamp: u64,
    pub start_side_effect_counter: u32,
    pub end_side_effect_counter: u32,
    pub expected_non_revertible_side_effect_counter: u32,
    pub expected_revertible_side_effect_counter: u32,
    pub note_hash_read_requests: ClaimedLengthArray<Scoped<Counted<Field>>, 16>,
    pub nullifier_read_requests: ClaimedLengthArray<Scoped<Counted<Field>>, 16>,
    pub key_validation_requests_and_separators: ClaimedLengthArray<KeyValidationRequestAndSeparator, 16>,
    pub private_call_requests: ClaimedLengthArray<PrivateCallRequest, 8>,
    pub public_call_requests: ClaimedLengthArray<Counted<PublicCallRequest>, 32>,
    pub public_teardown_call_request: PublicCallRequest,
    pub note_hashes: ClaimedLengthArray<Counted<NoteHash>, 16>,
    pub nullifiers: ClaimedLengthArray<Counted<Nullifier>, 16>,
    pub l2_to_l1_msgs: ClaimedLengthArray<Counted<L2ToL1Message>, 8>,
    pub private_logs: ClaimedLengthArray<Counted<PrivateLogData>, 16>,
    pub contract_class_logs_hashes: ClaimedLengthArray<Counted<LogHash>, 1>,
    pub protocol_nullifier: Field,
}
```

## Fields

```rust
call_context: CallContext
```

```rust
args_hash: Field
```

```rust
returns_hash: Field
```

```rust
anchor_block_header: BlockHeader
```

```rust
tx_context: TxContext
```

```rust
min_revertible_side_effect_counter: u32
```

```rust
is_fee_payer: bool
```

```rust
expiration_timestamp: u64
```

```rust
start_side_effect_counter: u32
```

```rust
end_side_effect_counter: u32
```

```rust
expected_non_revertible_side_effect_counter: u32
```

```rust
expected_revertible_side_effect_counter: u32
```

```rust
note_hash_read_requests: ClaimedLengthArray<Scoped<Counted<Field>>, 16>
```

```rust
nullifier_read_requests: ClaimedLengthArray<Scoped<Counted<Field>>, 16>
```

```rust
key_validation_requests_and_separators: ClaimedLengthArray<KeyValidationRequestAndSeparator, 16>
```

```rust
private_call_requests: ClaimedLengthArray<PrivateCallRequest, 8>
```

```rust
public_call_requests: ClaimedLengthArray<Counted<PublicCallRequest>, 32>
```

```rust
public_teardown_call_request: PublicCallRequest
```

```rust
note_hashes: ClaimedLengthArray<Counted<NoteHash>, 16>
```

```rust
nullifiers: ClaimedLengthArray<Counted<Nullifier>, 16>
```

```rust
l2_to_l1_msgs: ClaimedLengthArray<Counted<L2ToL1Message>, 8>
```

```rust
private_logs: ClaimedLengthArray<Counted<PrivateLogData>, 16>
```

```rust
contract_class_logs_hashes: ClaimedLengthArray<Counted<LogHash>, 1>
```

```rust
protocol_nullifier: Field
```

## Trait implementations

```rust
impl Deserialize for PrivateCircuitPublicInputs
```

```rust
pub fn deserialize(fields: [Field; 840]) -> Self
```

```rust
pub fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self
```

```rust
impl Empty for PrivateCircuitPublicInputs
```

```rust
pub fn empty() -> Self
```

```rust
pub fn is_empty(self: Self) -> bool
where
    Self: Eq
```

```rust
pub fn assert_empty<let S: u32>(self: Self, msg: str<S>)
where
    Self: Eq
```

```rust
impl Eq for PrivateCircuitPublicInputs
```

```rust
pub fn eq(_self: Self, _other: Self) -> bool
```

```rust
impl Serialize for PrivateCircuitPublicInputs
```

```rust
pub fn serialize(self) -> [Field; 840]
```

```rust
pub fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>)
```
