Hello IC Community,
As mentioned in this forum post, there was a bug discovered during the intent to launch an SNS for Modclub. Due to a race condition, multiple OpenSnsTokenSwap proposals were submitted, even though it should only be possible to submit one such proposal at a time. Because there were multiple proposals, the idea was to reject all proposals except for proposal 123929. When the first proposal was rejected (proposal 123925) an automatic cleanup mechanism of the system was triggered. This cleanup mechanism has the following effects:
- Sets the state of the SNS targeted by the rejected OpenSnsTokenSwap proposal to Aborted.
- Returns the Neurons’ Fund investment back to the NNS.
- Returns the SNS dapp canister(s) to their fallback controllers.
This means that the Modclub SNS launch failed, and control over the dapp has been returned to the developers. One can observe that via the IC Dashboard: SNS DAO: Modclub - ICP Dashboard.
Why should a rejected proposal abort an SNS?
In normal conditions, when there is only a single OpenSnsTokenSwap proposal active, if the NNS votes to reject an OpenSnsTokenSwap proposal, this indicates that the conditions set out by the proposal do not meet the requirements to be a fully functional SNS, i.e. an SNS in normal mode. At the time of rejection, the SNS canisters have already been deployed and dapp canister(s) are already under control of the SNS canisters. An NNS proposal rejection then automatically triggers a return of assets and a setting of the Aborted state. This prevents SNSes, before they are decentralized, from using tokens and makes sure that developers do not lose access to their dapp(s). This mechanism is what set, for example, the SONIC SNS to the Aborted state when their OpenSnsTokenSwap proposal was rejected.
Next Steps
- As a temporary measure, DFINITY has proposed to upgrade the NNS Governance canister to temporarily disable submission of OpenSnsTokenSwap proposals. The community should review, comment, and vote on this proposal.
- Concurrently, DFINITY is working on a fix to ensure that there can only be one OpenSnsSwap proposal at a time and will submit a new proposal as soon as the fix is verified and tested.
- DFINITY is working on fundamental improvements for launching SNSes. Soon, the whole process will be done via one proposal (not multiple), so that design will be simplified and some of these edge cases will be removed.
- We invite people to follow ModClub’s thread to learn what they plan next for their SNS Launch.