init vault app
This commit is contained in:
parent
d653b3715f
commit
22021f2d46
7
apps/vault/.gitignore
vendored
Normal file
7
apps/vault/.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Build dirs
|
||||||
|
.cache/
|
||||||
|
build/
|
||||||
|
dist/
|
0
apps/vault/.ipfsignore
Normal file
0
apps/vault/.ipfsignore
Normal file
31
apps/vault/README.md
Normal file
31
apps/vault/README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Aragon Bare Boilerplate
|
||||||
|
|
||||||
|
> 🕵️ [Find more boilerplates using GitHub](https://github.com/search?q=topic:aragon-boilerplate) |
|
||||||
|
> ✨ [Official boilerplates](https://github.com/search?q=topic:aragon-boilerplate+org:aragon)
|
||||||
|
|
||||||
|
Bare boilerplate for Aragon applications.
|
||||||
|
|
||||||
|
This boilerplate *only* includes the contract interfaces and `@aragon/client`, along with the two required application manifests: `manifest.json` and `arapp.json`.
|
||||||
|
|
||||||
|
This boilerplate is ideal for building applications that do not use React
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```sh
|
||||||
|
aragon init foo.aragonpm.test bare
|
||||||
|
```
|
||||||
|
|
||||||
|
## What's in the box?
|
||||||
|
|
||||||
|
### npm Scripts
|
||||||
|
|
||||||
|
- **test**: Runs your Truffle tests
|
||||||
|
- **build**: Compiles your contracts
|
||||||
|
- **start**: Runs your app locally
|
||||||
|
- **deploy**: Deploys your app smart contract to a local chain
|
||||||
|
- **publish**: Publishes a new version of your app
|
||||||
|
|
||||||
|
### Libraries
|
||||||
|
|
||||||
|
- [**@aragon/os**](https://github.com/aragon/aragonOS): Aragon interfaces
|
||||||
|
- [**@aragon/client**](https://github.com/aragon/aragon.js/tree/master/packages/aragon-client): Wrapper for Aragon application RPC
|
6
apps/vault/app/index.html
Normal file
6
apps/vault/app/index.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<!doctype>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>Hello world!</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
18
apps/vault/app/script.js
Normal file
18
apps/vault/app/script.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import Aragon from '@aragon/client'
|
||||||
|
|
||||||
|
const app = new Aragon()
|
||||||
|
|
||||||
|
const initialState = {
|
||||||
|
dummyValue: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
app.store((state, event) => {
|
||||||
|
if (state === null) state = initialState
|
||||||
|
|
||||||
|
switch (event.event) {
|
||||||
|
case 'DummyEvent':
|
||||||
|
return { dummyValue: 1 }
|
||||||
|
default:
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
})
|
28
apps/vault/arapp.json
Normal file
28
apps/vault/arapp.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"roles": [
|
||||||
|
{
|
||||||
|
"name": "Dummy role",
|
||||||
|
"id": "DUMMY_ROLE",
|
||||||
|
"params": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"environments": {
|
||||||
|
"default": {
|
||||||
|
"network": "development",
|
||||||
|
"appName": "kredits-vault.open.aragonpm.eth"
|
||||||
|
},
|
||||||
|
"rinkeby": {
|
||||||
|
"registry": "0x98df287b6c145399aaa709692c8d308357bc085d",
|
||||||
|
"appName": "kredits-vault.open.aragonpm.eth",
|
||||||
|
"wsRPC": "wss://rinkeby.eth.aragon.network/ws",
|
||||||
|
"network": "rinkeby"
|
||||||
|
},
|
||||||
|
"mainnet": {
|
||||||
|
"registry": "0x314159265dd8dbb310642f98f50c066173c1259b",
|
||||||
|
"appName": "kredits-vault.open.aragonpm.eth",
|
||||||
|
"wsRPC": "wss://mainnet.eth.aragon.network/ws",
|
||||||
|
"network": "mainnet"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path": "contracts/App.sol"
|
||||||
|
}
|
26
apps/vault/contracts/App.sol
Normal file
26
apps/vault/contracts/App.sol
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
pragma solidity ^0.4.24;
|
||||||
|
|
||||||
|
import "@aragon/os/contracts/apps/AragonApp.sol";
|
||||||
|
|
||||||
|
|
||||||
|
contract App is AragonApp {
|
||||||
|
////
|
||||||
|
//// ....
|
||||||
|
//// .,,,,..,,,,.
|
||||||
|
//// ..,,.. .. .,,,..
|
||||||
|
//// .,,. ..,:....,,.. .,,.
|
||||||
|
//// ,: ...,. .,,..,. :,
|
||||||
|
//// .:. ,. , ,.. .:.
|
||||||
|
//// ,:,. .. .,,., :,
|
||||||
|
//// ,;. ........,..,..:,
|
||||||
|
//// ,:. .. .....:,
|
||||||
|
//// .:, .::.
|
||||||
|
//// .,,. .,,.
|
||||||
|
//// .,,,..,,,.
|
||||||
|
//// ....
|
||||||
|
////
|
||||||
|
//// Build something beautiful.
|
||||||
|
function initialize() public onlyInit {
|
||||||
|
initialized();
|
||||||
|
}
|
||||||
|
}
|
23
apps/vault/contracts/misc/Migrations.sol
Normal file
23
apps/vault/contracts/misc/Migrations.sol
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
pragma solidity ^0.4.4;
|
||||||
|
|
||||||
|
contract Migrations {
|
||||||
|
address public owner;
|
||||||
|
uint public last_completed_migration;
|
||||||
|
|
||||||
|
modifier restricted() {
|
||||||
|
if (msg.sender == owner) _;
|
||||||
|
}
|
||||||
|
|
||||||
|
function Migrations() {
|
||||||
|
owner = msg.sender;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setCompleted(uint completed) restricted {
|
||||||
|
last_completed_migration = completed;
|
||||||
|
}
|
||||||
|
|
||||||
|
function upgrade(address new_address) restricted {
|
||||||
|
Migrations upgraded = Migrations(new_address);
|
||||||
|
upgraded.setCompleted(last_completed_migration);
|
||||||
|
}
|
||||||
|
}
|
10
apps/vault/manifest.json
Normal file
10
apps/vault/manifest.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"name": "Application",
|
||||||
|
"description": "An application for Aragon",
|
||||||
|
"icons": [{
|
||||||
|
"src": "/dist/images/icon.png",
|
||||||
|
"sizes": "192x192"
|
||||||
|
}],
|
||||||
|
"start_url": "/dist/index.html",
|
||||||
|
"script": "/dist/script.js"
|
||||||
|
}
|
5
apps/vault/migrations/1_initial_migration.js
Normal file
5
apps/vault/migrations/1_initial_migration.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
var Migrations = artifacts.require('./Migrations.sol')
|
||||||
|
|
||||||
|
module.exports = function (deployer) {
|
||||||
|
deployer.deploy(Migrations)
|
||||||
|
}
|
5
apps/vault/migrations/2_deploy_contracts.js
Normal file
5
apps/vault/migrations/2_deploy_contracts.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
var App = artifacts.require('./App.sol')
|
||||||
|
|
||||||
|
module.exports = function (deployer) {
|
||||||
|
deployer.deploy(App)
|
||||||
|
}
|
27
apps/vault/package.json
Normal file
27
apps/vault/package.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"name": "kredits-vault",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"dependencies": {
|
||||||
|
"@aragon/client": "^1.1.0",
|
||||||
|
"@aragon/os": "^4.0.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@aragon/cli": "^5.4.0",
|
||||||
|
"parcel-bundler": "^1.11.0"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "aragon run",
|
||||||
|
"test": "aragon contracts test",
|
||||||
|
"compile": "aragon contracts compile",
|
||||||
|
"deploy": "aragon deploy",
|
||||||
|
"build:app": "parcel build app/index.html -d dist/ --public-url \".\" --no-cache",
|
||||||
|
"build:script": "parcel build app/script.js -d dist/ --no-cache",
|
||||||
|
"build": "npm run build:app && npm run build:script",
|
||||||
|
"publish:patch": "aragon apm publish patch",
|
||||||
|
"publish:minor": "aragon apm publish minor",
|
||||||
|
"publish:major": "aragon apm publish major",
|
||||||
|
"versions": "aragon apm versions"
|
||||||
|
},
|
||||||
|
"keywords": []
|
||||||
|
}
|
63
apps/vault/truffle.js
Normal file
63
apps/vault/truffle.js
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/**
|
||||||
|
* https://github.com/aragon/aragonOS/blob/v4.0.0/truffle-config.js
|
||||||
|
*/
|
||||||
|
const homedir = require('homedir')
|
||||||
|
const path = require('path')
|
||||||
|
|
||||||
|
const HDWalletProvider = require('truffle-hdwallet-provider')
|
||||||
|
const HDWalletProviderPrivkey = require('truffle-hdwallet-provider-privkey')
|
||||||
|
|
||||||
|
const DEFAULT_MNEMONIC = 'explain tackle mirror kit van hammer degree position ginger unfair soup bonus'
|
||||||
|
|
||||||
|
const defaultRPC = (network) =>
|
||||||
|
`https://${network}.infura.io`
|
||||||
|
|
||||||
|
const configFilePath = (filename) =>
|
||||||
|
path.join(homedir(), `.aragon/${filename}`)
|
||||||
|
|
||||||
|
const mnemonic = () => {
|
||||||
|
try {
|
||||||
|
return require(configFilePath('mnemonic.json')).mnemonic
|
||||||
|
} catch (e) {
|
||||||
|
return DEFAULT_MNEMONIC
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const settingsForNetwork = (network) => {
|
||||||
|
try {
|
||||||
|
return require(configFilePath(`${network}_key.json`))
|
||||||
|
} catch (e) {
|
||||||
|
return { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lazily loaded provider
|
||||||
|
const providerForNetwork = (network) => (
|
||||||
|
() => {
|
||||||
|
let { rpc, keys } = settingsForNetwork(network)
|
||||||
|
rpc = rpc || defaultRPC(network)
|
||||||
|
|
||||||
|
if (!keys || keys.length == 0) {
|
||||||
|
return new HDWalletProvider(mnemonic(), rpc)
|
||||||
|
}
|
||||||
|
|
||||||
|
return new HDWalletProviderPrivkey(keys, rpc)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
module.exports = {
|
||||||
|
networks: {
|
||||||
|
development: {
|
||||||
|
host: 'localhost',
|
||||||
|
port: 8545,
|
||||||
|
network_id: '*'
|
||||||
|
},
|
||||||
|
mainnet: {
|
||||||
|
network_id: 1,
|
||||||
|
provider: providerForNetwork('mainnet')
|
||||||
|
},
|
||||||
|
rinkeby: {
|
||||||
|
network_id: 4,
|
||||||
|
provider: providerForNetwork('rinkeby')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user