store starting time of the proposal in its datum

... hardcoded to 0 upon creation for now
This commit is contained in:
fanghr 2022-05-18 21:01:14 +08:00
parent d44fe083da
commit fc48709c07
7 changed files with 26 additions and 2 deletions

View file

@ -126,7 +126,7 @@ import Plutarch.TryFrom (ptryFrom)
--------------------------------------------------------------------------------
import Agora.Proposal.Time (ProposalTimingConfig (..))
import Agora.Proposal.Time (ProposalStartingTime (..), ProposalTimingConfig (..))
import Plutus.V1.Ledger.Api (
CurrencySymbol (..),
MintingPolicy,
@ -579,6 +579,8 @@ governorValidator gov =
.& #votes .= proposalInputDatumF.votes
-- FIXME: copy from the governor datum
.& #timingConfig .= pdata (pconstant tmpTimingConfig)
-- FIXME: calculate from 'txInfoValidRange'
.& #startingTime .= pdata (pconstant tmpProposalStartingTime)
)
tcassert "Unexpected output proposal datum" $
@ -740,6 +742,10 @@ governorValidator gov =
, executingTime = 3000
}
-- TODO: remove this.
tmpProposalStartingTime :: ProposalStartingTime
tmpProposalStartingTime = ProposalStartingTime 0
--------------------------------------------------------------------------------
-- | Get the 'CurrencySymbol' of GST.

View file

@ -45,7 +45,7 @@ import PlutusTx.AssocMap qualified as AssocMap
--------------------------------------------------------------------------------
import Agora.Proposal.Time (PProposalTimingConfig, ProposalTimingConfig)
import Agora.Proposal.Time (PProposalStartingTime, PProposalTimingConfig, ProposalStartingTime, ProposalTimingConfig)
import Agora.SafeMoney (GTTag)
import Agora.Utils (pkeysEqual, pnotNull)
import Control.Applicative (Const)
@ -190,6 +190,8 @@ data ProposalDatum = ProposalDatum
-- ^ Vote tally on the proposal
, timingConfig :: ProposalTimingConfig
-- ^ Timing configuration copied over on initialization.
, startingTime :: ProposalStartingTime
-- ^ The time upon the creation of the proposal.
}
deriving stock (Eq, Show, GHC.Generic)
@ -359,6 +361,7 @@ newtype PProposalDatum (s :: S) = PProposalDatum
, "thresholds" ':= PProposalThresholds
, "votes" ':= PProposalVotes
, "timingConfig" ':= PProposalTimingConfig
, "startingTime" ':= PProposalStartingTime
]
)
}

View file

@ -152,6 +152,7 @@ proposalValidator proposal =
, "thresholds"
, "votes"
, "timingConfig"
, "startingTime"
]
proposalDatum
@ -255,6 +256,7 @@ proposalValidator proposal =
.& #thresholds .= proposalF.thresholds
.& #votes .= pdata expectedNewVotes
.& #timingConfig .= proposalF.timingConfig
.& #startingTime .= proposalF.startingTime
)
tcassert "Invalid output proposal" $ proposalOut #== expectedProposalOut
@ -345,6 +347,7 @@ proposalValidator proposal =
.& #thresholds .= proposalF.thresholds
.& #votes .= proposalF.votes
.& #timingConfig .= proposalF.timingConfig
.& #startingTime .= proposalF.startingTime
)
)
in foldr1