Skip to content

Commit 19e0150

Browse files
apollo_protobuf: add proof facts to invoke v3 (#10658)
1 parent 11647d9 commit 19e0150

File tree

7 files changed

+20
-12
lines changed

7 files changed

+20
-12
lines changed

crates/apollo_protobuf/src/converters/transaction.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,10 @@ impl TryFrom<protobuf::InvokeV3> for InvokeTransactionV3 {
637637
.collect::<Result<Vec<_>, _>>()?,
638638
);
639639

640+
let proof_facts = ProofFacts(
641+
value.proof_facts.into_iter().map(Felt::try_from).collect::<Result<Vec<_>, _>>()?,
642+
);
643+
640644
Ok(Self {
641645
resource_bounds,
642646
tip,
@@ -648,9 +652,7 @@ impl TryFrom<protobuf::InvokeV3> for InvokeTransactionV3 {
648652
fee_data_availability_mode,
649653
paymaster_data,
650654
account_deployment_data,
651-
// TODO(AvivG): Get proof_facts from P2P protocol, until then, lost during protobuf
652-
// serialization/deserialization.
653-
proof_facts: ProofFacts::default(),
655+
proof_facts,
654656
})
655657
}
656658
}
@@ -684,6 +686,12 @@ impl From<InvokeTransactionV3> for protobuf::InvokeV3 {
684686
.iter()
685687
.map(|account_deployment_data| (*account_deployment_data).into())
686688
.collect(),
689+
proof_facts: value
690+
.proof_facts
691+
.0
692+
.iter()
693+
.map(|proof_fact| (*proof_fact).into())
694+
.collect(),
687695
}
688696
}
689697
}

crates/apollo_protobuf/src/converters/transaction_test.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@ 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::{
7-
AllResourceBounds,
8-
ProofFacts,
9-
ResourceBounds,
10-
ValidResourceBounds,
11-
};
6+
use starknet_api::transaction::fields::{AllResourceBounds, ResourceBounds, ValidResourceBounds};
127
use starknet_api::transaction::{
138
DeclareTransaction,
149
DeclareTransactionOutput,
@@ -126,8 +121,6 @@ fn convert_invoke_transaction_v3_to_vec_u8_and_back() {
126121
let mut transaction =
127122
starknet_api::transaction::InvokeTransactionV3::get_test_instance(&mut rng);
128123
transaction.resource_bounds = *RESOURCE_BOUNDS_MAPPING;
129-
// TODO(AvivG): Remove this once proof_facts is added to P2P protocol.
130-
transaction.proof_facts = ProofFacts::default();
131124
let transaction = StarknetApiTransaction::Invoke(InvokeTransaction::V3(transaction));
132125

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

crates/apollo_protobuf/src/proto/p2p/proto/transaction.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ message InvokeV3 {
6060
VolitionDomain nonce_data_availability_mode = 8;
6161
VolitionDomain fee_data_availability_mode = 9;
6262
Felt252 nonce = 10;
63+
repeated Felt252 proof_facts = 11;
6364
}
6465

6566
// see https://external.integration.starknet.io/feeder_gateway/get_transaction?transactionHash=0x29fd7881f14380842414cdfdd8d6c0b1f2174f8916edcfeb1ede1eb26ac3ef0

crates/apollo_protobuf/src/protobuf/protoc_output.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,8 @@ pub struct InvokeV3 {
303303
pub fee_data_availability_mode: i32,
304304
#[prost(message, optional, tag = "10")]
305305
pub nonce: ::core::option::Option<Felt252>,
306+
#[prost(message, repeated, tag = "11")]
307+
pub proof_facts: ::prost::alloc::vec::Vec<Felt252>,
306308
}
307309
/// see <https://external.integration.starknet.io/feeder_gateway/get_transaction?transactionHash=0x29fd7881f14380842414cdfdd8d6c0b1f2174f8916edcfeb1ede1eb26ac3ef0>
308310
#[allow(clippy::derive_partial_eq_without_eq)]

crates/apollo_rpc/src/v0_8/transaction.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ impl From<InvokeTransactionV3> for client_transaction::InvokeTransaction {
467467
paymaster_data: tx.paymaster_data,
468468
account_deployment_data: tx.account_deployment_data,
469469
r#type: client_transaction::InvokeType::Invoke,
470+
proof_facts: tx.proof_facts,
470471
})
471472
}
472473
}

crates/apollo_starknet_client/resources/writer/invoke_v3.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@
3333
"nonce_data_availability_mode": 0,
3434
"fee_data_availability_mode": 0,
3535
"paymaster_data": [],
36-
"account_deployment_data": []
36+
"account_deployment_data": [],
37+
"proof_facts": []
3738
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ use starknet_api::transaction::fields::{
3434
DeprecatedResourceBoundsMapping,
3535
Fee,
3636
PaymasterData,
37+
ProofFacts,
3738
Tip,
3839
TransactionSignature,
3940
};
@@ -179,6 +180,7 @@ pub struct InvokeV3Transaction {
179180
pub fee_data_availability_mode: ReservedDataAvailabilityMode,
180181
pub paymaster_data: PaymasterData,
181182
pub account_deployment_data: AccountDeploymentData,
183+
pub proof_facts: ProofFacts,
182184
pub version: TransactionVersion,
183185
pub r#type: InvokeType,
184186
}

0 commit comments

Comments
 (0)