Pocket IC - deploy SNS and complete launch process

Hi,

Has anyone managed to deploy an SNS in pocket IC and get it to the final stage ( point 11 ) of this document. Stages of an SNS launch | Internet Computer

is your question coming from the fact that you did not manage to achieve this? if so, what errors issue did you encounter?

or is this just a general question?

I did not test this yet, but maybe @mraszyk is able to quickly answer this :thinking:

1 Like

yes i didn’t manage to achieve this yet. I managed to deploy an SNS in PocketIC but there are many steps to get it to the final state. so if someone has a repo where they’ve done it then please post it :slight_smile:

1 Like

Hi @frederico02,

We have a number of PocketIc-based tests for the SNS framework in the ICP mono repo.

Here’s a fairly comprehensive one that runs through the SNS lifecycle: ic/rs/nervous_system/integration_tests/tests/sns_lifecycle.rs at master · dfinity/ic · GitHub

These tests are assembled from helpfer functions defined in ic/rs/nervous_system/integration_tests/src/pocket_ic_helpers.rs at master · dfinity/ic · GitHub

Let us know if you need further questions!

3 Likes

woohoo! thank you so much

I just also came across a potential update here:

@aterga can you maybe shortly explain what’s being improved there?

1 Like

This is a bit off-topic, but worth mentioning — regarding the next-gen SNS testing tool:

The Serokell team is spearheading a community-driven project to bring the current sns-testing solution into the ICP mono repo (so it can be written in Rust and continuously tested against the latest SNS features). This initiative is also shaping a new, state-of-the-art methodology for test-driven dapp development on ICP, examplifying the smoothest possible way from dapp prototype to SNS launch.

At the core of this effort lies the PocketIC framework, the only approach capable of creating a fully deterministic environment for testing complex dapp scenarios — something classical testnets simply can’t provide.

Stay tuned for more details.

3 Likes

Am I correct in thinking you’ll be able to do something like

let pocket_ic = PocketIcBuilder::new()
        .with_nns_subnet()
        .with_sns_subnet()
        .with_governance()
        .build()

the with_governance() builder function effectively adding on a fully finalized sns that is in it’s final state?

currently trying to copy over what you guys did to get the sns in it’s final state but its a lot of work and there are many deps / references to the ic repo