Skip to main content

GovTool user stories

Personas

IDNAMEDESCRIPTION
HOLDERADA Holder
DRepDRep

User stories

VOLTAIRE

User Story ID: CH.VO.001

  • Enabler

Title: As a DRep or Ada Holder I want to connect my wallet to GovTool so that I can post transactions on-chain

User Story

  • As a DRep or Ada Holder I want to connect my wallet to GovTool so that I can post transactions on-chain

Functional Requirements

RequirementsAcceptance Criteria
Connect with multiple stake key walletGiven I am on the homepage
And my wallet is not connected.
When I click the Connect Wallet button
And select (one of) my CIP-95 compatible wallet(s) with multiple stake keys containing more than zero ADA (or tADA for SanchoNet)
And select from a list which stake key I wish to connect with
Then the wallet will prompt me to connect and I can connect to GovTool with it on the selected stake key.
Given I am on the homepage
And my wallet is not connected
When I click the Connect Wallet button
Then I am not shown any non CIP-95 compatible wallets.
Given I am on the homepage
And my wallet is not connected
When I click the Connect Wallet button and select a CIP-95 compliant, multiple stake key wallet, containing zero ADA (or tADA for SanchoNet)
And I select a wallet with multiple stake keys from this list
Ans select which stake key I wish to connect with
When I select a stake key
Then the wallet will prompt me to connect and I can connect to GovTool with it on the selected stake key.
Connect with single stake key walletGiven I am on the homepage with no wallet connected
When I click the Connect Wallet button and select a CIP-95 compliant single stake key wallet
Then my wallet appears and I can connect with it
Given I am on the homepage without my wallet connected
When I click the Connect Wallet button
Then I am not shown any non CIP-95 compatible wallets.
Given I am on the homepage without my wallet connected
When I click the Connect Wallet button and select a CIP-95 compliant, single stake key wallet, containing zero ADA (or tADA for SanchoNet)
Then my wallet appears and I can connect with it
Given I am on the homepage without my wallet connected
When I click the Connect Wallet button and select a CIP-95 compliant, single stake key wallet, containing more than zero ADA (or tADA for SanchoNet)
Then my wallet appears and I can connect with it
Disconnect walletGiven that I am on the dashboard with my wallet connected
If I click the Disconnect button
Then my wallet is disconnected from GovTool and I am redirected to the homepage
Check the wallet is on the correct network
Given I am on the homepage
When I compare the networkId with the environment value set on the deployment for the network.
Then if there are exceptions raised, fail the test.
If no exceptions, connect the wallet to the network (pass)

User Story ID: CH.VO.002

  • Enabler

Title: As an Ada Holder I want to delegate my voting power to a DRep so that I can claim my staking rewards

User Story

  • As an Ada Holder I want to delegate my voting power to a DRep so that I can claim my staking rewards

Functional Requirements

