This section focuses on operations in forking state. Flash scripts can be used to force market to forking state.
- Pre-Fork
- Forking Market
- Migrating REP
- Forking Ends
- Migrating Markets
- Disavow REP
This state occurs when at least one dispute bond is greater than 2.5% of all REP, but no dispute bonds of that size have been filled yet. In other words, we're in a state where a fork may occur, but hasn't yet.
- The potentially forking market should be the first market listed on the Dispute page.
- The potentially forking market should have a red bar along the top, and be labeled with "Potential Fork" (see mocks).
- The outcomes with a dispute bond greater than 2.5% of all REP should have a red "!" icon to the left of the outcome name (see mocks).
-
ch10767Filling the dispute bond that's at least 2.5% of all REP should trigger the During Fork state.
Initiate a fork and then test the follow:
- Verify there is a forking banner along the top of the app (directly below the core stats bar) and that this is visible throughout the whole app.
- "Additional Details" in the forking banner should be clickable to expand the additional details section.
-
ch10772Styles for the additional details section should match the design. - Verify that the forking window end date is correct, both in the header ("Forking Window Ends...") and in the paragraph ("The forking period will end...").
- Verify that the forking progress bar progress and "X days left" is correct.
- Verfiy that when the forking progress bar is nearly complete, the "X days left" text switches to the left side of the progress bar so it doesn't run off the page (see the Dispute progress bar for an example).
- Clicking on the "Migrate REP" button should bring you to the Migrate REP form.
- On the Dispute page, verify that the forking header is displaying (see mocks). (This is the same content as shown in the forking banner additional details.)
- On the Dispute page, verify that the market that forced the fork is shown as the forking market.
- That forking market should have a red bar across the top and be labeled with text that says "Forking" (see mocks).
-
ch10911Verify that all other markets that were already in Dispute are now listed under Dispute Paused. - Navigate directly to the dispute form for a market and verify that a dispute cannot be submitted.
-
ch10790"Upcoming Dispute Window" should now be "Dispute Paused" - Verify that, after a market is reported on, it is moved to the "Dispute Paused" list.
- The Create menu item should be disabled. If you navigate directly to the Create Market url, the tx to create a market should fail.
- Verify that it is still possible to trade on markets, including the forking market.
- Verify that the forking market can't be finalized during forking period. This can be attempted using the flash script.
-
ch11278ch11188Verify that you can claim your REP from the forking market and that the REP is migrated to the appropriate universe. - ch11272 Any markets that were in Dispute with partially or fully filled dispute bonds when the fork occurred should show empty dispute bonds and be in Round 0 after the fork begins. (These will be listed underneath the Dispute Paused heading.)
Any REP that the user had staked on a dispute in a non-forking market should be claimable when the Fork begins. Stake placed on a dispute in a forking market should not be claimable. Stake placed on a report on any market should not be claimable.
-
ch11120ch10912Add REP to a couple dispute bonds in a couple different rounds. Keep track of the total. Cause one of those markets to fork. (1) Verify that you can claim all of the REP you placed in dispute bonds in non-forking markets by clicking the "Claim All" button on the Portfolio: Reporting page. (2) Verify that the REP you staked on a dispute bond in the forking market is not claimable. - Prior to a fork, place stake on a report. Initiate a fork on that market. Verify that you cannot claim the stake you placed on the report.
- Prior to a fork, place stake on a report. Initiate a fork on a different market. Verify that you cannot claim the stake you placed on the report.
- Initiate a fork. Verify that you can still report on markets in Designated Reporting.
- Initiate a fork. Verify that you can still report on markets in Open Reporting.
- Initiate a fork. Verify that you can still report on markets whose end date passes after the fork begins. The market should move into Designated Reporting like normal.
-
ch11265Prior to a fork, add REP to a dispute bond (but don't fill the bond). Initiate a fork on the same market. Verify that you can claim your REP from the failed dispute. - Prior to a fork, add REP to a dispute bond (but don't fill the bond). Initiate a fork on a different market. Verify that you can claim your REP from the failed dispute.
- Verify user gets 5% bonus when migrating REP during the 60 day forking period both before 50% of REP has been migrated and after 50% of REP has been migrated. (This 5% bonus will be available in the child universe that the REP was migrated to.)
- Verify that users can still migrate REP after the forking period ends.
- Verify that the user doesn't get the 5% bonus if they migrate after the forking period has ended.
- Verify that the user can't migrate REP if they don't have any.
- Verify that the user can migrate REP to any outcome of forking market, including Market is Invalid.
- Verify that the user can migrate REP to a chosen scalar outcome.
- Verify that the user can migrate only some of their REP at a time. Verify balance after Tx confirmation.
- Verify that the user can migrate all their REP at one time. Verify balance after Tx confirmation.
- Initiate a fork and migrate at least 50% of REP (5.5 mil REP). Verify that the winning universe is declared. It should be labeled both in the Migrate REP form and on the Account: Universes page.
- Initiate a fork and migrate less than 50% of REP. Verify that the winning universe is declared when the 60 day window ends and the market is finalized.
-
ch11120Verify that REP can be migrated after being disavowed. - Verify that the forking market can be manually finalized when the 60 day forking window ends (when less that 50% of REP has been migrated during that window). The flash script can be used to do this.
During and after a fork:
- Migrate REP to an outcome/universe using the Migrate REP form. This should automatically create a universe for that outcome if it didn't already exist. Verify user can switch to universe on the Account: Universes page.
- Verify user account balances update correctly when universe is changed. This should change on the Account page and in the Core Stats bar.
- Verify that the forking universe is listed in the left-hand column and the child universes are listed in the middle column.
- Switch around to a couple different universes. Verify that your current universe is always correctly labeled "Current".
- Verify that the winning universe from fork is labeled as the winning universe.
- Verify that the stats shown about each universe are correct (your REP, total REP, and # of markets).
- Verify the "Migrate" button only displays on the market card after a winning universe is declared via the 50% REP Migrated method.
- Verify the "Migrate" button only displays on the market card after a winning universe is declared when the forking period ends and the forked market has been finalized (and less than 50% of REP has been migrated).
- Verify market can't be migrated before a winning universe is declared.
- Verify markets only migrate to the winning universe.
-
ch11140Once a market has been migrated, its categories should display in the child universe. - Verify that you can migrate a market in pre-reporting.
- Verify that you can migrate a market in designated reporting.
- Verify that you can migrate a market in open reporting.
- Verify that you can migrate a market in Dispute Paused.
- Verify that if a market was already reported on in the forking universe, the report and associated REP get migrated with the market.
- Verify markets are no longer listed in the parent universe after they are migrated.
- Verify anyone can migrate markets after a winning universe is declared.
- Verify that trading on a migrated market works in the child universe.
- Verify that the migrated market can go through the normal reporting & dispute cycle after migration to the child universe.
- Verify that a child universe starts out with no markets.
- Verify you can create markets in a child universe and that the created market only shows up in the child universe.
- Verify that you can trade on markets in a child universe.
- Verify that the reporting & dispute cycle works in the child universe.
- Cause a fork in the child universe, migrate REP to an outcome, then check the Universes page. The current universe should be shown in the middle column, the parent universe in the left column, and the child universes of the current universe should be shown in the right column. (see ch7720 for a more detailed description)
- Cause one of the child universes from the most recent fork to be declared the winning outcome. Make sure this is labeled on the Universe page.