Skip to content

Commit 0ad5a2b

Browse files
starknet_api: add proof fact struct (#10655)
1 parent ef078a0 commit 0ad5a2b

File tree

13 files changed

+47
-15
lines changed

13 files changed

+47
-15
lines changed

crates/apollo_protobuf/src/converters/transaction.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use starknet_api::transaction::fields::{
2121
ContractAddressSalt,
2222
Fee,
2323
PaymasterData,
24+
ProofFacts,
2425
ResourceBounds,
2526
Tip,
2627
TransactionSignature,
@@ -649,7 +650,7 @@ impl TryFrom<protobuf::InvokeV3> for InvokeTransactionV3 {
649650
account_deployment_data,
650651
// TODO(AvivG): Get proof_facts from P2P protocol, until then, lost during protobuf
651652
// serialization/deserialization.
652-
proof_facts: vec![],
653+
proof_facts: ProofFacts::default(),
653654
})
654655
}
655656
}

crates/apollo_protobuf/src/converters/transaction_test.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ use lazy_static::lazy_static;
33
use rand::random;
44
use starknet_api::block::GasPrice;
55
use starknet_api::execution_resources::{Builtin, ExecutionResources, GasAmount, GasVector};
6-
use starknet_api::transaction::fields::{AllResourceBounds, ResourceBounds, ValidResourceBounds};
6+
use starknet_api::transaction::fields::{
7+
AllResourceBounds,
8+
ProofFacts,
9+
ResourceBounds,
10+
ValidResourceBounds,
11+
};
712
use starknet_api::transaction::{
813
DeclareTransaction,
914
DeclareTransactionOutput,
@@ -122,7 +127,7 @@ fn convert_invoke_transaction_v3_to_vec_u8_and_back() {
122127
starknet_api::transaction::InvokeTransactionV3::get_test_instance(&mut rng);
123128
transaction.resource_bounds = *RESOURCE_BOUNDS_MAPPING;
124129
// TODO(AvivG): Remove this once proof_facts is added to P2P protocol.
125-
transaction.proof_facts = vec![];
130+
transaction.proof_facts = ProofFacts::default();
126131
let transaction = StarknetApiTransaction::Invoke(InvokeTransaction::V3(transaction));
127132

128133
let transaction_output = create_transaction_output!(InvokeTransactionOutput, Invoke);

crates/apollo_rpc/src/v0_8/api/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,7 @@ impl From<InvokeTransaction> for starknet_api::transaction::InvokeTransaction {
619619
account_deployment_data,
620620
nonce_data_availability_mode,
621621
fee_data_availability_mode,
622+
proof_facts,
622623
}) => Self::V3(starknet_api::transaction::InvokeTransactionV3 {
623624
resource_bounds: resource_bounds.into(),
624625
tip,
@@ -630,8 +631,7 @@ impl From<InvokeTransaction> for starknet_api::transaction::InvokeTransaction {
630631
fee_data_availability_mode,
631632
paymaster_data,
632633
account_deployment_data,
633-
// TODO(AvivG): Get proof facts from rpc_v8 once supported.
634-
proof_facts: vec![],
634+
proof_facts,
635635
}),
636636
}
637637
}

crates/apollo_rpc/src/v0_8/transaction.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ use starknet_api::transaction::fields::{
3535
ContractAddressSalt,
3636
Fee,
3737
PaymasterData,
38+
ProofFacts,
3839
Resource,
3940
ResourceBounds,
4041
Tip,
@@ -447,7 +448,7 @@ pub struct InvokeTransactionV3 {
447448
pub account_deployment_data: AccountDeploymentData,
448449
pub nonce_data_availability_mode: DataAvailabilityMode,
449450
pub fee_data_availability_mode: DataAvailabilityMode,
450-
// TODO(AvivG): Add proof facts to rpc_v8.
451+
pub proof_facts: ProofFacts,
451452
}
452453

453454
impl From<InvokeTransactionV3> for client_transaction::InvokeTransaction {
@@ -537,7 +538,7 @@ impl TryFrom<starknet_api::transaction::InvokeTransaction> for InvokeTransaction
537538
fee_data_availability_mode,
538539
paymaster_data,
539540
account_deployment_data,
540-
proof_facts: _,
541+
proof_facts,
541542
},
542543
) => Ok(Self::Version3(InvokeTransactionV3 {
543544
sender_address,
@@ -551,6 +552,7 @@ impl TryFrom<starknet_api::transaction::InvokeTransaction> for InvokeTransaction
551552
fee_data_availability_mode,
552553
paymaster_data,
553554
account_deployment_data,
555+
proof_facts,
554556
})),
555557
}
556558
}

