Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clearer messages #80

Open
sakulstra opened this issue Mar 25, 2024 · 1 comment
Open

clearer messages #80

sakulstra opened this issue Mar 25, 2024 · 1 comment

Comments

@sakulstra
Copy link
Contributor

Waiting for proposal execution

when a proposal has succeeded and the result has been bridged back to mainnet, currently the ui shows Pending execution.. While technically that's correct (as it's pending execution of the proposal), it's also misleading as by execution ppl naturally understand execution of the payload, but in this case it's just he execution of the proposal = queuing of the payload.

Perhaps better "Pending payload queuing via proposal execution", idk

"Will expire in x", as long as bridging is not finished.

Currently the ui shows "will expire in x" as long as not all payloads have been queued.

As we know: the proposal was executed & the paylaods have not yet been queud, perhaps better to show sth lik "Pending payload queuing via bridge"

Payloads not yet queued will show "time-locked"

Not sure what "time-locked" means exactly... To me that state is quite confusing tbh.

If the proposal is executed & message is not yet bridged, should probably say exactly that "Awaiting queuing via bridge"


Quite sure especially @eboadom will not like the suggested messages, so plz suggest alternatives 😅

From a puristic view one could say should just be "pending queuing" in all cases... at for most users that's all the info they need.
I think i would still be confused with this though & it would hide problems (like failing automation) as from the ui alone will be hard to tell why its "pending queueing".

@Argeare5
Copy link
Collaborator

Argeare5 commented Mar 26, 2024

What we have now in UI:

Proposal:

// current state
enum ProposalStateWithName {
Created = 'Created', // when proposal created
Voting = 'Voting', // when active for voting
Passed = 'Passed', // when voting passed
Failed = 'Failed', // when voting failed
Executed = 'Executed', // when proposal and all payloads executed
Expired = 'Expired', // when proposal or all payloads in proposal expired
Canceled = 'Canceled', // when proposal or all payloads in proposal canceled
}

// estimated proposal state
enum ProposalEstimatedState {
Active = 'Will open for voting', // when proposal created but wait for activate voting on gov core
Succeed = 'Will pass', // when predict result of voting will be success
Failed = 'Will fail', // when predict result of voting will be fail
ProposalExecuted = 'Proposal will start executing', // when proposal queued via bridge and time-locked and have cooldown before execution Proposal will start executing in 24h..., (for now hard to visible this, because on the contracts side cooldown is 0, for now)
PayloadsExecuted = 'Payloads will start executing', // when one of proposal payloads queued via bridge and time-locked and have cooldown before execution, we display Payloads will start executing in 24h...
Expired = 'Will expire', // by default, if one of the above conditions does not match
}

// wait for state
enum ProposalWaitForState {
WaitForActivateVoting = 'Pending voting activation', // when proposal created and ready to activate voting on gov core
WaitForCloseVoting = 'Pending voting closure', // when voting result success and voting finished but not closed on contract side
WaitForQueueProposal = 'Proposal is time-locked', // when proposal time-locked
WaitForExecuteProposal = 'Pending proposal execution', // when proposal ready for execution
WaitForQueuePayloads = 'Payloads are time-locked', // when all payloads in proposal are time-locked
WaitForExecutePayloads = 'Pending payloads execution', // when one of proposal payloads ready for execution
}

Payloads:
// estimated payloads state
enum PayloadEstimatedState {
Expire = 'Expire in', // visible in UI before payload get final status (expired, executed, canceled)
Execute = 'Execution will be available in', // visible when payload time-locked and not executed
}

in proposal details (create/overview) screens:

enum UIPayloadState {
Created = 'Created at', // when payload created and proposal not executed
Queued = 'Time-locked', // when payload created and proposal executed
ReadyForExecution = 'Ready for execution', // when payload queued
Executed = 'Executed at', // when payload executed
Expired = 'Expired at', // when payload expired
Canceled = 'Cancelled at', // when payload canceled
}

in payloads overview screen:

enum UIPayloadState {
Created = 'Created', // when payload created and proposal not executed
Queued = 'Queued', // when payload created and proposal executed
ReadyForExecution = 'Can be executed', // when payload queued
Executed = 'Executed', // when payload executed
Expired = 'Expired', // when payload expired
Canceled = 'Canceled', // when payload canceled
}

After discussions in slack, and all the suggestions, here is my version of the statuses
NEW VERSION:

Proposal:

// current state (I think we can leave it as it was)
// estimated proposal state (I think we can leave it as it was as well)
// wait for state
enum ProposalWaitForState {
WaitForActivateVoting = 'Waiting for voting activation', // when proposal created and ready to activate voting on gov core
WaitForCloseVoting = 'Waiting for voting closure', // when voting result success and voting finished but not closed on contract side
WaitForQueueProposal = 'Proposal is time-locked', // when proposal time-locked
WaitForExecuteProposal = 'Waiting for proposal execution', // when proposal ready for execution
WaitForQueuePayloads = 'Payloads are time-locked', // when all payloads in proposal are time-locked
WaitForExecutePayloads = 'Waiting for payloads execution', // when one of proposal payloads ready for execution
}

Payloads:

// estimated payloads state (I think we can leave it as it was)

// payloads state we can combine to one
enum UIPayloadState {
Created = 'Created', // when payload created and proposal not executed
Queuing = 'Awaiting queuing via bridge', // when payload created and proposal executed
Queued = 'Can be executed', // when payload queued
Executed = 'Executed', // when payload executed
Expired = 'Expired', // when payload expired
Canceled = 'Canceled', // when payload canceled
}

What do you think @sakulstra @kyzia551 @eboadom ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants