From 24edc1b37095cf9bc67098312cd061dade422069 Mon Sep 17 00:00:00 2001 From: Aviv Greenburg Date: Wed, 10 Dec 2025 19:25:00 +0200 Subject: [PATCH] starknet_api: add proof to rpc_invoke_v3 --- .../src/cende/central_objects_test.rs | 5 ++++- .../apollo_http_server/src/deprecated_gateway_transaction.rs | 2 ++ crates/apollo_infra/src/serde_utils_test.rs | 3 ++- crates/apollo_mempool/src/mempool_test.rs | 2 +- crates/apollo_test_utils/src/lib.rs | 1 + crates/starknet_api/src/rpc_transaction.rs | 5 ++++- crates/starknet_api/src/rpc_transaction_test.rs | 3 ++- crates/starknet_api/src/test_utils/invoke.rs | 4 ++++ 8 files changed, 20 insertions(+), 5 deletions(-) diff --git a/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs b/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs index b9abff83d59..d54fb67747a 100644 --- a/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs +++ b/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs @@ -112,6 +112,7 @@ use starknet_api::transaction::fields::{ Fee, PaymasterData, ProofFacts, + Proof, ResourceBounds, Tip, TransactionSignature, @@ -267,6 +268,7 @@ fn invoke_transaction() -> RpcInvokeTransaction { paymaster_data: PaymasterData(vec![]), account_deployment_data: AccountDeploymentData(vec![]), proof_facts: ProofFacts::default(), + proof: Proof::default(), }) } @@ -1062,6 +1064,7 @@ fn test_invoke_tx_size_of() { // + internal_invoke_tx.signature.dynamic_size() // + internal_invoke_tx.tip.dynamic_size(); // + internal_invoke_tx.proof_facts.dynamic_size(); + // + internal_invoke_tx.proof.dynamic_size(); - assert_eq!(invoke_tx.size_bytes(), 480); + assert_eq!(invoke_tx.size_bytes(), 504); } diff --git a/crates/apollo_http_server/src/deprecated_gateway_transaction.rs b/crates/apollo_http_server/src/deprecated_gateway_transaction.rs index 5b66573f4c8..40d7fe0abcb 100644 --- a/crates/apollo_http_server/src/deprecated_gateway_transaction.rs +++ b/crates/apollo_http_server/src/deprecated_gateway_transaction.rs @@ -21,6 +21,7 @@ use starknet_api::transaction::fields::{ Calldata, ContractAddressSalt, PaymasterData, + Proof, ProofFacts, ResourceBounds, Tip, @@ -126,6 +127,7 @@ impl From for RpcInvokeTransactionV3 { nonce_data_availability_mode: deprecated_invoke_tx.nonce_data_availability_mode, fee_data_availability_mode: deprecated_invoke_tx.fee_data_availability_mode, proof_facts: ProofFacts::default(), + proof: Proof::default(), } } } diff --git a/crates/apollo_infra/src/serde_utils_test.rs b/crates/apollo_infra/src/serde_utils_test.rs index cfb09027b43..592dd80948e 100644 --- a/crates/apollo_infra/src/serde_utils_test.rs +++ b/crates/apollo_infra/src/serde_utils_test.rs @@ -11,7 +11,7 @@ use starknet_api::rpc_transaction::{ RpcInvokeTransactionV3, RpcTransaction, }; -use starknet_api::transaction::fields::ProofFacts; +use starknet_api::transaction::fields::{Proof, ProofFacts}; use starknet_types_core::felt::Felt; use crate::serde_utils::SerdeWrapper; @@ -66,6 +66,7 @@ fn serde_rpc_invoke_tx() { nonce_data_availability_mode: DataAvailabilityMode::L1, fee_data_availability_mode: DataAvailabilityMode::L1, proof_facts: ProofFacts::default(), + proof: Proof::default(), }; let rpc_invoke_tx = RpcInvokeTransaction::V3(invoke_tx); diff --git a/crates/apollo_mempool/src/mempool_test.rs b/crates/apollo_mempool/src/mempool_test.rs index fd492dff38e..1870b390834 100644 --- a/crates/apollo_mempool/src/mempool_test.rs +++ b/crates/apollo_mempool/src/mempool_test.rs @@ -1307,7 +1307,7 @@ fn metrics_correctness() { pending_queue_size: 1, get_txs_size: 1, delayed_declares_size: 1, - total_size_in_bytes: 1952, + total_size_in_bytes: 2024, evictions_count: 1, transaction_time_spent_until_batched: HistogramValue { sum: 2.0, diff --git a/crates/apollo_test_utils/src/lib.rs b/crates/apollo_test_utils/src/lib.rs index 277ee7f7b40..3846a4752e9 100644 --- a/crates/apollo_test_utils/src/lib.rs +++ b/crates/apollo_test_utils/src/lib.rs @@ -874,6 +874,7 @@ auto_impl_get_test_instance! { pub paymaster_data: PaymasterData, pub account_deployment_data: AccountDeploymentData, pub proof_facts: ProofFacts, + pub proof: Proof, } pub struct SequencerContractAddress(pub ContractAddress); pub struct Signature { diff --git a/crates/starknet_api/src/rpc_transaction.rs b/crates/starknet_api/src/rpc_transaction.rs index 314c3326dae..bd866760e18 100644 --- a/crates/starknet_api/src/rpc_transaction.rs +++ b/crates/starknet_api/src/rpc_transaction.rs @@ -20,6 +20,7 @@ use crate::transaction::fields::{ Calldata, ContractAddressSalt, PaymasterData, + Proof, ProofFacts, Tip, TransactionSignature, @@ -576,7 +577,8 @@ pub struct RpcInvokeTransactionV3 { pub fee_data_availability_mode: DataAvailabilityMode, #[serde(default)] pub proof_facts: ProofFacts, - // TODO(AvivG): Add proof field. + #[serde(default)] + pub proof: Proof, } impl InvokeTransactionV3Trait for RpcInvokeTransactionV3 { @@ -665,6 +667,7 @@ impl TryFrom for RpcInvokeTransactionV3 { calldata: value.calldata, account_deployment_data: value.account_deployment_data, proof_facts: value.proof_facts, + proof: Proof::default(), }) } } diff --git a/crates/starknet_api/src/rpc_transaction_test.rs b/crates/starknet_api/src/rpc_transaction_test.rs index 3a386ab0b16..65232ca96eb 100644 --- a/crates/starknet_api/src/rpc_transaction_test.rs +++ b/crates/starknet_api/src/rpc_transaction_test.rs @@ -138,9 +138,10 @@ fn test_invoke_tx_size_of() { // + tx_v3.paymaster_data.dynamic_size() // + tx_v3.account_deployment_data.dynamic_size(); // + tx_v3.proof_facts.dynamic_size(); + // + tx_v3.proof.dynamic_size(); // Check the size of the V3 invoke transaction. - assert_eq!(tx_v3.size_bytes(), 480); + assert_eq!(tx_v3.size_bytes(), 504); } else { panic!("Expected RpcTransaction::Invoke"); } diff --git a/crates/starknet_api/src/test_utils/invoke.rs b/crates/starknet_api/src/test_utils/invoke.rs index 247c0f118e2..0d5798ee765 100644 --- a/crates/starknet_api/src/test_utils/invoke.rs +++ b/crates/starknet_api/src/test_utils/invoke.rs @@ -20,6 +20,7 @@ use crate::transaction::fields::{ Calldata, Fee, PaymasterData, + Proof, ProofFacts, Tip, TransactionSignature, @@ -51,6 +52,7 @@ pub struct InvokeTxArgs { pub only_query: bool, pub tx_hash: TransactionHash, pub proof_facts: ProofFacts, + // TODO(AvivG): Consider adding `proof` field. } impl Default for InvokeTxArgs { @@ -159,6 +161,8 @@ pub fn rpc_invoke_tx(invoke_args: InvokeTxArgs) -> RpcTransaction { paymaster_data: invoke_args.paymaster_data, account_deployment_data: invoke_args.account_deployment_data, proof_facts: invoke_args.proof_facts, + // TODO(AvivG): Consider getting proof field from invoke_args. + proof: Proof::default(), })) }