Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

InstantStake #4906

Draft
wants to merge 16 commits into
base: master
Choose a base branch
from

The whole thing is buildable

0fe28cf
Select commit
Loading
Failed to load commit list.
Draft

InstantStake #4906

The whole thing is buildable
0fe28cf
Select commit
Loading
Failed to load commit list.
IOG Hydra / ci/hydra-build:x86_64-darwin.checks.cardano-ledger-shelley-test:test:cardano-ledger-shelley-test failed Feb 22, 2025 in 26m 43s

Build failed

1 failed steps

Details

Failed Steps

Step 1

Derivation

/nix/store/w42r6a0yq135b2gdrmswsfxq8qxsjaam-cardano-ledger-shelley-test-test-cardano-ledger-shelley-test-1.6.0.0-check.drv

Log

Running phase: unpackPhase
unpacking source archive /nix/store/4c8mfcvrpadxjzhzf6nkz1hj96h5swpf-source-eras-shelley-test-suite-test-cardano-ledger-shelley-test-root
source root is source-eras-shelley-test-suite-test-cardano-ledger-shelley-test-root
Running phase: patchPhase
Running phase: buildPhase
/nix/store/h3cnb3ysfahv3wi8j889ppcb8fan827g-cardano-ledger-shelley-test-test-cardano-ledger-shelley-test-1.6.0.0/bin:
patching script interpreter paths in /private/tmp/nix-build-cardano-ledger-shelley-test-test-cardano-ledger-shelley-test-1.6.0.0-check.drv-0/tmp.TwabyWtxP7/bin
Shelley tests
  Deposit Invariants
    Non negative deposits:                                                   OK (8.80s)
      +++ OK, passed 100 tests.
    Deposits = KeyDeposits + PoolDeposits:                                   OK (8.69s)
      +++ OK, passed 100 tests.
    Reward domain = Deposit domain:                                          OK (8.02s)
      +++ OK, passed 100 tests.
  Chain and Ledger traces cover the relevant cases:                          OK (99.49s)
    +++ OK, passed 100 tests:
    99% at least 10% of TxOuts are scripts
    99% there is at least 1 Delegation certificate for every 10 transactions
    99% there is at least 1 Genesis Delegation certificate for every 20 transactions
    99% there is at least 1 RegKey certificate for every 10 transactions
    99% there is at least 1 RegPool certificate for every 10 transactions
    99% there is at least 1 certificate for every 2 transactions
    98% at least 1 in 10 transactions have a reward withdrawal
    98% at least 1 in 20 transactions have metadata
    98% at least 1 in 20 transactions have non-trivial protocol param updates
    97% at least 10% of `ShelleyTxCertDeleg` certificates have script credentials
    97% there is at least 1 DeRegKey certificate for every 20 transactions
    91% there is at least 1 RetirePool certificate for every 10 transactions
    76% there is at least 1 MIR certificate (spending Reserves) for every 60 transactions
    74% there is at least 1 MIR certificate (spending Treasury) for every 60 transactions
    49% at least 5 epochs in a trace, 20% of the time
  total amount of Ada is preserved (Chain):                                  OK (550.35s)
    +++ OK, passed 100 tests.
  Only valid CHAIN STS signals are generated:                                OK (104.84s)
    +++ OK, passed 100 tests; 1 discarded.
  WitVKey does not brake containers due to invalid Ord:                      OK
    +++ OK, passed 100 tests.
  Reward Tests
    Sum of rewards is bounded by reward pot:                                 OK (29.48s)
      +++ OK, passed 500 tests.
    compare with reference impl, no provenance, v3:                          OK (248.67s)
      +++ OK, passed 100 tests.
    compare with reference impl, no provenance, v7:                          OK (234.59s)
      +++ OK, passed 100 tests.
    compare with reference impl, with provenance:                            OK (256.20s)
      +++ OK, passed 100 tests.
    delta events mirror reward updates:                                      OK (23.35s)
      +++ OK, passed 10 tests.
  Serialisation tests
    Address golden tests
      MockCrypto golden tests
        keyHash:                                                             OK
        scriptHash:                                                          OK
        ptr:                                                                 OK
        addrBaseKK:                                                          OK
        addrBaseSK:                                                          OK
        addrBaseKS:                                                          OK
        addrBaseSS:                                                          OK
        addrPtrK:                                                            OK
        addrPtrS:                                                            OK
        addrEnterpriseK:                                                     OK
        addrEnterpriseS:                                                     OK
        rewardAcntK:                                                         OK
        rewardAcntS:                                                         OK
      ShelleyCrypto golden tests
        addrEnterpriseK for network id = 0:                                  OK
        addrBaseKK for network id = 0:                                       OK
        addrPtrK for network id = 0:                                         OK
        addrEnterpriseK for network id = 1:                                  OK
        addrBaseKK for network id = 1:                                       OK
        addrPtrK for network id = 1:                                         OK
        rewardAcntK:                                                         OK
        bootstrapAddr for network id = 1:                                    OK
    CBOR Serialization Tests (Encoding)
      golden_serialize_list (Byron):                                         OK
      golden_serialize_list (Shelley):                                       OK
      golden_serialize_set (Byron):                                          OK
      golden_serialize_set (Shelley):                                        OK
      golden_serialize_map:                                                  OK
      golden_serialize_coin:                                                 OK
      golden_serialize_rational:                                             OK
      golden_serialize_slot:                                                 OK
      golden_serialize_neutral_nonce:                                        OK
      golden_serialize_nonce:                                                OK
      golden_serialize_key_hash:                                             OK
      golden_serialize_credential_key_hash:                                  OK
      golden_serialize_txin:                                                 OK
      golden_serialize_txout:                                                OK
      with and without Annotator
        golden_serialize_vkey_witnesses:                                     OK
        golden_serialize_vkey_witnesses:                                     OK
      golden_serialize_script_hash_to_scripts:                               OK
      golden_serialize_withdrawal:                                           OK
      golden_serialize_withdrawal:                                           OK
      golden_serialize_register_stake_reference:                             OK
      golden_serialize_deregister_stake_reference:                           OK
      golden_serialize_stake_delegation:                                     OK
      golden_serialize_register_pool:                                        OK
      golden_serialize_retire_pool:                                          OK
      golden_serialize_genesis_delegation:                                   OK
      golden_serialize_mir:                                                  OK
      golden_serialize_pparams_update_key_deposit_only:                      OK
      golden_serialize_pparams_update_all:                                   OK
      golden_serialize_full_update:                                          OK
      with and without Annotator
        golden_serialize_txbody:                                             OK
        golden_serialize_txbody:                                             OK
      with and without Annotator
        golden_serialize_txbody_partial:                                     OK
        golden_serialize_txbody_partial:                                     OK
      with and without Annotator
        golden_serialize_txbody_full:                                        OK
        golden_serialize_txbody_full:                                        OK
      with and without Annotator
        golden_serialize_tx_min:                                             OK
        golden_serialize_tx_min:                                             OK
      with and without Annotator
        golden_serialize_tx_full:                                            OK
        golden_serialize_tx_full:                                            OK
      golden_serialize_block_header_body:                                    OK
      golden_serialize_operational_cert:                                     OK
      with and without Annotator
        golden_serialize_block_header:                                       OK
        golden_serialize_block_header:                                       OK
      with and without Annotator
        golden_serialize_empty_block:                                        OK
        golden_serialize_empty_block:                                        OK
      with and without Annotator
        golden_serialize_rich_block:                                         OK
        golden_serialize_rich_block:                                         OK
      ledger state golden test:                                              OK
    Shelley Genesis golden tests
      ShelleyGenesis JSON golden test:                                       OK
      ShelleyGenesis CBOR golden test:                                       OK
    Serialisation roundtrip Property Tests
      Block (Annotator):                                                     OK (10.24s)
        +++ OK, passed 100 tests.
      Block:                                                                 OK (8.39s)
        +++ OK, passed 100 tests.
      LEDGER Predicate Failures:                                             OK (1.68s)
        +++ OK, passed 100 tests.
      Core Types
        Header (Annotator):                                                  OK (0.74s)
          +++ OK, passed 100 tests.
        Header:                                                              OK (0.75s)
          +++ OK, passed 100 tests.
        Block Header Hash:                                                   OK
          +++ OK, passed 100 tests.
        Protocol State:                                                      OK (0.05s)
          +++ OK, passed 100 tests.
    Shelley Genesis
      Genesis roundtrip:                                                     OK (1.96s)
        +++ OK, passed 100 tests.
      Coin roundtrip:                                                        OK
        +++ OK, passed 100 tests.
      Address roundtrip:                                                     OK
        +++ OK, passed 100 tests.
      Genesis KeyHash :                                                      OK
        +++ OK, passed 100 tests.
      GenDelegPair roundtrip:                                                OK
        +++ OK, passed 100 tests.
  CHAIN examples
    empty block:                                                             OK
    pool lifetime
      initial registrations:                                                 OK
      delegate stake and create reward update:                               OK
      new epoch changes:                                                     OK
      second reward update:                                                  OK
      nonempty pool distr:                                                   OK
      decentralized block:                                                   OK
      prelude to the first nontrivial rewards:                               OK
      create a nontrivial rewards:                                           OK
      apply a nontrivial rewards:                                            OK
      drain reward account and deregister:                                   OK
      stage stake pool retirement:                                           OK
      reap stake pool:                                                       OK
    two pools
      create non-aggregated pulser:                                          OK
      non-aggregated pulser is correct:                                      OK
      aggregated pulser is correct:                                          OK
      create aggregated pulser:                                              OK
      create legacy aggregatedRewards:                                       OK
      create new aggregatedRewards:                                          OK
    pool rereg
      initial pool registration:                                             OK
      early epoch re-registration:                                           OK
      late epoch re-registration:                                            OK
      adopt new pool parameters:                                             OK
    protocol parameter updates
      get 3/7 votes for a pparam update:                                     OK
      get 5/7 votes for a pparam update:                                     OK
      votes for the next epoch:                                              OK
      processes a pparam update:                                             OK
    genesis delegation
      stage genesis key delegation:                                          OK
      adopt genesis key delegation:                                          OK
    move inst rewards
      create MIR cert - reserves:                                            OK
      create MIR cert - treasury:                                            OK
      insufficient MIR witnesses, reserves:                                  OK
      insufficient MIR witnesses, treasury:                                  OK
      insufficient MIR funds, reserves:                                      OK
      insufficient MIR funds, treasury:                                      OK
      end of epoch after MIR - reserves:                                     OK
      end of epoch after MIR - treasury:                                     OK
      apply MIR - reserves:                                                  FAIL
        test/Test/Cardano/Ledger/Shelley/Examples/Mir.hs:333:
        Check trace with (.->>) fails
          ChainState {
            chainNes = NewEpochState {
              nesEL = EpochNo 1,
              nesBprev = BlocksMade (Map.fromList []),
              nesBcur = BlocksMade (Map.fromList []),
              nesEs = EpochState {
                esAccountState = AccountState {
                  asTreasury = Coin 1000,
                  asReserves = Coin 33999999999998900},
                esLState = LedgerState {
                  lsUTxOState = UTxOState {
                    utxosUtxo = UTxO
                      (Map.fromList
                        [
                          _×_
                            (TxIn
                              (TxId
                                (SafeHash
                                  "03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314"))
                              (TxIx 1))
                            (ShelleyTxOut
                              (Addr
                                Testnet
                                (KeyHashObj
                                  (KeyHash
                                    "733aea10df2a2bb1d3019a7337b240ad64a174c919fc034fb372fdc9"))
                                (StakeRefBase
                                  (KeyHashObj
                                    (KeyHash
                                      "7ec0f833987c8ce3843573b1cd0d139f83e7efe18d81c473e4231405"))))
                              (Coin 1000000000000000)),
                          _×_
                            (TxIn
                              (TxId
                                (SafeHash
                                  "68670df66f55d0ba03208bbc40960a1af19631132d29b43cc12a069ad4ac484a"))
                              (TxIx 0))
                            (ShelleyTxOut
                              (Addr
                                Testnet
                                (KeyHashObj
                                  (KeyHash
                                    "e9686d801fa32aeb4390c2f2a53bb0314a9c744c46a2cada394a371f"))
                                (StakeRefBase
                                  (KeyHashObj
                                    (KeyHash
                                      "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))))
                              (Coin 9999999999999992))]),
                    utxosDeposited = Coin 7,
                    utxosFees = Coin 1,
                    utxosGovState = ShelleyGovState {
                      sgsCurProposals = ProposedPPUpdates (Map.fromList []),
                      sgsFutureProposals = ProposedPPUpdates (Map.fromList []),
                      sgsCurPParams = ShelleyPParams {
                        sppMinFeeA = Coin 0,
                        sppMinFeeB = Coin 0,
                        sppMaxBBSize = 50000,
                        sppMaxTxSize = 10000,
                        sppMaxBHSize = 10000,
                        sppKeyDeposit = Coin 7,
                        sppPoolDeposit = Coin 250,
                        sppEMax = EpochInterval 10000,
                        sppNOpt = 100,
                        sppA0 = _%_ 0 1,
                        sppRho = _%_ 21 10000,
                        sppTau = _%_ 1 5,
                        sppD = _%_ 1 2,
                        sppExtraEntropy = NeutralNonce,
                        sppProtocolVersion = ProtVer {pvMajor = Version 2, pvMinor = 0},
                        sppMinUTxOValue = Coin 100,
                        sppMinPoolCost = Coin 0},
                      sgsPrevPParams = ShelleyPParams {
                        sppMinFeeA = Coin 0,
                        sppMinFeeB = Coin 0,
                        sppMaxBBSize = 50000,
                        sppMaxTxSize = 10000,
                        sppMaxBHSize = 10000,
                        sppKeyDeposit = Coin 7,
                        sppPoolDeposit = Coin 250,
                        sppEMax = EpochInterval 10000,
                        sppNOpt = 100,
                        sppA0 = _%_ 0 1,
                        sppRho = _%_ 21 10000,
                        sppTau = _%_ 1 5,
                        sppD = _%_ 1 2,
                        sppExtraEntropy = NeutralNonce,
                        sppProtocolVersion = ProtVer {pvMajor = Version 2, pvMinor = 0},
                        sppMinUTxOValue = Coin 100,
                        sppMinPoolCost = Coin 0},
                      sgsFuturePParams = PotentialPParamsUpdate Nothing},
                    utxosInstantStake = ShelleyInstantStake {
                      sisCredentialStake = Map.fromList
                        [
                          _×_
                            (KeyHashObj
                              (KeyHash
                                "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))
                            (Coin 9999999999999992),
                          _×_
                            (KeyHashObj
                              (KeyHash
                                "7ec0f833987c8ce3843573b1cd0d139f83e7efe18d81c473e4231405"))
                            (Coin 1000000000000000)],
                      sisPtrStake = Map.fromList []},
                    utxosDonation = Coin 0},
                  lsCertState = ShelleyCertState {
                    shelleyCertVState = VState {
                      vsDReps = Map.fromList [],
                      vsCommitteeState = CommitteeState (Map.fromList []),
                      vsNumDormantEpochs = EpochNo 0},
                    shelleyCertPState = PState {
                      psStakePoolParams = Map.fromList [],
                      psFutureStakePoolParams = Map.fromList [],
                      psRetiring = Map.fromList [],
                      psDeposits = Map.fromList []},
                    shelleyCertDState = DState {
                      dsUnified = UMap {
                        umElems = Map.fromList
                          [
                            _×_
                              (KeyHashObj
                                (KeyHash
                                  "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))
                              (TFFEE
                                RDPair {rdReward = Coin 100, rdDeposit = Coin 7}
                                (Set.fromList [Ptr 10 (TxIx 0) (CertIx 1)]))],
                        umPtrs = Map.fromList
                          [
                            _×_
                              (Ptr 10 (TxIx 0) (CertIx 1))
                              (KeyHashObj
                                (KeyHash
                                  "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))]},
                      dsFutureGenDelegs = Map.fromList [],
                      dsGenDelegs = GenDelegs
                        (Map.fromList
                          [
                            _×_
                              (KeyHash
                                "0a6225d0d6ffe9fe1b02aff1e4adfe64b3da0a5c0ddaf296070a2452")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "467a66200ffc8ac8a81f745072c9777a72b719c9f5700c910daa8708",
                                genDelegVrfHash = VRFVerKeyHash
                                  "6c80bdb6b32ec9c928343647d8db55ee2ced499ceaf1c4217dcd0af9787facfa"},
                            _×_
                              (KeyHash
                                "1d8c963c8e59d5aad4d67bdfab426b5406cecf673f42d513d6f41ef9")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "fd1f2340be2773c348f6af2aaaf222e44f4214d40acd8f6095e60193",
                                genDelegVrfHash = VRFVerKeyHash
                                  "dfec18688a231f71641d9a3cba9fd8ed50945f540a71398d54ab142a4d7de22e"},
                            _×_
                              (KeyHash
                                "4518f73085f875053f5e0cea73a16908c0dd5c5c8de99f59a26b244d")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "d2f63f5bd5fd024047ace2c0ce29b9f1a1f25a0ed51167c6e5201f24",
                                genDelegVrfHash = VRFVerKeyHash
                                  "aff8611f9d1a12059a5427aeeff5c7c7d4d16a999a653b8c47c5bed094d9b738"},
                            _×_
                              (KeyHash
                                "67532b4ccbda57904308a4d84cee40c3f06bbdbba3809f509262a182")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "9e2824776c1c532271d73ee36c7a4035f47c24a93d6eeeb61d477ec2",
                                genDelegVrfHash = VRFVerKeyHash
                                  "10ceb136a9fc5d3ee9b2182f8cc3718e0832e442285a0bd33e7d88393e99908e"},
                            _×_
                              (KeyHash
                                "6e293605f5e3d13825837aa4258711997b9f1a6c3975a724b3b97582")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "5e7c1fc4bda44efdbb0c90d3b30b8552fdc967a5763b79ced56db579",
                                genDelegVrfHash = VRFVerKeyHash
                                  "1af70896db71282ad090c1ee61c021079f70b924928a5e463edf5667c6d88a5d"},
                            _×_
                              (KeyHash
                                "96bad2f4017c4d03cb2abf46f1c00c13639d4e5c69173612af86b1ce")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "78e051bf88ab63cfd6a9e030a72a7652d36390ee905e265777caab32",
                                genDelegVrfHash = VRFVerKeyHash
                                  "db231499d1fdd8ed6ffba950d1efd8677b8d2ed6f586254fd875230c9f78b7df"},
                            _×_
                              (KeyHash
                                "b3d9329a57721a7c8341733b197cf87bca93e1e4eaf41077b652fc8a")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "b48819abbdcd67b3f7045dc2ad6ef54f8c99705e4259570dba4ed6fe",
                                genDelegVrfHash = VRFVerKeyHash
                                  "b292e74b1b284645349f8c926cf195c3485d09c33fb95866c30fa904ec088aa5"}]),
                      dsIRewards = InstantaneousRewards {
                        iRReserves = Map.fromList [],
                        iRTreasury = Map.fromList [],
                        deltaReserves = DeltaCoin 0,
                        deltaTreasury = DeltaCoin 0}}}},
                esSnapshots = SnapShots {
                  ssStakeMark = SnapShot {
                    ssStake = Map.fromList
                      [
                        +_×_
                          (KeyHashObj
                            (KeyHash
                              "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))
                          (Coin 9999999999999992)],
                    ssDelegations = Map.fromList [],
                    ssPoolParams = Map.fromList []},
                  ssStakeMarkPoolDistr = PoolDistr {
                    unPoolDistr = Map.fromList [],
                    pdTotalActiveStake = Coin -1 +9999999999999992},
                  ssStakeSet = SnapShot {
                    ssStake = Map.fromList [],
                    ssDelegations = Map.fromList [],
                    ssPoolParams = Map.fromList []},
                  ssStakeGo = SnapShot {
                    ssStake = Map.fromList [],
                    ssDelegations = Map.fromList [],
                    ssPoolParams = Map.fromList []},
                  ssFee = Coin 1},
                esNonMyopic = NonMyopic {
                  likelihoodsNM = Map.fromList [],
                  rewardPotNM = Coin 0}},
              nesRu = SNothing,
              nesPd = PoolDistr {
                unPoolDistr = Map.fromList [],
                pdTotalActiveStake = Coin 0},
              stashedAVVMAddresses = UTxO (Map.fromList [])},
            chainOCertIssue = Map.fromList
              [
                _×_
                  (KeyHash "467a66200ffc8ac8a81f745072c9777a72b719c9f5700c910daa8708")
                  0,
                _×_
                  (KeyHash "5e7c1fc4bda44efdbb0c90d3b30b8552fdc967a5763b79ced56db579")
                  0,
                _×_
                  (KeyHash "78e051bf88ab63cfd6a9e030a72a7652d36390ee905e265777caab32")
                  0,
                _×_
                  (KeyHash "9e2824776c1c532271d73ee36c7a4035f47c24a93d6eeeb61d477ec2")
                  0,
                _×_
                  (KeyHash "b48819abbdcd67b3f7045dc2ad6ef54f8c99705e4259570dba4ed6fe")
                  0,
                _×_
                  (KeyHash "d2f63f5bd5fd024047ace2c0ce29b9f1a1f25a0ed51167c6e5201f24")
                  0,
                _×_
                  (KeyHash "fd1f2340be2773c348f6af2aaaf222e44f4214d40acd8f6095e60193")
                  0],
            chainEpochNonce = Nonce
              "848f78ab80f57d31d0b9b02279eca1b0d1fcb2e1ec0f581df251b9f63f75e7ba",
            chainEvolvingNonce = Nonce
              "597937b2f6f3293948367cb692402891e050d2a6af2c831153577afafbaee309",
            chainCandidateNonce = Nonce
              "597937b2f6f3293948367cb692402891e050d2a6af2c831153577afafbaee309",
            chainPrevEpochNonce = Nonce
              "aa3bb5645e71e17b9857f26fbb5ff7ee4167b628fb37c7f6145c5c88657e5059",
            chainLastAppliedBlock = At
              LastAppliedBlock {
                labBlockNo = BlockNo 3,
                labSlotNo = SlotNo 110,
                labHash =
                `HashHeader {unHashHeader = "3bc474d6e7f722f99f059fca56e25bb79ef2e01dd10ec09438e8e924a135c555"}`}}
        Use -p '/apply MIR - reserves/' to rerun this test only.
      apply MIR - treasury:                                                  FAIL
        test/Test/Cardano/Ledger/Shelley/Examples/Mir.hs:334:
        Check trace with (.->>) fails
          ChainState {
            chainNes = NewEpochState {
              nesEL = EpochNo 1,
              nesBprev = BlocksMade (Map.fromList []),
              nesBcur = BlocksMade (Map.fromList []),
              nesEs = EpochState {
                esAccountState = AccountState {
                  asTreasury = Coin 900,
                  asReserves = Coin 33999999999999000},
                esLState = LedgerState {
                  lsUTxOState = UTxOState {
                    utxosUtxo = UTxO
                      (Map.fromList
                        [
                          _×_
                            (TxIn
                              (TxId
                                (SafeHash
                                  "03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314"))
                              (TxIx 1))
                            (ShelleyTxOut
                              (Addr
                                Testnet
                                (KeyHashObj
                                  (KeyHash
                                    "733aea10df2a2bb1d3019a7337b240ad64a174c919fc034fb372fdc9"))
                                (StakeRefBase
                                  (KeyHashObj
                                    (KeyHash
                                      "7ec0f833987c8ce3843573b1cd0d139f83e7efe18d81c473e4231405"))))
                              (Coin 1000000000000000)),
                          _×_
                            (TxIn
                              (TxId
                                (SafeHash
                                  "e95bc61e91a2b2352d72c1e417057e16562d65071a14634df4d484e5daec8716"))
                              (TxIx 0))
                            (ShelleyTxOut
                              (Addr
                                Testnet
                                (KeyHashObj
                                  (KeyHash
                                    "e9686d801fa32aeb4390c2f2a53bb0314a9c744c46a2cada394a371f"))
                                (StakeRefBase
                                  (KeyHashObj
                                    (KeyHash
                                      "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))))
                              (Coin 9999999999999992))]),
                    utxosDeposited = Coin 7,
                    utxosFees = Coin 1,
                    utxosGovState = ShelleyGovState {
                      sgsCurProposals = ProposedPPUpdates (Map.fromList []),
                      sgsFutureProposals = ProposedPPUpdates (Map.fromList []),
                      sgsCurPParams = ShelleyPParams {
                        sppMinFeeA = Coin 0,
                        sppMinFeeB = Coin 0,
                        sppMaxBBSize = 50000,
                        sppMaxTxSize = 10000,
                        sppMaxBHSize = 10000,
                        sppKeyDeposit = Coin 7,
                        sppPoolDeposit = Coin 250,
                        sppEMax = EpochInterval 10000,
                        sppNOpt = 100,
                        sppA0 = _%_ 0 1,
                        sppRho = _%_ 21 10000,
                        sppTau = _%_ 1 5,
                        sppD = _%_ 1 2,
                        sppExtraEntropy = NeutralNonce,
                        sppProtocolVersion = ProtVer {pvMajor = Version 2, pvMinor = 0},
                        sppMinUTxOValue = Coin 100,
                        sppMinPoolCost = Coin 0},
                      sgsPrevPParams = ShelleyPParams {
                        sppMinFeeA = Coin 0,
                        sppMinFeeB = Coin 0,
                        sppMaxBBSize = 50000,
                        sppMaxTxSize = 10000,
                        sppMaxBHSize = 10000,
                        sppKeyDeposit = Coin 7,
                        sppPoolDeposit = Coin 250,
                        sppEMax = EpochInterval 10000,
                        sppNOpt = 100,
                        sppA0 = _%_ 0 1,
                        sppRho = _%_ 21 10000,
                        sppTau = _%_ 1 5,
                        sppD = _%_ 1 2,
                        sppExtraEntropy = NeutralNonce,
                        sppProtocolVersion = ProtVer {pvMajor = Version 2, pvMinor = 0},
                        sppMinUTxOValue = Coin 100,
                        sppMinPoolCost = Coin 0},
                      sgsFuturePParams = PotentialPParamsUpdate Nothing},
                    utxosInstantStake = ShelleyInstantStake {
                      sisCredentialStake = Map.fromList
                        [
                          _×_
                            (KeyHashObj
                              (KeyHash
                                "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))
                            (Coin 9999999999999992),
                          _×_
                            (KeyHashObj
                              (KeyHash
                                "7ec0f833987c8ce3843573b1cd0d139f83e7efe18d81c473e4231405"))
                            (Coin 1000000000000000)],
                      sisPtrStake = Map.fromList []},
                    utxosDonation = Coin 0},
                  lsCertState = ShelleyCertState {
                    shelleyCertVState = VState {
                      vsDReps = Map.fromList [],
                      vsCommitteeState = CommitteeState (Map.fromList []),
                      vsNumDormantEpochs = EpochNo 0},
                    shelleyCertPState = PState {
                      psStakePoolParams = Map.fromList [],
                      psFutureStakePoolParams = Map.fromList [],
                      psRetiring = Map.fromList [],
                      psDeposits = Map.fromList []},
                    shelleyCertDState = DState {
                      dsUnified = UMap {
                        umElems = Map.fromList
                          [
                            _×_
                              (KeyHashObj
                                (KeyHash
                                  "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))
                              (TFFEE
                                RDPair {rdReward = Coin 100, rdDeposit = Coin 7}
                                (Set.fromList [Ptr 10 (TxIx 0) (CertIx 1)]))],
                        umPtrs = Map.fromList
                          [
                            _×_
                              (Ptr 10 (TxIx 0) (CertIx 1))
                              (KeyHashObj
                                (KeyHash
                                  "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))]},
                      dsFutureGenDelegs = Map.fromList [],
                      dsGenDelegs = GenDelegs
                        (Map.fromList
                          [
                            _×_
                              (KeyHash
                                "0a6225d0d6ffe9fe1b02aff1e4adfe64b3da0a5c0ddaf296070a2452")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "467a66200ffc8ac8a81f745072c9777a72b719c9f5700c910daa8708",
                                genDelegVrfHash = VRFVerKeyHash
                                  "6c80bdb6b32ec9c928343647d8db55ee2ced499ceaf1c4217dcd0af9787facfa"},
                            _×_
                              (KeyHash
                                "1d8c963c8e59d5aad4d67bdfab426b5406cecf673f42d513d6f41ef9")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "fd1f2340be2773c348f6af2aaaf222e44f4214d40acd8f6095e60193",
                                genDelegVrfHash = VRFVerKeyHash
                                  "dfec18688a231f71641d9a3cba9fd8ed50945f540a71398d54ab142a4d7de22e"},
                            _×_
                              (KeyHash
                                "4518f73085f875053f5e0cea73a16908c0dd5c5c8de99f59a26b244d")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "d2f63f5bd5fd024047ace2c0ce29b9f1a1f25a0ed51167c6e5201f24",
                                genDelegVrfHash = VRFVerKeyHash
                                  "aff8611f9d1a12059a5427aeeff5c7c7d4d16a999a653b8c47c5bed094d9b738"},
                            _×_
                              (KeyHash
                                "67532b4ccbda57904308a4d84cee40c3f06bbdbba3809f509262a182")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "9e2824776c1c532271d73ee36c7a4035f47c24a93d6eeeb61d477ec2",
                                genDelegVrfHash = VRFVerKeyHash
                                  "10ceb136a9fc5d3ee9b2182f8cc3718e0832e442285a0bd33e7d88393e99908e"},
                            _×_
                              (KeyHash
                                "6e293605f5e3d13825837aa4258711997b9f1a6c3975a724b3b97582")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "5e7c1fc4bda44efdbb0c90d3b30b8552fdc967a5763b79ced56db579",
                                genDelegVrfHash = VRFVerKeyHash
                                  "1af70896db71282ad090c1ee61c021079f70b924928a5e463edf5667c6d88a5d"},
                            _×_
                              (KeyHash
                                "96bad2f4017c4d03cb2abf46f1c00c13639d4e5c69173612af86b1ce")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "78e051bf88ab63cfd6a9e030a72a7652d36390ee905e265777caab32",
                                genDelegVrfHash = VRFVerKeyHash
                                  "db231499d1fdd8ed6ffba950d1efd8677b8d2ed6f586254fd875230c9f78b7df"},
                            _×_
                              (KeyHash
                                "b3d9329a57721a7c8341733b197cf87bca93e1e4eaf41077b652fc8a")
                              GenDelegPair {
                                genDelegKeyHash = KeyHash
                                  "b48819abbdcd67b3f7045dc2ad6ef54f8c99705e4259570dba4ed6fe",
                                genDelegVrfHash = VRFVerKeyHash
                                  "b292e74b1b284645349f8c926cf195c3485d09c33fb95866c30fa904ec088aa5"}]),
                      dsIRewards = InstantaneousRewards {
                        iRReserves = Map.fromList [],
                        iRTreasury = Map.fromList [],
                        deltaReserves = DeltaCoin 0,
                        deltaTreasury = DeltaCoin 0}}}},
                esSnapshots = SnapShots {
                  ssStakeMark = SnapShot {
                    ssStake = Map.fromList
                      [
                        +_×_
                          (KeyHashObj
                            (KeyHash
                              "4e88cc2d27c364aaf90648a87dfb95f8ee103ba67fa1f12f5e86c42a"))
                          (Coin 9999999999999992)],
                    ssDelegations = Map.fromList [],
                    ssPoolParams = Map.fromList []},
                  ssStakeMarkPoolDistr = PoolDistr {
                    unPoolDistr = Map.fromList [],
                    pdTotalActiveStake = Coin -1 +9999999999999992},
                  ssStakeSet = SnapShot {
                    ssStake = Map.fromList [],
                    ssDelegations = Map.fromList [],
                    ssPoolParams = Map.fromList []},
                  ssStakeGo = SnapShot {
                    ssStake = Map.fromList [],
                    ssDelegations = Map.fromList [],
                    ssPoolParams = Map.fromList []},
                  ssFee = Coin 1},
                esNonMyopic = NonMyopic {
                  likelihoodsNM = Map.fromList [],
                  rewardPotNM = Coin 0}},
              nesRu = SNothing,
              nesPd = PoolDistr {
                unPoolDistr = Map.fromList [],
                pdTotalActiveStake = Coin 0},
              stashedAVVMAddresses = UTxO (Map.fromList [])},
            chainOCertIssue = Map.fromList
              [
                _×_
                  (KeyHash "467a66200ffc8ac8a81f745072c9777a72b719c9f5700c910daa8708")
                  0,
                _×_
                  (KeyHash "5e7c1fc4bda44efdbb0c90d3b30b8552fdc967a5763b79ced56db579")
                  0,
                _×_
                  (KeyHash "78e051bf88ab63cfd6a9e030a72a7652d36390ee905e265777caab32")
                  0,
                _×_
                  (KeyHash "9e2824776c1c532271d73ee36c7a4035f47c24a93d6eeeb61d477ec2")
                  0,
                _×_
                  (KeyHash "b48819abbdcd67b3f7045dc2ad6ef54f8c99705e4259570dba4ed6fe")
                  0,
                _×_
                  (KeyHash "d2f63f5bd5fd024047ace2c0ce29b9f1a1f25a0ed51167c6e5201f24")
                  0,
                _×_
                  (KeyHash "fd1f2340be2773c348f6af2aaaf222e44f4214d40acd8f6095e60193")
                  0],
            chainEpochNonce = Nonce
              "848f78ab80f57d31d0b9b02279eca1b0d1fcb2e1ec0f581df251b9f63f75e7ba",
            chainEvolvingNonce = Nonce
              "597937b2f6f3293948367cb692402891e050d2a6af2c831153577afafbaee309",
            chainCandidateNonce = Nonce
              "597937b2f6f3293948367cb692402891e050d2a6af2c831153577afafbaee309",
            chainPrevEpochNonce = Nonce
              "edd7d8c5163207bbc67857820b93761b36847e8cdad16e71d0bcc263754c3968",
            chainLastAppliedBlock = At
              LastAppliedBlock {
                labBlockNo = BlockNo 3,
                labSlotNo = SlotNo 110,
                labHash =
                `HashHeader {unHashHeader = "89ca408821eea42ffb259b2ab891e5082c761495028aafa62391cd11a4a691d7"}`}}
        Use -p '/apply MIR - treasury/' to rerun this test only.
    MIR cert transfers
      MIR cert embargos
        embargo reserves to treasury transfer:                               OK
        embargo treasury to reserves transfer:                               OK
        embargo decrements from reserves:                                    OK
        embargo decrements from treasury:                                    OK
      MIR cert alonzo
        increment reserves too much:                                         OK
        increment treasury too much:                                         OK
        increment reserves too much with delta:                              OK
        increment treasury too much with delta:                              OK
        negative balance in reserves mapping:                                OK
        negative balance in treasury mapping:                                OK
        transfer reserves to treasury:                                       OK
        transfer treasury to reserves:                                       OK
        insufficient transfer reserves to treasury:                          OK
        insufficient transfer treasury to reserves:                          OK
        increment reserves mapping:                                          OK
        increment treasury mapping:                                          OK
    Network IDs
      Incorrect Network ID is allowed pre-Alonzo:                            OK
      Incorrect Network ID is NOT allowed in Alonzo:                         OK
      Correct Network ID is allowed pre-Alonzo:                              OK
      Correct Network ID is allowed in Alonzo:                               OK
  MultiSig Examples
    Alice uses SingleSig script:                                             OK
    FAIL: Alice doesn't sign in multi-sig:                                   OK
    Everybody signs in multi-sig:                                            OK
    Alice || Bob, Alice signs:                                               OK
    Alice || Bob, Bob signs:                                                 OK
    Alice && Bob, both sign:                                                 OK
    FAIL: Alice && Bob, Alice signs:                                         OK
    FAIL: Alice && Bob, Bob signs:                                           OK
    Alice && Bob || Carl, Alice && Bob sign:                                 OK
    Alice && Bob || Carl, Carl signs:                                        OK
    Alice && Bob || Carl && Daria, Alice && Bob sign:                        OK
    Alice && Bob || Carl && Daria, Carl && Daria sign:                       OK
    Alice && Bob || Carl || Daria, Alice && Bob sign:                        OK
    Alice && Bob || Carl || Daria, Carl signs:                               OK
    Alice && Bob || Carl || Daria, Daria signs:                              OK
    two scripts: Alice Or Bob / alice And Bob Or Carl:                       OK
    FAIL: two scripts: Alice Or Bob / alice And Bob Or Carl:                 OK
    script and Key: Alice And Bob and alicePay:                              OK
    FAIL: script and Key: Alice And Bob and alicePay:                        OK
    script and Key: Alice Or Bob and alicePay, only Alice:                   OK
    script and Key: Alice And Bob Or Carl and alicePay, Alice and Carl sign: OK
    withdraw from script locked account, same script:                        OK
    FAIL: withdraw from script locked account:                               OK
    withdraw from script locked account, different script:                   OK
    FAIL: withdraw from script locked account, signed, missing script:       OK
  TICKF properties:                                                          OK (3.03s)
    +++ OK, passed 100 tests; 45 discarded.
  Unit Tests
    Tests with invalid transactions in ledger
      Invalid Ledger - Alice tries to spend a nonexistent input:             OK
      Invalid Ledger - Alice does not include a witness:                     OK
      Invalid Ledger - Alice tries to spend Bob's UTxO:                      OK
      Invalid Ledger - Alice provides witness of wrong UTxO:                 OK
      Invalid Ledger - Alice's transaction does not consume input:           OK
      Invalid Ledger - Alice's fee is too small:                             OK
      Invalid Ledger - Alice's transaction has expired:                      OK
      Invalid Ledger - Invalid witnesses:                                    OK
      Invalid Ledger - No withdrawal witness:                                OK
      Invalid Ledger - Incorrect withdrawal amount:                          OK
      Invalid Ledger - OutputTooSmall:                                       OK
      Invalid Ledger - PoolCostTooSmall:                                     OK
      Invalid Ledger - ProducedOverMaxWord64:                                OK
    Test the protocol parameters.
      VRF checks when the activeSlotCoeff is one:                            OK
    Fee Tests
      simple utxo:                                                           OK
      multiple utxo:                                                         OK
      register stake key:                                                    OK
      delegate stake key:                                                    OK
      deregister stake key:                                                  OK
      register stake pool:                                                   OK
      retire stake pool:                                                     OK
      auxiliaryData:                                                         OK
      multisig:                                                              OK
      reward withdrawal:                                                     OK
      estimate transaction fee:                                              OK
    Test checkLeaderVal calculation
      With a stake of 0, cannot lead:                                        OK
        +++ OK, passed 100 tests.
      With a maximal VRF, cannot lead:                                       OK (0.01s)
        +++ OK, passed 100 tests.
      checkLeaderVal succeeds iff l < 1 - (1-f)^r:                           OK (0.01s)
        +++ OK, passed 100 tests.
      We are elected as leader proportional to our stake:                    OK (0.01s)
        +++ OK, passed 1 test.
  SafeHash
    StandardCrypto
      short==long:                                                           OK
      newtype==underlyingtype:                                               OK

2 out of 211 tests failed (1599.47s)