check GST while moving from Locked

This commit is contained in:
Hongrui Fang 2022-07-16 18:26:35 +08:00
parent 3ec1645f5a
commit 4317987964
No known key found for this signature in database
GPG key ID: 1E0454204FC7D755
5 changed files with 187 additions and 59 deletions

View file

@ -16,6 +16,8 @@ module Sample.Proposal.Advance (
Parameters (..),
) where
import Agora.Governor
import Agora.Governor.Scripts (governorValidator)
import Agora.Proposal (
ProposalDatum (..),
ProposalId (ProposalId),
@ -46,7 +48,8 @@ import Agora.Stake (
import Agora.Stake.Scripts (stakeValidator)
import Data.Coerce (coerce)
import Data.Default (def)
import Data.List (sort)
import Data.List (singleton, sort)
import Data.Maybe (fromJust)
import Data.Tagged (Tagged (..), untag)
import Plutarch.Context (
BaseBuilder,
@ -76,8 +79,10 @@ import PlutusLedgerApi.V1 (
)
import PlutusLedgerApi.V1.Value qualified as Value
import PlutusTx.AssocMap qualified as AssocMap
import Sample.Proposal.Shared (proposalTxRef, stakeTxRef)
import Sample.Proposal.Shared (governorTxRef, proposalTxRef, stakeTxRef)
import Sample.Shared (
govAssetClass,
govValidatorHash,
minAda,
proposalPolicySymbol,
proposalValidatorHash,
@ -109,6 +114,12 @@ data Parameters = Parameters
-- ^ Whether the transaction is signed by all the cosigners.
, perStakeGTs :: Tagged GTTag Integer
-- ^ The staked amount of each stake.
, moveGovernorST :: Bool
-- ^ Whether the GST should be moved or not.
-- If this is set to true, the governor validator will be run in
-- the 'mkTestTree'.
, modifyGovernor :: Bool
-- ^ Whether to modify the governor output datum or not.
}
---
@ -117,9 +128,13 @@ data Parameters = Parameters
proposalRef :: TxOutRef
proposalRef = TxOutRef proposalTxRef 1
-- | Reference to the governor UTXO.
governorRef :: TxOutRef
governorRef = TxOutRef governorTxRef 2
-- | Create the reference to a particular stake UTXO.
mkStakeRef :: Int -> TxOutRef
mkStakeRef = TxOutRef stakeTxRef . (+ 2) . fromIntegral
mkStakeRef = TxOutRef stakeTxRef . (+ 3) . fromIntegral
---
@ -176,12 +191,25 @@ mkStakeInputDatums ps =
, Voted (ProposalId 1) (ResultTag 2)
]
governorInputDatum :: GovernorDatum
governorInputDatum =
GovernorDatum
{ proposalThresholds = def
, nextProposalId = ProposalId 42
, proposalTimings = def
, createProposalTimeRangeMaxWidth = def
, maximumProposalsPerStake = 3
}
---
-- | Script purpose of the proposal validator.
proposalScriptPurpose :: ScriptPurpose
proposalScriptPurpose = Spending proposalRef
governorScriptPurpose :: ScriptPurpose
governorScriptPurpose = Spending governorRef
-- | Script purpose of the stake validator, given which stake we want to spend.
mkStakeScriptPurpose :: Int -> ScriptPurpose
mkStakeScriptPurpose = Spending . mkStakeRef
@ -194,6 +222,12 @@ mkStakeScriptPurpose = Spending . mkStakeRef
proposalRedeemer :: ProposalRedeemer
proposalRedeemer = AdvanceProposal
{- | The propsoal redeemer used to spend the governor UTXO, which is always
'MintGATs' in this case.
-}
governorRedeemer :: GovernorRedeemer
governorRedeemer = MintGATs
{- | The propsoal redeemer used to spend the stake UTXO, which is always
'WitnessStake' in this case.
-}
@ -219,6 +253,9 @@ advance ::
advance ps =
let pst = Value.singleton proposalPolicySymbol "" 1
sst = Value.assetClassValue stakeAssetClass 1
gst = Value.assetClassValue govAssetClass 1
---
proposalInputDatum :: ProposalDatum
proposalInputDatum =
@ -230,6 +267,8 @@ advance ps =
{ status = ps.toStatus
}
---
stakeInputDatums :: [StakeDatum]
stakeInputDatums = mkStakeInputDatums ps
@ -275,19 +314,50 @@ advance ps =
in if ps.includeAllStakes
then withIds
else [head withIds]
---
signBuilder :: BaseBuilder
signBuilder =
governorOutputDatum :: GovernorDatum
governorOutputDatum =
if ps.modifyGovernor
then
governorInputDatum
{ nextProposalId = ProposalId 41
}
else governorInputDatum
governorBuilder :: BaseBuilder
governorBuilder =
if ps.moveGovernorST
then
mconcat
[ input $
script govValidatorHash
. withValue (sortValue $ gst <> minAda)
. withDatum governorInputDatum
. withOutRef governorRef
, output $
script govValidatorHash
. withValue (sortValue $ gst <> minAda)
. withDatum governorOutputDatum
]
else mempty
---
sigBuilder :: BaseBuilder
sigBuilder =
let sos = mkStakeOwners ps
in if ps.signByAllCosigners
then foldMap signedWith sos
else signedWith $ head sos
---
builder :: BaseBuilder
builder =
mconcat
[ txId "95ba4015e30aef16a3461ea97a779f814aeea6b8009d99a94add4b8293be737a"
, signBuilder
, sigBuilder
, timeRange ps.validTimeRange
, input $
script proposalValidatorHash
@ -299,7 +369,7 @@ advance ps =
. withValue (pst <> minAda)
. withDatum proposalOutputDatum
]
in buildTxInfoUnsafe $ builder <> stakeBuilder
in buildTxInfoUnsafe $ builder <> stakeBuilder <> governorBuilder
---
@ -431,6 +501,8 @@ advanceToNextStateInTimeParameters nCosigners =
signByAllCosigners = case from of
Draft -> True
_ -> False
shouldIncludeGovernor = from == Locked
in Parameters
{ fromStatus = from
, toStatus = getNextState from
@ -443,6 +515,8 @@ advanceToNextStateInTimeParameters nCosigners =
, perStakeGTs =
(def :: ProposalThresholds).vote
`div` fromIntegral nCosigners + 1
, moveGovernorST = shouldIncludeGovernor
, modifyGovernor = False
}
)
[Draft, VotingReady, Locked]
@ -461,6 +535,8 @@ advanceToFailedStateDueToTimeoutParameters nCosigners =
, stakeCount = fromIntegral nCosigners
, signByAllCosigners = False
, perStakeGTs = 1
, moveGovernorST = False
, modifyGovernor = False
}
)
[Draft, VotingReady, Locked]
@ -480,6 +556,8 @@ insufficientVotesParameters =
, stakeCount = 1
, signByAllCosigners = True
, perStakeGTs = 20
, moveGovernorST = False
, modifyGovernor = False
}
insufficientCosignsParameters :: Int -> Parameters
@ -500,6 +578,8 @@ advanceFromFinishedParameters =
, stakeCount = 1
, signByAllCosigners = True
, perStakeGTs = 20
, moveGovernorST = False
, modifyGovernor = False
}
invalidOutputStakeParameters :: Int -> [Parameters]
@ -512,8 +592,8 @@ invalidOutputStakeParameters nCosigners =
{- | Create a test tree that runs the stake validator and proposal validator to
test the advancing functionalities.
-}
mkTestTree :: String -> Parameters -> Bool -> SpecificationTree
mkTestTree name ps isValidForProposalValidator = group name [proposal, stake]
mkTestTree :: String -> Parameters -> Bool -> Maybe Bool -> SpecificationTree
mkTestTree name ps isValidForProposalValidator isValidForGovernorValidator = group name final
where
txInfo = advance ps
@ -544,3 +624,20 @@ mkTestTree name ps isValidForProposalValidator = group name [proposal, stake]
txInfo
(mkStakeScriptPurpose idx)
)
proposalAndStake = [proposal, stake]
governor =
if ps.moveGovernorST
then
singleton $
testValidator
(fromJust isValidForGovernorValidator)
"governor"
(governorValidator Shared.governor)
governorInputDatum
governorRedeemer
(ScriptContext txInfo governorScriptPurpose)
else mempty
final = proposalAndStake <> governor

