
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
@levelk/futarchy-app
Advanced tools
App for futarchy
npm install
npm run compile
npm run start:app
: builds the frontend to dist/
npm run devchain
: starts a local aragon devchain
npm run start:aragon
:
Seeding scripts in scripts/seed_data
can be used to seed the UI with decisions and market trades.
To run the scripts, first run through the "Run" instructions above. Make sure all processes have succeeded and are running. Then:
npm run start:aragon
output:Open DAO [completed]
ℹ You are now ready to open your app in Aragon.
ℹ This is the configuration for your development deployment:
Ethereum Node: ws://localhost:8545
ENS registry: 0x5f6f7e8cc7346a11ca2def8f827b7a0b612c56a1
APM registry: aragonpm.eth
DAO address: 0x5b48408a77645bd31e5eBaa460E84B588eaae1d4
Opening http://localhost:3000/#/0x5b48408a77645bd31e5eBaa460E84B588eaae1d4 to view your DAO
npm run seed <DAO_ADDRESS>
. Replace <DAO_ADDRESS>
with your copied addressWhen these succeed, you will see 3 decisions in the UI. If you click on the first decision, you will see a series of trades.
To run a specific seed file, use npm run seed <DAO_ADDRESS> [DATA_FILE_ID]
. The file ID can be found in the file name scripts/data/data_<DATA_FILE_ID>.json
. If no ID is specified, the seed script defaults to running with the scripts/data/data_0.json
file.
npm run devchain:reset
Starts the devchain with --reset
, which deletes existing ganache snapshots
**NOTE: aragon caches event data using indexdb. You need to clear your browser cache after the devchain is reset
Run npm run start:app:debug
(instead of npm run start:app
) to log all activity in the client. This will log info about all Aragon smart contract events, calls, and transactions.
Use this to develop components without having to depend on the "backend" smart contract environment:
First, npm install
Run npm run start:app
to build the frontend to the dist
dir and watch for changes.
Run npm run start:sandbox
to serve the frontend at http://localhost:8080
Modify ./app/components/DecisionListEmptyState.js
to add the component you're working on. This is the default view, so you should see changes here when you refresh the browser.
If something breaks, just restart the npm run start:app
and npm run start:sandbox
processes.
All components in futarchy-app
are "stateless functional" components. This means they expect some state as input, and render UI based on this state. You can use hardcoded state to test these components. Here's an example:
// ./app/components/DecisionListEmptyState.js
import React from 'react'
// import ShowPanelButtonContainer from '../containers/ShowPanelButtonContainer'
import DecisionSummary from './DecisionSummary'
const mockDecision = {
id: 123456,
question: 'question will show up?'
}
const DecisionListEmptyState = () => (
<DecisionSummary decision={mockDecision} />
// <div>
// Nothing here yet...
// <br /> <br />
// <ShowPanelButtonContainer panelName="createDecisionMarket">
// New Decision
// </ShowPanelButtonContainer>
// </div>
)
export default DecisionListEmptyState
This should display the DecisionSummary
component with the state that we provided in mockDecision
.
We're using react styled-components, which allow you to add CSS within the component .js files. See ./app/components/AppHeader.js
for a good example of this.
Before publishing, make sure a local IPFS instance is running: npm run ipfs
npm run deploy:staging:prepare
:Deploys these dependency contracts to staging (rinkeby). Allocates balances for the MiniMeToken
to the accounts in accounts.rinkeby.json
.
Deployed contract addresses and token allocation amounts will be stored in deploy.rinkeby.json
.
npm run deploy:staging:publish:major
:Publishes a new "major" version of the Futarchy app to staging (rinkeby).
npm run deploy:staging:publish:minor
:Publishes a new "minor" version of the Futarchy app to staging (rinkeby).
The contents of the dist
directory need to be propagated to IPFS in order for the web app to load on Aragon. To ensure that content is propagated:
npm run ipfs
npm run versions:staging
. Copy the IPFS hash of the version you want to propagatenpm run ipfs:propagate <ipfs_hash>
which will attempt to propagate all contents of this reponpm run ipfs:propagate:dist <ipfs_hash>
to propagate the dist
directory contentsTo manually send to another node, an archive file of IPFS content can be generated by running npm run ipfs:archive:<environment> <version> <ipfs_hash>
Before deploying, make sure a local IPFS instance is running: npm run ipfs
deploy:staging:newFutarchyDAO
Deploys a new DAO on staging (rinkeby), installs on instance of the futarchy app futarchy.open.aragonpm.eth
, and sets permissions for the deployer account.
FAQs
Aragon app for futarchy decisions
We found that @levelk/futarchy-app 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
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.