content: -- This Source Code Form is subject to the terms of the Mozilla Public
  -- License, v. 2.0. If a copy of the MPL was not distributed with this
  -- file, You can obtain one at http://mozilla.org/MPL/2.0/.
  
  {-# LANGUAGE PatternSynonyms #-}
  
  -- | This module contains on-chain points and data objects issued from the **PreProd** network.
  -- They're used to test specific features of Kupo from a real running network.
  module Test.Kupo.Fixture where
  
  import Kupo.Prelude
  
  import Data.Maybe
      ( fromJust
      )
  import Kupo.Data.Cardano
      ( BinaryData
      , Datum (Inline)
      , DatumHash
      , MetadataHash
      , Point
      , PolicyId
      , Script
      , ScriptHash
      , SlotNo
      , TransactionId
      , hashDatum
      , hashScript
      , pattern GenesisPoint
      , unsafeBinaryDataFromBytes
      , unsafeMetadataHashFromBytes
      , unsafePolicyIdFromBytes
      , unsafeScriptFromBytes
      , unsafeScriptHashFromBytes
      , unsafeTransactionIdFromBytes
      )
  import Kupo.Data.Database
      ( Checkpoint (..)
      , pointFromRow
      )
  
  eraBoundaries :: [(String, Point)]
  eraBoundaries =
      [ ("Byron", GenesisPoint)
      , ("Shelley", lastByronPoint)
      , ("Allegra", lastShelleyPoint)
      , ("Mary", lastAllegraPoint)
      , ("Alonzo", lastMaryPoint)
      , ("Babbage", lastAlonzoPoint)
      ]
  
  -- | Last point of the Byron era
  lastByronPoint :: Point
  lastByronPoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          84242
      , checkpointHeaderHash = unsafeDecodeBase16
          "45899e8002b27df291e09188bfe3aeb5397ac03546a7d0ead93aa2500860f1af"
      }
  
  -- | Last point of the Shelley era
  lastShelleyPoint :: Point
  lastShelleyPoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          518360
      , checkpointHeaderHash = unsafeDecodeBase16
          "f9d8b6c77fedd60c3caf5de0ce63a0aeb9d1753269c9c07503d9aa09d5144481"
      }
  
  -- | Last point of the Allegra era
  lastAllegraPoint :: Point
  lastAllegraPoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          950340
      , checkpointHeaderHash = unsafeDecodeBase16
          "74c03af754bcde9cd242c5a168689edcab1756a3f7ae4d5dca1a31d86839c7b1"
      }
  
  -- | Last point of the Mary era
  lastMaryPoint :: Point
  lastMaryPoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          1382348
      , checkpointHeaderHash = unsafeDecodeBase16
          "af5fddc7d16a349e1a2af8ba89f4f5d3273955a13095b3709ef6e3db576a0b33"
      }
  
  -- | Last point of the Alonzo era
  lastAlonzoPoint :: Point
  lastAlonzoPoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          3542390
      , checkpointHeaderHash = unsafeDecodeBase16
          "f93e682d5b91a94d8660e748aef229c19cb285bfb9830db48941d6a78183d81f"
      }
  
  -- | Some point that actually doesn't exist on chain. Useful to test failures to find
  -- intersection.
  someNonExistingPoint :: Point
  someNonExistingPoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          14141414
      , checkpointHeaderHash = unsafeDecodeBase16
          "0000000000000000000000000000000000000000000000000000000000000000"
      }
  
  -- | A point that exists on-chain. There's nothing special about it other than, it exists.
  somePoint :: Point
  somePoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          11017324
      , checkpointHeaderHash = unsafeDecodeBase16
          "195908564a66d713bd2b71a9b1f290be6853cb31085fe7371276a35a2f8f7e62"
      }
  
  -- | The direct ancestor of 'somePoint'.
  somePointAncestor :: Point
  somePointAncestor = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          11017254
      , checkpointHeaderHash = unsafeDecodeBase16
          "97349562d7dc20b95e81e3bc5d4c5aab6cb8fdfd6fc846fcea4bcb364dca7045"
      }
  
  -- | The direct successor of 'somePoint'.
  somePointSuccessor :: Point
  somePointSuccessor = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          11017333
      , checkpointHeaderHash = unsafeDecodeBase16
          "28f9e744c21c5ebdcfe53e2f1dc2e996066fbc93faf8203c404b2bbd87a28306"
      }
  
  -- | Another point that exists on-chain that is different from 'somePoint' and is located MANY blocks
  -- after 'somePoint'.
  someOtherPoint :: Point
  someOtherPoint = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          36492716
      , checkpointHeaderHash = unsafeDecodeBase16
          "d51095ef5405d83e7a1c82b98d12b357ba6b95f070f684bb38ab47ef90b21688"
      }
  
  -- Pre-image of 'someDatumHashInWitness'
  someDatumInWitness :: BinaryData
  someDatumInWitness = unsafeBinaryDataFromBytes $ unsafeDecodeBase16
      "d8799fd8799fd8799f581c70a336982cf23779f016e53625b778f49883050eb1a66ef075f75\
      \d24ffd8799fd8799fd8799f581cac537c1a299201d53cac96ff89266711af1bbb51b5dcaec2\
      \fa5126e8ffffffffd8799fd8799f581c70a336982cf23779f016e53625b778f49883050eb1a\
      \66ef075f75d24ffd8799fd8799fd8799f581cac537c1a299201d53cac96ff89266711af1bbb\
      \51b5dcaec2fa5126e8ffffffffd87a80d8799fd8799f581c4b4ce6898a5b7227d1a22b4ed6b\
      \e7f01fa36ac84b1adcb97b35a665b4974564153494c696e65ff1a00031549ff1a001e84801a\
      \001e8480ff"
  
  -- A datum present in the witness set of a transaction near the beginning of the Babbage era.
  someDatumInWitnessHash :: DatumHash
  someDatumInWitnessHash = fromJust $ hashDatum $ Inline $ Right someDatumInWitness
  
  -- Pre-image of 'someDatumHashInOutput'
  someDatumInOutput :: BinaryData
  someDatumInOutput = unsafeBinaryDataFromBytes $ unsafeDecodeBase16
      "d8799f58200baae24a9c812b37f9d76eb577172ff6c7b147279499edfb7b9d2468c22ff75eff"
  
  -- A datum present in an output of a transaction near the beginning of the Babbage era.
  someDatumInOutputHash :: DatumHash
  someDatumInOutputHash = fromJust $ hashDatum $ Inline $ Right someDatumInOutput
  
  -- | A point on-chain located near (albeit before) groups of transaction carrying interesting
  -- scripts for:
  --
  -- - 'someScriptInWitness'
  -- - 'somescriptInMetadata'
  -- - 'someScriptInOutput'
  somePointNearScripts :: Point
  somePointNearScripts = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          12123866
      , checkpointHeaderHash = unsafeDecodeBase16
          "61220259a295f31c1b3d1e7ac0afab51801e96848f9e63c13c2094dff4618533"
      }
  
  -- Hash of a native script that's found in transaction's metadata after 'somePointNearScripts'.
  someScriptInMetadataHash :: ScriptHash
  someScriptInMetadataHash = unsafeScriptHashFromBytes $ unsafeDecodeBase16
      "ae4e49b15cce99eede1fac3795b18975a40e936c1fe75d03b03df5de"
  
  -- Pre-image of 'someScriptInMetadataHash'
  someScriptInMetadata :: Script
  someScriptInMetadata = unsafeScriptFromBytes $ unsafeDecodeBase16
      "00\
      \8201828200581cafbe897580dae15fcd8c1105a1c236d7a026a8748ff861d9f5668faa8204182a"
  
  -- Hash of a Plutus V2 script found inline in a transaction output after 'somePointNearScripts'.
  someScriptInOutputHash :: ScriptHash
  someScriptInOutputHash = hashScript someScriptInOutput
  
  -- Pre-image of 'someScriptInOutputHash'
  someScriptInOutput :: Script
  someScriptInOutput = unsafeScriptFromBytes $ unsafeDecodeBase16
      "02\
      \5918b701000032323232323322323322323333222232323322323232323232323232323232\
      \32323322323232323232323232323232323232323332223232323232323232323232323232\
      \32323232323232323232323232323232323232323232323232323232323232322232322323\
      \253353232323232323232323232323233500d2232325333500b21350012233067330244901\
      \1273637269707420696e7075742077726f6e6700335027500b33320015034335506f335550\
      \3c50333355503c05004f006501133067330244911863616e6e6f7420617070726f7665206f\
      \722072656a65637400333553061120013505f5063306500233223300250113300250073300\
      \250120015076507733067330244901166e6f74207369676e656420627920617070726f7665\
      \72003301e500c002533533065002501013306733024491106e6f7420696e206d6564696174\
      \696f6e00330643232323500122350022253335333504000735041006002153350011074107\
      \5107410753024500e3057501350485333350072106e221070106d2106f33024491136f7574\
      \707574206973206e6f742076616c696400533500115004133067333025500c500f32350012\
      \22220045012333025500c500550111330673302449011d646561646c696e65207061737365\
      \642c20696e206d6564696174696f6e00500853333500721533533066003001133068500a33\
      \02507f3332001504e35500b220013304835335002107510720010071533500213302549116\
      \736372697074206f75747075742069732077726f6e67005005133068500a3302507f333200\
      \1504e35500b2200133048330740010030072213507d4911672656a65637465642c20696e20\
      \6d6564696174696f6e0013306750093302407e3332001504d35500a2200133047353350011\
      \0741071002006213507c49011672656a65637465642c20696e206d6564696174696f6e0021\
      \3507949109696e20657363726f7700135078490109696e20657363726f77001335506b3355\
      \50382335506c33223355002350675065001305e12001355501a30225009001335550383335\
      \55033305d12001223355305e12001235001223355079002333500120012233303803900200\
      \12001333555059063002001507333555038355303412001335550383555019223350743355\
      \076002001507523500122335507700200133505e3350652233355305a12001507400100250\
      \73335506b3355503804f04a002304c304b0021335506a3355503704c04a001253335008213\
      \507649010d6e6f7420696e20657363726f770021330623301f49011277726f6e67206f7574\
      \7075742076616c756500335022355005220023332001502f5006500c330623301f49011277\
      \726f6e67206f757470757420646174756d0033320015048355005220013304206d33041002\
      \001330623301f4911177726f6e6720696e7075742076616c7565003350225006335506a335\
      \55037502e04b0013301f490108746f6f206c61746500500313301e4901146e6f7420736967\
      \6e65642062792073656c6c6572003301850065009132323235001223235001223500422533\
      \35333503b00a0040021533500315335001106f1070106f1070106f3350233503700406b301\
      \c5006304f500b504013301b49127736372697074206f75747075742073686f756c64206265\
      \203e3d2073637269707420696e7075740033501e3550012200250021533553355335350032\
      \2350022222222222223333500d2507e2507e2507e233355306612001502423500122533553\
      \35333573466e3cd400888008d4010880081d81d44ccd5cd19b873500222001350042200107\
      \6075107513508201003150810100d2135001223500122223500a2235002222222222222333\
      \553067120012235002222253353501822350062232335005233500425335333573466e3c00\
      \800421804214045400c4214048214048cd401082140494cd4ccd5cd19b8f00200108601085\
      \01150031085011533500321533500221335002233500223350022335002233080010020012\
      \08801233500220880123308001002001222088012223350042088012225335333573466e1c\
      \01800c22c042280454cd4ccd5cd19b8700500208b0108a0113308901004001108a01108a01\
      \108301153350012108301108301133508701006005100550820100a1326320733357389201\
      \024c6600073130664988854cd40044d4c06400888cd40089894ccd4d40148888008541d085\
      \4cd4cc800541d800484d41dccd541d4c07401ccd541b0c800540ec0044d41dd2411d696e6c\
      \696e65206f757470757420646174756d206e6f7420666f756e6400215075221306a4988400\
      \4584d54004888888888888cd541c0cd5540f40840914cd4cc8cd54c17848004894cd4c00c0\
      \084cd41e8008004400541e4cd5540f48d400488cd400881c881cccd5540f40880900304c1d\
      \92622153350011002221307a4984d400488008cccd5cd19b8735573aa01290001199109198\
      \00801801191919191919191919191919191999ab9a3370e6aae75403120002333333333333\
      \2222222222221233333333333300100d00c00b00a00900800700600500400300233504302a\
      \35742a01866a0860546ae85402ccd410c0acd5d0a805199aa823bae504635742a012666aa0\
      \8eeb94118d5d0a80419a8218181aba150073335504703175a6ae854018c8c8c8cccd5cd19b\
      \8735573aa00490001199109198008018011919191999ab9a3370e6aae75400920002332212\
      \3300100300233503b75a6ae854008c0f0d5d09aba250022326320870133573809a10e0210a\
      \0226aae7940044dd50009aba150023232323333573466e1cd55cea80124000466a06066a07\
      \6eb4d5d0a801181e1aba135744a004464c6410e0266ae7013421c04214044d55cf280089ba\
      \a001357426ae8940088c98c820c04cd5ce024841808408089aab9e5001137540026ae85401\
      \4cd410dd71aba150043335504702d200135742a006666aa08eeb88004d5d0a80118179aba1\
      \35744a004464c640fe66ae701141fc1f44d5d1280089aba25001135744a00226ae8940044d\
      \5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea800\
      \4d5d0a804980f9aba135744a012464c640e266ae700dc1c41bccccd5cd19b87500a480108c\
      \84888c00c010c8c8c8cccd5cd19b8735573aa0049000119aa8379bae35742a00460526ae84\
      \d5d1280111931903a19ab9c03a074072135573ca00226ea8004d5d09aab9e500c233335734\
      \66e1d402d2002232122230020043033357426aae7940348cccd5cd19b87500c48000848880\
      \048c98c81c8cd5ce01c03903803783709aa80211100189aa801911001099aa82f19aaa815a\
      \811021280089aa800911000899a80091199aaa81619aa82f19aaa81582181e80099aa82f19\
      \aaa81582201e800981e8009199aaa815982100098218008009804003883489a833a4810350\
      \543500135573ca00226ea80044d55cea80089baa0015022111223500122330040020012235\
      \002222222222222533533355305112001500f25335333573466e3c03800417c1784d41ac00\
      \4541a80108417c41744cd4128894cd40088400c400541688d4004888800c8d400488880108\
      \d40048888888888880148d400488004894cd400441304cd5ce00102591119a802999aa981d\
      \09000a809282a9a801911111111111199aa982309000911a80111111a8021119a8011299a9\
      \99ab9a3371e02e0020c20c0266a0d200c01020104010a0c201400224424660020060042606\
      \4044464646666ae68cdc39aab9d5002480008cc8848cc00400c008c020d5d0a80118029aba\
      \135744a004464c640b266ae7007c16415c4d55cf280089baa0012323232323333573466e1c\
      \d55cea8022400046666444424666600200a0080060046464646666ae68cdc39aab9d500248\
      \0008cc8848cc00400c008c044d5d0a80119a8058081aba135744a004464c640bc66ae70090\
      \1781704d55cf280089baa00135742a008666aa044eb94084d5d0a8019919191999ab9a3370\
      \ea0029002119091118010021aba135573ca00646666ae68cdc3a8012400446424446002008\
      \6eb8d5d09aab9e500423333573466e1d400d20002122200323263206033573804c0c00bc0b\
      \a0b826aae7540044dd50009aba1500233500775c6ae84d5d1280111931902d19ab9c02005a\
      \058135744a00226ae8940044d55cf280089baa00112232323333573466e1d4005200023505\
      \53005357426aae79400c8cccd5cd19b87500248008941548c98c8164cd5ce00f82c82b82b0\
      \9aab9d500113754002464646666ae68cdc3a800a400c46424444600800a600e6ae84d55cf2\
      \80191999ab9a3370ea004900211909111180100298049aba135573ca00846666ae68cdc3a8\
      \01a400446424444600200a600e6ae84d55cf280291999ab9a3370ea0089000119091111801\
      \8029bae357426aae7940188c98c8164cd5ce00f82c82b82b02a82a09aab9d5001137540024\
      \64646666ae68cdc39aab9d5002480008cc8848cc00400c008c014d5d0a8011bad357426ae8\
      \940088c98c8154cd5ce00d82a82989aab9e5001137540024646666ae68cdc39aab9d500148\
      \0008dd71aba135573ca004464c640a666ae7006414c1444dd5000919191919191999ab9a33\
      \70ea002900610911111100191999ab9a3370ea004900510911111100211999ab9a3370ea00\
      \690041199109111111198008048041bae35742a00a6eb4d5d09aba2500523333573466e1d4\
      \0112006233221222222233002009008375c6ae85401cdd71aba135744a00e46666ae68cdc3\
      \a802a400846644244444446600c01201060186ae854024dd71aba135744a01246666ae68cd\
      \c3a8032400446424444444600e010601a6ae84d55cf280591999ab9a3370ea00e900011909\
      \111111180280418071aba135573ca018464c640b866ae7008817016816416015c158154150\
      \4d55cea80209aab9e5003135573ca00426aae7940044dd50009191919191999ab9a3370ea0\
      \02900111999110911998008028020019bad35742a0086eb4d5d0a8019bad357426ae89400c\
      \8cccd5cd19b875002480008c8488c00800cc020d5d09aab9e50062326320553357380360aa\
      \0a60a426aae75400c4d5d1280089aab9e500113754002464646666ae68cdc3a800a4004464\
      \24460020066eb8d5d09aab9e500323333573466e1d400920002321223002003375c6ae84d5\
      \5cf280211931902919ab9c01805205004f135573aa00226ea8004488c8c8cccd5cd19b8750\
      \0148010848880048cccd5cd19b875002480088d403cc018d5d09aab9e500423333573466e1\
      \d400d2000212220022326320533357380320a60a20a009e26aae7540044dd50009191999ab\
      \9a3370ea0029001101f91999ab9a3370ea0049000101f91931902799ab9c01504f04d04c13\
      \5573a6ea80044ccd554010c0b84800488ccc8005400cc0e400800541104c004008888cd54c\
      \0b8480048d400488cd54124008cd54c0c4480048d400488cd54130008ccd40048cc0292000\
      \001223300b00200123300a00148000004cc0a000800488cdc000100088891111999aa80219\
      \a81b111180198010009000801800801190009aa823910891299a8008a82191099a82218020\
      \0119aa9803090008020008911191919192999a80310a999a80310a999a80410980224c2600\
      \6930a999a80390980224c2600693080e080d0a999a80390980224c26006930a999a8031098\
      \0224c2600693080d8a999a8029080c880d080c0a999a80290a999a803909802a4c26008930\
      \a999a803109802a4c2600893080d880c8a999a803109802a4c26008930a999a802909802a4\
      \c2600893080d12999a80290a999a80390a999a80390999a8060050010008b0b0b080d0a999\
      \a80310a999a80310999a8058048010008b0b0b080c880c12999a80210a999a80310a999a80\
      \310999a8058048010008b0b0b080c8a999a80290a999a80290999a8050040010008b0b0b08\
      \0c080b92999a80190a999a80290a999a80290999a8050040010008b0b0b080c0a999a80210\
      \a999a80210999a8048038010008b0b0b080b880b12999a80110a999a80210a999a80210999\
      \a8048038010008b0b0b080b8a999a80190a999a80190999a8040030010008b0b0b080b080a\
      \8909111801802091a800911111110038889111801980100088891109199800802001801091\
      \919191999ab9a3370ea0029001119807191919191999ab9a3370ea002900311981f9bae357\
      \42a0066eb8d5d09aba2500323333573466e1d400920042303e375c6ae84d55cf280291999a\
      \b9a3370ea0069001118211bae357426aae7940188cccd5cd19b8750044800081048c98c813\
      \0cd5ce00902602502482402389aab9d5002135573ca00226ea8004d5d0a8019919191999ab\
      \9a3370e6aae7540092000233011300b35742a00460146ae84d5d1280111931902419ab9c00\
      \e048046135573ca00226ea8004d5d09aba2500323333573466e1d400920002321223001003\
      \3008357426aae7940148c98c8114cd5ce00582282182109aab9d5002135573ca00226ea800\
      \48c8c8cccd5cd19b8735573aa004900011919091980080180119a8038041aba135744a0066\
      \eb8d5d0a80111931902119ab9c008042040135573ca00226ea80048c8c8c8c8c8cccd5cd19\
      \b8735573aa00a90001191919191909199998008030028020018011bae357426ae894018dd6\
      \9aba1500533500a00b35742a00a666aa01aeb94030d5d0a8029bae35742a00a464c6408866\
      \ae700281101084d5d1280089aba25001135744a00226aae7940044dd50008919118011bac0\
      \013200135503f2233335573e0024a074466a07260086ae84008c00cd5d100101f919191999\
      \ab9a3370e6aae75400920002323212330010030023335500875ca00e6ae84d5d128019bae3\
      \5742a004464c6407e66ae700140fc0f44d55cf280089baa001490103505431001335500175\
      \ceb44488c88c008dd5800990009aa81e11191999aab9f00225038233503733550393006355\
      \73aa004600a6aae794008c010d5d100181e89aba1001221233001003002221223300200400\
      \311233333333001025225335333573466e1c0080040a40a0401c54cd4ccd5cd19b89002001\
      \0290281005100622333573466e200080040a40a088ccd5cd19b89002001029028223335734\
      \66e240080040a00a4008894cd4ccd5cd19b8900200102902810011002225335333573466e2\
      \40080040a40a04008400488ccd5cd19b880020010260271222003122200212220011223350\
      \02223350032233020533335004215333350032133020002001221029102721028221533335\
      \00421029221330243302200400233022003001102821029153333500221027221028102721\
      \027215333350032102822102910272133020002001330203332001500b3007003300700132\
      \323302233020300c002300c0013332001353012120015013300b002300b001300900230080\
      \03202523350022202523332001500900200123500122002235001220012350012200123500\
      \12200212233017330153004002300400133017333200135300712001500830030023003001\
      \330173301c3006002300600133015300500230050012350012222200323500122222005235\
      \001222220012350012222200232001355028221222533500215335001101c22101d2215335\
      \003101d22153353300700400213335300912001007003001101f122330113300f301500230\
      \15001333200130030163014002301400122233355300b12001350125010235001223335530\
      \0e1200135015501323500122333500123300a4800000488cc02c0080048cc0280052000001\
      \33004002001223355300812001235001223355023002333500123355300c12001235001223\
      \35502700235500d0010012233355500801200200123355300c120012350012233550270023\
      \5500c00100133355500300d00200111122233355300412001501e335530081200123500122\
      \335502300235500900133355300412001223500222533533355300d120013500b500f23500\
      \1223300a00200500610031335022004003501f001335530081200123500122323355024003\
      \30010053200135502a225335001135500a003221350022253353300c002008112223300200\
      \a0041300600300232001355023221122253350011002221330050023335530071200100500\
      \400111212223003004112122230010041233500b2233350032200200200135001220013200\
      \135501f22112253350011501b22133501c300400233553006120010040013200135501e221\
      \12225335001135003220012213335008005300400233355300712001005004001123500122\
      \0021123300100200b225335002100c100122333573466e3c00800402c028448cc004008024\
      \894cd40084004402048cd400888ccd400c88008008004d40048800448848cc00400c0088d4\
      \004880048d40048800888ccd5cd19b870020010040031220021220011122300200123500c4\
      \9123657870656374656420612073696e676c6520636f6e74696e75696e67206f7574707574\
      \00212222300400522122223300300600512222002212222300100523500749012165787065\
      \637465642065786163746c79206f6e652073637269707420696e7075740011220021221223\
      \30010040031122123300100300212122300200311220011232632003335738002006930900\
      \0a49156f757470757420646174756d2069732077726f6e6700112323001001223300330020\
      \020011"
  
  -- Hash of a Plutus V1 script found in a transaction's witness after 'somePointNearScripts'.
  someScriptInWitnessHash :: ScriptHash
  someScriptInWitnessHash =
      hashScript someScriptInWitness
  
  -- Pre-image of 'someScriptInWitnessHash'
  someScriptInWitness :: Script
  someScriptInWitness = unsafeScriptFromBytes $ unsafeDecodeBase16
      "01\
      \5902a701000032323232323232323232323232323232322232323232325333012533301233\
      \71000290000a51153330123017001153330123375e980129d8799fd87a9f581c50a6aec0fb\
      \c0e64ee0f3459f1f8345769a51065fec3211d796dd9e4effd87a80ff003014301337546601\
      \c44a6660240022c2a6660286032666601c00a90001199980780ca4000eb4dd58009bab3016\
      \301730153754602c0022602c00226004602e0026eb0c050c054c04cdd500109919299980a2\
      \99980a19805180b001180b000899805180b180b800980b180b8010a5014a22c60286ea8c05\
      \4c058c058c058c040c050dd500198099baa30183300b300a482028a0ffa2184cc02cc02920\
      \8082e9a28a614bd700b0b0a4c2c6666601844460046eacc05400cdd48011bab3013300e301\
      \2375400246666601a44460046eb4c05800cdd480b00090008a40002c602460226ea80114cc\
      \c03ccdc3a4000601c00426eb8c04400458c03c004dd51807980818071baa00122323232323\
      \23232325333014533301433710004002294454ccc050cdc380100089919299980b180d8020\
      \99b88375a60300046eb4c060004528180b002180a8020a5014a22a66602866ebc0180144cc\
      \c050c02cc058c05c020c02cc058c05c01d288a503012002301100237540046ea8008c04400\
      \8c040008c038dd500118069baa0022300f300937540024601e6600466e9520023300237500\
      \0297ae0330023374a6660129452002480012f5c097ae057404644446600e44a66601600220\
      \0a2a66601a66ebcc030c03c0040184c010c038c03c0044c008c040004004dd480091119802\
      \11299980400089128008a99980519baf3009300c00100413005300c00113002300d0010012\
      \3230022330020020012300223300200200123007300730070015573eaae755cd2ab9e5742a\
      \e8922102475900370e90011ba5480001"
  
  -- A policy id from tokens present in a transaction output in early Babbage
  somePolicyId :: PolicyId
  somePolicyId = unsafePolicyIdFromBytes $ unsafeDecodeBase16
      "e2bab64ca481afc5a695b7db22fd0a7df4bf930158dfa652fb337999"
  
  -- A transaction present in the first Babbage blocks.
  someTransactionId :: TransactionId
  someTransactionId = unsafeTransactionIdFromBytes $ unsafeDecodeBase16
      "1b68f14d03e30f43f876102a7501acb1ed549c520ab361e592a8ac6f66b66b47"
  
  -- A transaction id present in a block at the 3rd position in the first Babbage blocks.
  someThirdTransactionId :: TransactionId
  someThirdTransactionId = unsafeTransactionIdFromBytes $ unsafeDecodeBase16
      "af00d298089ae72339de549fc50bf5cb2358c8ac76a4369e381a7f1483415f5e"
  
  -- Some stake key in Shelley, present in addresses from early blocks of Shelley.
  someStakeKey :: ByteString
  someStakeKey = unsafeDecodeBase16
      "968d1021ebd7178e1fb0e79676982825cabc779b653e1234d58ce3c6"
  
  -- Some other stake key in Shelley similar to 'someStakeKey' but distinct from it.
  someOtherStakeKey :: ByteString
  someOtherStakeKey = unsafeDecodeBase16
      "f130204b518f70c19995449e3737eded3d9ffc31cb50ec0e45010ba3"
  
  -- | Some slot shortly after the start of Babbage which contains transactions with metadata.
  someSlotWithMetadata :: SlotNo
  someSlotWithMetadata = 10_620_154
  
  -- | The metadata associated with 'someSlotWithMetadata'
  someMetadata :: [MetadataHash]
  someMetadata = unsafeMetadataHashFromBytes . unsafeDecodeBase16 <$>
      [ "56ef9d2933811580c7beb451bcf69d305153644d9ba149dee95e455536ee8b8f"
      ]
  
  -- | The transaction associated with the first metadata of 'someMetadata'
  someTransactionIdWithMetadata :: TransactionId
  someTransactionIdWithMetadata = unsafeTransactionIdFromBytes $ unsafeDecodeBase16
      "77cb8608db0a84f512e277ba923341775013241401c768ba5214ad2ac004b153"
  
  -- | A transaction id of a failed (phase-2) transaction, with collateral return (in Babbage era)
  somePhase2FailedTransactionIdWithReturn :: TransactionId
  somePhase2FailedTransactionIdWithReturn = unsafeTransactionIdFromBytes $ unsafeDecodeBase16
      "b9ebe459c3ba8e890f951dacb50cba6fa02cf099c6308c7abd26cf616bf26ca5"
  
  -- | An ancestor point near 'somePhase2FailedTransactionIdWithReturn'.
  somePointNearPhase2Failure :: Point
  somePointNearPhase2Failure = pointFromRow $ Checkpoint
      { checkpointSlotNo =
          12912834
      , checkpointHeaderHash = unsafeDecodeBase16
          "0f1df0ab66fb5fa4b12409ad4abde5d7509e134442ad0d5356160650a42540d6"
      }
  