bolt1

Base Lightning protocol, per BOLT #1 (docs.ppad.tech/bolt1).
git clone git://git.ppad.tech/bolt1.git
Log | Files | Refs | README | LICENSE

Weight.hs (1019B)


      1 {-# LANGUAGE OverloadedStrings #-}
      2 
      3 module Main where
      4 
      5 import Fixtures
      6 import Lightning.Protocol.BOLT1
      7 import Weigh
      8 
      9 main :: IO ()
     10 main = mainWith $ do
     11   wgroup "primitives" $ do
     12     func "baseline (weigh overhead)" (+ (1 :: Int)) 1
     13     func "encode_u16" encode_u16 0x0102
     14     func "encode_u64" encode_u64 0x0102030405060708
     15     func "decode_u64" decode_u64 "\x01\x02\x03\x04\x05\x06\x07\x08"
     16     func "encode_tu64" encode_tu64 0x010203
     17     func "encode_bigsize (9 bytes)" encode_bigsize 0x100000000
     18   wgroup "tlv" $ do
     19     func "encode_tlv_stream (21 records)" encode_tlv_stream tlvs
     20     func "decode_tlv_stream (21 records)"
     21       (decode_tlv_stream (const False)) tlvs_bytes
     22   wgroup "messages" $ do
     23     func "encode init" encode_message init_msg
     24     func "decode init" decode_message init_bytes
     25     func "encode ping" encode_message ping_msg
     26     func "decode ping" decode_message ping_bytes
     27     func "encode error (with tlvs)" encode_message error_msg
     28     func "decode error (with tlvs)" decode_message error_bytes