@@ -1048,19 +1048,26 @@ pub struct InitChainResponse {
10481048/// Empty for now, may include filtering criteria in the future
10491049#[ derive( Clone , Copy , PartialEq , Eq , Hash , :: prost:: Message ) ]
10501050pub struct GetTxsRequest { }
1051+ /// TxBatch stores ordered transactions in one contiguous bytes buffer.
1052+ #[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
1053+ pub struct TxBatch {
1054+ /// Concatenated transaction bytes.
1055+ #[ prost( bytes = "vec" , tag = "1" ) ]
1056+ pub data : :: prost:: alloc:: vec:: Vec < u8 > ,
1057+ /// Byte length for each transaction in order.
1058+ #[ prost( uint32, repeated, tag = "2" ) ]
1059+ pub tx_sizes : :: prost:: alloc:: vec:: Vec < u32 > ,
1060+ }
10511061/// GetTxsResponse contains the available transactions
10521062#[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
10531063pub struct GetTxsResponse {
1054- /// Slice of valid transactions from mempool
1055- #[ prost( bytes = "vec" , repeated , tag = "1 " ) ]
1056- pub txs : :: prost :: alloc :: vec :: Vec < :: prost :: alloc :: vec :: Vec < u8 > > ,
1064+ /// Valid transactions from mempool in contiguous batch form.
1065+ #[ prost( message , optional , tag = "2 " ) ]
1066+ pub tx_batch : :: core :: option :: Option < TxBatch > ,
10571067}
10581068/// ExecuteTxsRequest contains transactions and block context for execution
10591069#[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
10601070pub struct ExecuteTxsRequest {
1061- /// Ordered list of transactions to execute
1062- #[ prost( bytes = "vec" , repeated, tag = "1" ) ]
1063- pub txs : :: prost:: alloc:: vec:: Vec < :: prost:: alloc:: vec:: Vec < u8 > > ,
10641071 /// Height of block being created (must be > 0)
10651072 #[ prost( uint64, tag = "2" ) ]
10661073 pub block_height : u64 ,
@@ -1070,6 +1077,9 @@ pub struct ExecuteTxsRequest {
10701077 /// Previous block's state root hash
10711078 #[ prost( bytes = "vec" , tag = "4" ) ]
10721079 pub prev_state_root : :: prost:: alloc:: vec:: Vec < u8 > ,
1080+ /// Ordered transactions to execute in contiguous batch form.
1081+ #[ prost( message, optional, tag = "5" ) ]
1082+ pub tx_batch : :: core:: option:: Option < TxBatch > ,
10731083}
10741084/// ExecuteTxsResponse contains the result of transaction execution
10751085#[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
@@ -1115,9 +1125,6 @@ pub struct GetExecutionInfoResponse {
11151125/// FilterTxsRequest contains transactions to validate and filter
11161126#[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
11171127pub struct FilterTxsRequest {
1118- /// All transactions (force-included + mempool)
1119- #[ prost( bytes = "vec" , repeated, tag = "1" ) ]
1120- pub txs : :: prost:: alloc:: vec:: Vec < :: prost:: alloc:: vec:: Vec < u8 > > ,
11211128 /// Maximum cumulative size allowed (0 means no size limit)
11221129 #[ prost( uint64, tag = "2" ) ]
11231130 pub max_bytes : u64 ,
@@ -1127,6 +1134,9 @@ pub struct FilterTxsRequest {
11271134 /// Whether force-included transactions are present
11281135 #[ prost( bool , tag = "4" ) ]
11291136 pub has_force_included_transaction : bool ,
1137+ /// All transactions (force-included + mempool) in contiguous batch form.
1138+ #[ prost( message, optional, tag = "5" ) ]
1139+ pub tx_batch : :: core:: option:: Option < TxBatch > ,
11301140}
11311141/// FilterTxsResponse contains the filter status for each transaction
11321142#[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
0 commit comments