@@ -8,7 +8,10 @@ use kaspa_utils::{hex::ToHex, serde_bytes_fixed_ref};
88use serde:: { Deserialize , Serialize } ;
99use workflow_serializer:: prelude:: * ;
1010
11- use crate :: prelude:: { RpcHash , RpcScriptClass , RpcSubnetworkId } ;
11+ use crate :: {
12+ prelude:: { RpcHash , RpcScriptClass , RpcSubnetworkId } ,
13+ RpcOptionalHeader , RpcOptionalTransaction ,
14+ } ;
1215
1316/// Represents the ID of a Kaspa transaction
1417pub type RpcTransactionId = TransactionId ;
@@ -398,3 +401,31 @@ pub struct RpcAcceptedTransactionIds {
398401 pub accepting_block_hash : RpcHash ,
399402 pub accepted_transaction_ids : Vec < RpcTransactionId > ,
400403}
404+
405+ /// Represents accepted transaction ids
406+ #[ derive( Clone , Debug , Serialize , Deserialize ) ]
407+ #[ serde( rename_all = "camelCase" ) ]
408+ pub struct RpcChainBlockAcceptedTransactions {
409+ pub chain_block_header : RpcOptionalHeader ,
410+ pub accepted_transactions : Vec < RpcOptionalTransaction > ,
411+ }
412+
413+ impl Serializer for RpcChainBlockAcceptedTransactions {
414+ fn serialize < W : std:: io:: Write > ( & self , writer : & mut W ) -> std:: io:: Result < ( ) > {
415+ store ! ( u16 , & 1 , writer) ?;
416+ serialize ! ( RpcOptionalHeader , & self . chain_block_header, writer) ?;
417+ serialize ! ( Vec <RpcOptionalTransaction >, & self . accepted_transactions, writer) ?;
418+
419+ Ok ( ( ) )
420+ }
421+ }
422+
423+ impl Deserializer for RpcChainBlockAcceptedTransactions {
424+ fn deserialize < R : std:: io:: Read > ( reader : & mut R ) -> std:: io:: Result < Self > {
425+ let _struct_version = load ! ( u16 , reader) ?;
426+ let chain_block_header = deserialize ! ( RpcOptionalHeader , reader) ?;
427+ let accepted_transactions = deserialize ! ( Vec <RpcOptionalTransaction >, reader) ?;
428+
429+ Ok ( Self { chain_block_header, accepted_transactions } )
430+ }
431+ }
0 commit comments