• Joshua Gutow's avatar
    op-node: Isolated channel frame serialization (#3125) · 9673eca7
    Joshua Gutow authored
    * op-node: Add channel frame serialization
    
    This creates a struct & serialization & deserialization methods
    for it. This is to replace the current serialization code which
    is embedded in more complex methods.
    
    The reading is done with a reader API instead of a bytes API because
    the frame is variable length & is originally merged together with
    other frames without a clean division. The writing API uses a
    writer for simplicity (but is not required).
    
    This lays the groundwork for easily switching to fixed int sizes.
    
    * op-node: Use channel frame deserialization
    
    This uses the new channel frame object for deserialization. Some
    of the API interaction is a little weird in the channel_bank
    IngestData loop, but the code is not able to be easily tested and
    upgraded.
    
    * op-node: Use channel frame in serialization
    
    This uses the default implementation (through a struct) rather
    than the custom logic. It might make sense to use a slightly
    different API for serialization than deserialization given the
    inputs, but splitting out the logic into it's own function is
    still an improvement.
    Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
    9673eca7
channel_bank.go 6.81 KB