@@ -88,6 +88,9 @@ instance
8888 HasDeposits-EpochState : HasDeposits EpochState
8989 HasDeposits-EpochState .DepositsOf = DepositsOf ∘ LStateOf
9090
91+ HasDReps-EpochState : HasDReps EpochState
92+ HasDReps-EpochState .DRepsOf = DRepsOf ∘ CertStateOf ∘ LStateOf
93+
9194 HasTreasury-EpochState : HasTreasury EpochState
9295 HasTreasury-EpochState .TreasuryOf = Acnt.treasury ∘ EpochState.acnt
9396
@@ -445,46 +448,48 @@ each governance action, maps its `returnAddr` (as a staking
445448credential) to the deposit.
446449
447450``` agda
448- calculateVDelegDelegatedStake
449- : Epoch
450- → UTxOState
451- → GovState
452- → GState
453- → DState
454- → VDeleg ⇀ Coin
455- calculateVDelegDelegatedStake currentEpoch utxoSt govSt gState dState
456- = aggregate₊ (((activeVoteDelegs ˢ) ⁻¹ʳ
457- ∘ʳ (stakePerCredential ∪⁺ stakeFromGADeposits govSt utxoSt) ˢ) ᶠˢ)
458- where
459- open UTxOState utxoSt
460- open DState dState
461- open GState gState
451+ module VDelegDelegatedStake
452+ (currentEpoch : Epoch)
453+ (utxoSt : UTxOState)
454+ (govSt : GovState)
455+ (gState : GState)
456+ (dState : DState)
457+ where
462458
463- -- active DReps
464- activeDReps : ℙ Credential
465- activeDReps = dom (filterᵐ (λ (_ , e) → currentEpoch ≤ e) dreps)
459+ open UTxOState utxoSt
460+ open DState dState
461+ open GState gState
466462
467- -- active vote delegations
468- activeVoteDelegs : VoteDelegs
469- activeVoteDelegs = voteDelegs ∣^ ((mapˢ vDelegCredential activeDReps)
470- ∪ ❴ vDelegNoConfidence ❵ ∪ ❴ vDelegAbstain ❵)
463+ -- active DReps
464+ activeDReps : ℙ Credential
465+ activeDReps = dom (filterᵐ (λ (_ , e) → currentEpoch ≤ e) dreps)
471466
472- -- stake per delegated credential
473- stakePerCredential : Stake
474- stakePerCredential = mapFromFun (λ c → cbalance (utxo ∣^' λ txout → getStakeCred txout ≡ just c) )
475- (dom activeVoteDelegs )
467+ -- active vote delegations
468+ activeVoteDelegs : VoteDelegs
469+ activeVoteDelegs = voteDelegs ∣^ ((mapˢ vDelegCredential activeDReps )
470+ ∪ ❴ vDelegNoConfidence ❵ ∪ ❴ vDelegAbstain ❵ )
476471
477- ```
472+ -- stake per delegated credential
473+ stakePerCredential : Stake
474+ stakePerCredential = mapFromFun (λ c → cbalance (utxo ∣^' λ txout → getStakeCred txout ≡ just c))
475+ (dom activeVoteDelegs)
478476
477+ calculate : VDeleg ⇀ Coin
478+ calculate = aggregate₊ (((activeVoteDelegs ˢ) ⁻¹ʳ
479+ ∘ʳ (stakePerCredential ∪⁺ stakeFromGADeposits govSt utxoSt) ˢ) ᶠˢ)
480+ ```
481+ <!--
482+ ```agda
483+ opaque
484+ ```
485+ -->
479486``` agda
480487 calculatePoolDelegatedStakeForVoting
481488 : Snapshot
482489 → UTxOState
483490 → GovState
484- → GState
485- → DState
486491 → KeyHash ⇀ Coin
487- calculatePoolDelegatedStakeForVoting ss utxoSt govSt gState dState
492+ calculatePoolDelegatedStakeForVoting ss utxoSt govSt
488493 = calculatePoolDelegatedStake ss ∪⁺ (stakeFromDeposits ∣ dom (PoolsOf ss))
489494 where
490495 stakeFromDeposits : KeyHash ⇀ Coin
@@ -515,17 +520,17 @@ governance actions.
515520 `SPO`{.AgdaInductiveConstructor}s as well.
516521
517522``` agda
518- mkStakeDistrs
519- : Snapshot
520- → Epoch
521- → UTxOState
522- → GovState
523- → GState
524- → DState
525- → StakeDistrs
526- mkStakeDistrs ss currentEpoch utxoSt govSt gState dState =
527- ⟦ calculateVDelegDelegatedStake currentEpoch utxoSt govSt gState dState
528- , calculatePoolDelegatedStakeForVoting ss utxoSt govSt gState dState ⟧
523+ mkStakeDistrs
524+ : Snapshot
525+ → Epoch
526+ → UTxOState
527+ → GovState
528+ → GState
529+ → DState
530+ → StakeDistrs
531+ mkStakeDistrs ss currentEpoch utxoSt govSt gState dState =
532+ ⟦ VDelegDelegatedStake.calculate currentEpoch utxoSt govSt gState dState
533+ , calculatePoolDelegatedStakeForVoting ss utxoSt govSt ⟧
529534```
530535
531536<!--
@@ -638,23 +643,17 @@ EPOCH-updates0 fut ls =
638643record EPOCH-Updates : Type where
639644 constructor EPOCHUpdates
640645 field
641- es : EnactState
642- govSt' : GovState
643646 dState'' : DState
644- gState' : GState
645- utxoSt' : UTxOState
646647 acnt'' : Acnt
647648
648649EPOCH-updates
649- : RatifyState → LState → DState → Acnt → EPOCH-Updates
650- EPOCH-updates fut ls dState' acnt' =
651- EPOCHUpdates (u0 .es) (u0 .govSt') dState'' (u0 .gState') (u0 .utxoSt') acnt''
650+ : EPOCH-Updates0 → LState → DState → Acnt → EPOCH-Updates
651+ EPOCH-updates u0 ls dState' acnt' =
652+ EPOCHUpdates dState'' acnt''
652653 where
653654 open LState
654655 open EPOCH-Updates0
655656
656- u0 = EPOCH-updates0 fut ls
657-
658657 refunds : Credential ⇀ Coin
659658 refunds = pullbackMap (u0 .payout) toRwdAddr (dom (RewardsOf dState'))
660659
@@ -705,8 +704,8 @@ data _⊢_⇀⦇_,EPOCH⦈_ : ⊤ → EpochState → Epoch → EpochState → Ty
705704-->
706705``` agda
707706 let
708- EPOCHUpdates es govSt' dState'' gState' utxoSt' acnt'' =
709- EPOCH-updates fut ls dState' acnt'
707+ eu0@(EPOCHUpdates0 es govSt' _ gState' utxoSt' _) = EPOCH-updates0 fut ls
708+ EPOCHUpdates dState'' acnt'' = EPOCH-updates eu0 ls dState' acnt'
710709
711710 stakeDistrs : StakeDistrs
712711 stakeDistrs = mkStakeDistrs (Snapshots.mark ss') e utxoSt'
0 commit comments