cardanoapi / hardfork-testing

Hardfork testing by Dquadrant Team (Project management repository)
0 stars 0 forks source link

`ledger` and `cardano-api` transaction sizes are different #43

Open mesudip opened 4 months ago

mesudip commented 4 months ago

cardano-api ==9.0.0.0

Issue description: For all types of transaction, size reported by cardano-api is 1-byte more compared to the size reported by ledger.

Code used to report the transactions:

reportFee:: Tx ConwayEra -> IO () 
reportFee = case tx of
  ShelleyTx era ledgerTx -> let 
    txWitnesses = ledgerTx ^. L.witsTxL 
    sizeLedger = ledgerTx ^. L.sizeTxF
    sizeCapi = fromIntegral $  BS.length  $ serialiseToCBOR tx
    txFee=L.unCoin $ ledgerTx ^. L.bodyTxL ^. L.feeTxBodyL 
    in do 
      putStrLn $  "Fee      :   " ++ show txFee
      if sizeLedger /= sizeCapi
        then do 
          putStrLn $  "Tx Bytes (ledger):   " ++ show sizeLedger
          putStrLn $  "Tx Bytes (api)   :   " ++ show sizeCapi
        else
          putStrLn $  "Tx Bytes  :   " ++ show sizeCapi

Output log

1.1 SimpleMarketV2 Flow : "Mint Native Asset"
Fee      :   897
Tx Bytes (ledger):   796
Tx Bytes (api)   :   797

1.2 SimpleMarketV2 Flow : "Create reference script UTxO"
Fee      :   4944
Tx Bytes (ledger):   4843
Tx Bytes (api)   :   4844

1.3 SimpleMarketV2 Flow : "Place on Sell"
Fee      :   903
Tx Bytes (ledger):   802
Tx Bytes (api)   :   803

1.4 SimpleMarketV2 Flow : "Withdraw"
ExUnits     :  memory = 1085202 cpu = 293558927
Fee      :   88861
Tx Bytes (ledger):   4978
Tx Bytes (api)   :   4979

1.5 SimpleMarketV2 Flow : "Buy"
ExUnits     :  memory = 1750602 cpu = 465219918
Fee      :   139670
Tx Bytes (ledger):   5016
Tx Bytes (api)   :   5017
carbolymer commented 2 months ago

This could be due to: https://github.com/IntersectMBO/cardano-api/pull/625/files?diff=split&w=1#r1743693050 Can you test again with newer cardano-api?

spannercode commented 1 month ago

@mesudip Can you re-test and respond to this issue?