check GST while moving from Locked
This commit is contained in:
parent
3ec1645f5a
commit
4317987964
5 changed files with 187 additions and 59 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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" $
|
||||
|
|
|
|||
|
|
@ -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 ()
|
||||
|
|
|
|||
89
bench.csv
89
bench.csv
|
|
@ -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
|
||||
|
|
|
|||
|
Loading…
Add table
Add a link
Reference in a new issue