crates/apollo_rpc/src/v0_8/transaction_test.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use starknet_api::transaction::fields::{
1414
ContractAddressSalt,
1515
Fee,
1616
PaymasterData,
17+
ProofFacts,
1718
Tip,
1819
TransactionSignature,
1920
};
@@ -120,6 +121,7 @@ auto_impl_get_test_instance! {
120121
pub account_deployment_data: AccountDeploymentData,
121122
pub nonce_data_availability_mode: DataAvailabilityMode,
122123
pub fee_data_availability_mode: DataAvailabilityMode,
124+
pub proof_facts: ProofFacts,
123125
}
124126
pub enum TransactionVersion0 {
125127
Version0 = 0,

crates/apollo_starknet_client/src/reader/objects/transaction.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use starknet_api::transaction::fields::{
2222
ContractAddressSalt,
2323
Fee,
2424
PaymasterData,
25+
ProofFacts,
2526
Tip,
2627
TransactionSignature,
2728
ValidResourceBounds,
@@ -629,7 +630,7 @@ impl TryFrom<IntermediateInvokeTransaction> for starknet_api::transaction::Invok
629630
msg: "Invoke V3 must contain account_deployment_data field.".to_string(),
630631
},
631632
)?,
632-
proof_facts: vec![],
633+
proof_facts: ProofFacts::default(),
633634
})
634635
}
635636
}

crates/apollo_storage/src/serialization/serializers.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ use starknet_api::transaction::fields::{
8585
ContractAddressSalt,
8686
Fee,
8787
PaymasterData,
88+
ProofFacts,
8889
Resource,
8990
ResourceBounds,
9091
Tip,
@@ -155,6 +156,7 @@ const COMPRESSION_THRESHOLD_BYTES: usize = 384;
155156

156157
auto_storage_serde! {
157158
pub struct AccountDeploymentData(pub Vec<Felt>);
159+
pub struct ProofFacts(pub Vec<Felt>);
158160
pub struct AllResourceBounds {
159161
pub l1_gas: ResourceBounds,
160162
pub l2_gas: ResourceBounds,
@@ -1292,7 +1294,7 @@ auto_storage_serde_conditionally_compressed! {
12921294
pub fee_data_availability_mode: DataAvailabilityMode,
12931295
pub paymaster_data: PaymasterData,
12941296
pub account_deployment_data: AccountDeploymentData,
1295-
pub proof_facts: Vec<Felt>,
1297+
pub proof_facts: ProofFacts,
12961298
}
12971299

12981300
pub struct L1HandlerTransaction {

crates/apollo_test_utils/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ use starknet_api::transaction::fields::{
122122
ContractAddressSalt,
123123
Fee,
124124
PaymasterData,
125+
ProofFacts,
125126
Resource,
126127
ResourceBounds,
127128
Tip,
@@ -426,6 +427,7 @@ pub trait GetTestInstance: Sized {
426427

427428
auto_impl_get_test_instance! {
428429
pub struct AccountDeploymentData(pub Vec<Felt>);
430+
pub struct ProofFacts(pub Vec<Felt>);
429431
pub struct AllResourceBounds {
430432
pub l1_gas: ResourceBounds,
431433
pub l2_gas: ResourceBounds,
@@ -725,7 +727,7 @@ auto_impl_get_test_instance! {
725727
pub fee_data_availability_mode: DataAvailabilityMode,
726728
pub paymaster_data: PaymasterData,
727729
pub account_deployment_data: AccountDeploymentData,
728-
pub proof_facts: Vec<Felt>,
730+
pub proof_facts: ProofFacts,
729731
}
730732
pub enum L1DataAvailabilityMode {
731733
Calldata = 0,

crates/native_blockifier/src/py_invoke_function.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use starknet_api::transaction::fields::{
1010
Calldata,
1111
Fee,
1212
PaymasterData,
13+
ProofFacts,
1314
Tip,
1415
TransactionSignature,
1516
};
@@ -103,7 +104,7 @@ impl TryFrom<PyInvokeTransactionV3> for InvokeTransactionV3 {
103104
tx.account_deployment_data,
104105
)),
105106
// TODO(AvivG): Get from PyInvokeTransactionV3 once supported.
106-
proof_facts: vec![],
107+
proof_facts: ProofFacts::default(),
107108
})
108109
}
109110
}

crates/starknet_api/src/rpc_transaction.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use crate::transaction::fields::{
2020
Calldata,
2121
ContractAddressSalt,
2222
PaymasterData,
23+
ProofFacts,
2324
Tip,
2425
TransactionSignature,
2526
ValidResourceBounds,
@@ -630,7 +631,7 @@ impl From<RpcInvokeTransactionV3> for InvokeTransactionV3 {
630631
paymaster_data: tx.paymaster_data,
631632
account_deployment_data: tx.account_deployment_data,
632633
// TODO(AvivG): Get from RpcInvokeTransactionV3 once supported.
633-
proof_facts: vec![],
634+
proof_facts: ProofFacts::default(),
634635
}
635636
}
636637
}

0 commit comments

Comments
 (0)