LCOV - code coverage report
Current view: top level - choreo/votor - ag_vote_serde.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 3 8 37.5 %
Date: 2026-09-17 04:28:31 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef HEADER_fd_src_choreo_votor_ag_vote_serde_h
       2             : #define HEADER_fd_src_choreo_votor_ag_vote_serde_h
       3             : 
       4             : #include "ag_vote.h"
       5             : 
       6          15 : #define AG_VOTE_DE_SUCCESS   ( 0)
       7          30 : #define AG_VOTE_DE_ERR_SZ    (-1) /* Io(ReadSizeLimit), TrailingBytes, PreallocationSizeLimit, LengthEncodingOverflow */
       8           0 : #define AG_VOTE_DE_ERR_INVAL (-2) /* InvalidTagEncoding, InvalidValue                                                 */
       9             : 
      10       10767 : #define AG_VOTE_SERDE_TAG_NOTAR          (1)  /* WireConsensusMessageKind::NotarVote          #[wincode(tag = 1)] */
      11           0 : #define AG_VOTE_SERDE_TAG_FINAL          (2)  /* WireConsensusMessageKind::FinalizeVote       #[wincode(tag = 2)] */
      12           0 : #define AG_VOTE_SERDE_TAG_SKIP           (3)  /* WireConsensusMessageKind::SkipVote           #[wincode(tag = 3)] */
      13           0 : #define AG_VOTE_SERDE_TAG_NOTAR_FALLBACK (4)  /* WireConsensusMessageKind::NotarFallbackVote  #[wincode(tag = 4)] */
      14           0 : #define AG_VOTE_SERDE_TAG_SKIP_FALLBACK  (5)  /* WireConsensusMessageKind::SkipFallbackVote   #[wincode(tag = 5)] */
      15             : 
      16             : FD_STATIC_ASSERT( AG_VOTE_KIND_NOTAR         +1==AG_VOTE_SERDE_TAG_NOTAR,          ag_vote_serde );
      17             : FD_STATIC_ASSERT( AG_VOTE_KIND_FINAL         +1==AG_VOTE_SERDE_TAG_FINAL,          ag_vote_serde );
      18             : FD_STATIC_ASSERT( AG_VOTE_KIND_SKIP          +1==AG_VOTE_SERDE_TAG_SKIP,           ag_vote_serde );
      19             : FD_STATIC_ASSERT( AG_VOTE_KIND_NOTAR_FALLBACK+1==AG_VOTE_SERDE_TAG_NOTAR_FALLBACK, ag_vote_serde );
      20             : FD_STATIC_ASSERT( AG_VOTE_KIND_SKIP_FALLBACK +1==AG_VOTE_SERDE_TAG_SKIP_FALLBACK,  ag_vote_serde );
      21             : 
      22             : struct ag_vote_serde {
      23             :   uchar         version;       /* VersionedWireConsensusMessage::V1     (u8 tag)       */
      24             :   uchar         tag;           /* WireConsensusMessageKind              (u8 tag)       */
      25             :   ulong         slot;          /* WireSlotVoteMessage::slot             (Slot)         */
      26             :   uchar const * block_id;      /* Block::block_id                       (Hash)         */
      27             :   uchar const * signature;     /* WireVoteSignature::signature          (BLSSignature) */
      28             :   ushort        shred_version; /* WireConsensusMessageV1::shred_version (u16)          */
      29             : };
      30             : typedef struct ag_vote_serde ag_vote_serde_t;
      31             : 
      32             : #define AG_VOTE_SIGNING_SER_MAX ( sizeof(uchar)           /* kind          */ + \
      33             :                                   sizeof(ulong)           /* slot          */ + \
      34             :                                   sizeof(ag_block_hash_t) /* block_id      */ + \
      35             :                                   sizeof(ushort)          /* shred_version */ )
      36             : 
      37             : #define AG_VOTE_SER_SZ( has_block_id ) ( sizeof(uchar)                                      /* version       */ + \
      38             :                                          sizeof(uchar)                                      /* kind          */ + \
      39             :                                          sizeof(ulong)                                      /* slot          */ + \
      40             :                                          ( (has_block_id) ? sizeof(ag_block_hash_t) : 0UL ) /* block_id      */ + \
      41             :                                          FD_BLS_SIG_SZ                                      /* signature     */ + \
      42             :                                          sizeof(ushort)                                     /* shred_version */ )
      43             : 
      44             : #define AG_VOTE_SER_MAX AG_VOTE_SER_SZ( 1 )
      45             : 
      46             : FD_PROTOTYPES_BEGIN
      47             : 
      48             : ulong
      49             : ag_vote_ser( ag_vote_t const * self,
      50             :              uchar             buf[ static AG_VOTE_SER_MAX ] );
      51             : 
      52             : int
      53             : ag_vote_de( ag_vote_t *   self,
      54             :             uchar const * buf,
      55             :             ulong         buf_sz );
      56             : 
      57             : ulong
      58             : ag_vote_signing_ser( uint          kind,
      59             :                      ulong         slot,
      60             :                      uchar const * block_hash,
      61             :                      ushort        shred_version,
      62             :                      uchar         buf[ static AG_VOTE_SIGNING_SER_MAX ] );
      63             : 
      64             : FD_PROTOTYPES_END
      65             : 
      66             : #endif /* HEADER_fd_src_choreo_votor_ag_vote_serde_h */

Generated by: LCOV version 1.14