Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
@1hive/apps-dandelion-voting
Advanced tools
The Dandelion Voting app is a fork of the Original Aragon Voting app. It serves the same purpose as the original Voting app but also enables organizations to restrict actions to members who have expressed approval in recent votes. It basically means that by voting yes on a proposal you are committing to a decision in the Org.
The main changes that have been implemented which differ from the original Voting app are:
full vote duration
+ full execution delay period
must pass before being able to execute a vote in case it passes).The code in this repo has not been audited.
It has the same funcionality as the regular voting app with some exceptions:
full vote duration
+ the full delay period
has to pass in order to be able to execute a vote (in case it passes).It also acts as an ACL Oracle. ACL Oracles are small helper functions that plug in to Aragon's access control list (ACL) to do more sophisticated permission evaluation. This Oracle is intended to restrict actions to members who have expressed approval in recent votes.
The app keeps track of the latest vote ids users have voted yes on. This way when the Oracle function is queried, it can properly evaluate whether a member can perform a certain action or not within the Organization.
In the context of Dandelion Orgs, the redeem functionality will be guarded by a role set behind this ACL Oracle. This means that whenever a user wants to redeem some tokens, it will first call the ACL Oracle function to check whether s/he can perform the action or not.
Users will be able to redeem tokens if one of this conditions is met:
The fallback period is intended to ensure users are both locked in for votes they voted yes on, but still have an opportunity to exit before the next vote that they didn't vote yes on gets executed. The idea here is that it gives other members an opportunity to execute the vote before anyone who voted yes on the proposal has the opportunity to exit. It also takes into account the possibility of a vote to fail its execution due to reasons that are outside of the Org's control.
The Dandelion Voting app is initialized with a MiniMeToken _token
, uint64 _supportRequiredPct
, uint64 _minAcceptQuorumPct
, uint64 _durationBlocks
, uint64 _bufferBlocks
and uint64 _executionDelayBlocks
.
MiniMeToken _token
refers to the token that will be used to voteuint64 _supportRequiredPct
refers to the support required to pass a voteuint64 _minAcceptQuorumPct
refers to the quorum required to pass a voteuint64 _durationBlocks
refers to the number of blocks that a vote stays openuint64 _bufferBlocks
refers to the minimum number of blocks between the start block of each voteuint64 _executionDelayBlocks
refers to the number of blocks that a vote will be delayed from when is closed to when it actually can be executed (in case it passes).The Dandelion Voting app should implement the following roles:
The interface is pretty much the same as the original Voting app with the exception that now you can see when future votes will start (upcoming votes).
If you would like to see the Dandelion Voting App in action, we recommend the Dandelion Org template available in the Aragon templates directory. Just go to https://preview.1hive.org/, then create a new organization, and choose Dandelion from the template options.
Git clone this repo.
git clone https://github.com/1Hive/dandelion-voting-app.git
Navigate into the dandelion-voting-app
directory.
cd dandelion-voting-app
Install npm dependencies.
npm i
Deploy a dao with Dandelion Voting app installed on your local environment.
npm run start:template
For a detailed step by step guide you can see our installation guide
To deploy to an organization you can use the aragonCLI.
aragon dao install <dao-address> dandelion-voting.open.aragonpm.eth --app-init-args <token-address> <supportRequiredPct> <minAcceptQuorumPct> <durationBlocks> <bufferBlocks> <executionDelayBlocks>
We welcome community contributions!
Please check out our open Issues to get started.
If you discover something that could potentially impact security, please notify us immediately. The quickest way to reach us is via the #dev channel in our team Keybase chat. Just say hi and that you discovered a potential security vulnerability and we'll DM you to discuss details.
FAQs
Voting app for dandelion orgs
The npm package @1hive/apps-dandelion-voting receives a total of 0 weekly downloads. As such, @1hive/apps-dandelion-voting popularity was classified as not popular.
We found that @1hive/apps-dandelion-voting demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.