+ oSnap seamlessly integrates with Snapshot and your treasury,
+ automatically executing governance votes on-chain. Bypass the need for
+ privileged signers to create a DAO that's more efficient and truly
+ decentralized.
+
+ Note that the deactivation process takes place in the Safe app +
+ ++ You have installed the oSnap plugin, but you don't have any treasuries. +
++ Please add a Safe as a treasury and enable oSnap on it to use the oSnap + plugin. +
++ oSnap is currently disabled because your space's voting settings + disallow the basic voting type which is a requirement for oSnap to work + properly. +
++ Have your admin visit your + settings page under Voting -> + Type, and make sure either "Any" or "Basic Voting" is selected. This + will allow you to create oSnap proposals. +
++ Are you planning for this proposal to initiate a transaction that your + organizations Safe will execute if approved? (Remember, oSnap enables + trustless and permissionless execution) +
++ The new oSnap plugin is not compatible with the legacy safeSnap plugin. + Please remove the safeSnap plugin in your space settings to enable + oSnap. +
++ Are you planning for this proposal to initiate a transaction that your + organizations Safe will execute if approved? (Remember, oSnap enables + trustless and permissionless execution) +
+- oSnap is currently disabled because your space's voting settings - disallow the basic voting type which is a requirement for oSnap to - work properly. -
-- Have your admin visit your - settings page under Voting -> - Type, and make sure either "Any" or "Basic Voting" is selected. This - will allow you to create oSnap proposals. -
-- Are you planning for this proposal to initiate a transaction that your - organizations Safe will execute if approved? (Remember, oSnap enables - trustless and permissionless execution) -
-+ Using the oSnap plugin while the SafeSnap plugin is still installed on + your place will cause unexpected behavior. +
++ Please remove the SafeSnap plugin before using the oSnap plugin. +
++ You have installed the oSnap plugin, but you don't have any + treasuries. +
++ Please add a Safe as a treasury and enable oSnap on it to use the + oSnap plugin. +
+ + ++ You have installed the oSnap plugin, but you don't have any oSnap + safes. +
++ Please add a Safe as a treasury and enable oSnap on it to use the + oSnap plugin. +
+ + +There are no transactions associated with this proposal.
+ + diff --git a/src/plugins/oSnap/README.md b/src/plugins/oSnap/README.md new file mode 100644 index 00000000000..d9065ad4246 --- /dev/null +++ b/src/plugins/oSnap/README.md @@ -0,0 +1,17 @@ +# oSnap Snapshot Plugin + +This is a Snapshot plugin that facilitates using the Optimistic Governor to execute a set of transactions. + +See https://docs.snapshot.org/user-guides/plugins for general info about Snapshot plugin development. + +## Terms + +There are some terms that can be confusing in this plugin, because they are used to mean different things in different contexts. + +* Proposal — in the context of a normal Snapshot vote, regardless of plugins, "Proposal" refers to the set of questions that gets submitted to Snapshot and presented to voters. In the context of the Optimistic Governor, "Proposal" refers to the set of transactions that are submitted to the Optimistic Governor contract to be executed. This can be confusing because a Snapshot "Proposal" that uses the oSnap plugin will itself have an Optimistic Governor "Proposal" for the transactions that it aims to execute. As far as possible we have prefixed Optimistic Governor proposals with "OG" in the code to avoid confusion. + +* Assertion — Optimistic Oracle V3 calls a piece of information that is asserted as true an "assertion". In the context of the Optimistic Governor, an assertion is made on the Optimistic Oracle which states that the specified set of transactions is valid and should be executed. Some key information about the Optimistic Governor proposal can only be found in the context of assertions, such as the assertion transaction hash and log index which are used to generate links to the Optimistic Oracle UI. + +* SafeSnap and oSnap — oSnap was originally part of the SafeSnap plugin, hence the similar names. SafeSnap uses the Reality oracle, while oSnap provides the option to use the Optimistic Oracle instead. Eventually it was decided that oSnap deserves to be its own plugin, and so it was split off from SafeSnap. However, for legacy support reasons, the oSnap functionality in the SafeSnap plugin is still available. + +* Votes — both Snapshot and the Optimistic Oracle use votes for their function. The _Snapshot_ vote takes place first in the context of oSnap. When creating a Snapshot Proposal with oSnap, the Snapshot vote takes place first. Only if the Snapshot vote passes can transactions be proposed to the Optimistic Governor. In fact, if the assertion for an Optimistic Governor proposal is disputed, the Optimistic Governor proposal is immediately deleted by the contract. This means that the Optimistic Oracle vote that proceeds from the dispute has no bearing on the Optimistic Governor proposal. The Optimistic Oracle vote is only used to determine whether the disputer or the proposer loses their bond. \ No newline at end of file diff --git a/src/plugins/oSnap/components/ExternalLink.vue b/src/plugins/oSnap/components/ExternalLink.vue new file mode 100644 index 00000000000..b8dc65c96a2 --- /dev/null +++ b/src/plugins/oSnap/components/ExternalLink.vue @@ -0,0 +1,35 @@ + + + + ++ On-chain proposals require a bond from the proposer. This will approve + tokens from your wallet to be posted as a bond. If you make an invalid + proposal, it will be disputed and you will lose your bond. If the proposal + is valid, your bond will be returned when the transactions are executed. +
++ Warning: This proposal was disputed on-chain. Exercise caution when + proposing, because your proposal may be disputed too. +
++ This will execute the transactions from this proposal and return the + asserter's bond. +
++ Transactions cannot be executed because the Snapshot vote resolved as + "against". +
+Waiting for Snapshot vote counting to conclude.
+All transactions have been executed
+
+ Safe app link
+ {{ shorten(safeAddress) }}
+
+ Module address{{ + shorten(moduleAddress) + }} +
++ Number of transactions{{ transactions.length }} +
+