RequirementsAcceptance Criteria
Delegate to DRep IDGiven that I have my wallet connected, and I am on the Delegate to DRep page
When I select the delegate to DRep ID option and I enter a DRep ID which has not been registered and I press delegate
Then I will be presented with an error message explaining that the DRep ID was not found
Given that I have my wallet connected, and I am on the delegate to DRep page,
When I choose the Delegate to DRep ID option and I enter a registered DRep ID and I press the Delegate button
Then I am able to delegate to that DRep ID via my connected wallet
Given that I have connected to GovTool with zero* ADA (or tADA in the case of SanchoNet)
When I choose the Delegate to DRep ID option and I enter a registered DRep ID and I press the Delegate button
Then I am presented with a warning message and cannot proceed with delegation.
*or at least a number below transaction costs
Access Delegate to DRep pageGiven that I do not have a compatible wallet connected to GovTool
When I attempt to visit the URL of the Delegate to DRep page
Then I am redirected to the homepage
Given that I have a compatible wallet connected to GovTool and I am looking at the dashboard
When I click on the the Delegate button (or Change Delegation button if you are already registered)
Then I am shown the Delegate to DRep page
Verify DRep behaviour in connected stateGiven that I'm not connected to the wallet
When I visit the DRep delegation page, and I click the delegate-connect-wallet-button
Then the connect your wallet-modal is visible
Verify DRep behaviour in disconnected stateGiven that I have a preset DdRep wallet loaded
Then Delegate button is clicked
Then it is expected that delegation options card is visible
delegate to myself is expected to be visible
Then Other options is clicked
Expect that signal no confidence card and vote abstain cards are visible
Next, delegate to dRep card is clicked, followed by next step button
Then expected that dRep ID input is visible along with delegate button
Delegate to myselfGiven that I am a registered DRep who is connected to GovTool with my wallet, and I am on the Delegate to DRep page
When I choose the Delegate to DRep ID option and I enter my own DRep ID and I press the Delegate button
Then I am able to delegate to myself via my connected wallet
Given that I am a registered DRep who is connected to GovTool with my wallet, and I am on the Delegate to DRep page
When I select the Delegate to Myself option and press the Delegate button
Then I will be able to send a transaction to delegate to myself via my wallet
Given that I am not a registered DRep, and I am connected to GovTool with my wallet,
When I am on the Delegate to DRep page
I cannot see a Delegate to Myself option
Change my DRep delegationGiven that I am I am already delegated to a DRep
When I look at the dashboard
GovTool will know that I am delegated and it will invite me to “change my delegation” rather than to delegate.
Given that I am already delegated
When I go to change my delegation
I can delegate to any registered DRep, If I am delegated to myself then the option to “delegate to myself” will not be shown, If I am delegated to a specific predefined DRep then this predefined option will not be shown
Check the validity of a DRep IDGiven that I have selected the “delegate to a DRep ID” option in the delegation user journey.
When I enter anything in the DRep ID input box that is not a registered DRep ID.
Then I will not be able to delegate to this DRep ID and will get a warning message.
Delegate to AbstainGiven that I am a DRep
When I delegate using the “delegate to abstain” feature
Then it will only delegate my own lovelace’s voting power to Abstain and NOT the voting power (if any) that has been delegated to me by others. I will be notified that my delegation transaction was sent.
Given that I am not a DRep
When I delegate using the “delegate to abstain” feature
Then it will delegate any voting power I have to Abstain. I will be notified that my delegation transaction was sent
Delegate to No-ConfidenceGiven that I am a DRep
When I delegate using the “delegate to no-confidence” feature
Then it will only delegate my own lovelace’s voting power to No-Confidence and NOT the voting power (if any) that has been delegated to me by others. I will be notified that my delegation transaction was sent.
Given that I am not a DRep
When I delegate using the “delegate to no-confidence” feature
Then it will delegate any voting power I have to No-Confidence. I will be notified that my delegation transaction was sent

User Story ID: VO3

  • Enabler

Title: As a DRep I want to register so that I can vote on governance actions

User Story

  • As a DRep I want to register so that I can vote on governance actions

Functional Requirements

RequirementsAcceptance Criteria
Register as a DRepGiven that I am connected to GovTool with a compatible wallet
When I go through the DRep registration process, and do not include a metadata anchor
Then I can register as a DRep via my wallet (because metadata anchors are optional)
Given that I am connected to GovTool with a compatible wallet
When I go through the DRep registration process, and include metadata anchor information in the wrong format
Then I will not be able to progress further in the process and I will be told that it is because the format is incorrect
Given that I am connected to GovTool with a compatible wallet
When I go through the DRep registration process, and include metadata anchor information in the correct format
Then I will be able to register as a DRep via my wallet, GovTool will include the metadata anchor in the registration certificate transaction.
Confirm transaction has been sentGiven that I have gone through the DRep registration process
When I press the button on my wallet to submit the transaction
Then I will receive a confirmation message from GovTool that will include a link to the transaction in a block explorer
Status of transaction is displayedGiven that I have just submitted a DRep registration transaction, and I am looking at the dashboard
When the registration has not yet been confirmed by the blockchain,
Then the registration status will show as “In Progress” until it is confirmed