View file

@ -5,7 +5,7 @@ Description: Shared constants for propsoal samples
Shared constants for propsoal samples.
-}
module Sample.Proposal.Shared (proposalTxRef, stakeTxRef) where
module Sample.Proposal.Shared (proposalTxRef, stakeTxRef, governorTxRef) where
import PlutusLedgerApi.V1 (TxId)
@ -16,3 +16,6 @@ proposalTxRef = "0b2086cbf8b6900f8cb65e012de4516cb66b5cb08a9aaba12a8b88be"
-- | 'TxId' of all the stake inputs in the samples.
stakeTxRef :: TxId
stakeTxRef = "0ca36f3a357bc69579ab2531aecd1e7d3714d993c7820f40b864be15"
governorTxRef :: TxId
governorTxRef = "cb076140e80d240f9c89e478aedbddbe6f4734fecbd0ae3e37404c12e7798c0f"

View file

@ -147,6 +147,7 @@ specs =
nCosigners
)
True
Nothing
, Advance.mkTestTree
"to failed state"
( head $
@ -154,6 +155,7 @@ specs =
nCosigners
)
True
Nothing
]
illegalGroup =
@ -163,10 +165,12 @@ specs =
"insufficient cosigns"
(Advance.insufficientCosignsParameters nCosigners)
False
Nothing
, Advance.mkTestTree
"invalid stake output"
(head $ Advance.invalidOutputStakeParameters nCosigners)
False
Nothing
]
in group name [legalGroup, illegalGroup]
@ -179,14 +183,14 @@ specs =
map
( \ps ->
let name = "from: " <> show ps.fromStatus
in Advance.mkTestTree name ps True
in Advance.mkTestTree name ps True (Just True)
)
(tail $ Advance.advanceToNextStateInTimeParameters 1)
, group "advance to failed state" $
map
( \ps ->
let name = "from: " <> show ps.fromStatus
in Advance.mkTestTree name ps True
in Advance.mkTestTree name ps True (Just True)
)
(tail $ Advance.advanceToFailedStateDueToTimeoutParameters 1)
]
@ -198,10 +202,12 @@ specs =
"insufficient votes"
Advance.insufficientVotesParameters
False
Nothing
, Advance.mkTestTree
"initial state is Finished"
Advance.advanceFromFinishedParameters
False
Nothing
, group
"invalid stake output"
$ do
@ -213,7 +219,7 @@ specs =
<> show nStake
<> " stakes"
pure $ Advance.mkTestTree name ps False
pure $ Advance.mkTestTree name ps False (Just True)
]
in [draftGroup, legalGroup, illegalGroup]
, group "unlocking" $

