apply Emily's suggestions

This commit is contained in:
Hongrui Fang 2022-07-06 21:55:39 +08:00
parent 701340688a
commit 8242330ac9
3 changed files with 334 additions and 328 deletions

View file

@ -42,6 +42,7 @@ import Agora.Utils (
import Plutarch.Api.V1 ( import Plutarch.Api.V1 (
PDatumHash, PDatumHash,
PMintingPolicy, PMintingPolicy,
PPubKeyHash,
PScriptContext (PScriptContext), PScriptContext (PScriptContext),
PScriptPurpose (PMinting, PSpending), PScriptPurpose (PMinting, PSpending),
PTxInfo (PTxInfo), PTxInfo (PTxInfo),
@ -305,17 +306,17 @@ proposalValidator proposal =
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
let acceptMultipleStakes = pmatch proposalRedeemer $ \case withMultipleStakes' ::
PCosign _ -> pconstant True Term
PAdvanceProposal _ -> _
currentStatus #== pconstant Draft ( ( PInteger
_ -> pconstant False :--> PBuiltinList (PAsData PPubKeyHash)
:--> PUnit
pure $ )
popaque $ :--> PUnit
pif ) <-
acceptMultipleStakes pletC $
( unTermCont $ do plam $ \validationLogic -> unTermCont $ do
-- The following code ensures that all the stake datums are not -- The following code ensures that all the stake datums are not
-- changed. -- changed.
-- --
@ -363,10 +364,53 @@ proposalValidator proposal =
sortedStakeOwners <- pletC $ pmsortBy # pltAsData # stakeOwners sortedStakeOwners <- pletC $ pmsortBy # pltAsData # stakeOwners
redeemer <- pmatchC proposalRedeemer pure $ validationLogic # totalStakedAmount # sortedStakeOwners
case redeemer of withSingleStake' ::
PCosign r -> do Term
_
( ( PStakeDatum :--> PStakeDatum :--> PBool :--> PUnit
)
:--> PUnit
) <- pletC $
plam $ \validationLogic -> unTermCont $ do
pguardC "Can only deal with one stake" $
stakeInputNum #== 1
stakeInputHash <- pletC $ pfromData $ phead # stakeInputDatumHashes
stakeOutputHash <- pletC $ pfromData $ phead # stakeOutputDatumHashes
stakeIn :: Term _ PStakeDatum <-
pletC $
pfromData $
pfromJust #$ ptryFindDatum # stakeInputHash # txInfoF.datums
stakeOut :: Term _ PStakeDatum <-
pletC $
pfromData $
pfromJust #$ ptryFindDatum # stakeOutputHash # txInfoF.datums
stakeUnchanged <- pletC $ stakeInputHash #== stakeOutputHash
pure $ validationLogic # stakeIn # stakeOut # stakeUnchanged
let withMultipleStakes val =
withMultipleStakes' #$ plam $
\totalStakedAmount
sortedStakeOwner ->
unTermCont $
val totalStakedAmount sortedStakeOwner
withSingleStake val =
withSingleStake' #$ plam $ \stakeIn stakeOut stakeUnchange -> unTermCont $ do
stakeInF <- pletFieldsC @'["stakedAmount", "lockedBy", "owner"] stakeIn
val stakeInF stakeOut stakeUnchange
pure $
popaque $
pmatch proposalRedeemer $ \case
PCosign r -> withMultipleStakes $ \_ sortedStakeOwners -> do
pguardC "Should be in draft state" $ pguardC "Should be in draft state" $
currentStatus #== pconstant Draft currentStatus #== pconstant Draft
@ -405,61 +449,9 @@ proposalValidator proposal =
pure $ pconstant () pure $ pconstant ()
------------------------------------------------------------------ ----------------------------------------------------------------------
PAdvanceProposal _ -> do PVote r -> withSingleStake $ \stakeInF stakeOut _ -> do
inDraftPeriod <-
pletC $
isDraftPeriod # proposalF.timingConfig # proposalF.startingTime # currentTime
pure $
pif
inDraftPeriod
( unTermCont $ do
pguardC "More cosigns than minimum amount" $
punsafeCoerce (pfromData thresholdsF.vote) #< totalStakedAmount
pguardC "All new cosigners are witnessed by their Stake datums" $
plistEquals # sortedStakeOwners # proposalF.cosigners
-- 'Draft' -> 'VotingReady'
pguardC "Proposal status set to VotingReady" $
proposalOutStatus #== pconstant VotingReady
pure $ pconstant ()
)
( unTermCont $ do
pguardC "Advance to failed state" $ proposalOutStatus #== pconstant Finished
pure $ pconstant ()
)
------------------------------------------------------------------
_ -> pure $ pconstant ()
)
( unTermCont $ do
pguardC "Can only deal with one stake" $
stakeInputNum #== 1
let stakeInputHash = pfromData $ phead # stakeInputDatumHashes
stakeOutputHash = pfromData $ phead # stakeOutputDatumHashes
stakeIn :: Term _ PStakeDatum <-
pletC $
pfromData $
pfromJust #$ ptryFindDatum # stakeInputHash # txInfoF.datums
stakeInF <- pletFieldsC @'["stakedAmount", "lockedBy", "owner"] stakeIn
stakeOut :: Term _ PStakeDatum <-
pletC $
pfromData $
pfromJust #$ ptryFindDatum # stakeOutputHash # txInfoF.datums
redeemer <- pmatchC proposalRedeemer
case redeemer of
PVote r -> do
pguardC "Input proposal must be in VotingReady state" $ pguardC "Input proposal must be in VotingReady state" $
currentStatus #== pconstant VotingReady currentStatus #== pconstant VotingReady
@ -539,8 +531,9 @@ proposalValidator proposal =
pure $ pconstant () pure $ pconstant ()
------------------------------------------------------------------ ----------------------------------------------------------------------
PUnlock r -> do
PUnlock r -> withSingleStake $ \stakeInF stakeOut _ -> do
-- At draft stage, the votes should be empty. -- At draft stage, the votes should be empty.
pguardC "Shouldn't retract votes from a draft proposal" $ pguardC "Shouldn't retract votes from a draft proposal" $
pnot #$ currentStatus #== pconstant Draft pnot #$ currentStatus #== pconstant Draft
@ -617,10 +610,30 @@ proposalValidator proposal =
pure $ pconstant () pure $ pconstant ()
------------------------------------------------------------------ ----------------------------------------------------------------------
PAdvanceProposal _ -> do
pguardC "Stake should not change" $ PAdvanceProposal _ ->
stakeInputHash #== stakeOutputHash let fromDraft = withMultipleStakes $ \totalStakedAmount sortedStakeOwners ->
pmatchC (isDraftPeriod # proposalF.timingConfig # proposalF.startingTime # currentTime) >>= \case
PTrue -> do
pguardC "More cosigns than minimum amount" $
punsafeCoerce (pfromData thresholdsF.vote) #< totalStakedAmount
pguardC "All new cosigners are witnessed by their Stake datums" $
plistEquals # sortedStakeOwners # proposalF.cosigners
-- 'Draft' -> 'VotingReady'
pguardC "Proposal status set to VotingReady" $
proposalOutStatus #== pconstant VotingReady
pure $ pconstant ()
PFalse -> do
pguardC "Advance to failed state" $ proposalOutStatus #== pconstant Finished
pure $ pconstant ()
fromOther = withSingleStake $ \_ _ stakeUnchanged -> do
pguardC "Stake should not change" stakeUnchanged
pguardC pguardC
"Only status changes in the output proposal" "Only status changes in the output proposal"
@ -655,6 +668,7 @@ proposalValidator proposal =
-- TODO: Should check that the GST is not moved -- TODO: Should check that the GST is not moved
-- if the proposal is in 'Locked' state. -- if the proposal is in 'Locked' state.
pure $ pconstant () pure $ pconstant ()
toNextState = pmatchEnum proposalStatus $ \case toNextState = pmatchEnum proposalStatus $ \case
@ -685,5 +699,4 @@ proposalValidator proposal =
toNextState toNextState
-- Too late: failed proposal, status set to 'Finished'. -- Too late: failed proposal, status set to 'Finished'.
toFailedState toFailedState
_ -> pure $ pconstant () in pif (currentStatus #== pconstant Draft) fromDraft fromOther
)

View file

@ -25,6 +25,7 @@ import Agora.Utils (
mustFindDatum', mustFindDatum',
pvalidatorHashToTokenName, pvalidatorHashToTokenName,
) )
import Data.Function (on)
import Data.Tagged (Tagged (..), untag) import Data.Tagged (Tagged (..), untag)
import Plutarch.Api.V1 ( import Plutarch.Api.V1 (
AmountGuarantees (Positive), AmountGuarantees (Positive),
@ -303,10 +304,10 @@ stakeValidator stake =
# pfromData txInfoF.outputs # pfromData txInfoF.outputs
let witnessStake = unTermCont $ do let witnessStake = unTermCont $ do
pguardC "Either owner signs the transaction or propsoal token moved" $ pguardC "Either owner signs the transaction or proposal token moved" $
ownerSignsTransaction #|| proposalTokenMoved ownerSignsTransaction #|| proposalTokenMoved
-- FIXME: refactor this with reference input, once it's supported by plutarch. -- FIXME: remove this once we have reference input.
-- --
-- Our goal here is to allow multiple input stakes, and also ensure that every the input stakes has a -- Our goal here is to allow multiple input stakes, and also ensure that every the input stakes has a
-- corresponding output stake, which carries the same value and the same datum as the input stake. -- corresponding output stake, which carries the same value and the same datum as the input stake.
@ -335,15 +336,7 @@ stakeValidator stake =
# pfromData txInfoF.inputs # pfromData txInfoF.inputs
sortTxOuts :: Term _ (PBuiltinList (PAsData PTxOut) :--> PBuiltinList (PAsData PTxOut)) sortTxOuts :: Term _ (PBuiltinList (PAsData PTxOut) :--> PBuiltinList (PAsData PTxOut))
sortTxOuts = sortTxOuts = phoistAcyclic $ plam (pmsortBy # plam ((#<) `on` (getDatumHash #)) #)
plam
( pmsortBy
# plam
( \((getDatumHash #) -> dhX)
((getDatumHash #) -> dhY) -> dhX #< dhY
)
#
)
where where
getDatumHash :: Term _ (PAsData PTxOut :--> PDatumHash) getDatumHash :: Term _ (PAsData PTxOut :--> PDatumHash)
getDatumHash = phoistAcyclic $ plam ((pfromDJust #) . pfromData . (pfield @"datumHash" #)) getDatumHash = phoistAcyclic $ plam ((pfromDJust #) . pfromData . (pfield @"datumHash" #))
@ -464,7 +457,7 @@ stakeValidator stake =
newStakedAmount <- pletC $ oldStakedAmount + delta newStakedAmount <- pletC $ oldStakedAmount + delta
pguardC "New staked amount shoudl be greater than or equal to 0" $ pguardC "New staked amount should be greater than or equal to 0" $
zero #<= newStakedAmount zero #<= newStakedAmount
let expectedDatum = let expectedDatum =

108
bench.csv
View file

@ -5,60 +5,60 @@ Agora/Effects/Treasury Withdrawal Effect/effect/Mixed Assets,456007605,1104500,3
Agora/Effects/Governor Mutation Effect/validator/valid new governor datum/governor validator should pass,87839169,243032,8561 Agora/Effects/Governor Mutation Effect/validator/valid new governor datum/governor validator should pass,87839169,243032,8561
Agora/Effects/Governor Mutation Effect/validator/valid new governor datum/effect validator should pass,106082031,292993,3609 Agora/Effects/Governor Mutation Effect/validator/valid new governor datum/effect validator should pass,106082031,292993,3609
Agora/Stake/policy/stakeCreation,50939580,148729,2387 Agora/Stake/policy/stakeCreation,50939580,148729,2387
Agora/Stake/validator/stakeDepositWithdraw deposit,180222751,492217,5003 Agora/Stake/validator/stakeDepositWithdraw deposit,150745141,416137,4995
Agora/Stake/validator/stakeDepositWithdraw withdraw,180222751,492217,4991 Agora/Stake/validator/stakeDepositWithdraw withdraw,150745141,416137,4983
Agora/Proposal/policy/proposalCreation,23140177,69194,1515 Agora/Proposal/policy/proposalCreation,23140177,69194,1515
Agora/Proposal/validator/cosignature/legal/with 1 cosigners/propsoal,237484909,663370,8471 Agora/Proposal/validator/cosignature/legal/with 1 cosigners/propsoal,235408912,657765,8097
Agora/Proposal/validator/cosignature/legal/with 1 cosigners/stake,123296365,319226,5470 Agora/Proposal/validator/cosignature/legal/with 1 cosigners/stake,125665131,316762,5462
Agora/Proposal/validator/cosignature/legal/with 5 cosigners/propsoal,675336848,1882805,11101 Agora/Proposal/validator/cosignature/legal/with 5 cosigners/propsoal,680441047,1897008,10727
Agora/Proposal/validator/cosignature/legal/with 5 cosigners/stake,554091553,1461634,7980 Agora/Proposal/validator/cosignature/legal/with 5 cosigners/stake,576106975,1490610,7972
Agora/Proposal/validator/cosignature/legal/with 10 cosigners/propsoal,1336993992,3667352,14389 Agora/Proposal/validator/cosignature/legal/with 10 cosigners/propsoal,1351073436,3706315,14015
Agora/Proposal/validator/cosignature/legal/with 10 cosigners/stake,1102063894,2914419,11117 Agora/Proposal/validator/cosignature/legal/with 10 cosigners/stake,1148637636,2982695,11109
Agora/Proposal/validator/cosignature/illegal/duplicate cosigners/stake,123296365,319226,5470 Agora/Proposal/validator/cosignature/illegal/duplicate cosigners/stake,125665131,316762,5462
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: VotingReady/stake,123296365,319226,5470 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: VotingReady/stake,125665131,316762,5462
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: Locked/stake,123296365,319226,5470 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: Locked/stake,125665131,316762,5462
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: Finished/stake,123296365,319226,5470 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: Finished/stake,125665131,316762,5462
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: VotingReady/stake,554091553,1461634,7980 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: VotingReady/stake,576106975,1490610,7972
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: Locked/stake,554091553,1461634,7980 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: Locked/stake,576106975,1490610,7972
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: Finished/stake,554091553,1461634,7980 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: Finished/stake,576106975,1490610,7972
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: VotingReady/stake,1102063894,2914419,11117 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: VotingReady/stake,1148637636,2982695,11109
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Locked/stake,1102063894,2914419,11117 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Locked/stake,1148637636,2982695,11109
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Finished/stake,1102063894,2914419,11117 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Finished/stake,1148637636,2982695,11109
Agora/Proposal/validator/voting/legal/propsoal,247594094,689025,8443 Agora/Proposal/validator/voting/legal/propsoal,246896882,688919,8069
Agora/Proposal/validator/voting/legal/stake,141390725,374830,5489 Agora/Proposal/validator/voting/legal/stake,141234659,368136,5481
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/propsoal,222990625,630700,8426 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/propsoal,222376736,631090,8052
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/stake,123296365,319226,5467 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/stake,125665131,316762,5459
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/propsoal,217935933,619979,8428 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/propsoal,217322044,620369,8054
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/stake,123296365,319226,5469 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/stake,125665131,316762,5461
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/illegal/insufficient cosigns/stake,117222929,305504,5397 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/illegal/insufficient cosigns/stake,118020743,304972,5389
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/propsoal,600833052,1725797,11249 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/propsoal,614587307,1766683,10875
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/stake,526604275,1381680,8170 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/stake,548619697,1410656,8162
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/propsoal,240305281,682043,8789 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/propsoal,239691392,682433,8415
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/stake,123296365,319226,5710 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/stake,125665131,316762,5702
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/illegal/insufficient cosigns/stake,445454241,1167344,7819 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/illegal/insufficient cosigns/stake,446252055,1166812,7811
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/propsoal,1164574757,3363392,14778 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/propsoal,1196289192,3454898,14404
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/stake,1154814568,3068129,11548 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/stake,1201388310,3136405,11540
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/propsoal,268266966,759623,9242 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/propsoal,267653077,760013,8868
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/stake,123296365,319226,6012 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/stake,125665131,316762,6004
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/illegal/insufficient cosigns/stake,1024215053,2732615,10845 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/illegal/insufficient cosigns/stake,1025012867,2732083,10837
Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/propsoal,251396469,709467,8435 Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/propsoal,250229153,709227,8061
Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/stake,123296365,319226,5474 Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/stake,125665131,316762,5466
Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/propsoal,240157360,676636,8435 Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/propsoal,238990044,676396,8061
Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/stake,123296365,319226,5474 Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/stake,125665131,316762,5466
Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/propsoal,237329915,670626,8429 Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/propsoal,236162599,670386,8055
Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/stake,123296365,319226,5470 Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/stake,125665131,316762,5462
Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/propsoal,238460893,673030,8429 Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/propsoal,237293577,672790,8055
Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/stake,123296365,319226,5470 Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/stake,125665131,316762,5462
Agora/Proposal/validator/advancing/illegal/insufficient votes/stake,123296365,319226,5470 Agora/Proposal/validator/advancing/illegal/insufficient votes/stake,125665131,316762,5462
Agora/Proposal/validator/advancing/illegal/initial state is Finished/stake,123296365,319226,5462 Agora/Proposal/validator/advancing/illegal/initial state is Finished/stake,125665131,316762,5454
"Agora/Proposal/validator/unlocking/legal/1 proposals, voter, unlock stake + retract votes, VotingReady",245987595,688711,8403 "Agora/Proposal/validator/unlocking/legal/1 proposals, voter, unlock stake + retract votes, VotingReady",245855872,689807,8029
"Agora/Proposal/validator/unlocking/legal/1 proposals, creator, unlock stake, Finished",215263333,612711,8405 "Agora/Proposal/validator/unlocking/legal/1 proposals, creator, unlock stake, Finished",215131610,613807,8031
"Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/1 proposals, voter, unlock stake, Finished",212560614,604622,8407 "Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/1 proposals, voter, unlock stake, Finished",212428891,605718,8033
"Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/1 proposals, voter, unlock stake, Locked",212560614,604622,8407 "Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/1 proposals, voter, unlock stake, Locked",212428891,605718,8033
"Agora/Proposal/validator/unlocking/legal/42 proposals, voter, unlock stake + retract votes, VotingReady",1775652167,5199490,29511 "Agora/Proposal/validator/unlocking/legal/42 proposals, voter, unlock stake + retract votes, VotingReady",1775520444,5200586,29137
"Agora/Proposal/validator/unlocking/legal/42 proposals, creator, unlock stake, Finished",1448293766,4317963,29695 "Agora/Proposal/validator/unlocking/legal/42 proposals, creator, unlock stake, Finished",1448162043,4319059,29321
"Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/42 proposals, voter, unlock stake, Finished",1340653392,3978430,29679 "Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/42 proposals, voter, unlock stake, Finished",1340521669,3979526,29305
"Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/42 proposals, voter, unlock stake, Locked",1340653392,3978430,29679 "Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/42 proposals, voter, unlock stake, Locked",1340521669,3979526,29305
Agora/AuthorityToken/singleAuthorityTokenBurned/Correct simple,21017788,55883,806 Agora/AuthorityToken/singleAuthorityTokenBurned/Correct simple,21017788,55883,806
Agora/AuthorityToken/singleAuthorityTokenBurned/Correct many inputs,33204186,88241,900 Agora/AuthorityToken/singleAuthorityTokenBurned/Correct many inputs,33204186,88241,900
Agora/Treasury/Validator/Positive/Allows for effect changes,31556709,81546,1452 Agora/Treasury/Validator/Positive/Allows for effect changes,31556709,81546,1452
@ -66,5 +66,5 @@ Agora/AuthorityToken/singleAuthorityTokenBurned/Correct simple,21017788,55883,80
Agora/AuthorityToken/singleAuthorityTokenBurned/Correct many inputs,33204186,88241,900 Agora/AuthorityToken/singleAuthorityTokenBurned/Correct many inputs,33204186,88241,900
Agora/Governor/policy/GST minting,51007235,144191,2034 Agora/Governor/policy/GST minting,51007235,144191,2034
Agora/Governor/validator/proposal creation,309689999,834675,9064 Agora/Governor/validator/proposal creation,309689999,834675,9064
Agora/Governor/validator/GATs minting,421016677,1141838,9187 Agora/Governor/validator/GATs minting,418560845,1137908,9187
Agora/Governor/validator/mutate governor state,88986020,248491,8662 Agora/Governor/validator/mutate governor state,88986020,248491,8662

1 name cpu mem size
5 Agora/Effects/Governor Mutation Effect/validator/valid new governor datum/governor validator should pass 87839169 243032 8561
6 Agora/Effects/Governor Mutation Effect/validator/valid new governor datum/effect validator should pass 106082031 292993 3609
7 Agora/Stake/policy/stakeCreation 50939580 148729 2387
8 Agora/Stake/validator/stakeDepositWithdraw deposit 180222751 150745141 492217 416137 5003 4995
9 Agora/Stake/validator/stakeDepositWithdraw withdraw 180222751 150745141 492217 416137 4991 4983
10 Agora/Proposal/policy/proposalCreation 23140177 69194 1515
11 Agora/Proposal/validator/cosignature/legal/with 1 cosigners/propsoal 237484909 235408912 663370 657765 8471 8097
12 Agora/Proposal/validator/cosignature/legal/with 1 cosigners/stake 123296365 125665131 319226 316762 5470 5462
13 Agora/Proposal/validator/cosignature/legal/with 5 cosigners/propsoal 675336848 680441047 1882805 1897008 11101 10727
14 Agora/Proposal/validator/cosignature/legal/with 5 cosigners/stake 554091553 576106975 1461634 1490610 7980 7972
15 Agora/Proposal/validator/cosignature/legal/with 10 cosigners/propsoal 1336993992 1351073436 3667352 3706315 14389 14015
16 Agora/Proposal/validator/cosignature/legal/with 10 cosigners/stake 1102063894 1148637636 2914419 2982695 11117 11109
17 Agora/Proposal/validator/cosignature/illegal/duplicate cosigners/stake 123296365 125665131 319226 316762 5470 5462
18 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: VotingReady/stake 123296365 125665131 319226 316762 5470 5462
19 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: Locked/stake 123296365 125665131 319226 316762 5470 5462
20 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: Finished/stake 123296365 125665131 319226 316762 5470 5462
21 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: VotingReady/stake 554091553 576106975 1461634 1490610 7980 7972
22 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: Locked/stake 554091553 576106975 1461634 1490610 7980 7972
23 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 cosigners/status: Finished/stake 554091553 576106975 1461634 1490610 7980 7972
24 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: VotingReady/stake 1102063894 1148637636 2914419 2982695 11117 11109
25 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Locked/stake 1102063894 1148637636 2914419 2982695 11117 11109
26 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Finished/stake 1102063894 1148637636 2914419 2982695 11117 11109
27 Agora/Proposal/validator/voting/legal/propsoal 247594094 246896882 689025 688919 8443 8069
28 Agora/Proposal/validator/voting/legal/stake 141390725 141234659 374830 368136 5489 5481
29 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/propsoal 222990625 222376736 630700 631090 8426 8052
30 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/stake 123296365 125665131 319226 316762 5467 5459
31 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/propsoal 217935933 217322044 619979 620369 8428 8054
32 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/stake 123296365 125665131 319226 316762 5469 5461
33 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/illegal/insufficient cosigns/stake 117222929 118020743 305504 304972 5397 5389
34 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/propsoal 600833052 614587307 1725797 1766683 11249 10875
35 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/stake 526604275 548619697 1381680 1410656 8170 8162
36 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/propsoal 240305281 239691392 682043 682433 8789 8415
37 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/stake 123296365 125665131 319226 316762 5710 5702
38 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/illegal/insufficient cosigns/stake 445454241 446252055 1167344 1166812 7819 7811
39 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/propsoal 1164574757 1196289192 3363392 3454898 14778 14404
40 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/stake 1154814568 1201388310 3068129 3136405 11548 11540
41 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/propsoal 268266966 267653077 759623 760013 9242 8868
42 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/stake 123296365 125665131 319226 316762 6012 6004
43 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/illegal/insufficient cosigns/stake 1024215053 1025012867 2732615 2732083 10845 10837
44 Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/propsoal 251396469 250229153 709467 709227 8435 8061
45 Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/stake 123296365 125665131 319226 316762 5474 5466
46 Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/propsoal 240157360 238990044 676636 676396 8435 8061
47 Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/stake 123296365 125665131 319226 316762 5474 5466
48 Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/propsoal 237329915 236162599 670626 670386 8429 8055
49 Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/stake 123296365 125665131 319226 316762 5470 5462
50 Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/propsoal 238460893 237293577 673030 672790 8429 8055
51 Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/stake 123296365 125665131 319226 316762 5470 5462
52 Agora/Proposal/validator/advancing/illegal/insufficient votes/stake 123296365 125665131 319226 316762 5470 5462
53 Agora/Proposal/validator/advancing/illegal/initial state is Finished/stake 123296365 125665131 319226 316762 5462 5454
54 Agora/Proposal/validator/unlocking/legal/1 proposals, voter, unlock stake + retract votes, VotingReady 245987595 245855872 688711 689807 8403 8029
55 Agora/Proposal/validator/unlocking/legal/1 proposals, creator, unlock stake, Finished 215263333 215131610 612711 613807 8405 8031
56 Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/1 proposals, voter, unlock stake, Finished 212560614 212428891 604622 605718 8407 8033
57 Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/1 proposals, voter, unlock stake, Locked 212560614 212428891 604622 605718 8407 8033
58 Agora/Proposal/validator/unlocking/legal/42 proposals, voter, unlock stake + retract votes, VotingReady 1775652167 1775520444 5199490 5200586 29511 29137
59 Agora/Proposal/validator/unlocking/legal/42 proposals, creator, unlock stake, Finished 1448293766 1448162043 4317963 4319059 29695 29321
60 Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/42 proposals, voter, unlock stake, Finished 1340653392 1340521669 3978430 3979526 29679 29305
61 Agora/Proposal/validator/unlocking/legal/voter unlocks stake after voting/42 proposals, voter, unlock stake, Locked 1340653392 1340521669 3978430 3979526 29679 29305
62 Agora/AuthorityToken/singleAuthorityTokenBurned/Correct simple 21017788 55883 806
63 Agora/AuthorityToken/singleAuthorityTokenBurned/Correct many inputs 33204186 88241 900
64 Agora/Treasury/Validator/Positive/Allows for effect changes 31556709 81546 1452
66 Agora/AuthorityToken/singleAuthorityTokenBurned/Correct many inputs 33204186 88241 900
67 Agora/Governor/policy/GST minting 51007235 144191 2034
68 Agora/Governor/validator/proposal creation 309689999 834675 9064
69 Agora/Governor/validator/GATs minting 421016677 418560845 1141838 1137908 9187
70 Agora/Governor/validator/mutate governor state 88986020 248491 8662