User Story ID: CH.VO.004

  • Enabler

Title: As a DRep I want to vote so that I can fulfill my role

User Story

  • As a DRep I want to vote so that I can fulfill my role

Functional Requirements

RequirementsAcceptance Criteria
Should be able to access the governance actions page as a DRep with my wallet connectedGiven that I am a DRep and I am connected to GovTool
When I visit the url of the governance actions page
Then the governance actions page is displayed
Given that I am a DRep and connected to GovTool
When I look at the governance actions page
Then my voting power is displayed
Given that I am a DRep and Connected to GovTool, and I am on the governance actions page
When I click Disconnect Wallet
Then my wallet is disconnected and I am redirected to the same page, but without the DRep functionality (i.e. ability to vote)
Given that I am a DRep and I am on the governance actions page
When I click on the “view proposal details” button
Then I will be shown the page for that individual governance action and be able to view its details
A DRep should be able to vote on a live governance actionGiven that I am a DRep
When I look at the details page of an individual governance action
Then I can see how many votes the governance action currently has for, against and abstaining
Given that I am a DRep
When I look at the details page of an individual governance action
Then there are buttons allowing me to vote for, against or abstain.
Given that I am a DRep, on the details page of an individual governance action
When I select yes/ no/ abstain, and click vote
Then I can sign & submit this vote via my wallet
Given that I am a DRep
When I have submitted a vote
Then Immediately after this GovTool will display a message informing me that my transaction has been sent and providing me with a link to a block explorer where I can view the transaction
People without the (t)ADA needed to pay for voting transactions should not be able to submit a voting transactionGiven that I do not have a wallet connected to GovTool
When I visit the details of a governance action
Then I am not shown a vote button
People without their wallet connected or who do have their wallet connected but have not registered as DReps should not be able to voteGiven that I am on the governance action page
When I examine the governance actions
None of the governance actions shown on the page have expired or been ratified or enacted.
No one should be able to vote on a governance action that has expired, or been ratified, or enacted.Given that I am a DRep and I have already voted on a given governance action
When I submit a different vote for the same transaction within the same snapshot
Then the most recent vote will be counted
Given that I have already cast a vote on a given governance action
When I examine this specific governance action’s page
Then instead of seeing a “vote” button I should see a “change vote” button
Only the votes of participants who are still DReps at the relevant epoch boundary will be acceptedGiven that I am a DRep and I vote yes or abstain on a live governance action.
At the epoch boundary
My votes are counted
Given that I was a DRep that voted yes or abstain on a live governance action but then retired.
At the next epoch boundary
My votes will not be counted towards the total tally of DRep votes.
DReps can attach a metadata anchor to their votesGiven that I have chosen how to vote on the UI of a governance action’s details
When I add a metadata anchor to the UI also and click the vote button
Then the resulting transaction will include my metadata anchor

User Story ID: CH.VO.005

  • Enabler

Title: As a DRep I want to retire so that I can reclaim my DRep Deposit

User Story

  • As a DRep I want to retire so that I can reclaim my DRep Deposit

Functional Requirements

RequirementsAcceptance Criteria
Only a user who is registered as a DRep can retireGiven that I am not registered as a DRep,
When I look for a retirement option in GovTool
Then there is none.
Given that I am registered as a DRep,
When I look for a retirement option in GovTool
Then there is one. And when I choose this option
Then my wallet opens, and I can sign a retirement action, which is registered on-chain.
When I retire, I get my deposit backGiven that I am a DRep,
When I register a valid retirement transaction on-chain
Then my DRep registration deposit will be returned to me.
Only a user who has the wallet that they registered as a DRep with can retireGiven that I am not connected to GovTool,
When I look at the homepage
Then I will not see an option to retire.
Given that I am connected to GovTool with an account that is not associated with a registered DRep certificate,
When I look at the homepage
Then I see an option to register as a DRep