Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sablier proposal builder #2233

Merged
merged 7 commits into from
Aug 20, 2024
Merged

Sablier proposal builder #2233

merged 7 commits into from
Aug 20, 2024

Conversation

mudrila
Copy link
Contributor

@mudrila mudrila commented Aug 12, 2024

UPDATE

This PR is no longer relevant. Please do not use the "deploy preview" link in this PR for any kind of public blockchain actions. Use https://app.decentdao.org


In order to use Tranched Sablier Stream Builder - please visit DAO's Sablier proposal creation link.
It should look like this:

https://deploy-preview-2233.app.dev.decentdao.org/proposals/new/sablier/metadata?dao=sep:0x7d0E8e93B5785CB4d5c76f65BB798B3d0a3e89Cb

For instance, for Shutter Mainnet DAO - the link will be following:

https://deploy-preview-2233.app.dev.decentdao.org/proposals/new/sablier/metadata?dao=eth:0x36bD3044ab68f600f6d3e081056F34f2a58432c4

Fill in metadata - proposal title and description (markdown supported) and proceed to the next step - configuring streams.
You can create multiple streams, though note it only supports Tranched streams creation.

Paste in following information for each stream you would like to create:

  1. Token address - after pasting Token Contract address - you should see your DAO balance of this token, it's symbol and name. Make sure it matches the token you'd like to stream from the Safe
  2. Recipient address - the receiver address. Only this address will be able to execute withdraw transaction through Sablier UI
  3. Total amount - the total amount to be streamed.
  4. Cancelable - whether this stream can be cancelled by DAO through further proposal
  5. Transferable - whether recipient should be able to transfer stream receiving rights to some other recipient (original recipient will completely loose access to withdrawing funds from this stream)
  6. Tranches
    • Amount: the amount to stream per tranche
    • Duration: the duration of the tranche streaming in seconds (the tranche will be available for withdraw only after passing this duration)
    • Please note - the sum of tranches amounts needs to be exactly the same as stream total amount
    • First tranche will start streaming right after proposal execution - this is technical detail enforced from Sablier side. If you'd like to emulate postponed start - put 0 into very first tranche "Amount" field and desired duration of delay in seconds. Take into account that this duration will start only after executing proposal - so you'll need to account for proposal voting period

After configuring streams - proceed to submitting proposal. This should result in creating proposal with a set of transaction that will look like on the screenshot below

Screenshot 2024-08-12 at 16 33 20

If you'll be creating multiple streams with the same token streamed - that should result in 2 transactions with correct amount for approve function and with proper amount of streams created for createWithDurationsLT function.

If you'll be creating multiple streams with different tokens streamed - that will result in multiple invocations of approve and createWithDurationsLT, one per token respectively.

Nevertheless functionality is tested on Sepolia - please, perform your own round of testing with desired number of streams, token to be streamed and streams configuration - then verify through Sablier UI, that stream is created with proper parameters and distribution curve.

Closes #2220

@mudrila mudrila added enhancement New feature or request user-feedback Listen to the users labels Aug 12, 2024
@mudrila mudrila self-assigned this Aug 12, 2024
Copy link

netlify bot commented Aug 12, 2024

Deploy Preview for decent-interface-dev ready!

Name Link
🔨 Latest commit 3a5413e
🔍 Latest deploy log https://app.netlify.com/sites/decent-interface-dev/deploys/66c3a52b5e25460008717275

To edit notification comments on pull requests, go to your Netlify site configuration.

@adamgall adamgall changed the base branch from develop to roles-0.2.0/streams August 12, 2024 15:45
Base automatically changed from roles-0.2.0/streams to develop August 19, 2024 17:11
@adamgall
Copy link
Member

@mudrila can we try to get this merged into develop? Let's put access to this feature behind some conditionals to narrow it down to one or two people. Something like

if (current_user == 0xabc && current_safe == 0x36b && network == mainnet)
  show_sablier_feature

@adamgall adamgall changed the title [PoC - DO NOT MERGE] Sablier proposal builder Sablier proposal builder Aug 19, 2024
@mudrila
Copy link
Contributor Author

mudrila commented Aug 20, 2024

@adamgall I'm cool with merging this into develop even without feature flag. It is accessible only through direct link - so you need to know that this feature is there and how access it. I'd say it should be sufficient gating. But yeah - I don't mind adding feature flag either, just lmk if you think it's worth that

@adamgall
Copy link
Member

Oh, ok, I think that's fine then. Will merge

@adamgall adamgall merged commit 8ebbe21 into develop Aug 20, 2024
7 checks passed
@adamgall adamgall deleted the sablier-proposal-builder branch August 20, 2024 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request user-feedback Listen to the users
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Shutter Sablier custom proposal
2 participants