View file

@ -76,7 +76,7 @@ import Plutarch.Extra.TermCont (
)
import Plutarch.SafeMoney (PDiscrete (..))
import Plutarch.Unsafe (punsafeCoerce)
import PlutusLedgerApi.V1.Value (AssetClass (AssetClass))
import PlutusLedgerApi.V1.Value (AssetClass (AssetClass, unAssetClass))
{- | Policy for Proposals.
@ -651,12 +651,29 @@ proposalValidator proposal =
pguardC "Cannot advance ahead of time" notTooEarly
pguardC "Finished proposals cannot be advanced" $ pnot # isFinished
let gstSymbol =
pconstant $
fst $
unAssetClass proposal.governorSTAssetClass
gstMoved <-
pletC $
pany
# plam
( \( (pfield @"value" #)
. (pfield @"resolved" #)
. pfromData ->
value
) ->
psymbolValueOf # gstSymbol # value #== 1
)
# txInfoF.inputs
let toFailedState = unTermCont $ do
pguardC "Proposal should fail: not on time" $
proposalOutStatus #== pconstant Finished
-- TODO: Should check that the GST is not moved
-- if the proposal is in 'Locked' state.
pguardC "GST not moved" $ pnot # gstMoved
pure $ pconstant ()
@ -677,6 +694,8 @@ proposalValidator proposal =
pguardC "Proposal status set to Finished" $
proposalOutStatus #== pconstant Finished
pguardC "GST moved" gstMoved
-- TODO: Perform other necessary checks.
pure $ pconstant ()
_ -> pconstant ()

View file

@ -29,11 +29,11 @@ Agora/Proposal/policy (proposal creation)/illegal/invalid proposal status/Locked
Agora/Proposal/policy (proposal creation)/illegal/invalid proposal status/Locked/stake,153960499,403133,5404
Agora/Proposal/policy (proposal creation)/illegal/invalid proposal status/Finished/proposal,33689644,100286,2002
Agora/Proposal/policy (proposal creation)/illegal/invalid proposal status/Finished/stake,153960499,403133,5404
Agora/Proposal/validator/cosignature/legal/with 1 cosigners/propsoal,235405219,657707,8151
Agora/Proposal/validator/cosignature/legal/with 1 cosigners/propsoal,235543219,658307,8360
Agora/Proposal/validator/cosignature/legal/with 1 cosigners/stake,118915099,307672,5213
Agora/Proposal/validator/cosignature/legal/with 5 cosigners/propsoal,670429262,1868318,10781
Agora/Proposal/validator/cosignature/legal/with 5 cosigners/propsoal,670567262,1868918,10990
Agora/Proposal/validator/cosignature/legal/with 5 cosigners/stake,549710287,1450080,7723
Agora/Proposal/validator/cosignature/legal/with 10 cosigners/propsoal,1328551536,3641835,14069
Agora/Proposal/validator/cosignature/legal/with 10 cosigners/propsoal,1328689536,3642435,14278
Agora/Proposal/validator/cosignature/legal/with 10 cosigners/stake,1097682628,2902865,10860
Agora/Proposal/validator/cosignature/illegal/duplicate cosigners/stake,118915099,307672,5213
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: VotingReady/stake,118915099,307672,5213
@ -45,89 +45,92 @@ Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 5 co
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: VotingReady/stake,1097682628,2902865,10860
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Locked/stake,1097682628,2902865,10860
Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Finished/stake,1097682628,2902865,10860
Agora/Proposal/validator/voting/legal/propsoal,253541830,711367,8133
Agora/Proposal/validator/voting/legal/propsoal,253679830,711967,8342
Agora/Proposal/validator/voting/legal/stake,136152299,356425,5239
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/propsoal,222392288,630302,8114
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/propsoal,222530288,630902,8323
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/stake,118915099,307672,5222
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/propsoal,217337596,619581,8116
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/propsoal,217475596,620181,8325
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/stake,118915099,307672,5224
Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/illegal/insufficient cosigns/stake,118638207,307672,5152
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/propsoal,602596705,1722841,10969
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/propsoal,602734705,1723441,11178
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/stake,496218319,1294304,7957
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/propsoal,239706944,681645,8477
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/propsoal,239844944,682245,8686
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/stake,118915099,307672,5465
Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/illegal/insufficient cosigns/stake,447610813,1171578,7606
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/propsoal,1183788938,3402248,14538
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/propsoal,1183926938,3402848,14747
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/stake,1125911200,2984885,11375
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/propsoal,267668629,759225,8930
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/propsoal,267806629,759825,9139
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/stake,118915099,307672,5767
Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/illegal/insufficient cosigns/stake,1013739927,2699971,10673
Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/propsoal,253438293,715975,8123
Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/propsoal,272116829,760091,8332
Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/stake,118915099,307672,5229
Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/propsoal,242199184,683144,8123
Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/stake,118915099,307672,5229
Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/propsoal,239371739,677134,8117
Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/propsoal,295366820,822071,8771
Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/stake,156324691,401372,5668
Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/governor,258411069,667386,8946
Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/propsoal,258602387,722952,8326
Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/stake,118915099,307672,5225
Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/propsoal,240502717,679538,8117
Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/propsoal,259733365,725356,8326
Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/stake,118915099,307672,5225
Agora/Proposal/validator/advancing/illegal/insufficient votes/stake,118915099,307672,5225
Agora/Proposal/validator/advancing/illegal/initial state is Finished/stake,118915099,307672,5217
Agora/Proposal/validator/advancing/illegal/invalid stake output/from Lockedwith 1 stakes/governor,258411069,667386,8946
Agora/Proposal/validator/advancing/illegal/invalid stake output/from Lockedwith 5 stakes/governor,265599017,688074,9187
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: retract votes while voting/stake,125083340,324576,5219
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: retract votes while voting/propsoal,236436652,664524,8114
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: retract votes while voting/propsoal,236574652,665124,8323
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: retract votes while voting/stake,128314586,333630,5235
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: retract votes while voting/propsoal,249908859,704466,8125
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: retract votes while voting/propsoal,250046859,705066,8334
Agora/Proposal/validator/unlocking/legal/with 1 proposals/creator: remove creator locks when finished/stake,125083340,324576,5217
Agora/Proposal/validator/unlocking/legal/with 1 proposals/creator: remove creator locks when finished/propsoal,204228787,584379,8111
Agora/Proposal/validator/unlocking/legal/with 1 proposals/creator: remove creator locks when finished/propsoal,204366787,584979,8320
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove all locks when finished/stake,125083340,324576,5233
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove all locks when finished/propsoal,212663044,609283,8123
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove all locks when finished/propsoal,212801044,609883,8332
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Locked/stake,125083340,324576,5223
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Locked/propsoal,205544939,588263,8118
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Locked/propsoal,205682939,588863,8327
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Finished/stake,125083340,324576,5223
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Finished/propsoal,205544939,588263,8118
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Finished/propsoal,205682939,588863,8327
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove vote locks when locked/stake,128314586,333630,5239
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove vote locks when locked/propsoal,219548722,629597,8129
Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove vote locks when locked/propsoal,219686722,630197,8338
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: retract votes while voting/stake,259870480,666572,7303
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: retract votes while voting/propsoal,379077900,1077188,10174
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: retract votes while voting/propsoal,379215900,1077788,10383
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: retract votes while voting/stake,276026710,711842,7380
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: retract votes while voting/propsoal,444606435,1268442,10226
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: retract votes while voting/propsoal,444744435,1269042,10435
Agora/Proposal/validator/unlocking/legal/with 5 proposals/creator: remove creator locks when finished/stake,259870480,666572,7293
Agora/Proposal/validator/unlocking/legal/with 5 proposals/creator: remove creator locks when finished/propsoal,312309599,902235,10167
Agora/Proposal/validator/unlocking/legal/with 5 proposals/creator: remove creator locks when finished/propsoal,312447599,902835,10376
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove all locks when finished/stake,259870480,666572,7374
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove all locks when finished/propsoal,350698580,1013987,10220
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove all locks when finished/propsoal,350836580,1014587,10429
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Locked/stake,259870480,666572,7324
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Locked/propsoal,317778859,917311,10195
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Locked/propsoal,317916859,917911,10404
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Finished/stake,259870480,666572,7324
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Finished/propsoal,317778859,917311,10195
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Finished/propsoal,317916859,917911,10404
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove vote locks when locked/stake,276026710,711842,7400
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove vote locks when locked/propsoal,383838970,1109957,10246
Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove vote locks when locked/propsoal,383976970,1110557,10455
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: retract votes while voting/stake,428354405,1094067,9909
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: retract votes while voting/propsoal,557379460,1593018,12750
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: retract votes while voting/propsoal,557517460,1593618,12959
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: retract votes while voting/stake,460666865,1184607,10060
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: retract votes while voting/propsoal,687978405,1973412,12851
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: retract votes while voting/propsoal,688116405,1974012,13060
Agora/Proposal/validator/unlocking/legal/with 10 proposals/creator: remove creator locks when finished/stake,428354405,1094067,9888
Agora/Proposal/validator/unlocking/legal/with 10 proposals/creator: remove creator locks when finished/propsoal,447410614,1299555,12737
Agora/Proposal/validator/unlocking/legal/with 10 proposals/creator: remove creator locks when finished/propsoal,447548614,1300155,12946
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove all locks when finished/stake,428354405,1094067,10049
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove all locks when finished/propsoal,523243000,1519867,12840
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove all locks when finished/propsoal,523381000,1520467,13049
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Locked/stake,428354405,1094067,9949
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Locked/propsoal,458071259,1328621,12790
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Locked/propsoal,458209259,1329221,12999
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Finished/stake,428354405,1094067,9949
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Finished/propsoal,458071259,1328621,12790
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Finished/propsoal,458209259,1329221,12999
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove vote locks when locked/stake,460666865,1184607,10100
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove vote locks when locked/propsoal,589201780,1710407,12891
Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove vote locks when locked/propsoal,589339780,1711007,13100
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: retract votes while voting/stake,1506651525,3830035,26674
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: retract votes while voting/propsoal,1698509444,4894330,29304
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: retract votes while voting/propsoal,1698647444,4894930,29513
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: retract votes while voting/stake,1642363857,4210303,27362
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: retract votes while voting/propsoal,2245559013,6485220,29763
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: retract votes while voting/propsoal,2245697013,6485820,29972
Agora/Proposal/validator/unlocking/legal/with 42 proposals/creator: remove creator locks when finished/stake,1506651525,3830035,26590
Agora/Proposal/validator/unlocking/legal/with 42 proposals/creator: remove creator locks when finished/propsoal,1312057110,3842403,29260
Agora/Proposal/validator/unlocking/legal/with 42 proposals/creator: remove creator locks when finished/propsoal,1312195110,3843003,29469
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove all locks when finished/stake,1506651525,3830035,27301
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove all locks when finished/propsoal,1627527288,4757499,29702
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove all locks when finished/propsoal,1627665288,4758099,29911
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Locked/stake,1506651525,3830035,26843
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Locked/propsoal,1355942619,3961005,29473
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Locked/propsoal,1356080619,3961605,29682
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Finished/stake,1506651525,3830035,26843
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Finished/propsoal,1355942619,3961005,29473
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Finished/propsoal,1356080619,3961605,29682
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove vote locks when locked/stake,1642363857,4210303,27531
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove vote locks when locked/propsoal,1903523764,5553287,29932
Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove vote locks when locked/propsoal,1903661764,5553887,30141
"Agora/Proposal/validator/unlocking/illegal/with 1 proposals/retract votes while not voting/role: Voter, status: Draft/stake",125083340,324576,5219
"Agora/Proposal/validator/unlocking/illegal/with 1 proposals/retract votes while not voting/role: Voter, status: Locked/stake",125083340,324576,5219
"Agora/Proposal/validator/unlocking/illegal/with 1 proposals/retract votes while not voting/role: Voter, status: Finished/stake",125083340,324576,5219

1 name cpu mem size
29 Agora/Proposal/policy (proposal creation)/illegal/invalid proposal status/Locked/stake 153960499 403133 5404
30 Agora/Proposal/policy (proposal creation)/illegal/invalid proposal status/Finished/proposal 33689644 100286 2002
31 Agora/Proposal/policy (proposal creation)/illegal/invalid proposal status/Finished/stake 153960499 403133 5404
32 Agora/Proposal/validator/cosignature/legal/with 1 cosigners/propsoal 235405219 235543219 657707 658307 8151 8360
33 Agora/Proposal/validator/cosignature/legal/with 1 cosigners/stake 118915099 307672 5213
34 Agora/Proposal/validator/cosignature/legal/with 5 cosigners/propsoal 670429262 670567262 1868318 1868918 10781 10990
35 Agora/Proposal/validator/cosignature/legal/with 5 cosigners/stake 549710287 1450080 7723
36 Agora/Proposal/validator/cosignature/legal/with 10 cosigners/propsoal 1328551536 1328689536 3641835 3642435 14069 14278
37 Agora/Proposal/validator/cosignature/legal/with 10 cosigners/stake 1097682628 2902865 10860
38 Agora/Proposal/validator/cosignature/illegal/duplicate cosigners/stake 118915099 307672 5213
39 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 1 cosigners/status: VotingReady/stake 118915099 307672 5213
45 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: VotingReady/stake 1097682628 2902865 10860
46 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Locked/stake 1097682628 2902865 10860
47 Agora/Proposal/validator/cosignature/illegal/proposal status not Draft/with 10 cosigners/status: Finished/stake 1097682628 2902865 10860
48 Agora/Proposal/validator/voting/legal/propsoal 253541830 253679830 711367 711967 8133 8342
49 Agora/Proposal/validator/voting/legal/stake 136152299 356425 5239
50 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/propsoal 222392288 222530288 630302 630902 8114 8323
51 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to next state/stake 118915099 307672 5222
52 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/propsoal 217337596 217475596 619581 620181 8116 8325
53 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/legal/to failed state/stake 118915099 307672 5224
54 Agora/Proposal/validator/advancing/from draft/with 1 cosigner(s)/illegal/insufficient cosigns/stake 118638207 307672 5152
55 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/propsoal 602596705 602734705 1722841 1723441 10969 11178
56 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to next state/stake 496218319 1294304 7957
57 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/propsoal 239706944 239844944 681645 682245 8477 8686
58 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/legal/to failed state/stake 118915099 307672 5465
59 Agora/Proposal/validator/advancing/from draft/with 5 cosigner(s)/illegal/insufficient cosigns/stake 447610813 1171578 7606
60 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/propsoal 1183788938 1183926938 3402248 3402848 14538 14747
61 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to next state/stake 1125911200 2984885 11375
62 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/propsoal 267668629 267806629 759225 759825 8930 9139
63 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/legal/to failed state/stake 118915099 307672 5767
64 Agora/Proposal/validator/advancing/from draft/with 10 cosigner(s)/illegal/insufficient cosigns/stake 1013739927 2699971 10673
65 Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/propsoal 253438293 272116829 715975 760091 8123 8332
66 Agora/Proposal/validator/advancing/legal/advance to next state/from: VotingReady/stake 118915099 307672 5229
67 Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/propsoal 242199184 295366820 683144 822071 8123 8771
68 Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/stake 118915099 156324691 307672 401372 5229 5668
69 Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/propsoal Agora/Proposal/validator/advancing/legal/advance to next state/from: Locked/governor 239371739 258411069 677134 667386 8117 8946
70 Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/propsoal 258602387 722952 8326
71 Agora/Proposal/validator/advancing/legal/advance to failed state/from: VotingReady/stake 118915099 307672 5225
72 Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/propsoal 240502717 259733365 679538 725356 8117 8326
73 Agora/Proposal/validator/advancing/legal/advance to failed state/from: Locked/stake 118915099 307672 5225
74 Agora/Proposal/validator/advancing/illegal/insufficient votes/stake 118915099 307672 5225
75 Agora/Proposal/validator/advancing/illegal/initial state is Finished/stake 118915099 307672 5217
76 Agora/Proposal/validator/advancing/illegal/invalid stake output/from Lockedwith 1 stakes/governor 258411069 667386 8946
77 Agora/Proposal/validator/advancing/illegal/invalid stake output/from Lockedwith 5 stakes/governor 265599017 688074 9187
78 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: retract votes while voting/stake 125083340 324576 5219
79 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: retract votes while voting/propsoal 236436652 236574652 664524 665124 8114 8323
80 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: retract votes while voting/stake 128314586 333630 5235
81 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: retract votes while voting/propsoal 249908859 250046859 704466 705066 8125 8334
82 Agora/Proposal/validator/unlocking/legal/with 1 proposals/creator: remove creator locks when finished/stake 125083340 324576 5217
83 Agora/Proposal/validator/unlocking/legal/with 1 proposals/creator: remove creator locks when finished/propsoal 204228787 204366787 584379 584979 8111 8320
84 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove all locks when finished/stake 125083340 324576 5233
85 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove all locks when finished/propsoal 212663044 212801044 609283 609883 8123 8332
86 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Locked/stake 125083340 324576 5223
87 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Locked/propsoal 205544939 205682939 588263 588863 8118 8327
88 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Finished/stake 125083340 324576 5223
89 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter: unlock after voting/Finished/propsoal 205544939 205682939 588263 588863 8118 8327
90 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove vote locks when locked/stake 128314586 333630 5239
91 Agora/Proposal/validator/unlocking/legal/with 1 proposals/voter/creator: remove vote locks when locked/propsoal 219548722 219686722 629597 630197 8129 8338
92 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: retract votes while voting/stake 259870480 666572 7303
93 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: retract votes while voting/propsoal 379077900 379215900 1077188 1077788 10174 10383
94 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: retract votes while voting/stake 276026710 711842 7380
95 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: retract votes while voting/propsoal 444606435 444744435 1268442 1269042 10226 10435
96 Agora/Proposal/validator/unlocking/legal/with 5 proposals/creator: remove creator locks when finished/stake 259870480 666572 7293
97 Agora/Proposal/validator/unlocking/legal/with 5 proposals/creator: remove creator locks when finished/propsoal 312309599 312447599 902235 902835 10167 10376
98 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove all locks when finished/stake 259870480 666572 7374
99 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove all locks when finished/propsoal 350698580 350836580 1013987 1014587 10220 10429
100 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Locked/stake 259870480 666572 7324
101 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Locked/propsoal 317778859 317916859 917311 917911 10195 10404
102 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Finished/stake 259870480 666572 7324
103 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter: unlock after voting/Finished/propsoal 317778859 317916859 917311 917911 10195 10404
104 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove vote locks when locked/stake 276026710 711842 7400
105 Agora/Proposal/validator/unlocking/legal/with 5 proposals/voter/creator: remove vote locks when locked/propsoal 383838970 383976970 1109957 1110557 10246 10455
106 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: retract votes while voting/stake 428354405 1094067 9909
107 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: retract votes while voting/propsoal 557379460 557517460 1593018 1593618 12750 12959
108 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: retract votes while voting/stake 460666865 1184607 10060
109 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: retract votes while voting/propsoal 687978405 688116405 1973412 1974012 12851 13060
110 Agora/Proposal/validator/unlocking/legal/with 10 proposals/creator: remove creator locks when finished/stake 428354405 1094067 9888
111 Agora/Proposal/validator/unlocking/legal/with 10 proposals/creator: remove creator locks when finished/propsoal 447410614 447548614 1299555 1300155 12737 12946
112 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove all locks when finished/stake 428354405 1094067 10049
113 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove all locks when finished/propsoal 523243000 523381000 1519867 1520467 12840 13049
114 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Locked/stake 428354405 1094067 9949
115 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Locked/propsoal 458071259 458209259 1328621 1329221 12790 12999
116 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Finished/stake 428354405 1094067 9949
117 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter: unlock after voting/Finished/propsoal 458071259 458209259 1328621 1329221 12790 12999
118 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove vote locks when locked/stake 460666865 1184607 10100
119 Agora/Proposal/validator/unlocking/legal/with 10 proposals/voter/creator: remove vote locks when locked/propsoal 589201780 589339780 1710407 1711007 12891 13100
120 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: retract votes while voting/stake 1506651525 3830035 26674
121 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: retract votes while voting/propsoal 1698509444 1698647444 4894330 4894930 29304 29513
122 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: retract votes while voting/stake 1642363857 4210303 27362
123 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: retract votes while voting/propsoal 2245559013 2245697013 6485220 6485820 29763 29972
124 Agora/Proposal/validator/unlocking/legal/with 42 proposals/creator: remove creator locks when finished/stake 1506651525 3830035 26590
125 Agora/Proposal/validator/unlocking/legal/with 42 proposals/creator: remove creator locks when finished/propsoal 1312057110 1312195110 3842403 3843003 29260 29469
126 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove all locks when finished/stake 1506651525 3830035 27301
127 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove all locks when finished/propsoal 1627527288 1627665288 4757499 4758099 29702 29911
128 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Locked/stake 1506651525 3830035 26843
129 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Locked/propsoal 1355942619 1356080619 3961005 3961605 29473 29682
130 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Finished/stake 1506651525 3830035 26843
131 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter: unlock after voting/Finished/propsoal 1355942619 1356080619 3961005 3961605 29473 29682
132 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove vote locks when locked/stake 1642363857 4210303 27531
133 Agora/Proposal/validator/unlocking/legal/with 42 proposals/voter/creator: remove vote locks when locked/propsoal 1903523764 1903661764 5553287 5553887 29932 30141
134 Agora/Proposal/validator/unlocking/illegal/with 1 proposals/retract votes while not voting/role: Voter, status: Draft/stake 125083340 324576 5219
135 Agora/Proposal/validator/unlocking/illegal/with 1 proposals/retract votes while not voting/role: Voter, status: Locked/stake 125083340 324576 5219
136 Agora/Proposal/validator/unlocking/illegal/with 1 proposals/retract votes while not voting/role: Voter, status: Finished/stake 125083340 324576 5219